Checksum
- 데이터의 무결성을 검증하기 위한 오류 감지 메커니즘입니다. 전송된 데이터가 손상되었는지 확인을 위해 사용합니다.
- UDP는 체크섬으로 패킷 오류를 감지하지만, TCP처럼 오류를 제어하지는 않습니다.
- 손상된 패킷은 수신 측에서 폐기되며, 애플리케이션 계층으로 전달되지 않습니다.
UDP 체크섬 필드의 특징:
- 16비트 크기의 필드입니다.
- 계산에는 UDP 헤더, 데이터, 그리고 의사 헤더 (pseudo-header)가 포함됩니다.
- 의사 헤더는 IP 주소, 프로토콜 번호, UDP 길이 등을 포함하며, 전송 계층 데이터와 네트워크 계층 데이터를 연계합니다.
의사 헤더(Pseudo Header)의 역할:
의사 헤더는 데이터 전송 중 IP 계층에서의 문제(예: IP 주소 오류)를 함께 감지하기 위해 사용됩니다. UDP 자체만으로는 이런 오류를 검출할 수 없기 때문에 의사 헤더를 추가로 사용합니다.
- 장점:
- 데이터 손상 여부를 간단히 확인할 수 있습니다.
- 계산이 간단하고 오버헤드가 적습니다.
- 단점:
- 오류를 감지할 뿐, 이를 수정할 수 없습니다. (이는 TCP에서 제공하는 기능입니다.)
- UDP 체크섬은 선택 사항으로, 비활성화될 수 있습니다. 하지만 IPv6에서는 항상 필수입니다.
체크섬의 동작 원리:
- 송신 측:
- UDP는 패킷(UDP 헤더와 데이터 부분)을 기반으로 체크섬 값을 계산합니다.
- 이 체크섬 값은 UDP 헤더에 저장되어 수신 측으로 전송됩니다.
- 수신 측:
- 수신 측은 도착한 패킷(UDP 헤더와 데이터)을 기반으로 새로 체크섬을 계산합니다.
- 송신 측에서 계산된 체크섬과 수신 측에서 계산된 체크섬을 비교합니다.
- 두 값이 일치하지 않으면 데이터가 손상되었다고 판단합니다.
요약
- UDP는 연결이 없는 프로토콜이라 TCP만큼 복잡한 오류 제어가 없기 때문에 체크섬으로 간단히 데이터 무결성을 보장합니다.
- IPv4에서는 체크섬이 옵션이지만, IPv6에서는 UDP 체크섬이 필수입니다.
'외부활동 > JSCODE 네트워크' 카테고리의 다른 글
[5주차] IP, IPv4와 IPv6, IP 할당 기관 (0) | 2024.11.28 |
---|---|
[5주차] 서브넷과 서브넷 마스크 (0) | 2024.11.27 |
TCP (0) | 2024.11.20 |
[4주차] UDP (0) | 2024.11.17 |
RESTful하게 개발한다는 건 뭘까? (0) | 2024.11.16 |