TCP와 UDP 프로토콜

썩은요플렛's avatar
Aug 07, 2024
TCP와 UDP 프로토콜
 

TCP(Transmission Control Protocol)

 
핵심 전송 계층 프로토콜 중 하나로, 네트워크에서 데이터를 신뢰성 있게 전송하기 위해 사용된다.
TCP는 연결 지향적 프로토콜로, 송신자와 수신자 간에 신뢰성 있는 통신을 보장한다.
 

특징

 
  1. 연결 지향적
 
  • TCP는 데이터를 전송하기 전에 송신자와 수신자 간에 연결을 설정한다.
  • 이 연결은 3-way-handshake 과정을 통해 이루어 진다
  • 데이터 전송이 끝나면 연결을 종료한다
 
  1. 신뢰성
 
  • 데이터의 정확한 전달을 보장하기 위해 패킷 손실, 중복, 오류를 검출하고 수정한다.
  • 데이터가 올바른 순서로 도착하도록 보장
 
  1. 흐름 제어
 
  • 송신자가 수신자의 처리 능력에 맞게 데이터를 전송할 수 있도록 조절한다. 이는 수신자가 데이터를 처리할 수 있을 때까지 송신자가 기다리도록 한다.
 
  1. 혼잡 제어
 
  • 네트워크 혼잡을 방지하기 위해 송신 속도를 조절한다. 이는 네트워크의 효율성을 높이고 혼잡을 줄이는 데 도움이 된다.
 
 

UDP(User Datagram Protocol)

 
TCP와 마찬가지로 핵심 전송 계층 프로토콜 중 하나로 TCP와 달리 비연결형 프로토콜이다. UDP는 신뢰성보다는 속도와 효율성을 중시하며, 주로 실시간 애플리케이션에 사용된다.
 

특징

 
  1. 비연결형
 
  • 송신자와 수신자 간 연결을 설정하지 않고 데이터를 전송
  • 각 데이터그램은 독립적으로 처리되며, 송신자는 수신자가 데이터를 받았는지 확인하지 않는다.
 
  1. 신뢰성 부족
 
  • 데이터 전송의 신뢰성을 보장하지 않는다.
  • 패킷 손실, 중복 순서 변경이 발생할 수 있다.
  • 오류 검출 및 수정 메커니즘이 없다.
 
  1. 순서 미보장
 
  • 데이터가 전송된 순서대로 도착하지 않을 수 있다.
  • 각 패킷은 독립적으로 처리되므로 순서가 보장되지 않는다.
💡
패킷은 네트워크 통신에서 데이터를 작은 조각으로 나눈 단위이다. 즉 데이터 전송 기본 단위라고 보면 된다.
 
  1. 오버헤드(통신 시 발생하는 추가적인 자원)가 적음
 
  • 연결 설정 및 유지, 흐름 제어, 혼잡 제어 등의 추가적인 오버헤드가 없다.
  • 빠른 데이터 전송이 가능하다.
 
 
Share article

RottenYogurt's Development Blog