:::: MENU ::::

Wireshark Header Checksum Error

와이어샤크를 사용해서 패킷을 잡다보면 패킷에 “Header Checksum Error“라고 표시가 되어 있는 것을 볼 수 있다. 그리고 친절하게도 어떤값이 되어야 한다고 알려주기까지 한다.



체크섬이라는 것은 일반적으로 통신중에 데이터가 깨질수 도있기 때문에 삽입을 해서 데이터가 깨졌는지 여부를 확인을 한다. 
IP 헤더의 경우를 보면 2 바이트로 구성되어 있고, 네트워크를 이동하는 각 홉에서(예를 들면, 라우터 통과시) 체크섬을 검증한다. 그리고 체크섬이 올바르지 않으면 네트워크 장비는 해당 패킷을 버리며, 체크섬은 재 계산되고 업데이트를 하게된다.

그럼 어떻게 헤더체크섬이 틀린 패킷을 보내고 받을 수 있지??
원인은 여러가지가 있을 수 있는데 UDP의 경우는 체크섬 값이 제로로 채워져 있는 경우는 보내는 측 쪽에서 계산되지 않는 경우라 정의하고 있다. (RFC 768)  그리고 네트워크 장비나 기타 원인에 의해 헤더 체크섬 값이 계산되지 않았거나 또는 의도적으로 빠지는 경우도 있다.

와이어샤크에서 패킷 분석시 이게 거슬리면 다음과 같이 와이어샤크의 옵션에서 설정을 바꾸면 된다.
Edit > Preferences.. > 좌측 맨 하단의 Protocols를 선택후 UDP를 선택 > Validate the UDP checksum if possible 옵션을 해제한다.

TCP의 경우도 마찬가지…


So, what do you think ?