10. 오류 검출, 오류 정정

Eunji·2025년 6월 7일

Data Communication

목록 보기
4/8

에러 검출을 위해 일정 비트 추가

  • 채널 부호화 단계

10.1 Type of Error

Single-bit error

Burst error

10.2 오류 검출 vs 오류 정정

10.2.1 오류 검출

  • 오류가 있느냐, 없느냐만 알아냄
  • 목적지에서 오류를 검출하기 위해 여분의 비트를 추가
  • CRC, Checksum

10.2.2 오류 정정

Foward Error Correction

  • 수신자가 메시지의 중복비트를 이용하여 메시지를 정정
  • 과정 복잡

Automatic Repeat-reQuest

  • 수신자가 오류발생을 검출하여 송신자에게 메시지를 다시 보내줄 것을 요청하는 기술
  • 지연 발생 시 재전송 요청 어려움

10.3 Cyclic Code

특별한 성질을 가진 블록코드의 한 종류

  • 임의의 한 Codeword를 순환하면 다른 Codeword를 생성
  • E.g. LAN, WAN
  • Remainder: 원래 전송하는 Dataword보다 하나 적은 bit

10.3.1 Division in CRC Encoder

  • 나누기 연산의 나머지 Remainder 를 추가

10.3.2 Division in the CRC Decoder

  • 수신 측에서 Syndrome = 0 -> Error X

    전송 중에 생긴 에러 패턴이 divisor의 배수라면=> 원래 Dataword와 바뀐 데이터의 합이 Divisor와 같을 때 오류 검출 불가
    오류가 발생했음에도 불구하고 syndrome이 0이 됨

  • E.g. Dataword 1001 -> 0010, Error = 1011 = Divisor
  • Divisor XOR Dataword로 데이터가 변질

Polynomial

  • 0과 1의 패턴을 0과 1의 다항식으로 나타냄
  • 각 항의 지수가 각 비트의 자릿수
  • 계수는 비트의 값

10.3.3 CRC division using polynomials

  • Dataword x3+1x^3 + 1이 Dividend를 더해서 x6+x3x^6 + x^3

10.3.5 Advantage of CRC

  1. 단일 비트 및 폭주 오류를 검출하는 데 우수
  2. 구현 Easy
    • 하드웨어로 구현하면 특히 빠름

\therefore 네트워크에서 순환 코드가 사용

10.4 Checksum

  • 데이터 링크층 뿐만 아니라 인터넷에서 여러 프로토콜에 의해 사용
    • TCP
  • 목적지에 보내고자 하는 5개의 4bit 숫자 데이터를 가정한다, 끝에 숫자의 합도 같이 전송
  • 수신자는 5개의 숫자를 더해 결과를 합과 비교 -> 같으면 오류 x
  • sum: 계산 결과
  • wrapped sum: 이진수 결과
  • checksum: wrapped sum의 1의 보수
  • decoding 결과 0이면 오류 x

계산 과정

  1. 숫자 다 더하기
  2. 원래 bit 수보다 큰 bit들은 아래로 내려서 덧셈
  3. 1의 보수

0개의 댓글