개발 일지/CS

[Network] TCP / UDP

미숫가루설탕많이 2023. 1. 26. 13:17

 TCP와 UDP는 TCP/IP 4계층 모델을 기준으로 IP 프로토콜의 계층인 인터넷 계층의 상위에서 동작한다.

 

 전송계층에 속하는 TCP와 UDP는 2계층에서 동작하는 IP와 4계층에서 동작하는 애플리케이션(http 등)을 중개하는 역할을 한다.

 

 전송계층은 송수신자를 연결하는 통신서비스를 제공하는 계층이며, 쉽게 말해 데이터의 전달을 담당한다. 여기서 데이터를 보내기 위해 사용하는 프로토콜이 바로 TCP와 UDP이다.

 

 TCP와 UDP는 중개하는 역할을 하는 점에서는 동일하지만 서로 다른 특징을 가지고 있다.

 

 

 

 

TCP(Transmission Control Protocol)

 

 TCP는 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이며, 다음과 같은 특징을 가지고 있다.

 

  • 연결 지향적 프로토콜이다.

  • 데이터 전송 표적 기기까지의 전송을 보장한다.

  • 전송하는 패킷들의 순서가 보장된다.

  • UDP에 비해 느리다.

  • 3-way handshaking 과정을 통해서 연결을 설정하고 4-way handshaking을 통해 해제한다.

 

 TCP 3-way handshake는 양 끝단(end to end)기기의 신뢰성 있는 데이터 통신을 위해, TCP 방식이 연결을 설정하는 방식이다. 즉, 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기 위해 세션을 수립하는 과정을 의미한다.

 

 TCP는 이러한 이유로 연속성보다는 신뢰성있는 전송이 중요할 때 주로 사용한다. 예를 들면, 파일 전송이나 HTTP가 있다.

 

 

 

 

UDP(User Datagram Protocol)

 

 UDP는 데이터를 데이터그램 단위로 처리하는 프로토콜이며, 다음과 같은 특징을 가지고 있다.

 

  • 데이터그램 지향적 프로토콜이다.

  • 표적 기기까지의 전송이 보장되지 않는다.
  • 패킷 순서 보장이 안된다.

  • TCP에 비해 빠르다.

  • 정보를 주고 받을 때 신호절차를 거치지 않는다.

 

 UDP는 비연결형 서비스이기 때문에 연결을 설정하고 해제하는 과정이 없다.

 

 만약 패킷 순서를 보장하고 싶다면, 애플리케이션 레이어에서 관리되어야 한다.

 

 UDP는 신뢰성을 높이는 기능이 없는 대신에 보다 높은 속도와 효율성을 제공한다. 이러한 이유로 빠른 속도나 실시간 통신이 중요한 애플리케이션에서 사용한다.