다항코드
프레임 전송 과정에서 발생하는 오류 극복 방법은 크게 두 가지로 나뉨. 첫번째 방법은 전송 프레임에 오류 검출 코드를 넣어 수신 호스트가 전송 과정의 오류를 검출하는 방법이며 두번째 방법은 오류 복구(정정) 코드를 사용해 수신 호스트가 오류 복구 기능을 수행하는 방식인 순방향 오류 복구(FEC:Forward Error Correction)이 있음.
오류 검출
- 네트워크에서는 일반적으로 오류 복구(정정)코드를 이용한 순방향 오류 복구방식(FEC)를 사용하지 않음
- 주로 사용하는 것은 재전송(Retransmission)방식을 이용해 오류를 복구하는 역방향 오류 복구(BEC:Backward Error
Corrcection) 또는 ARQ(Qutomatic Repeat Request) 방식 사용
- 역방향 오류 복구 기능을 수행하려면 수신 프레임에 오류가 있는 지 판단할 수 있어야 하며, 이를 위해서 송신 호스트
가 오류가 검출하기 위한 코드를 전송 데이터와 함께 송신해야함. 오류 검출 코드는 패리티 비트, 블록 검사, 다항코드
등을 이용해 생성할 수 있음.
패리티 비트
- 오류 검출 코드중 하나
- 1바이트(8bit) = 7bit ASCII 코드 + 1bit 패리티 비트
- 송신 호스트와 수신 호스트는 동일한 패리티 방식을 사용해야 함.
- 오류는 검출할 수 있지만, 어느 비트에서 오류가 발생했는지는 모름
짝수 패리티 : 데이터 끝에 패리티 비트를추가해 전체 1의 개수르 짝수로 만듬
홀수 패리티: 1의 개수를 홀수로 만드는 것.
블록 검사
- 짝수혹은 홀수개의 비트가 깨지는 오류를 검출
- 수평, 수직 방향 모두에 패리티 비트를 지정.
- 특정한 비트에서 오류가 발생했을 때, 그 특정비트를 검출해낼 수 있음
다항 코드 (CRC:Cyclic Redundancy Code)
- 현재 통신 프로토콜에서 가장 많이 사용하는 오류 검출 기법
- 특정 위치에서 집중적으로 발생하는 버스트 에러같은 오류를 검출하는 확률이 높은 것으로 알려져 있음.
- 메시지(전송 데이터)를 생성다항식으로 나누어 몫과 나머지(Checksum)를 산출한다음 나머지를 원래메시지에 붙여서
전송
생성 다항식
- 계수가 0과 1인 다항식 형태르 기반으로 만든 식
EX) 다항 코드 100101= 1 * x^5 + 0 * x^4 + 0 * x^3 + 1 * x^2 + 0 * x^1 + 1 * x^0 = 6bit
다항 코드 방식을 이용한 오류 검사 동작 원리
- 전송 데이터 : m비트인 메시지 M(x)
- n+1비트의 생성 다항식 G(x)를 사용해 오류 검출 코드를 생성, 오류제어
- 전송 데이터 M(x) 뒤에 n 비트의 0을 채워넣은 값 을 생성 다항식 G(x)로 나누어 체크섬(Checksum) 정보를 얻음
- 연산에서 얻은 나머지값을 체크섬이라 함. n 비트만큼의 체크섬이 나올때까지 나누어줘야함.
체크섬의 예
생성 다항식 G(x) : x^5 + x^2 + 1 = 100101
전송 데이터 : 101101001
체크섬 : 00010
송신 데이터 : 10110100100010 = 전송데이터 + Checksum값
'Network > Computer Science' 카테고리의 다른 글
[Network] 이더넷 (Ethernet) (0) | 2021.11.17 |
---|---|
[Network] MAC계층과 IEEE 802 (0) | 2021.11.08 |
[Network] 프레임 (0) | 2021.11.08 |
[Network] 오류 제어 (0) | 2021.11.08 |
[Network] 데이터 전송 방식 (0) | 2021.11.07 |