소개
UDP(User Datagram Protocol)는 전송 계층(L4)에서 동작하는 비연결형(Connectionless) 프로토콜이다.
연결 설정 없이 데이터를 빠르게 전송하며, 신뢰성보다 실시간성이 중요한 환경에서 주로 사용된다.
UDP: User Datagram Protocol
OSI 7계층에서 전송 계층(L4)에 해당
특징
장점
- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스
- 지연 시간이 낮음
- 단순한 프로토콜 구조
- 헤더 크기가 작고, 오버헤드가 적음
- IP 계층의 유니캐스트, 브로드캐스트, 멀티캐스트 전송에 사용할 수 있음
단점
- 신뢰성 부족
- 패킷 손실, 순서 오류, 중복이 발생해도 복구할 수 없음
- 애플리케이션 수준의 보완 필요
데이터그램 패킷 통신
각 데이터그램은 다른 데이터그램과 독립적으로 전달된다. UDP 자체에는 순서 번호, 재전송, 중복 제거 기능이 없으므로 도착 순서나 전달 성공을 보장하지 않는다.
동작 방식
UDP는 사전 연결 설정 없이 각 데이터그램을 독립적으로 전송한다. 실제 전달 경로는 IP 라우팅이 결정하며, 데이터그램마다 경로가 달라질 수도 있다.
UDP 헤더
고정된 8바이트 크기로 구성됨
- Source Port: 송신 측 포트 번호
- Destination Port: 수신 측 포트 번호
- Length: UDP 헤더 + 데이터의 총 길이
- Checksum: 데이터 오류 검사
Checksum
UDP 헤더와 데이터가 전송 중 손상됐는지 검출한다. 체크섬이 일치하지 않는 데이터그램은 수신 측에서 폐기되며 UDP가 직접 재전송하지는 않는다. UDP 체크섬은 IPv4에서는 0으로 생략할 수 있지만 IPv6에서는 필수다.
활용
속도와 실시간성이 중요한 상황에서 많이 사용한다.
- DNS
- DHCP
- 실시간 스트리밍, 게임, 음성 통화 등등…
다음 내용
TCP와 UDP의 차이점과 사용 목적은 별도의 글에서 정리한다.