TCP, UDP & Transport Reliability
연결 지향형 데이터 전송의 핵심인 TCP와 비연결형 UDP의 작동 물리, 그리고 전역 통신 신뢰성을 위한 혼잡 제어 메커니즘을 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
TCP, IP 및 라우팅 프로토콜(TCP, IP & Routing Protocols, TRP)은 거대한 글로벌 네트워크인 인터넷이 데이터를 정확하고 효율적으로 목적지까지 배달하기 위해 사용하는 핵심 역학을 다룹니다.
데이터는 목적지에 도착하기 전까지 수많은 갈림길을 지나며, 때로는 유실되거나 순서가 바뀝니다. 학습자는 연결 지향적이고 신뢰성 높은 TCP의 3-Way Handshake 및 혼잡 제어(Congestion Control) 물리, 비연결형인 UDP의 경량성, 그리고 최적의 경로를 찾는 IP 라우팅 알고리즘(BGP, OSPF 등)을 학습합니다. 이를 통해 네트워크 환경에 최적화된 전송 프로토콜을 선택하고 복잡한 라우팅 구조를 설계할 수 있는 능력을 갖춥니다.
2. Scope & Boundaries
In-Scope
- Transport Layer Dynamics: TCP 신뢰성 보장(ACK, Retransmission), UDP 헤더 물리 및 용도
- Network Layer Protocol: IPv4/IPv6 주소 체계, 서브네팅(Subnetting), ICMP 작동 원리
- Routing Algorithms: 거리 벡터(RIP) vs 상태 링크(OSPF) vs 경로 벡터(BGP) 물리
- Flow & Congestion Control: 슬라이딩 윈도우(Sliding Window), Slow Start, Fast Retransmit
Out-of-Scope
- 하드웨어 라우터 장비의 물리적 조립 및 전력 관리 (02. CA 영역으로 위임)
- 웹 보안(SSL/TLS) 자체의 암호학적 구현 (10. Security 영역으로 위임)
Boundaries
- TRP vs. Network Foundations: 08-01(NFS)이 '계층 모델과 기본 캡슐화'에 주력한다면, TRP는 'L3(IP)와 L4(TCP/UDP)의 구체적인 전송 및 경로 선택 알고리즘'에 집중합니다.
3. Counterexample
- 단순히 IP 주소를 할당하는 법을 아는 것은 TRP 학습이 아닙니다. 왜 네트워크에서 **혼잡(Congestion)**이 발생하면 패킷을 버려야 하는지 그 물리적 대기열(Queue) 역학을 설명하고, TCP가 이를 감지하여 어떻게 **전송 속도를 조절(Window scaling)**하는지 그 피드백 루프를 논리적으로 입증할 수 있어야 합니다.
4. Prerequisites
- 네트워크 기초 및 OSI 스택 (Basic): 계층화와 캡슐화에 대한 기본 개념이 선행되어야 합니다. (08. NFS)
- 기초 자료 구조 (Recommended): 라우팅 테이블 계산에 필요한 그래프(Dijkstra) 알고리즘 이해가 권장됩니다. (04. CDS)
5. Learning Map
- End-to-End Reliability: 송신자와 수신자 간의 데이터 무결성을 보장하는 TCP의 끈질긴 노력을 배웁니다.
- Addressing the World: 전 지구적 장치 식별을 위한 IP 주소 지정과 서브네팅 물리 구조를 익힙니다.
- The Best Path: 수억 개의 노드 중에서 최적의 길을 찾아내는 라우팅 프로토콜의 논리 체계를 이해합니다.
- Traffic Tuning: 트래픽 폭주 시 시스템이 스스로 속도를 줄여 붕괴를 막는 제어 역학을 탐구합니다.
6. Learning Topics
Basic
Core: 전송 계층과 TCP vs UDP (Transport Mechanics)
- Why to Learn: 애플리케이션의 성격(신뢰성 vs 속도)에 맞는 전송 방식을 선택하기 위함입니다.
- What to Learn:
- TCP와 UDP의 물리적 헤더 구조 차이(오버헤드 분석)
- Connection-oriented(TCP) vs Connectionless(UDP) 상태 관리
- 포트(Port) 번호를 통한 프로세스 식별 물리
- How to Learn:
- 동일한 데이터를 TCP와 UDP 소켓으로 각각 전송하며 패킷 수와 지연 시간의 관계 측정
- 3-Way Handshake 과정을 Wireshark로 캡처하여 SYN/ACK 상태 변화 직접 확인
- Implement: 실시간 게임(UDP)과 파일 전송(TCP) 시나리오에 따른 프로토콜 선택 가이드
Recommended
Core: TCP 연결 관리 및 상태 전이 (Connection Lifecycle)
- Why to Learn: 클라이언트-서버 간의 세션을 안전하게 시작하고 종료하며, 고스트 세션으로 인한 자원 낭비를 방지하기 위함입니다.
- What to Learn:
- 3-Way Handshake 및 4-Way Handshake의 물리적 패킷 플로우
- TCP State Machine: LISTEN, SYN-SENT, ESTABLISHED, TIME-WAIT 엔트로피
- Retransmission Timeout(RTO) 산출 물리 및 Karn's Algorithm
- How to Learn:
netstat -an또는ss명령을 통해 특정 서비스의 TCP 상태 변화(특히 TIME-WAIT)를 모니터링합니다.- 서버를 갑자기 중단시켰을 때 클라이언트 측에서 발생하는 재전송 시도 횟수를 측정합니다.
- Implement: 대규모 동시 접속 환경에서 자원 고갈을 막기 위한 TCP Keep-alive 및 타임아웃 최적화 설정안.
Practical
Core: 흐름 제어와 슬라이딩 윈도우 (Flow Control Mechanics)
- Why to Learn: 수신 측의 처리 속도에 맞춰 송신 속도를 조절함으로써 버퍼 오버플로우와 데이터 유실을 방지하기 위함입니다.
- What to Learn:
- Sliding Window: 수신 측의 Window Advertisement를 통한 가변적 전송 제어
- Zero Window 및 Window Scaling 옵션의 물리적 필요성
- Silly Window Syndrome과 Nagle 알고리즘의 상충 관계(Latency vs Throughput)
- How to Learn:
- 대용량 파일 전송 중 수신 측 부하를 인위적으로 높여 Window Size가 0으로 수렴하는 과정을 Wireshark로 분석합니다.
- 작은 패킷을 자주 보낼 때 Nagle's Algorithm이 통신 지연에 미치는 영향을 측정합니다.
- Implement: 특정 네트워크 지연(RTT) 환경에서 처리량을 극대화하기 위한 최적의 TCP 버퍼 사이즈 산출 보고서.
Advanced
Core: 혼잡 및 흐름 제어 심화 (Flow & Congestion Advanced)
- Why to Learn: 대규모 네트워크 부하 상황에서도 패킷 손실을 최소화하고 처리량을 극대화하기 위해서입니다.
- What to Learn:
- 흐름 제어(Flow Control): 슬라이딩 윈도우와 수신자 버퍼 상태 통지
- 혼잡 제어(Congestion Control): AIMD 전략, Slow Start 임계치 변화 물리
- 현대적 TCP 변종(BBR, Reno 등)의 알고리즘별 물리적 특성 비교
- How to Learn:
- 인위적으로 패킷 드롭(Drop)을 일으켰을 때 TCP Window Size가 급격히 줄어드는 현상 계측
- 대역폭 지연 곱(BDP)을 계산하여 대용량 전송 환경의 TCP 버퍼 사이즈 최적화 연구
- Implement: 네트워크 지연이 높은 환경(위성, 장거리 등)에서의 TCP 성능 최적화 파라미터 제안서
7. Terminology
8. References
Primary References
- [P1] CS2023 - NC/Routing and Forwarding — Routing theory.
- [P1] CS2023 - NC/Transport Layer Protocols — Transport mechanics.
Secondary References
- [Computer Networks] Andrew S. Tanenbaum — Deep academic perspective on TRP.
- [TCP/IP Illustrated, Vol 2] W. Richard Stevens — Detailed implementation.
Industry References
- [RFC 793 (TCP)] — Official protocol specification.
- [Cisco: Introduction to IP Routing] — Practical networking equipment standard.
9. Final Checklist
Primary Checklist
- TCP가 특정 패킷의 유실을 인지했을 때, 재전송을 위해 수행하는 물리적 단계(Fast Retransmit 등)를 기술할 수 있는가? (P1)
- IP 주소와 서브넷 마스크를 보고 해당 네트워크의 브로드캐스트 주소와 사용 가능한 호스트 범위를 계산 가능한가? (P1)
Secondary Checklist
- 동일한 네트워크 부하 상황에서 OSPF와 BGP가 경로를 선택하는 물리적 기준(Metric)의 본질적 차이를 식별하는가?
- TCP 타임아웃(RTO) 설정이 너무 짧거나 길 때 각각 네트워크 성능에 미치는 물리적 폐해를 인지하고 있는가?
Industry Checklist
- 실무 서비스에서 대역폭은 충분한데 파일 전송 속도가 나지 않을 때, TCP 윈도우 사이즈와 레이턴시의 관계를 통해 원인을 진단 가능한가? (SFIA)
- L3 스위치와 라우터의 물리적 성능 차이가 실제 패킷 포워딩 지연에 미치는 영향을 제안 및 분석 가능한가?