Limsh.io

UDP와 TCP의 차이점


TCP(Transmission Control Protocol)

  • TCP는 연결 지향적 프로토콜로 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜입니다.
  • IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추척 및 관리하게 됩니다.
  • 장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정해 신뢰성을 보장하는 연결형 서비스입니다.

TCP의 특징

  1. 연결형 서비스로 가상 회선 방식을 제공합니다
    • 3-way handshake 과정을 통해 연결을 설정합니다.
    • 4-way handshake 과정을 통해 연결을 해제합니다.
  2. 흐름 제어
    • 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지합니다.
  3. 혼잡 제어
    • 네트워크 내의 패킷 수가 과도하게 증가하지 않도록 방지합니다.
  4. 높은 신뢰성을 보장
    • 신뢰성이 높은 전송을 하기 때문에 UDP보다 속도가 느립니다.
  5. 전이중, 점대점 방식
    • 전이중: 전송이 양방향으로 동시에 일어날 수 있습니다.
    • 점대점: 각 연결이 정확히 2개의 종단점을 가지고 있습니다.
  • 따라서, 연속성보다 신뢰성 있는 전송이 중요할 때 사용하는 프로토콜입니다.

UDP(User Datagram Protocol)

  • UDP는 비연결형 프로토콜입니다.
  • 연결을 위해 할당되는 논리적인 경로가 없고, 각각의 패킷은 다른 경로로 전송되며, 독립적인 관계를 지닙니다.

UDP의 특징

  1. 비연결형 서비스로 데이터그램 방식을 제공합니다.
    • 데이터의 전송 순서가 바뀔수 있습니다.
  2. 데이터 수신 여부를 확인하지 않습니다.
    • 연결을 설정하고 해제하는 과정이 존재하지 않습니다.
    • TCP의 3-way handshake와 같은 과정을 거치지 않습니다.
  3. 신뢰성이 낮습니다.
    • 흐름 제어가 없어 제대로 전송되었는지, 오류가 없는지 확인할 수 없습니다.
  4. TCP 보다 속도가 빠릅니다.
    • 흐름 제어 또는 혼잡 제어와 같은 기능을 처리하지 않기 때문에 TCP 보다 속도가 빠릅니다.
  5. 신뢰성을 보장하지 않습니다.
  6. 1:1, 1:N, N:N 통신이 가능합니다.
  • 따라서 UDP는 신뢰성보다는 연속성 있는 전송이 필요할 때 사용하는 프로토콜 입니다.

출처