UDP에 대해 알아보자

UDP (User Data Protocol)

UDP는 TCP 처럼 전송 계층에서 사용되는 프로토콜이다. UDP는 TCP의 단점을 해결하고자 나온 프로토콜이다. TCP에 대한 자세한 내용은 여기에서 확인할 수 있다.

TCP의 단점

TCP는 데이터의 신뢰성을 보장하며, 데이터의 전송 속도를 조절하며 전송할 수 있다는 장점이 있다.

하지만 TCP에도 단점이 있다.

  • 상당히 많은 대역폭을 사용하며, 속도가 느리다.
  • 소량의 데이터라도 손실된다면 다른 데이터도 로드할 수 없다.
    • ex) 이미지의 한 패킷이라도 손실된다면, 해당 이미지 자체가 로드될 수 없다.

이러한 TCP의 단점을 해결하고자 만들어진 것이 바로 UDP이다.

UDP란?

UDP란, 비연결 방식으로 데이터를 데이터그램 단위로 나누어 전달하는 방식이다.

비연결형 프로토콜

TCP는 연결형 프로토콜이지만, UDP는 비연결형 프로토콜이다.

비연결 방식이란, TCP처럼 3 way handshake를 통해 연결을 확인한 후 데이터를 전송하는 것이 아니라, 발신자가 수신자의 현재 상태를 확인하지 않은 채 바로 데이터를 전송하는 방식이다.

연결을 하지 않기 때문에 TCP보다 빠르지만, CheckSum 필드를 통해 최소한의 오류만 검출하기 떄문에 패킷이 손실되어도 알 수 없어 신뢰성이 낮다고 할 수 있다.

데이터그램

데이터그램이란, 독립적으로 처리되는 패킷 기반의 데이터 전송 방식을 말한다.

UPD는 데이터그램 방식을 채택하여 각 패킷은 독립적으로 처리되며 즉, 각 패킷은 개별적으로 전송되며 다른 순서나 연결에 의존하지 않는다.

따라서, 각 패킷이 순차적으로 전송되었다고 하더라도 각 패킷은 개별적으로 전송되기 떄문에 느린 선로를 통해 전송되는 패킷이 있다면 수신자를 각 패킷을 순서대로 받을 수 없다는 단점이 있다.

또한, TCP와는 다르게 안정성을 위한 패킷의 번호나 플래그와 같이 안정성을 위한 정보가 빠져있기 때문에 같은 데이터라도 하더라도 TCP에 비해 용량이 작다.

UDP 사용 사례

  • 실시간 어플리케이션
  • 간단한 요청/응답 프로토콜
  • 브로드캐스팅/멀티캐스팅

UDP는 지연 시간이 중요한 스트리밍 서비스와 같은 실시간 어플리케이션에서 주로 사용할 수 있다. 간혹 일부 데이터가 전송되지 않더라도 전체 품질에 치명적인 영향을 주지 않기 때문이다.

또한, 간단하고 빠른 응답이 필요한 경우에도 사용할 수 있으며, 1 대 다 연결이 가능하기 때문에 브로드캐스팅과 멀티캐스팅에도 UDP를 사용할 수 있다.