Link layer: error detection, correction

이태곤·2023년 11월 15일
0

컴퓨터망

목록 보기
26/32
post-thumbnail

1. Introduction

  • 링크 계층은 연결된 노드 사이에서 안전하게 데이터를 전송하고, 오류 검출 및 패킷 손실을 방지하기 위한 흐름 제어를 담당한다.

  • 특징

    • Framing: 데이터그램을 프레임으로 캡슐화하여 헤더와 트레일러를 추가
    • 인접 노드 간 신뢰성 있는 전달: 링크 계층은 인접한 노드 간 신뢰성 있는 전달을 제공
      • 오류 감지 및 수정 수행
    • Flow Control: 인접한 송신 및 수신 노드 간의 전송 간격을 조절
    • Error Detection: 신호 약화, 노이즈 등으로 인해 발생하는 오류를 감지
    • Error Correction: 재전송 없이 오류를 식별하고 수정
  • LLC & MAC
    • LLC (Logical Link Control): 흐름 제어, 오류 검출 및 수정 등을 수행하며, 네트워크 계층과의 상호작용을 담당
    • MAC (Media Access Control): 특정한 물리적 매체로 데이터를 전송하는 방법을 정의하고, 프레임 내부에 MAC 주소를 사용하여 송신자와 수신자를 식별
    • LLC는 상위 계층과의 독립성을 유지하고 프로토콜 간의 호환성을 지원하는 반면, MAC은 특정한 매체에서의 데이터 전송 방식을 결정하기 때문에 종속성을 가진다.

2. Error detection & correction

  • 링크 계층에서는 오류 검출과 수정을 위해 프레임에 에러 검출 코드(Error Detection and correction Code) 비트를 추가
    → 프레임 트레일러에 포함되어 전송되고, 수신 측에서는 이러한 코드를 사용하여 오류를 감지하거나 필요한 경우 일부 오류를 수정할 수 있다.

  • Parity checking: 오류를 감지하는 데 사용되는 가장 간단한 방법
    • Even Parity: 데이터에 포함된 1의 개수가 짝수가 되도록 Parity bit를 설정
    • Odd Parity: 데이터에 포함된 1의 개수가 홀수가 되도록 Parity bit를 설정
    • 한계
      • 어떤 비트가 변경되었는지 정확히 식별할 수 없다.
      • 짝수 개의 비트가 변경된 경우 오류를 감지할 수 없다.
  • Cyclic Redundancy Check (CRC)
    1. 데이터 전송 시 전송 측에서 데이터에 대한 CRC 값을 생성하고, 해당 CRC 값을 데이터의 끝에 첨부하여 전송
    2. 수신 측에서는 받은 프레임을 약속된 Divisor로 나누어 나머지를 계산
    3. 나머지가 0이면 오류가 없는 것으로 간주하고, 나머지가 0이 아니라면 오류가 발생한 것으로 간주
    • 과정
    1. Divisor의 비트 수에서 1을 뺀만큼 0을 데이터 끝에 추가
    2. 보내려는 데이터를 사전에 정의된 Divisor로 XOR 연산을 수행
    3. 나머지를 데이터 뒤에 추가하여 전송
    4. 수신자는 받은 데이터를 약속된 Divisor로 나눴을 때, 나머지가 0이면 에러가 없다고 판단

0개의 댓글