UDP
연결 없이 데이터를 빠르게 전송하는 전송 계층 프로토콜입니다. 신뢰성보다 속도가 중요할 때 사용합니다.
핵심 특징
- 비연결형: 연결 수립 과정 없이 바로 전송
- 신뢰성 없음: 데이터 손실되어도 재전송 안 함
- 순서 보장 없음: 도착 순서가 바뀔 수 있음
- 빠름: 오버헤드가 적어 속도가 빠름
- 단순함: 헤더가 8바이트로 작음 (TCP는 20바이트 이상)
동작 방식
클라이언트 서버
│ │
│──── 데이터 ─────────▶│ 그냥 보냄
│──── 데이터 ─────────▶│ 그냥 보냄
│──── 데이터 ─────────▶│ 그냥 보냄
│ │
└─── 연결 과정 없음 ────┘
TCP vs UDP 비유
- TCP: 등기 우편 (확인하고, 순서대로, 분실 시 재발송)
- UDP: 전단지 뿌리기 (그냥 뿌림, 받든 말든)
언제 UDP를 쓰나?
| 사용 사례 | 이유 |
|---|---|
| 실시간 스트리밍 | 약간 끊겨도 빠른 게 중요 |
| 온라인 게임 | 지연 시간이 치명적 |
| DNS | 작은 데이터, 빠른 응답 필요 |
| VoIP (음성 통화) | 실시간성이 중요 |
| IoT 센서 | 단순하고 가벼운 통신 필요 |
왜 신뢰성 없어도 쓰나?
- 실시간 영상에서 1프레임 손실 → 티도 안 남
- 재전송 기다리면 → 화면이 버벅거림
- 속도가 더 중요한 상황에서는 손실을 감수
UDP 기반이지만 신뢰성 추가한 프로토콜
- QUIC: HTTP/3에서 사용, UDP + 신뢰성 + 암호화
- WebRTC: 실시간 영상/음성 통신