Posts TCP, UDP 프로토콜
Post
Cancel

TCP, UDP 프로토콜

TCP, UDP 프로토콜


  • OSI 7 Layer 중 4번째, TCP/IP 4 Layer 중 3번째인 Transport 계층의 통신을 위한 프로토콜

  • IP 주소와 포트 번호를 통해 대상을 식별한다.


TCP(Transmission Control Protocol)


개념

  • 데이터를 메시지 형태로 전송하기 위해 IP와 함께 사용하는 프로토콜
  • 일반적으로 TCP와 IP를 함께 사용한다.
  • IP가 데이터의 전송을 처리한다면, TCP는 패킷의 추적과 관리를 담당한다.


특징

  • 연결형 서비스로 가상 회선 방식을 제공한다.
  • 높은 신뢰성을 보장한다.
  • 전송 순서가 보장된다.
  • 데이터가 손실될 경우, 재전송을 요청한다.
  • UDP에 비해서는 속도가 느리다.
  • 혼잡 제어, 흐름 제어를 지원한다.
  • 데이터의 경계를 구분하지 않는다.

  • 두 말단을 바이트 스트림으로 연결하여 데이터를 전송한다.
  • 연결이 끊기면 다시 연결되기 전까지 통신할 수 없다는 단점이 있다.

  • 전이중(Full Duplex), 점대점(Point to Point) 방식


TCP 소켓의 특징

  • 서버 소켓은 연결만을 담당한다.
  • 서버와 클라이언트 소켓은 1대1로 연결된다. (스트림 말단끼리의 연결)


UDP(User Datagram Protocol)


개념

  • 데이터를 데이터그램 단위로 처리하는 프로토콜


특징

  • 비연결형 서비스로 데이터그램 방식을 제공한다.
  • 정보를 주고 받는 방식이 아니라, 단순히 전송만 수행한다.
  • 신뢰성이 낮다.
  • 전송 순서가 보장되지 않는다.
  • 데이터가 손실될 경우, 그러려니 한다.
  • TCP에 비해 속도가 빠르다.
  • 데이터의 경계를 구분한다.


UDP 소켓의 특징

  • 연결이 존재하지 않으므로, 서버와 클라이언트 소켓의 구분이 없다.
  • 소켓 대신 IP를 기반으로 데이터를 전송한다.


TCP vs. UDP


TCP

  • 데이터의 손실이 치명적인 경우, 데이터 전송의 신뢰성이 보장되어야 하는 경우 사용한다.
  • 예시 : 채팅 서비스


UDP

  • 데이터의 손실이 치명적이지 않은 경우, 간단한 데이터를 빠르게 전송해야 하는 경우 사용한다.
  • 예시 : 실시간 스트리밍 서비스


게임 서버 프로토콜 선택


  • 그저 단순히 TCP 또는 UDP를 사용하는 경우는 거의 없다.
  • UDP나 RUDP를 기반으로 추가적인 기능들을 구현하여 사용하는 경우가 많다.


References


This post is licensed under CC BY 4.0 by the author.