Parity Bit란

오류가 있는지 없는지를 확인하기 위한 목적으로 추가되는 비트를 의미합니다.
보통의 경우 싱글 패리티 체크로만 Even 이냐 Odd 이냐를 설명하고 지나갑니다만, 마침 블로그에 Single과 Two dimensional 이 모두 C언어로 소스 예제가 있으니 이 두가지 경우에 대해서 모두 설명을 하도록 하겠습니다.


우선 보통 패리티 비트라고 하면 짝수로 만들어주는 Even 패리티 비트에 대해서 이야기를 많이 합니다.
그 이유는 이를 생성하는 것이 XOR 게이트를 이용하면 바로 생성이 되기 때문입니다.
Odd 패리티 비트의 경우 위의 결과를 반전시키면 되는 것이기 때문에 특별히 언급하지 않겠습니다.



XOR 게이트에 대한 부분을 잘 모르신다면 위의 자료를 참고하시기 바랍니다.
(블로그 자료가 기초적인 부분부터 조금씩 늘어나기 시작하니 이런 부분에서 굉장히 편리하네요.)



우선 Singl Parity Bit Check에 대해서 알아보도록 하겠습니다.
검은색이 기존의 데이터 비트라고 생각을 하시고, 제일 우측의 빨간색이 패리티 비트라고 생각하시면 됩니다.
데이터 비트와 패리티 비트를 모두 하나씩 XOR을 하면서 더한다고 가정을 하였을 때, 이 것이 짝수가 되도록 만드는 것입니다.
따라서 데이터 비트를 앞에서부터 하나씩 XOR을 하면서 나아가면 그 결과로 남아있는 것을 패리티 비트에 넣어주면 되는 것입니다.

패리티 비트의 치명적인 단점은 오류 검출율이 높지 않다는데 이유가 있습니다.
즉, 위의 경우에서 패리티 비트를 포함하여 짝수개의 비트 에러가 발생한 경우에는 이를 검출할 수 없습니다.
(에러 수정은 다른 문제이니 여기에서 이야기를 하지는 않도록 하겠습니다.)

하지만 장점으로는 에러가 발생하였는지 그렇지 않은지에 대한 검출을 유도하기 위해서 최소한의 비트로 이를 해결하고자 할 수 있다는 것은 장점입니다.



위의 그림은 Two Dimensional Parity Bit Check입니다.

우선 Single Parity Bit Check 방식과 동일하게 진행을 합니다.
그리고 하나의 데이터 묶음(보통의 경우 프레임)을 기준으로 세로 방향으로도 패리티 비트를 체크를 합니다.
이 경우 싱글 패리티 비트 체크 방식 보다는 조금 더 에러 검출율이 높아집니다.

하지만 이 경우에도 역시 재수가 없으면 에러가 발생하였는데도 발생하지 않았다고 생각을 하게 되는 경우가 존재하게 됩니다.
(이 재수가 없는 경우는 직접 생각해보세요. 정말 모르시겠으면 댓글을 남겨주신다면 설명을 해드리겠습니다.)



저작자 표시 비영리 변경 금지
신고

'Theory > Network' 카테고리의 다른 글

Parity Bit 을 이용한 오류 검출  (0) 2012.03.02
ARQ (Automatic Repeat reQuest)  (0) 2012.03.01
다중 접속 방식 (FDMA, TDMA, CDMA)  (4) 2012.02.28
RTCP(Real Time Control Protocol)  (0) 2011.12.20
RTP(Real Time Protocol)  (2) 2011.12.20
RTSP(Real Time Streaming Protocol)  (0) 2011.12.20

+ Recent posts