10. UDP(User Datagram Protocol)


  UDP는 RFC 768 User Datagram Protocol에 기술되어있는 프로토콜로 TCP와 같이 IP위에 올라가게 된다.

  다음은 UDP의 형식이다.

    0                   1                   2                   3   
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Source Port          |       Destination Port        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Length             |            Checksum           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              DATA                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  위의 헤더에는 TCP헤더와는 다르게 포트번호와 길이, 체크섬이 전부이다. 즉, UDP는 순서가 없다. 또한 확인통지(ACK) 기능이 없다. 그러나, 체크섬이 있기 때문에 전달받은 메시지가 정확한지는 검사할 수 있게 된다.

  • Port

      TCP나 UDP모두 지정된 포트번호와 IP에서 IP Address를 가지고 데이터를 지정된 프로그램까지 전달하게 되는 것이다. TCP나 UDP가 사용하는 포트번호는 서로 독립적이라, TCP가 80번 포트를 사용중이라도 UDP가 80번 포트를 사용할 수 있다.

  • Checksum

      IP주소, 포트번호, 데이터등을 포함하여 값을 검사하는 필드로 사용된다. UDP 패킷은 목적지에 전달되었는지 여부를 알수는 없지만, 목적지에서 특정한 패킷을 수신하는 경우 해당 패킷이 정확하다는 것은 보장이 된다.

  이렇게 보면 UDP는 단지 IP위에 올라가기는 하지만, 사실 IP의 기능 정도의 역할만을 수행하는 간단한 프로토콜이다.

  TCP는 UDP에 비하여 추가적인 부하가 있다. 순서를 조정하고, 수신통지(ACK)을 해야 하고, 재발송하기도 하고, 연결 및 종결 절차가 필요하기 때문에 UDP의 기능보다 더 느리게 작동한다.

  실제로 작은 데이터 1개만을 보낼때 TCP는 연결에서 3번, 데이터 전송2번, 종결에서 4번, 최대 9번의 패킷전송이 이뤄지지만, UDP의 경우는 딱 1번만 전송이 일어난다.

  위와 같은 단점에도 불구하고 간단하고 빠르게 작동하며, 별도의 추적기능이 없기 때문에 불특정 다수를 대상으로 한 패킷을 발송하는 용도 예를 들면, 브로드케스트(Broadcast)멀티케스트(Multicast) 같은 기능을 수행하는데 주로 사용된다.(이부분은 소켓프로그래밍에서 다시 설명하도록 하겠다.)

- Last Update : 2003.04.25 by Deadfire(http://www.deadfire.net)

TCP/IP 강좌
Starting
NIC
허브
Cable
이더넷
LAN
라우터
IP
ICMP
TCP / UDP
TCP
UDP
DNS
Ending

Copyright ⓒ 1997 ~, Deadfire Program Master