학습 목표
오류 검출과 정정·재전송을 구별하고 비트 연산을 수행한다.
본문
핵심 이론
패리티는 1의 개수를 홀수·짝수로 맞춘다. 단일 패리티는 홀수 개 비트 반전을 검출하지만 짝수 개 반전은 검출하지 못한다. 해밍 코드는 정정 비트로 오류 위치를 찾아 수정하는 대표 예다.
CRC는 생성 다항식의 차수만큼 0을 붙이고 XOR 나눗셈의 나머지를 계산한다. 이진 뺄셈의 자리 빌림을 하지 않는다.
FEC는 수신 측 정정 정보로 오류를 복구하고 BEC·
HDLC는 비트 지향 프로토콜이다. 전송 순서 기준 선두 0은 I, 10은 S, 11은 U 프레임이다. I는 정보, S는 감독, U는 비번호 제어에 사용한다. 연속 1 다섯 개 뒤 0을 넣는 비트 스터핑을 추적한다.
HDLC 응답 모드는 NRM(주국 허가에 따른 종국 응답), ARM(비동기 응답), ABM(복합국의 균형 동작)으로 비교한다.
검출·수정·재전송은 다른 기능이다
오류 검출은 전송 내용이 틀렸음을 알아내는 것, 수정은 원래 값을 복원하는 것, 재전송은 송신자에게 다시 보내도록 요청하는 것이다. FEC는 추가 정보로 수신자가 수정하고, BEC 방식은 검출 후 재전송을 활용한다. CRC를 쓴다는 사실만으로 수신자가 원래 비트를 수정할 수 있다고 단정하지 않는다.
짝수 패리티는 데이터와 패리티를 합한 1의 개수를 짝수로 만든다. 데이터 1011001의 1은 네 개이므로 패리티는 0이다. 서로 다른 두 비트가 반전되면 홀짝이 유지될 수 있어 단일 패리티 검사로 반드시 검출할 수 없다.
비트 스터핑은 데이터가 제어 패턴처럼 보이지 않도록 약속된 비트를 삽입하는 방식이다. ‘연속된 1 다섯 개 뒤에 0 삽입’이라는 규칙이 주어지면 왼쪽부터 1을 세고 삽입 또는 원래 0을 만나면 연속 개수를 다시 시작한다. 삽입 후 길이와 삽입한 비트 수를 구별한다.
HDLC I·
풀이 예시
전송 데이터 영역에 연속된 1이 다섯 개 나타날 때마다 바로 뒤에 0 하나를 삽입한다. 삽입한 0 뒤에서는 연속된 1의 개수를 다시 0부터 센다. 플래그와 그 밖의 필드는 제외한다. 데이터 01111110111110에 삽입할 0의 총 개수를 쓰시오.
정답과 풀이 보기
예시 정답
2
풀이 과정
첫 번째 여섯 개의 1 중 다섯 번째 뒤에 한 번 삽입한다. 원래 0에서 연속 개수가 끊긴 뒤 나오는 다섯 개의 1 뒤에 한 번 더 삽입한다. 전체 삽입 수는 2이다.
오류 검출과 오류 제어를 나누어 판단하기
| 이름 | 역할 | 핵심 특징 |
|---|---|---|
| CRC | 오류 검출 | 비트열을 다항식으로 보고 생성 다항식으로 계산한 나머지를 이용한다. 검사 자체가 재전송이나 오류 정정 절차를 수행하지는 않는다. |
| 단일 패리티 검사 | 오류 검출 | 1의 개수의 홀짝을 맞춘다. 서로 다른 두 비트가 반전되면 홀짝이 유지되어 검출하지 못할 수 있다. |
| Hamming code(해밍 코드) | 오류 정정 코드 | 여러 검사 비트의 결과로 단일 오류 위치를 구별하여 정정한다. 기본형과 전체 패리티를 추가한 확장형의 보장 범위를 혼동하지 않는다. |
| BEC | 후진 오류 제어 | 오류를 검출한 수신 측이 재전송을 요구하는 방식이다. ARQ는 대표적인 자동 재전송 요청 방식이다. |
| FEC | 전진 오류 제어 | 추가 중복 정보를 이용하여 수신 측이 재전송 없이 정정한다. |
HDLC의 두 분류 축
I(정보) 프레임은 순서번호와 함께 사용자 데이터를 전달하고, S(감독) 프레임은 수신 준비·재전송 요구 등 흐름 및 오류 제어를 수행하며, U(비번호) 프레임은 연결 설정·해제 등 링크 관리에 쓰인다. 전송 순서의 선두 비트 기준으로 I는 0, S는 10, U는 11이다. 일부 U 프레임이 정보를 운반할 수 있다는 예외도 있으므로 모든 정보가 반드시 I 프레임에만 실린다고 일반화하지 않는다.
ABM은 균형 연결의 복합국들이 사전 허가 없이 전송하는 모드이다. ARM은 불균형 주국·종국 연결이지만 종국이 사전 허가 없이 전송할 수 있고, NRM은 종국의 전송이 주국의 허가에 따른다. 균형 여부와 전송 시작 허가 조건을 별도로 확인한다.