UDP TCP

이재원·2024년 2월 24일

패킷(Packet)
네트워크를 통해 전송되는 데이터의 조각

  • 데이터를 네트워크를 통해 효율적으로 전송하기 위해, 큰 데이터 블록을 작은 사이즈의 패킷으로 분할

  • 페이로드(실제 전송할 데이터), 출발지 및 목적지 주소, 순서 번호 등의 제어 정보가 포함

  • 이 정보는 네트워크 장비가 패킷을 올바르게 라우팅하고, 받는 쪽에서는 원본 데이터를 재조립하는 데 사용

  • TCP(Transmission Control Protocol)와 같은 프로토콜에서 이를 볼 수 있다.

  • TCP는 패킷 전송 시 순서 보장, 데이터 무결성 확인, 오류 검출 및 재전송 등의 기능을 제공

데이터그램(Datagram)
데이터그램은 독립적으로 전송되는 패킷의 한 형태

  • UDP(User Datagram Protocol)는 데이터그램을 사용하는 대표적인 프로토콜
  • UDP는 최소한의 오버헤드로 빠른 데이터 전송을 가능하게 하지만, TCP와 달리 패킷의 순서 보장, 재전송, 또는 오류 수정 기능을 제공하지 않는다.
  • 실시간 응용 프로그램(예: 스트리밍, 온라인 게임)에서 자주 사용

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷 프로토콜 스위트의 핵심 요소로, 애플리케이션 간 데이터를 교환하는 방법을 정의합니다. 이 두 프로토콜은 서로 다른 특성과 사용 사례를 가지고 있으며, 특정 네트워크 서비스의 요구 사항에 따라 선택됩니다.

TCP (Transmission Control Protocol)

TCP는 신뢰성 있는 연결 지향적 서비스를 제공합니다. 연결 지향적이란 통신을 시작하기 전에 통신할 양쪽 당사자 간에 미리 연결을 설정해야 함을 의미합니다. TCP의 주요 특징은 다음과 같습니다:

  • 신뢰성: TCP는 데이터가 목적지에 정확히 도착하도록 보장합니다. 데이터 패킷이 손실되거나 손상된 경우 재전송을 요청합니다.
  • 순서 보장: 데이터 패킷이 전송된 순서대로 도착하는 것을 보장합니다. 만약 패킷이 순서대로 도착하지 않으면, TCP는 받는 쪽에서 패킷을 올바른 순서로 재조립합니다.
  • 흐름 제어: TCP는 네트워크 혼잡이나 수신 측의 데이터 처리 속도를 고려하여 데이터 전송 속도를 조절합니다.
  • 혼잡 제어: 네트워크 내의 혼잡 상태를 감지하고, 이에 따라 전송 속도를 조절하여 네트워크의 과부하를 방지합니다.

TCP는 이메일 전송, 웹 페이지 로딩과 같이 신뢰성 있는 데이터 전송이 중요한 애플리케이션에 주로 사용됩니다.

UDP (User Datagram Protocol)

UDP는 비연결형 서비스를 제공하며, TCP보다 단순하고 빠릅니다. 비연결형이란 데이터를 전송하기 전에 사전에 연결을 설정할 필요가 없다는 것을 의미합니다. UDP의 주요 특징은 다음과 같습니다:

  • 비연결성: 데이터 전송을 시작하기 전에 연결을 설정할 필요가 없습니다. 이는 빠른 데이터 전송을 가능하게 합니다.
  • 경량 프로토콜: TCP에 비해 헤더 크기가 작고, 처리 과정이 간단합니다. 이로 인해 네트워크 오버헤드가 줄어듭니다.
  • 신뢰성 없음: UDP는 패킷 손실이 발생해도 재전송을 하지 않습니다. 손실된 패킷에 대한 복구 메커니즘을 제공하지 않습니다.
  • 순서 보장 없음: 패킷이 전송된 순서와 다르게 도착할 수 있으며, 순서를 재조정하는 기능을 제공하지 않습니다.

UDP는 실시간 스트리밍, 온라인 게임, VoIP(음성 통신)와 같이 고속 전송이 중요하고, 일부 패킷 손실이 허용되는 애플리케이션에 주로 사용됩니다.

요약

  • TCP는 신뢰성, 순서 보장, 흐름 제어, 혼잡 제어와 같은 기능을 제공하는 연결 지향적 프로토콜입니다. 신뢰성 있는 데이터 전송이 중요한 애플리케이션에 적합합니다.
  • UDP는 비연결성, 경량성, 빠른 데이터 전송을 제공하지만 신뢰성과 순서 보장 기능은 없는 프로토콜입니다. 실시간 데이터 전송이 중요한 애플리케이션에 적합합니다.

스트림 소켓 (Stream Socket): TCP(Transmission Control Protocol)를 사용하는 연결 지향적 소켓입니다. 스트림 소켓은 두 통신 당사자 간에 신뢰성 있는 양방향 통신 채널을 제공합니다. 데이터는 바이트 스트림으로 전송되며, 데이터의 경계가 없습니다(즉, 연속적입니다).

데이터그램 소켓 (Datagram Socket): UDP(User Datagram Protocol)를 사용하는 비연결형 소켓입니다. 데이터그램 소켓은 데이터를 독립된 메시지 형태의 패킷으로 전송합니다. 각 패킷은 다른 패킷과 독립적이며, 네트워크를 통해 개별적으로 전송됩니다. 데이터그램 소켓은 신뢰성보다는 빠른 데이터 전송을 중시합니다.

profile
최고가 되기 위한 여정

0개의 댓글