패킷 헤더의 체크섬(checksum)의 필요성

Sizz-J

·

2021. 6. 29. 10:26

IP, UDP, TCP의 헤더 포맷을 보면 checksum을 위한 공간이 존재한다. 이 부분은 패킷의 헤더가 전송되는 도중 데이터가 변조되거나 깨지는 경우를 확인하기 위해 사용된다. 즉, 처음에 데이터를 보내기 전에 미리 헤더를 해싱하여 특정한 길이의 숫자로 서명한다고 생각하면 된다.

 

이는 단순히 데이터가 중간에 변조되었는가를 확인하는 용도로서 사용된다. 또, 헤더의 체크섬 값은 헤더의 값에대해 검증하기 위해 사용되지 몸통부분의 데이터에 대해서는 같이 계산되지 않는다. 즉, 헤더가 바뀌었다면 체크섬 값 역시 다시 계산되어야 하며 체크섬이 틀릴 경우 전송되는 도중에 만나게 되는 장비(라우터, 스위치 등등)에서 해당 패킷을 drop 시킨다.

 

최근에는 네트워크 환경이 워낙 안정적이고 데이터가 깨지는 경우가 거의 없기 때문에 신뢰도가 높아진 만큼 체크섬이 큰 역할을 하지 않게 되었다. 즉, 데이터가 왼만하면 제대로 전송되기 때문에 체크섬을 계산하는데 들어가는 비용이 아깝다는 말이다. 그래서 UDP에 대해 정의되어 있는 RFC 768문서를 보면 체크섬값이 0일 경우 전송자 측에서 일부러 체크섬을 계산하지 않았다는 의미로 동작한다. 즉, 체크섬을 계산하지 않겠다는 것이다. 뿐만 아니라 체크섬이 계산되었다고 하더라도 그에대한 검증 없이 데이터를 처리하는 형태로 사용하는 경우도 많다.

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=cksdn788&logNo=220430280868 

 

[Grind Away] 패킷 헤더의 체크섬(checksum)

IP, UDP, TCP의 헤더 포맷을 보면 checksum을 위한 공간이 존재한다. 이 부분은 패킷의 헤더가 전...

blog.naver.com

 

728x90

'Internet > Network' 카테고리의 다른 글

첵썸 (Checksum)과 CRC의 차이  (0) 2021.06.29
checkSum의 원리  (0) 2021.06.29
서버 마이그레이션이란?  (0) 2021.06.15
클라우드 서비스 종류  (0) 2021.06.15
클라우드 아키텍쳐란?  (0) 2021.06.15