UDP (User Datagram Protocol) 기초
UDP (사용자 데이터그램 프로토콜)는 IP(인터넷 프로토콜) 위에서 동작하며, TCP와 달리 비연결성(Connectionless)과 신뢰성 없는(Unreliable) 데이터 통신을 제공하는 프로토콜입니다.
데이터의 속도와 지연 시간(Latency)이 정확성보다 중요할 때 (예: 실시간 스트리밍, 온라인 게임, DNS 쿼리) 사용됩니다.
1. UDP의 핵심 원리: 단순성과 속도
UDP는 신뢰성 확보를 위한 모든 메커니즘(핸드셰이크, 확인응답, 재전송 등)을 생략하여 통신 속도를 극대화합니다.
- 비연결성: 통신을 시작하기 전에 3-Way Handshake를 하지 않습니다. 발신자는 데이터를 일방적으로 수신자에게 전송합니다.
- 비신뢰성: 패킷이 도착했는지, 순서가 맞는지, 손실되었는지 확인하지 않습니다. 데이터그램(패킷)은 최선을 다해 전송될 뿐, 수신자에게 도달함을 보장하지 않습니다.
특징: UDP는 TCP보다 훨씬 가볍고 빠르지만, 데이터가 유실되거나 순서가 뒤바뀌어 도착할 위험이 있습니다.
2. UDP의 주요 특징
| 특징 | 설명 |
|---|---|
| 비연결성 (Connectionless) | 통신을 시작하거나 종료하는 절차가 없습니다. 단순히 데이터를 전송할 뿐입니다. |
| 비신뢰성 (Unreliable) | 데이터의 전송 성공 여부를 보장하지 않습니다. |
| 오버헤드 최소화 | 헤더 정보가 매우 단순하여 TCP보다 오버헤드(부담)가 적고 속도가 빠릅니다. |
| 데이터그램(Datagram) | 데이터 전송 단위는 '데이터그램'이라고 불리며, 독립적인 하나의 메시지로 취급됩니다. |
3. UDP의 주요 활용 분야
- 실시간 서비스: 패킷 손실이 있더라도 잠시 끊기는 것이 속도 지연보다 나은 경우. (예: VoIP, 라이브 비디오 스트리밍)
- 온라인 게임: 키 입력이나 위치 정보는 짧은 지연 시간 안에 전달되는 것이 중요하며, 일부 패킷 손실은 다음 패킷으로 보정될 수 있습니다.
- DNS (Domain Name System): 도메인 이름-IP 주소 변환은 빠르고 단발적인 요청이므로 UDP를 주로 사용합니다.