UDP(User Datagram Protocol)는 연결 수립 없이 데이터를 빠르게 전송하는 비연결형 전송 계층 프로토콜입니다.
TCP의 3-Way Handshake 없이 바로 데이터를 전송합니다. 연결 수립 지연이 없어 첫 패킷부터 빠르게 전달됩니다.
ACK를 받지 않으므로 패킷 손실을 감지하거나 재전송하지 않습니다. 순서 보장도 없습니다.
UDP 헤더는 8바이트로 매우 단순합니다. TCP 헤더(최소 20바이트)보다 훨씬 작아 처리 부담이 적습니다.
| 필드 | 크기 |
|---|---|
| 출발지 포트 | 2바이트 |
| 목적지 포트 | 2바이트 |
| 길이 | 2바이트 |
| 체크섬 | 2바이트 |
총 8바이트로 구성됩니다. TCP에 비해 오버헤드가 현저히 작습니다.
| 항목 | TCP | UDP |
|---|---|---|
| 연결 방식 | 연결 지향 | 비연결 |
| 신뢰성 | 보장 | 미보장 |
| 순서 | 보장 | 미보장 |
| 속도 | 상대적으로 느림 | 빠름 |
| 헤더 크기 | 20바이트 이상 | 8바이트 |
| 용도 | 파일 전송, 웹 | 스트리밍, 게임 |
영상 통화나 온라인 게임에서는 일부 패킷 손실보다 낮은 지연이 더 중요합니다. 오래된 패킷을 재전송받는 것보다 최신 데이터를 빠르게 받는 편이 낫습니다.
DNS Query: 도메인 이름을 IP 주소로 변환하는 요청
DNS 조회는 요청과 응답이 각각 하나의 패킷으로 처리될 만큼 작습니다. TCP 연결 수립 비용 없이 UDP로 빠르게 처리합니다.
1:다 전송에서 TCP는 각 수신자와 개별 연결이 필요하지만, UDP는 한 번에 여러 대상에 전송할 수 있습니다.
QUIC(HTTP/3의 기반 프로토콜)처럼 UDP 위에 신뢰성 메커니즘을 직접 구현하는 방식도 있습니다. 이를 통해 TCP의 신뢰성과 UDP의 낮은 지연이라는 두 장점을 함께 취합니다.