1. Forward Error Detection이란?

데이터 전송 에러를 찾는 방법으로 보낼 때 문자 혹은 프레임에 부가 정보를 추가하여 전송한다.

관련 단어로는 오류 검출 정정(誤謬檢出訂正), 오류 제어(誤謬制御) 등이 있다.

2. 주요 방식

2-1. Parity

1비트의 패리티 비트를 추가하여 전송함으로서 비트 오류를 검출할 수 있다.

패리티 비트는 오류가 생겼는지 검사하기 위해 추가된 비트이다. 데이터 각 문자에 1비트를 더해서 전송하게 되는데 홀수 패티리와 짝수 패리티의 두 방식이 있다.

  • 짝수 패리티 : 전체 비트의 1의 개수가 짝수가 되도록 설정 (예: 0010110 -> 10010110)
  • 홀수 패리티 : 전체 비트의 1의 갯수가 홀수가 되도록 설정

2-2. Block Sum Check (BSC)

Row Parity에 Column Parity를 추가함으로서 이중으로 오류를 검출할 수 있다. 이 때 추가된 Column Parity를 BCC (Block Check Character) 라고 한다.

2-3. Cyclic Redundancy Check (CRC)

전송 오류가 발생했는지 확인하기 위해 코드를 추가하는 방식이다.

- 송신측

  1. 임의의 CRC 발생 코드 선정
  2. CRC 발생 코드와 최고차 차수만큼 원래 데이터에 0 추가
  3. 앞서 생성된 확장 데이터(0이 추가된 데이터)를 XOR 연산을 통해 CRC 발생 코드를 나눈다.
  4. 나머지가 0이면 확장 데이터를 전송, 나머지가 0이 아니면 원래 데이터를 나머지를 추가하여 전송

- 수신측

  1. 수신된 코드를 동일한 CRC 발생 코드를 나눈다.
  2. 나머지가 0이면 오류가 발생하지 않은 것임
  3. 나머지가 0이 아니면 전송과정에서 오류가 발생한 것임

2-4. Hamming Code

Parity 코드 기반인데 에러를 정정할 수 있는 코드이다.