UDP(User Datagram Protocol)

이상우·2021년 12월 29일
0

전 글에서 TCP/IP 모델에 대해 글을 올렸었다. TCP와 UDP는 TCP/IP의 전송계층에서 사용되는 프로토콜이다. 전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다.

UDP란?

사용자 데이터그램 규약 데이터를 데이터그램 단위로 처리하는 프로토콜

UDP에 대해서 정리할건데, TCP를 비교하면서 정리를 할 것이다.

TCP vs UDP

TCPUDP
Connection-oriented protocol
(연결지향형 프로토콜)
Connection-less protocol
(비 연결지향형 프로토콜)
Connection by byte stream
(바이트 스트림을 통한 연결)
Connection by message stream
(메세지 스트림을 통한 연결)
Congestion/Flow control
(혼잡제어, 흐름제어)
No Congestion/Flow control
(혼잡제어와 흐름제어 지원X)
Ordered, Lower speed
(순서 보장, 상대적으로 느림)
Not ordered, Higher speed
(순서 보장되지 않음, 상대적으로 빠름
Reliable data transmission
(신뢰성 있는 데이터 전송-안정적)
Unreliable data transmission
(데이터 전송 보장 X)
TCP packet: Segment
(세그먼트 TCP 패킷)
UDP packet: Datagram
(데이터그램 UDP 패킷)
HTTP, Email, File transfer에서 사용DNS, Broadcasting
(도메인, 실시간 동영상 서비스에서 사용)

UDP 서버의 특징

  • UDP에는 연결 자체가 없어서(connect 함수 불필요) 서버 소켓과 클라이언트 소켓의 구분이 없다.
  • 소켓 대신 IP를 기반으로 데이터를 전송한다.
  • 서버와 클라이언트는 1대1, 1대N, N대M 등으로 연결될 수 있다.
  • 데이터그램(메세지) 단위로 전송되며 그 크기는 65535바이트로, 크기가 초과하면 잘라서 보낸다.
  • 흐름제어(flow control)가 없어서 패킷이 제대로 전송되었는지, 오류가 없는지 확인할 수 없다.
  • 파일 전송과 같은 신뢰성이 필요한 서비스보다 성능이 중요시 되는 경우에 사용된다.

UPD Header 정보

응용 계층으로부터 데이터 받은 UDP도 UDP 헤더를 추가한 후에 이를 IP로 보낸다.

필드크기내용
송신자의 포트 번호16데이터를 보내는 애플리케이션의 포트 번호
수신자의 포트 번호16데이터를 받을 애플리케이션의 포트 번호
데이터의 길이16UDP 헤더와 데이터의 총 길이
체크섬(Checksum)16데이터 오류검사에 사용

TCP 헤더와 다르게 UDP 헤더에는 포함된 정보가 부실하다.
UDP는 TCP와 달리 수신자가 데이터를 받는지 마는지 상관이 없기 때문이다. 즉, 신뢰성을 보장해주지 않지만 간단하고 속도가 빠른 것이 특징이다.

UDP Flow

참고 사이트

profile
구상한것을 구현할 수 있는 개발자가 되고 싶습니다.

0개의 댓글