Checksum
Checksum은 packet 속의 하나의 field로 구성하며 데이터를 이진수(binary number)의 연속으로 간주하여
그 이진수의 합을 계산하는 방법이다.
예를 들어 16 bits checksum을 사용하는 경우 데이터를 16 bits씩 나누어 16진수로 표현한 다음
그 합을 계산하여 16으로 나눈 나머지에 해당되는 값을 checksum으로 사용하는 방법이다.
이 방법의 장점은 우선 checksum의 크기가 작아 checksum 1개로 packet 전체를 조사할 수 있음으로
오버헤드를 줄일 수 있고 덧셈 연산만을 수행함으로 계산이 용이하다.
그러나 checksum은 발생 가능한 모든 에러를 검출할 수 없다는 단점이 있다.
예를 들어 0001001000110001로 표현되는 데이터를 송신하는 도중 0011000000010011로 변형된 경우,
두 경우의 checksum을 4 bits씩 나누어 계산하면 같은 값을 가짐으로 에러를 검출할 수 없다.
[출처] 에러검출(parity bit, checksum, CRC)|작성자 츠바샤
'[알고리즘]' 카테고리의 다른 글
시리얼 통신에서 전송 속도 계산 (0) | 2012.09.21 |
---|---|
빅 엔디안(Big Endian)과 리틀 엔디안 (Little Endian) (0) | 2012.09.20 |
패리티 비트(parity bit)를 사용한 에러 검출방법 (0) | 2012.09.05 |
Round Robin 방식이란? (0) | 2012.08.14 |
CRC(Cyclic Redundancy Check) : CRC-16, CRC-32에 대한 설명과 구현 (0) | 2012.08.14 |