콘텐츠로 바로가기

Transport Layer Mechanisms

상위 애플리케이션 간의 종단 간(End-to-End) 데이터 전송을 책임지고, 신뢰성 있는 소통을 위한 포트 할당과 흐름 제어를 다루는 전송 계층(L4)의 물리학을 다루는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

전송 계층 메커니즘(Transport Layer Mechanisms, TLM)은 하부 네트워크의 복잡한 패킷 이동 경로를 추상화하여, 서로 다른 장치에서 실행 중인 두 프로세스가 마치 직접 연결된 것처럼 통신하게 만드는 종단 간(End-to-End) 전송 공학입니다.

학습자는 호스트 내부의 여러 애플리케이션을 구분하는 포트(Port) 주소 체계와, 데이터 누락 없이 정확한 순서로 배달하는 TCP의 신뢰성 수리 모델을 배웁니다. 특히, 패킷 손실 시 재전송을 요청하는 ARQ 메커니즘과, 수신측 메모리 범람을 막는 **흐름 제어(Flow Control)**의 물리적 수순을 익힙니다. 이를 통해 애플리케이션 요구사항(속도 vs 신뢰성)에 맞춰 최적의 전송 프로토콜을 선택하고 설계하는 하이엔드 전송 계층 핵심 역량을확보합니다.

2. Scope & Boundaries

In-Scope

  • Process-to-Process Delivery: 포트 번호(Standard, Dynamic)를 통한 서비스 식별 물리학
  • Segmentation & Reassembly: 데이터 메시지를 L4 세그먼트 단위로 자르고 합치는 물리 처리
  • TCP Fundamentals: 3-Way Handshake(연결), 시퀀스 번호, 체크섬을 통한 수리적 무결성
  • UDP Characteristics: 비연결성 전송의 물리적 오버헤드 최소화 기제
  • Error & Flow Control Basics: 슬라이딩 윈도우(Sliding Window)의 수리적 기초

Out-of-Scope

  • BGP, OSPF 등 전역 라우팅 상세 (08-01-02 영역에서 분담)
  • TCP 혼잡 제어(Congestion Control)의 고도화된 수리 심화 (08-02-02 영역에서 집중)

Boundaries

  • TLM vs. Network Layer: L3(NLA)가 '장치'를 찾는 주소(IP)에 집중한다면, TLM은 장치 내의 '프로세스'를 찾는 주소(Port)와 '통신의 질(Reliability)'에 집중하여 경계를 구분합니다.

3. Counterexample

  • 단순히 "TCP가 낫다"라 설명하는 것은 TLM 학습이 아닙니다. 왜 TCP 체크섬이 하부 L2/L3 계층의 체크섬과 별개로 물리적 비트 무결성을 '종단 간'에서 재차 검증해야 하는지 수리적 당위성을 증명할 수 있어야 하며, 포트 포워딩 설정 오류가 하드웨어 방화벽을 통과한 패킷이 애플리케이션 프로세스에 도달하지 못하게 만드는 '입구 컷'의 물리 원인을 논증하지 못한다면 TLM의 정수를 이해하지 못한 것입니다.

4. Prerequisites

  • Network Layer & Addressing (Basic): 08-01-02의 하부 계층 논리 이해가 필수입니다.
  • Operating Systems & System Mechanics (Recommended): 프로세스 및 소켓 API 이해가 권장됩니다. (03-01-XX 기반 역량)

5. Learning Map

  1. Port Identification: 장치 내 수많은 앱 중 올바른 수신자를 찾는 16비트 포트 체계를 정립합니다.
  2. The Handshake Protocol: 통신 시작 전 서로의 물리 상황을 확인하는 신뢰의 수순(TCP)을 배웁니다.
  3. Segmentation Mechanics: 거대 데이터를 네트워크 대역폭에 맞는 최적의 크기로 수리적 분할합니다.
  4. Reliable Pipeline: 데이터가 뒤섞이거나 유실되어도 완벽히 복구하는 수리적 파이프라인을 완성합니다.

6. Learning Topics

Basic

Core: 전송 계층의 역할과 포트 주소 (Transport Foundations)

  • Why to Learn: 하드웨어 하나에서 여러 웹사이트나 게임, 메신저가 동시에 통신할 수 있게 하기 위해서입니다.
  • What to Learn:
    • Transport Layer Duties: 호스트 간 전송이 아닌 프로세스 간 전송의 의미
    • Service Point Addressing: Well-known Ports(0-1023)와 사설 포트의 수리적 구분
    • Multiplexing & Demultiplexing: 여러 소켓의 데이터를 하나의 회선으로 묶고 푸는 물리학
  • How to Learn:
    • netstat -an 명령어로 현재 내 PC에서 열린 포트들과 통신 상태(ESTABLISHED 등) 확인 실습
    • 동일한 IP 주소에서 포트 번호만 다를 때 패킷이 서로 다른 앱으로 찾아가는 과정 분석
  • Implement: 포트 번호 범위를 체크하여 특정 서비스용인지 판별하는 기초 PortGuard

