UDP overhead scope

UDP는 헤더가 작지만 책임이 애플리케이션으로 이동한다

UDP 헤더 8B와 TCP 최소 헤더 20B의 차이는 전송 계층 비교에서 의미가 있다. 다만 실제 링크 프레임에서는 Ethernet 최소 크기와 padding이 붙을 수 있으므로, L4 헤더 비교와 wire 크기 비교를 분리해야 한다.

UDP datagram

메시지 경계를 유지하고 연결 설정이 없다. 대신 신뢰성 정책은 기본 제공되지 않는다.

IPv4 20B + UDP 8B + data N

IPv4 + UDP 최소 헤더 = 28B

TCP segment

순서, ACK, 윈도우, 연결 상태, 혼잡 제어를 전송 계층이 맡는다.

IPv4 20B + TCP 20~60B + data N

IPv4 + TCP 최소 헤더 = 40B

L4 선택만 보면 UDP가 12B 작다

28B vs 40B, payload와 L2 padding은 별도로 본다
UDP
IP 20 + UDP 8
28B
TCP
IP 20 + TCP 20
40B

이 12B는 전송 계층의 최소 헤더 차이다. 1B payload 예시처럼 링크 계층 최소 프레임이 개입하면 두 프레임이 모두 64B가 될 수 있다.

1B payload 예시는 Ethernet padding까지 포함해서 읽는다

UDP over Ethernet/IPv4

Eth IP UDP D 1 Pad FCS 4

14 + 20 + 8 + 1 + 17 + 4 = 64B

TCP over Ethernet/IPv4

Eth IP TCP D 1 Pad 5 FCS 4

14 + 20 + 20 + 1 + 5 + 4 = 64B

최신성이 우선

실시간 음성, 게임 상태처럼 늦은 재전송보다 최신 데이터가 더 중요한 경우에 맞는다.

애플리케이션 복구

손실 복구, 순서 보정, 중복 제거가 필요하면 애플리케이션 프로토콜에서 명시해야 한다.

혼잡 제어 책임

UDP를 많이 보낸다고 네트워크가 자동으로 안전해지지 않는다. 전송률 조절 정책이 필요하다.

MTU와 단편화

큰 datagram은 IP 단편화나 손실 확대 위험이 있으므로 PMTU와 payload 크기를 함께 설계한다.