[네트워크] - UDP

728x90

UDP 

  • User Datagram Protocol의 약자이다
  • 데이터를 데이터 그램 단위로 처리하는 프로토콜
    (데이터 그램: 독립적인 관계를 지니는 패킷) 
  • 비연결형 프로토콜로 사전에 연결 설정 없이 데이터를 전달한다 
  • 사전에 연결 설정을 하지 않은 데이터 그램 방식을 통해 데이터를 전달하기 때문에 하나의 메시지에서 분할된 각각의 패킷은 서로 다른 경로로 전송될 수 있다
  • 송신측에서 전송한 패킷의 순서와 수신측에 도착한 패킷의 순서가 다를 수 있다. 그러나 서로 다른 경로로 패킷을 처리함에도 불구하고 순서를 부여하거나 재조립하지 않는다 
  • 흐름 제어, 혼잡 제어, 오류 제어를 하지 않으므로 손상된 세그먼트에 대한 재전송을 하지 않는다 
  • 이로 인해 속도가 빠르며 네트워크 부하가 적다는 장점이 있지만, 신뢰성 있는 데이터 전송을 보장하지 못한다
  • UDP는 RTP(Real Time Protocol), Multicast, DNS 등에서 사용된다 

DNS 같은 경우 누군가 DNS 서비스를 요청할 때마다 TCP처럼 Session을 맺고 통신한다면 속도도 느리고, 서버 리소스도 엄청나게 소모될 것이다. 

그런가하면 NMS(Network Management Server)가 5분에 한번씩 장비 상태를 점검하기 위해 정보를 읽어오는데 수백, 수천대의 장비와 Session을 맺어야 한다면 이것도 마찬가지로 문제가 생긴다. 그렇기 때문에 UDP를 사용한다.

재전송을 하면 안되는 서비스가 있다. 대표적으로 RTP이다. 또한, Multicast 서비스가 UDP를 사용한다. 1:N으로 통신하는 방식에서 한 사람이 데이터를 받지 못했다고 재전송을 요청한다고 가정해보자. 제대로 받은 사람들도 해당 데이터를 다시 받아서 처리해야 한다는 문제점이 발생할 수 있기 떄문에 UDP를 사용한다. 

728x90