UDP
- User Datagram Protocol
- 전송계층 프로토콜
- 데이터 전송을 제외한 어떤 기능도 정의되어있지 않음.
- TCP와 달리 순서 지정, 오류처리 등을 다루지 않는다. → 낮은 신뢰성, 높은 속도
- 1:1, 1:N, N:N 통신이 가능하다.
- 데이터그램 : 독립적인 관계를 지니는 패킷 → 비연결형 프로토콜
- HTTP/3의 기본 전송 프로토콜
TCP는 신뢰성 있는 데이터 전송을 위해 패킷에 순서 부여, 흐름제어, 혼잡 제어 등의 처리를 한다. 하지만 UDP는 신뢰성보다는 연속성과 속도를 중시하며, 따라서 실시간 서비스에 주로 이용된다.
UDP Header
- 출발 포트
- 목적 포트
- 길이
- 체크섬 : 최소한의 오류를 검출. 옵션
UDP Checksum
- 전송된 데이터가 변형이 되지 않은 것을 확인하는 값
- 세그먼트의 값들을 이용해 체크섬을 만들고, 세그먼트에 담아 전송한다.
- 전송된 세그먼트의 값들을 이용해 체크섬을 계산하고, 세그먼트에 저장된 체크섬 값과 비교해 데이터의 변형을 확인한다.
[체크섬 계산]
- UDP 데이터들을 16비트 단위로 쪼갠 값을 전부 더한다
- 캐리된 값들을 다시 더하고, 1의 보수를 취한다.
- 체크섬 필드는 계산 시 0으로 가정
참고 자료
https://mangkyu.tistory.com/15
https://evan-moon.github.io/2019/10/08/what-is-http3/
https://heegyukim.medium.com/computer-network-7-udp-86d45323d5c7