오류 검출과 교정 기법
단순 패리티 검사(Parity Check)
- 패리티 비트를 프레임의 각 문자 끝에 추가
- 짝수 패리티(Even Parity) : 패리티 비트 값이 자신을 포함하여 1의 개수가 짝수
- 홀수 패리티(Odd Parity) : 패리티 비트 값이 자신을 포함하여 1의 개수가 홀수
- 예 : 송신측이 ASCII 코드 q (1110001)를 홀수 패리티를 사용하여 전송한다면, 11100011을 전송
-> 짝수 패리티 사용하여 전송한다면 11100010
- 한계점 : 두 개 혹은 임의의 짝수 개의 비트가 바뀌면 오류를 검출해 내지 못함
* ASCII코드(american standard code for information interchange, 미국 정보 교환 표준 부호)
- 미국 ansi에서 표준화한 정보교환용 7비트 부호체계로 8비트 컴퓨터에서도 활용되어 오늘날 문자 인코딩의 근간을 이루게 됨
- 000(0x00)~127(0x7F)까지 128개 부호 사용
- 1바이트를 구성하는 8비트 중에서 7비트만 쓰도록 제정된 이유는 나머지 1비트를 통신 에러 검출을 위한 용도로 비워두었기 때문
ex) 1011001 + parity bit (0)

- 패리티 검사과정

예제) 패킷의 데이터가 1010101101와 같은 비트 패턴을 가지며 짝수패리티를 사용한다고 가정했을 때 송신측에서 추가되는 패리티 비트 값을 구하시오.
풀이) 1의 갯수가 짝수가 되게 해야함 -> 1의 갯수 = 6
답) 패리티 비트 값 = 0
2차원(Two-Dimensional) 패리티 검사
- 단순 패리티 검사는 오류를 검출하는데 한계
- 2차원 패리티 검사는 문자의 비트를 2차원 배열형태로 구성하여 각 행(Row)과 열(Column)마다 패리티 비트를 계산
- 2차원 패리티 검사는 3비트의 오류까지 검출할 수 있음
- 한계점 : 행과 열 방향에서 모두 짝수 개의 오류가 발생하면 오류를 검출 불가


체크섬(Checksum) = 검사합
- 송신측
- 데이터를 m비트의 세그먼트들로 분리
- 이들 m비트의 세그먼트들을 모두 더하고 난 후 1의 보수(Complement)를 수행한 값이 첵섬
- * 1의 보수 : 0 -> 1 , 1 -> 0
- 더하기를 하는 과정에서 가장 왼쪽 비트(MSB, Most Significant Bit)에서 캐리(Carry)가 생기면 구해진 합에 더 함
- * 캐리 = 최상위비트(MSB)에서 그 위의 비트로 자리올림이 발생하는 것을 의미
- 수신측
- 송신측에서 받은 모든 m비트의 세그먼트들과 함께 첵섬도 모두 더함
- 만약 어떤 오류가 패킷에 있지 않다면 모두 더한 값은 m비트가 모두 1이 됨
- 비트 중의 하나라도 0이면 패킷에 오류가 있다는 것을 의미
data = 10111011 | 10100011 | 01011010 | 11010101

* 1+1 = 1(캐리발생), 0
* 0+1 = 1
* 0+0 = 0
-> 첵섬까지 더한 값이 오류가 없다면 모두 1이 됨
예제) 다음 16비트 데이터를 8비트 세그먼트로 분류할 때, 송신측에서 보내는 첵섬값은 무엇인가?
1010100100111001
풀이) seg1 = 10101001
seg2 = 00111001
=> 11100010
답) 1의 보수(complement) -> 송신측에서 만든 첵섬값 : 00011101
'CS > Network' 카테고리의 다른 글
2-5. 데이터통신 : 오류교정코드 해밍코드 (0) | 2022.12.15 |
---|---|
2-4. 데이터 통신 : 순환 중복 검사 CRC (0) | 2022.12.08 |
2-2. 데이터 통신 : 교환기술(회선교환/메시지 교환/패킷교환) (1) | 2022.12.07 |
TCP/IP통신구조와 HOST/SWITCH/NETWORK의 관계 (0) | 2022.12.07 |
2-1. 데이터 통신 (1) | 2022.12.07 |