본문 바로가기
카테고리 없음

[네트워크] 전송 계층(Transport Layer) 및 TCP/UDP 프로토콜 완벽 정리

by Lsung 2026. 8. 31.

1. 네트워크 계층별 역할 및 통신 단위 정리

네트워크는 5개 계층(OSI 7계층 기준 응용/표현/세션을 응용 계층으로 통합)으로 구분되며, 각 계층마다 데이터 식별 대상과 통신 단위(PDU)가 다릅니다.

  • 응용 계층 (Application Layer)
    • 식별 대상: 애플리케이션 서비스
    • 통신 단위: 메시지 (Message)
  • 전송 계층 (Transport Layer)
    • 식별 대상: 프로세스 (Process) — 포트 번호(Port Number)로 식별
    • 통신 단위: 세그먼트 (Segment)
    • 역할: 서로 다른 호스트 간에 동작하는 애플리케이션 프로세스 간 논리적 통신(Logical Communication)을 제공.
  • 네트워크 계층 (Network Layer)
    • 식별 대상: 호스트 (Host / 컴퓨터) — IP 주소로 식별
    • 통신 단위: 데이터그램 (Datagram) / 패킷 (Packet)
    • 역할: 호스트 대 호스트 간의 논리적 통신을 제공.
  • 링크 계층 (Link Layer)
    • 식별 대상: 노드 (Node) — MAC 주소로 식별
    • 통신 단위: 프레임 (Frame)
    • 역할: 인접한 노드 간 통신을 제공.
  • 물리 계층 (Physical Layer)
    • 통신 단위: 비트 (Bit)
    • 역할: 실제 전기적/광학적 신호 전송.

💡 핵심 차이점

**IP(Network Layer)**는 목적지 **컴퓨터(Host)**까지 패킷을 배달하고, **TCP/UDP(Transport Layer)**는 해당 컴퓨터 내부에서 실행 중인 **특정 프로그램(Process)**까지 메시지를 정확히 전달합니다.

2. 전송 계층(Transport Layer)의 주요 기능

전송 계층은 하위 네트워크 계층의 한계를 보완하고 신뢰성 및 통신 효율성을 높이기 위해 다음과 같은 제어 기능을 수행합니다.

  • 신뢰적 데이터 전송 (Reliable Data Transfer - rdt)
    • 패킷 손실, 데이터 손상, 순서 뒤바뀜 등을 감지하여 재전송 및 순서 정렬을 수행.
  • 흐름 제어 (Flow Control)
    • 수신 측의 처리 능력에 맞춰 송신 측의 데이터 전송량을 조절하는 메커니즘 (수신 측이 주도).
  • 혼잡 제어 (Congestion Control)
    • 네트워크 도로망(고속도로 인터페이스 통제 비유)이 과부하되지 않도록 패킷 유입량을 네트워크 차원에서 제어.
  • 제약 사항
    • 패킷 교환망 특성상 엄격한 지연 시간(Delay)이나 대역폭(Bandwidth) 보장은 불가능합니다 (보장이 필요한 경우 서킷 교환망 사용).

3. TCP vs UDP 프로토콜 비교

구분 TCP (Transmission Control Protocol) UDP (User Datagram Protocol)
연결 방식 연결 지향형 (Connection-Oriented, 3-Way Handshake) 비연결형 (Connectionless)
신뢰성 높음 (손실 시 재전송, 순서 보장, 오류 수정) 낮음 (오류 검사 후 손상 시 알림 없이 버림)
오버헤드 크고 복잡함 (상태 정보 유지, 헤더 크기 큼) 작고 가벼움 (헤더 8바이트, 리소스 소모 적음)
제어 기능 흐름 제어, 혼잡 제어, 순서 정렬 수행 제어 기능 없음 (속도 우선)
주요 용도 웹(HTTP/HTTPS), 파일 전송(FTP), SSH, 이메일 스트리밍, 실시간 음성 통신(VoIP), DNS, 게임 트래픽

4. 멀티플렉싱(Multiplexing)과 디멀티플렉싱(Demultiplexing)

전송 계층이 여러 애플리케이션 프로세스의 데이터를 모아서 하위 계층으로 보내거나, 반대로 수신한 데이터를 올바른 프로세스로 전달하는 과정입니다.

Plaintext
 
[App Process 1]  [App Process 2]
      \              /
       Socket     Socket
         \          /
     [ Multiplexing ]    (전송 계층: 여러 소켓의 데이터를 모아 하나의 세그먼트로 합성)
            │
            ▼
     [ Network Layer ]
            │
            ▼
    [ Demultiplexing ]   (전송 계층: 수신한 세그먼트의 포트 번호를 확인해 올바른 소켓으로 분배)
         /          \
       Socket     Socket
      /              \
[App Process 1]  [App Process 2]
  • 멀티플렉싱 (Multiplexing - 송신 측):
    • 여러 소켓(Socket)에서 들어오는 데이터에 출발지/목적지 포트 번호가 포함된 헤더를 붙여 하위 계층으로 전달하는 과정.
  • 디멀티플렉싱 (Demultiplexing - 수신 측):
    • 하위 네트워크 계층에서 올라온 세그먼트의 헤더 정보를 확인하여 올바른 프로세스의 소켓으로 분배하는 과정.

5. 소켓(Socket)과 포트 번호(Port Number)

  • 소켓 (Socket):
    • 애플리케이션 계층과 전송 계층 사이의 접점(인터페이스) 역할을 하는 유일한 식별 통로.
  • 식별 체계:
    • UDP 소켓: 목적지 IP 주소와 목적지 포트 번호 조합만으로 식별 (하나의 소켓으로 여러 클라이언트 응답 처리 가능).
    • TCP 소켓: (출발지 IP, 출발지 Port, 목적지 IP, 목적지 Port)의 4가지 요소(4-tuple) 조합으로 유일하게 식별.

6. 핵심 요약

  1. 역할의 명확한 구분: IP는 목적지 컴퓨터(Host)를 찾아가고, TCP/UDP는 포트 번호(Port)를 기반으로 해당 컴퓨터 내의 특정 애플리케이션(Process)을 찾아갑니다.
  2. TCP의 가치: 데이터의 손실 없는 정확한 전달, 순서 보장, 네트워크 혼잡 방지를 도맡아 처리하므로 신뢰성이 필요한 주요 서비스에 사용됩니다.
  3. UDP의 가치: 구조가 간결하여 리소스 소모가 적고 속도가 빠르므로, 약간의 패킷 손실이 용인되는 실시간 미디어 스트리밍 등에 효율적입니다.