[알고리즘]

Checksum 계산 방법

Neo Park 2012. 9. 13. 17:25

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)|작성자 츠바샤