[네트워크] TCP와 UDP

코린이·2025년 5월 20일

TCP (Transmission Control Protocol)

TCP는 데이터를 안전하게 전송하기 위한 전송 계층 프로토콜입니다.
HTTP, FTP, 이메일 등 신뢰성이 중요한 상황에서 주로 사용됩니다.

TCP의 주요 특성:

  1. 연결지향적 프로토콜
    데이터를 주고받기 전 송신자와 수신자 간 연결을 수립한 후 데이터를 전송합니다.
    연결을 위해서는 3-way handshake, 연결 해제를 위해서는 4-way handshake를 사용합니다.

  2. 재조립과 재전송
    데이터 전송 중 순서가 바뀌거나 유실될 경우 재조립 및 재전송을 통해 보완합니다.

  3. 혼잡 제어와 흐름 제어
    네트워크 상태에 맞춰 전송 속도를 조절하여 효율적이고 안정적인 데이터 전달을 수행합니다.

연결지향적 프로토콜

  • 데이터를 주고받기 전 3-way handshake 과정을 통해 통신 연결을 확립합니다.
  • 송신자와 수신자 간 안정적인 데이터 통신을 보장합니다.

흐름 제어 (Flow Control)

  • 송신 측과 수신 측의 데이터 처리 속도 차이를 극복하는 기법입니다.
  • 수신 측이 송신 측보다 데이터 처리 속도가 빠를 경우 문제가 없지만 반대의 경우 문제가 발생합니다.
  • 수신 측이 감당가능한 용량을 초과한 경우 데이터가 유실될 수 있으며 이로 인해 재전송에 대한 오버헤드가 발생할 수 있습니다.
  • 이러한 위험을 줄이기 위해 송신 측의 데이터 전송량을 수신측에 따라 조절해야합니다.
  • 이에 대한 해결 방법으로 Stop and Wait, Sliding Window 등의 방법이 있다.

혼잡 제어 (Congestion Control)

  • 송신측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법입니다.
  • 송신 측에서 보내는 데이터는 인터넷을 통해 수신 측에 전달됩니다. 이 과정에서 특정 라우터에 데이터가 몰리게 될 경우 송신 측에서 보낸 데이터를 처리할 수 없으며 또 다시 재전송을 하게 되면서 혼잡만 가중됩니다. 이러한 상황을 막기 위해 송신측에서 데이터 전송을 강제로 줄이게 되는데 이를 혼잡 제어라고 합니다.

UDP (User Datagram Protocol)

UDP는 비연결형 전송 계층 프로토콜입니다.

  • 데이터를 전송하기 전 연결을 수립하지 않기 때문에 빠르고 오버헤드가 적습니다.
  • 데이터의 순서 보장 및 복구 기능은 없습니다.
  • 신뢰성보다 속도가 중요한 경우에 적합합니다.
  • 그렇기 때문에 스트리밍, VoIP와 같은 실시간적이고 빠른 전송이 중요한 경우에 사용됩니다.
항목TCPUDP
연결 방식연결지향형비연결형
신뢰성높음낮음
속도느림빠름
오버헤드작음
사용 예시HTTP, FTP, 이메일스트리밍, VoIP, 게임
profile
호기심이 많고, 문제를 끝까지 해결하려는 집념이 강한 개발자입니다.

0개의 댓글