UDP(사용자 데이터그램 프로토콜)란?

User Datagram Protocol의 약자. 전송 계층의 비연결형 프로토콜. 헤더는 8바이트이며, 포트 번호, 길이, 체크섬만 가진다. 연결 절차도, 확인 응답이나 재전송도, 순서 제어도 하지 않으므로 지연이 작다. DNS 질의, 음성이나 영상 통화, 온라인 게임, DHCP, QUIC 등에 쓰인다.

일본어 명칭: UDP

UDP(사용자 데이터그램 프로토콜)은(는) 네트워크 기초, 웹 기술 기초 등 2개 분야의 연습 문제 4개에 나와요.

분야: 네트워크 기초

헤더와 데이터그램

UDP 헤더는 출발지 포트 번호, 목적지 포트 번호, 길이, 체크섬의 4개(각 16비트)로, 합쳐서 8바이트입니다. 애플리케이션이 1회에 보낸 데이터가 하나의 데이터그램이 되며, 수신 측에서도 그 구분 그대로 받을 수 있습니다(TCP 같은 바이트의 흐름이 아닙니다). 체크섬은 IPv4에서는 생략할 수 있지만 IPv6에서는 필수입니다. 큰 데이터그램은 IP 수준에서 분할되어 손실되기 쉬워지므로, MTU에 들어가는 크기로 하는 것이 보통입니다.

UDP가 선택되는 경우

통화나 라이브 방송에서는 늦게 도착한 데이터는 쓸모가 없고, 재전송을 기다리면 소리나 영상이 끊깁니다. DNS 질의처럼 1회의 질문과 답으로 끝나는 통신에서는 연결 절차를 생략하면 대기 시간이 줄어듭니다. 또한 UDP는 1대다 브로드캐스트나 멀티캐스트에도 쓸 수 있으므로, 아직 IP 주소를 갖지 않은 단말이 쓰는 DHCP도 UDP입니다. 확실성이 필요한 애플리케이션은 QUIC처럼 재전송이나 순서 제어를 스스로 UDP 위에 만듭니다.

사용할 때의 주의점

UDP 데이터그램은 손실되거나, 중복되거나, 순서가 바뀌는 일이 일어날 수 있으므로, 애플리케이션 쪽에서 번호를 붙이는 등으로 대처합니다. UDP 자체에는 혼잡 제어가 없으므로, 대량으로 보낼 때는 보내는 속도도 애플리케이션이 조절합니다. NAT의 대응 관계는 통신이 한동안 없으면 사라지므로, 정기적으로 작은 패킷을 보내 유지하기도 합니다. 연결 절차가 없고 출발지를 속이기 쉬워, 작은 질의에 큰 응답을 돌려주는 DNS 등을 악용한 반사·증폭형 DDoS 공격에도 쓰입니다.

도전해 보기: UDP(사용자 데이터그램 프로토콜) 관련 문제

TCP/IP의 4계층 모델에서 TCP와 UDP가 속하는 계층은?

  1. A응용 계층
  2. B인터넷 계층
  3. C전송 계층
정답과 해설 보기

정답: C. 전송 계층

TCP/IP 모델은 아래에서부터 링크 계층(네트워크 인터페이스 계층), 인터넷 계층, 전송 계층, 응용 계층의 4개 계층으로 나타냅니다. TCP와 UDP는 전송 계층의 프로토콜로, 포트 번호를 사용하여 단말 안의 어느 애플리케이션으로 가는 통신인지를 구별합니다. 인터넷 계층의 IP는 단말에서 단말까지 패킷을 전달하는 일을 담당합니다. HTTP와 DNS는 응용 계층의 프로토콜입니다. OSI 참조 모델에 대응시키면 전송 계층은 4계층, 인터넷 계층은 3계층에 해당합니다.

UDP의 특징으로 올바른 것은?

  1. A연결을 설정하지 않고 재전송이나 순서 제어를 하지 않으므로 헤더가 작고, 보내기 전까지의 대기도 없다
  2. B연결을 설정하고, 도달하지 못한 데이터를 재전송하며, 수신 측에서 순서도 맞춘다
  3. CIP 주소를 사용하지 않고 MAC 주소만으로 목적지 단말에 전달한다
정답과 해설 보기

정답: A. 연결을 설정하지 않고 재전송이나 순서 제어를 하지 않으므로 헤더가 작고, 보내기 전까지의 대기도 없다

UDP는 IP 위에 포트 번호와 간단한 오류 검출(체크섬)만 더한 가벼운 프로토콜로, 헤더는 8바이트입니다(TCP는 옵션 없이 20바이트). 연결 절차가 없고 도달 확인이나 재전송도 하지 않으므로, 조금 손실되더라도 지연되지 않는 편이 좋은 음성 통화나 라이브 영상, 한 번의 질의와 응답으로 끝나는 DNS 등에 사용됩니다. 신뢰성이 필요하면 애플리케이션 쪽에서 보완합니다. 예를 들어 HTTP/3에서 사용되는 QUIC은 UDP 위에서 재전송과 암호화를 구현합니다. 연결 설정, 재전송, 순서 제어를 수행하는 것은 TCP입니다.

자주 묻는 질문

신뢰성이 없는 UDP가 왜 쓰이나요?

연결 설정이나 재전송을 기다리지 않으므로 지연이 작고 헤더도 작기 때문입니다. 데이터가 조금 빠지더라도 늦지 않는 편이 좋은 통화나 게임, 1왕복으로 끝나는 DNS 질의에 적합합니다. 확실성이 필요하면 QUIC처럼 UDP 위에서 재전송 등을 구현합니다.

UDP로 보낸 데이터는 순서대로 도착하나요?

보장되지 않습니다. 경로의 차이 등으로 순서가 바뀌거나, 손실되거나, 중복되어 도착하기도 합니다. 순서가 중요하다면 애플리케이션이 데이터에 번호를 붙여 다시 정렬합니다.

해설 속 UDP(사용자 데이터그램 프로토콜)

UDP(사용자 데이터그램 프로토콜)이(가) 나오는 문제 (4)

  1. TCP/IP의 4계층 모델에서 TCP와 UDP가 속하는 계층은?
  2. UDP의 특징으로 올바른 것은?
  3. DNS의 주된 역할로 올바른 것은?
  4. HTTP/2와 HTTP/3에 대한 설명으로 올바른 것은?

이 용어가 포함된 비교

관련 용어

TCP(전송 제어 프로토콜) HTTP(하이퍼텍스트 전송 프로토콜) DNS(도메인 네임 시스템) IP(인터넷 프로토콜) 포트 번호(Port Number) 패킷(Packet) QUIC OSI 참조 모델(OSI Reference Model) ARQ(자동 재전송 요구) IP 주소(IP Address)

용어집으로 돌아가기