UDP(User Datagram Protocol) 사용자 데이터그램 프로토콜


빠른 전송을 요구할때 많이 쓰이는 방식이며 이에 맞게 매우 간단한 헤더 구조와 전송방식을 가지고 있는 전송 계층 프로토콜이다.

전송계층

수신 버퍼 / 송신 버퍼가 존재한다. 포트로 교환 일대다 교환 가능

UDP 헤더

udp header

필드 내용 크기(bits)
Source port 송신지 포트 번호 16
Destination port 목적지 포트 번호 16
UDP Length 헤더에 데이터를 더한 사용자 데이터그램 전체 길이 16
UDP Checksum 데이터 검사합(데이터에 대한 오류 검출 용도) 16

데이터그램 전송 방식

UDP는 미리 정의된 경계를 가지는 메시지를 전송하여서 때문에 데이터들은 독립성을 가진다. => a, b, c 를 보내면 a, b, c 로 받는 것이 보장된다.

데이터 전송 크기에 제약이 있으며, 65535바이트 총 길이를 가진 IP 데이터그램에 저장되므로 보낼 수 있는 페이로드는 65535 바이트에서 IP헤더와 UDP헤더를 뺀 값이다.

특징

비연결형 서비스

송신자와 수신자는 논리적인 연결을 가지지 않으므로 전송에 대한 제어를 하지 않는다. 그렇기 때문에, 흐름 제어, 혼잡 제어, 오류 제어가 존재하지 않고, 일방적으로 데이터가 전송되므로 속도가 빠르고 네트워크 부하가 적다.

비신뢰성 데이터

전송에 대한 어떠한 제어를 하지 않기 때문에 데이터들은 비신뢰성을 가진다. 전송에 대해 순서가 보장되지 않는다. (흐름 제어) 헤더에 CheckSum 값으로 최소한의 오류만 검출하며 유실된 경우 재전송을 요청하지 않고 제거된다. (오류 제어) 데이터 그램을 받았을때 수신 버퍼에 여유공간이 없는 경우 버려진다. (혼잡 제어)

서비스

오버헤드가 적기 때문에 데이터 크기가 적고 빠른 전송을 요구하는 서비스에는 매우 유리하다

대용량 데이터 전송인 경우, 쪼개지는 데이터그램 수가 많아지기 때문에 순서 • 정확성이 떨어지므로 부적합하다 하지만, 전송층 밖에서 제어 시스템이 존재한다면 효율적일 수 있다.

  • 내부 흐름 및 오류 제어 기법을 가진 프로세스 예) TFTP
  • 멀티캐스팅
  • 연속성이 중요한 실시간 서비스
  • SNMP와 같은 관리 프로세스
  • 라우팅 정보 프로토콜(RIP)과 같은 경로 갱신 프로토콜 사용
  • 전송 지연을 꺼려하는 실시간 응용 서비스