패리티 비트(Parity bit)는 정보의 전달 과정에서 오류가 생겼는지를 검사하기 위해 추가된 비트이다.
ASCII코드를 예를 들면 아스키코드는 7비트의 정보와 패리티 검사를 위한 1비트로 구성된 8비트 코드이다.
아스키 문자의 비트 1부터 7까지는 전송하고자 하는 정보를 나타내며, 비트 8은 패리티 비트를 나타낸다.
패리티 비트는 전송 도중에 발생하는 오류를 검출하는 데 사용된다.
패리티에는 홀수 패리티와 짝수 패티리 두 가지가 있다.
홀수 패리티 경우에 비트 8은 문자 내에 1의 개수를 전부 합하여 홀수가 되도록 정해지며, 짝수 패리티 경우에는 1의 개수가 짝수가 되로록 정해진다.
ASCII코드의 7문자를 부호화시킨 7비트는 다음과 같다.
0110111
여기서 홀수 패리티를 사용한다면 1이 5개이므로 8비트는 0으로 채워진다.
00110111
만약 짝수 패리티를 사용한다면 8비트는 1로 채워질 것이다.
100110111
패리티 시스템의 동작 원리는 간단하다. 송신 측의 부호기는 각 문자에 패리티 비를 붙인 다음 전송 경로를 통하여 한 비트씩 차례대로 보낸다. 수신 복호 기는 7비트의 정보를 받은 다음 패리티 비트를 계산해서 마지막에 받은 8번째 비트와 비교하여 서로 같을 때 받을 글자에 오류가 없다고 판단하고, 서로 다를 때는 오류가 있다고 판단한다.
다만 패리티 비트는 모든 것을 검사하지 못한다.
예를 들어 다음과 같은 부호화 코드가 존재한다고 하자.
1이 5개로 채워졌으니 시스템은 홀수 패리티를 사용한다. 전송시 오류가 생겨 수신 문자에 다음과 같이 전송되었다.
분명 전달되는 과정에서 비트가 변경되었음에도 불구하고 패리티 검사조건에는 문제가 없기 때문에 오류를 검출할 수 없다. 단지 오류 비트가 홀수 개일 경우에만 오류를 검사할 수 있다는 사실을 보이는 셈이다.
만약 정상적으로 오류를 검출 했다면 송신 측에게 데이터를 재전송해달라고 요청하지만 해당 경우는 이 데이터를 그대로 사용한다.
패리티 검사에는 단순 패리티 검사와 2차원 패리티 검사로 나눌 수 있다.
단순 패리티 검사 : 전송하는 문자마다 패리티비트를 첨가하고 오류를 검사하는 것
2차원 패리티 검사 : 단순 패리티 검사는 오류가 발생한 비트의 개수가 짝수/홀수 일 경우 오류를 검출할 수 없다는 단점을 보완하기 위해 나온 패리티 검사 수직 방향과 수평 방향의 패리티 검사를 중복 사용하는 방식으로서, 블록 내의 각 문자는 수평으로 패리티 검사를 수행하고, 블록 내의 모든 문자에 대해서는 수직으로 패리티 검사를 함으로써 비트 오류율을 낮출 수 있다.
'느리게 변하는 지식 > Network' 카테고리의 다른 글
REST API & URI 설계 원칙 (RFC-3986) (0) | 2021.04.01 |
---|---|
TCP/IP (0) | 2021.03.07 |
NTP (0) | 2021.02.20 |
ICMP (0) | 2021.02.20 |
SMTP (0) | 2021.02.08 |
댓글