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)
전송 오류가 발생했는지 확인하기 위해 코드를 추가하는 방식이다.
- 송신측
- 임의의 CRC 발생 코드 선정
- CRC 발생 코드와 최고차 차수만큼 원래 데이터에 0 추가
- 앞서 생성된 확장 데이터(0이 추가된 데이터)를 XOR 연산을 통해 CRC 발생 코드를 나눈다.
- 나머지가 0이면 확장 데이터를 전송, 나머지가 0이 아니면 원래 데이터를 나머지를 추가하여 전송
- 수신측
- 수신된 코드를 동일한 CRC 발생 코드를 나눈다.
- 나머지가 0이면 오류가 발생하지 않은 것임
- 나머지가 0이 아니면 전송과정에서 오류가 발생한 것임
2-4. Hamming Code
Parity 코드 기반인데 에러를 정정할 수 있는 코드이다.