Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

User Datagram Protocol

UDP는 User Datagram Protocol 의 약자다. 이름에서 알 수 있듯이, 데이터를 데이터그램 단위로 처리하는 프로토콜로 전송계층에 위치한다. TCP(:12)와 마찬가지로 IP(:12) 프로토콜과 함께 사용된다. 데이터그램 단위로 처리되는 프로토콜의 특성상 End Systems 서비스를 위한 용도로 특히 널리 사용된다.

End Systems 서비스란 요청을 받은 쪽에서, 데이터를 처리해서 결과를 보내주는 서비스를 말한다. 가장 대표적인 서비스가 SNMP(:12)서비스이다. 이러한 서비스는 우리가 어떤값을 요청하면, 그 값에 대한 결과만을 서버측에서 전송한다. 이러한 서비스는 보내고/받고 하는 식의 한번의 데이터 교환이 있기 때문에 굳이 연결을 유지할 필요도 없고, TCP 처럼 패킷의 순서등에 연연할 필요가 없다. 이와 반되대는 개념의 서비스를 Intermediate Systems서비스라고 한다.

이러한 목적으로 만들어진 프로토콜 때문에, UDP는 연결유지/흐름유지 등을 위한 부가적인 오버헤드가 매우 적다. 다음은 UDP 패킷의 헤더 구조다. TCP 패킷에 비해서 매우 단순함을 알 수 있다.

  • Source Port : 클라이언트의 포트번호
  • Destination Port : 목적지(서버)의 포트번호
  • UDP length : UDP 헤더와 User Data의 크기를 더한 전체 패킷의 크기
  • CheckSum : 데이터는 네트워크를 가로지르면서 잡음등에 의해서 데이터가 손상될 수 있다. 이러한 문제를 해결하기 위해서 Standard Internet Checksum 알고리즘에 따르는 checksum 데이터를 만들고, 이를 이용해서 데이터에 손실이나 잡음이 있었는지를 검사한다. 만약 checksum값을 검사한 결과 원본과 다름이 확인되었다면, 이 데이터는 응용계층까지 올라가기전에 버려진다. checksum의 값이 0x0000이라면 검사를 하지 않게 된다.