1. 단일-비트 오류 ( Single-bit Error )
- 데이터 단위 중 하나의 비트만 변경하는 오류를 말한다.
2. 다중-비트 오류 ( Multiple-bit Error )
- 데이터 단위 중 두개 이상의 비연속적인 비트를 변경하는 오류를 말한다.
3. 집단 오류 ( Burst Error )
- 데이터 단위 중 두 개 또는 그 이상의 연속적인 비트를 변경하는 오류를 말한다.
4. 패리티 비트 검사 ( Parity Bit Check )
- 전송하는 데이터마다 패리티 비트를 하나씩 추가하여 홀수 또는 짝수 검사 방법으로 오류를 검출한다.
- 예를 들어, 7비트 데이터를 전송할때 1비트 검사 비트를 추가로 전송하여 수신 측에서 데이터 전송 중 발생한 오류를 검출할 수 있도록 하는 방식
▶ 홀수 패리티 방식( Odd Parity )
- 전체 비트에서 1의 개수가 홀수가 되도록 패리티 비트를 정하는 것
- 데이터 비트에서 1의 개수가 짝수면 패리티 비트를 1로 정하여 전송되는 전체 데이터에 있는 1의 개수는 홀수가 된다.
▶ 짝수 패리티 방식( Even Parity )
- 전체 비트에서 1의 개수가 짝수가 되도록 패리티 비트를 정하는 것
- 데이터 비트에서 1의 개수가 홀수면 패리티 비트를 1로 정하여 전송되는 전체 데이터에 있는 1의 개수는 짝수가 된다.
▶ 디코딩 ( Decoding )
- 00100111에서 패리티 비트는 0이므로 1의 개수가 짝수인지 확인한다.
- 짝수 패리티 방식은 패리티 비트를 포함해서 각각 XOR 연산을 한 후 결과가 0(1의 개수가 짝수)이면 오류가 없는것
- 1(1의 개수가 홀수)이면 오류가 검출된 것이다.
- 0 XOR 0 XOR 1XOR 0XOR 0XOR 1XOR 1XOR 1 = 0
▶ 홀수 패리티 검사 원리도 이와 동일!
- 전송하려는 데이터가 1101001이라고 가정해 보자.
- 1의 개수를 홀수로 만들려고 패리티 비트를 1로 지정한다.(11101001)
- 데이터를 전송 받은 수신 측은 패리티 비트를 포함한 데이터 내 1의 개수를 세어 홀수인지 판단한 후 홀수가 아니면 재전송을 요청
▶ 블록 합 검사 ( Block Sum Check )
- 문자를 블록으로 전송하면 오류 확률이 높아지는데, 오류 검출 능력을 향상시키려고 문자 블록에 수평 패리티와 수직 패이티를 2차원적으로 검사하는 방법
- 한 데이터에서 짝수 개의 오류가 발생하더라도 오류를 검출할 수 있다.
▶ 순환 중복 검사 ( CRC, Cyclic Redundancy Check )
- 정확하게 오류를 검출하려고 다향식 코드를 사용하는 방법
- 오류가 없을 때는 계속 발생하지 않다가 오류가 발생하면 그 주위에 집중적으로 오류를 발생시키는 집단 오류를 검출하는 능력이 탁월하고, 구현이 단순
- CRC 발생기는 0과 1의 스트링 보다는 대수 다항식으로 표현하며, 하나의 다항식은 하나의 제수(Divisor)를 포현한다.
⊙ 다항식 ( Polynomial )을 이용한 순환 중복 검사의 오류 검출 과정을 살펴보자.
- 송신 측이 데이터를 전송하기 전에 송수신 측은 동일한 생성 다항식을 결정
- 송신 측에서는 K비트의 전송 데이터를 생성 다항식으로 나눈 n비트의 나머지 값을 구한다.
- K비트의 전송 데이터에 n비트의 나머지 값을 추가하여 K+n비트의 데이터를 수신 측으로 전송한다.
- 수신 측에서는 수신된 K+n비트의 데이터를 생성 다항식으로 나눈다.
- 나눈 나머지가 0이면 오류가 없는 것이고, 0이 아니면 오류가 발생한 것이다.
① 송신 측
a. 데이터 전송
b. 오류 검출코드 계산
c. CRC 추가
② 수신 측
a. 데이터 수신
b. 오류 검출코드 계산
c. 수신된 CRC와 계산된 CRC 비교 검사
d. 동일하지 않으면 오류 검출 신호 발생