Post

4. Transport Layer (Transportschicht)

4. Transport Layer (Transportschicht)

Currently I am studying Computer Science in German. However, as my mother tongue is not german, so this cheatsheet is mixed up with German, English and Korean.

Transport Layer (Transportschicht, 전송 계층)

Multiplexing

하나의 기기(PC)에서 여러 인터넷 프로그램(웹 브라우저, 메일, 게임 등)을 동시에 사용하는 원리

  1. 데이터 분할: 웹 브라우저가 보내는 데이터나 유튜브 영상 데이터 같은 긴 데이터 스트림을 세그먼트(Segment)라는 작은 조각으로 나눔
  2. 헤더 추가: 각 세그먼트 조각 앞에 헤더(Header)라는 추가 정보를 붙입니다. 이 헤더에는 최소한 다음 두 가지 정보가 포함됩니다.
    • 출발지 포트 (Quellport): 데이터를 보내는 프로그램의 번호
    • 목적지 포트 (Zielport): 데이터를 받을 프로그램의 번호

데이터 통신 프로토콜

특징TCP (Transmission Control Protocol)UDP (User Datagram Protocol)
개념- 연결 지향(connection-oriented) 프로토콜입니다.- 비연결 지향(connectionless) 프로토콜입니다.
주요 기능- 안정적인 데이터 전송을 제공합니다.- 최소한의 오버헤드로 데이터를 전송합니다.
장점- 데이터 전송 보장: 세그먼트의 올바른 순서를 보장하며, 손실된 세그먼트는 재전송됩니다.
- 흐름 제어(Flow Control): 수신자가 데이터를 처리할 수 있는 속도에 맞춰 송신자의 전송 속도를 조절하여 수신자 과부하를 방지합니다.
- 혼잡 제어(Congestion Control): 네트워크의 혼잡을 감지하고 송신 속도를 조절하여 네트워크 과부하를 방지합니다.
- 연결 설정(3-Way Handshake): 통신 전에 논리적인 연결을 설정하여 안정성을 높입니다.
- 낮은 오버헤드: 연결 설정, 재전송, 순서 재배열 등의 과정이 없어 오버헤드가 적습니다.
- 빠른 전송 속도: 연결 설정 및 제어 메커니즘이 없으므로 전송 지연이 적습니다.
- 실시간 애플리케이션에 적합: Vo-IP, 온라인 게임 등 약간의 데이터 손실을 허용하면서도 빠른 응답 속도가 중요한 애플리케이션에 적합합니다.
- 메시지 지향(message-oriented): 데이터그램을 단위로 전송하여 메시지 경계를 유지합니다.
단점- 높은 오버헤드: 연결 설정(3-Way Handshake) 및 흐름/혼잡 제어 메커니즘으로 인해 오버헤드가 발생합니다.
- 상대적으로 느린 전송 속도: 연결 설정, 재전송, 순서 재배열 등의 과정으로 인해 지연이 발생할 수 있습니다.
- 높은 패킷 손실률 환경에서의 비효율성: TCP는 패킷 손실을 네트워크 혼잡으로 간주하여 데이터 전송률을 불필요하게 낮출 수 있습니다.
- 상태 유지: 송신자와 수신자가 연결 상태를 유지해야 하므로 더 많은 리소스가 필요합니다.
- 데이터 전송 비보장: 데이터 손실, 중복, 순서 바뀜 등이 발생할 수 있으며, 이에 대한 복구 기능이 없습니다.
- 흐름 제어 부재: 수신자 측의 버퍼를 초과하는 데이터를 계속 전송하여 수신자 과부하를 유발할 수 있습니다.
- 혼잡 제어 부재: 네트워크 혼잡을 감지하고 회피하는 기능이 없어 네트워크 과부하를 악화시키고 데이터 손실을 증가시킬 수 있습니다.
- 애플리케이션 계층에서의 복잡성 증가: 안정성 및 순서 보장이 필요한 애플리케이션은 이러한 기능을 자체적으로 구현해야 합니다.
- 서버가 클라이언트의 온라인 상태를 알기 어렵습니다.
헤더 크기- 최소 20 바이트 (옵션 포함 시 가변)- 고정 8 바이트
사용 사례- HTTP, HTTPS, FTP, SMTP, SSH 등 정확하고 안정적인 데이터 전송이 필수적인 애플리케이션.- DNS (주로 UDP 53 포트 사용), Vo-IP, 온라인 게임, 스트리밍, SNMP 등 약간의 데이터 손실이 허용되지만 속도가 중요한 애플리케이션.

User Datagram Protocol (UDP)

Transmission Control Protocol (TCP)

Network Address Translation (NAT)

This post is licensed under CC BY 4.0 by the author.