본문 바로가기
네트워크

UDP

by ahoy~ 2020. 6. 10.

Transport계층에서 TCP와 더불어 제일 유명한 2개의 프로토콜 중 하나인 UDP를 알아보도록 합시다.
Transport계층은 항상 end-to-end입니다.
여기서 end란 하나의 프로세스입니다.
최근에 유튜브라는 동영상 플랫폼이 떠오르면서 UDP의 인기는 날로 오르고 있습니다.

UDP가 하는 일

  • Multiplexing/demultimplexing
  • checksum

심지어 checksum마저도 optional입니다.
TCP가 지원하는 Connection setup/teardown, Guarantee of delivery,....와 같은 것을 하나도 지원하지 않습니다.
이렇게 UDP는 TCP에 비해서 가볍다는 특징이 있습니다.

UDP를 사용하는 케이스

  • Real-time(e.g. Internet telephony)
    서비스 특성상 UDP사용이 불가피
  • Simple transactions(e.g. DNS, DHCP, SNMP)
    TCP를 사용할 수 있으나 UDP의 장점을 잘 사용한 케이스
  • Multicast/broadcast(e.g. IPTV)
    TCP는 point-to-point(출발지와 목적지가 하나로 정해져잇어야함)이기 때문에 TCP를 사용할 수 없습니다.

UDP datagram의 특징

UDP패킷을 datagram이라고 부르며 큰 chunk의 datagram을 여러개의 datagram으로 나누어도 모두 독립적입니다.
datagram들은 순서가 없기 때문에 서로 연관성이 없습니다.

UDP datagram format

source port/destination port는 multiplexing/demultiplexing을 위해 사용됩니다.
간단하므로 나머지 필드 설명은 생략하도록 하겠습니다.

port란?
Transport layer의 주소 역할을 합니다.
0-65535의 숫자를 가지며 Well-known, Registered, Private/dynamic 세 종류로 나뉩니다.

  • Well-known

    sever를 위한 번호
  • Registered
    client process를 위한 번호
  • private/dynamic
    다양한 어플리케이션에 할당되는 번호

UDP checksum

UDP에서 checksum은 필수가 아닙니다.
real-time(오디오, 비디오)서비스들 같은 경우, 1bit의 오류는 큰 문제가 되지 않기 때문입니다.
특이하게 Pseudo-Header(가짜 헤더)라는 것을 추가하여 Checksum을 계산합니다.(보안 상의 이유/현재는 사용x)

UDP datagram size

UDP를 사용하는 어플리케이션들은 UDP datagram size가 64KB까지 가능함에도 512B로 제한을 두고 사용합니다.
왜냐하면 IPv4인터페이스들이 최소 576B의 datagram을 다룰 수 있게 되어 있기 때문입니다.

580Byte=8Byte(UDP header)+512Byte(UDP datagram)+60Byte(option포함 IP header)
하지만 보통 IP header가 option을 다 사용하지 않기 때문에 576B

UDP를 알아봤으니 다음 장에서는 TCP를 알아보도록 하겠습니다.

'네트워크' 카테고리의 다른 글

ICMP  (0) 2020.06.10
OSPF  (0) 2020.06.09
BGP  (2) 2020.06.09

댓글