Core: TCP 연결과 신뢰성 보장 (TCP Mechanics)

  • Why to Learn: 인터넷의 불안정성을 물리적으로 극복하고 완벽한 데이터 전달을 보장하기 위함입니다.
  • What to Learn:
    • Connection-oriented Concept: 가상 회선(Virtual Circuit)의 설정과 해제 물리 과정
    • Sequence & Acknowledgment: 데이터의 순서를 맞추고 수신을 확인하는 수리적 동기화
    • Checksum Calculation: 세그먼트 데이터의 비트 합을 통한 오류 검출 물리학
  • How to Learn:
    • Wireshark를 이용해 SYN -> SYN/ACK -> ACK로 이어지는 3-Way Handshake 패킷을 직접 관찰 실습
    • 시퀀스 번호가 100인 패킷 다음에 200이 왔을 때, 중간에 빠진 100바이트를 감지하는 수리 모델 분석
  • Implement: 가상의 시퀀스 번호를 관리하며 데이터 순서를 맞추는 ReliableStream 엔진

Practical

Core: UDP와 비연결형 전송 (UDP Dynamics)

  • Why to Learn: 오버헤드를 극한으로 줄여야 하는 실시간 방송이나 게임을 위한 전송 전략을 짜기 위해서입니다.
  • What to Learn:
    • Connectionless Protocol: 사전 확인 없이 데이터를 냅다 지르는 물리적 단순함
    • Header Comparison: TCP 대비 매우 얇은(8 bytes) UDP 헤더의 수리적 이득
    • Use Cases: DNS, VoIP, 스트리밍 등 지연 시간이 신뢰성보다 중요한 하드웨어 환경
  • How to Learn:
    • 동일한 데이터를 TCP와 UDP로 보냈을 때 발생하는 하드웨어 CPU 점유율과 대역폭 소모 측정 실습
    • 패킷 유실을 의도적으로 일으켰을 때 UDP 기반 영상 통화에서 발생하는 '화질 깨짐' 현상 관찰
  • Implement: 패킷 유실을 감수하고 가장 최신 좌표 데이터만 전송하는 UDP 기반 GameSync 모듈

Advanced

Core: 흐름 제어와 슬라이딩 윈도우 (Flow Control Physics)

  • Why to Learn: 고속 서버가 저속 수신기를 물리적으로 파괴(Buffer Overflow)하지 않게 수위 조절을 하기 위함입니다.
  • What to Learn:
    • Stop-and-Wait vs Pipelining: 하나씩 보내고 기다리기 vs 한꺼번에 쏟아붓기 수리 비교
    • sliding Window Protocol: 수신측 여유 공간(WindowSizeWindow Size)에 맞춰 송신량을 동적으로 조절하는 물리 기작
    • Zero Window Prob: 수신 버퍼가 꽉 찼을 때 통신이 멈추는 물리적 데드락 해결
  • How to Learn:
    • 응답 패킷의 Win 값을 수동으로 줄여가며 데이터 전송 속도가 물리적으로 하락하는 그래프 관찰 실습
    • 윈도우 크기(BandwidthDelayProductBandwidth-Delay Product)를 대역폭에 맞춰 산출하여 하드웨어 효율을 극대화하는 설정 연구
  • Implement: 윈도우 크기에 따라 보낼 수 있는 데이터 범위를 결정하는 WindowController

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Segment 전송 계층에서 데이터를 쪼개어 헤더를 붙인 통신 단위입니다. 기본 데이터 단위 L4 Unit Packet / Frame L3 패킷과는 다름 P1:CS2023 core
Port 호스트 내의 특정 프로세스를 식별하기 위한 16비트 논리적 주소입니다. 기본 식별자 Endpoint IP Address 물리 주소 아님 P1:CS2023 core
3-Way Handshake TCP 연결 설정 시 송수신측이 서로의 상태를 확인하는 3단계 물리적 절차입니다. 추천 연결 설정 Establishment Finishing 데이터 전송 전 준비 Industry core
Sliding Window 수신측 버퍼에 맞춰 송신 데이터의 양을 동적으로 조절하는 전송 계층 흐름 제어 기법입니다. 실무 흐름 제어 Buffer / Pipelining Flow Control 혼잡 제어와 혼동 P1:CS2023 core

8. References

Primary

Secondary

  • [Computer Networking: A Top-Down Approach] Jim Kurose — Transport layer chapter.
  • [TCP/IP Illustrated, Volume 1] W. Richard Stevens — Detailed TCP/UDP mechanics.

Industry

  • [RFC 793: Transmission Control Protocol] — The TCP specification.
  • [RFC 768: User Datagram Protocol] — The UDP specification.

9. Final Checklist

Primary

  • '연결형 서비스(TCP)'와 '비연결형 서비스(UDP)'의 물리적 특징을 하드웨어 자원 관리 관점에서 설명 가능한가? (P1)
  • '포트 번호'가 없다면 분산 시스템의 여러 서버 프로세스가 물리적으로 어떻게 충돌하는지 수리적으로 기술할 수 있는 가? (P1)

Secondary

  • '시퀀스 번호' 할당 시 무작위 추출(ISNISN)을 사용하는 보안적 필연성을 하이브리드 공격 관점에서 소통 가능한가?
  • UDP 환경에서 신뢰성을 보장하기 위해 애플리케이션 계층에서 구현해야 할 '어플 레벨 ACK' 수순을 논증할 수 있는 가?

Industry

  • 고성능 서버 환경에서 대량의 'TIME_WAIT' 소켓이 하드웨어 리소스 효율에 미치는 부정적 영향을 분석하고 해결책을 제안할 수 있는 가? (SFIA)
  • 스트리밍 서비스에서 지연(Latency)과 화질(Quality) 사이의 물리적 트레이드오프를 전송 계층 프로토콜 선택으로 결정할 수 있는 가?