콘텐츠로 바로가기

IP & TCP Core Dynamics

인터넷의 근간을 이루는 IP 계층의 패킷 전달과 TCP 계층의 신뢰성 있는 세션 관리 및 상태 전이를 다루는 핵심 프로토콜 물리학을 다루는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

IP 및 TCP 핵심 역학(IP & TCP Core Dynamics, ITD)은 전 세계 디지털 통신을 지탱하는 가장 거대하고 정밀한 약속들의 집합으로, 불안정한 네트워크 하드웨어 위에서 어떻게 '신뢰할 수 있는 데이터 흐름'을 창조하는지 다루는 통신 물리학입니다.

학습자는 IP 패킷이 수많은 라우터를 거치는 물리적 여정과, 데이터를 정확히 배달하는 **TCP 상태 머신(State Machine)**의 수리적 수순을 배웁니다. 특히, 패킷의 생존 시간을 결정하는 TTL의 물리적 작용과, 연결의 생성 및 종료 과정(3-Way/4-Way Handshake)에서 발생하는 세밀한 타이머 물리학을 익힙니다. 이를 통해 복잡한 분산 시스템 간의 결합을 지탱하는 인터넷의 엔진룸을 설계하고 최적화하고 진단하는 하이엔드 전송 인프라 역량을 확보합니다.

2. Scope & Boundaries

In-Scope

  • IP Core: IPv4/IPv6 헤더 분석, 데이터 단편화(Fragmentation), 체크섬 물리학
  • TCP States: LISTEN, SYN_SENT, ESTABLISHED 등 상태 전이 모델 분석
  • Session Control: 3-Way Handshake(연결), 4-Way Handshake(해제)의 수리적 단계
  • Error Control: 시퀀스 번호를 활용한 순서 보장 및 누락 패킷의 물리적 재전송(ARQ)
  • MTU & MSS: 네트워크 매체 크기에 따른 데이터 세그먼트의 수리적 최적화

Out-of-Scope

  • TCP 혼잡 제어(Congestion Control)의 알고리즘 심화 (08-02-02 영역에서 집중)
  • 전용 라우팅 프로토콜(BGP, OSPF)의 경로 계산 수리 정석 (08-02-03 영역에서 분담)

Boundaries

  • ITD vs. Network Foundations: 기초 노드(08-01-02/03)가 '정의'에 집중한다면, ITD는 프로토콜 간의 '유기적 상호작용'과 '상태 관리의 물리적 무결성'에 집중하여 심화 과정을 구성합니다.

3. Counterexample

  • 단순히 "TCP는 안정적이다"라 설명하는 것은 ITD 학습이 아닙니다. 왜 TCP 4-Way Handshake의 마지막 ACK가 유실되었을 때 소켓이 TIME_WAIT 상태에서 물리적으로 얼마나 대기해야 하는지(MSL) 수리적으로 증명할 수 있어야 하며, IP 단편화가 발생할 때 전송 효율이 왜 수치적으로 급격히 하락하는지 하드웨어 처리 오버헤드 관점에서 논증하지 못한다면 ITD의 정수를 이해하지 못한 것입니다.

4. Prerequisites

  • Network Foundations & OSI Stack (Basic): 08-01-02(L3)/03(L4) 기초 이해가 필수입니다.
  • Operating Systems & System Mechanics (Recommended): 커널의 소켓 버퍼 및 컨텍스트 스위칭 이해가 권장됩니다. (03-01-XX)

5. Learning Map

  1. Header Physics: 비트 단위로 설계된 IP와 TCP의 헤더 도면을 완벽히 수리적으로 해독합니다.
  2. The State Machine: 보이지 않는 소켓 내부의 상태가 어떤 물리적 사건에 의해 변하는지 추적합니다.
  3. Connection Lifecycle: 전기가 흐르듯 연결이 맺어지고 끊어지는 정밀한 수순(Handshake)을 익힙니다.
  4. Resilient Stream: 험난한 네트워크 환경에서도 데이터의 한 비트도 놓치지 않는 물리적 복구력을 완성합니다.

6. Learning Topics

Basic

Core: IP 패킷의 데이터와 제어 (IP Core Dynamics)

  • Why to Learn: 하부 통신망이 달라도 패킷이 목적지를 찾아가는 공통 규격을 이해하기 위해서입니다.
  • What to Learn:
    • IPv4/IPv6 Frame Analysis: 버전별 헤더 필드의 수리적 의미
    • Time To Live (TTL): 패킷의 유효 기간을 한정하는 물리적 카운트다운
    • Fragmentation: 대용량 데이터를 네트워크 입구에 맞춰 쪼개는 물리 처리
  • How to Learn:
    • tcpdump로 캡처한 패킷의 IP 헤더를 2진수로 풀어서 각 필드의 값 확인 실습
    • TTL 값을 1로 설정했을 때 패킷이 첫 번째 라우터에서 소멸하는 물리 현상 관찰
  • Implement: 특정 IP 헤더의 유효성을 체크섬 계산으로 확인하는 IPVerifier

Core: TCP 상태 전이와 세션 설계 (TCP State Transitions)

  • Why to Learn: 서버 부하가 높을 때 소켓 자원이 왜 고갈되는지 물리적 원인을 파악하기 위함입니다.
  • What to Learn:
    • TCP State Diagram: 11가지 표준 상태의 전이 조건과 타이머 수리 모델
    • Half-Open Connections: 연결이 한쪽만 맺혔을 때의 하드웨어 리소스 점유 상태
    • MSL (Maximum Segment Lifetime): 소켓 자원의 물리적 재사용 대기 시간 법칙
  • How to Learn:
    • 클라이언트를 강제 종료했을 때 서버의 소켓 상태가 어떻게 변하는지 netstat으로 실시간 추적 실습
    • TIME_WAIT 상태의 소켓이 사라지는 시간을 수동으로 측정하여 시스템 설정값과 비교
  • Implement: 현재 통신 상태에 따라 다음 가능한 TCP 상태를 결정하는 StateEngine

Practical

Core: 연결 설정 및 해제의 정밀 수순 (Handshake Physics)

  • Why to Learn: 연결 지연(Latency)이 발생하는 물리적 병목 지점을 정확히 짚어내기 위해서입니다.
  • What to Learn:
    • 3-Way Handshake Sync: 동기화(SYN)와 확인(ACK)의 수치적 매칭
    • 4-Way Handshake Termination: 상호 작별을 고하는 정중한 물리적 수순
    • ISN Allocation: 보안을 위한 초기 시퀀스 번호의 무작위성 수리 알고리즘
  • How to Learn:
    • 세션 연결 시 시퀀스 번호가 어떻게 증가하는지 비트 단위로 매핑해보는 실습
    • Handshake 과정에서 한 단계라도 지연될 때 전체 서비스 응답 속도에 미치는 수리적 파장 분석
  • Implement: SYN 패킷을 보내고 응답 시간을 기록하는 기초 PingHandshake 도구

Advanced

Core: TCP 신뢰성 보장과 재전송 (Reliability Mechanics)

  • Why to Learn: 극심한 패킷 유실 환경에서도 서비스가 죽지 않게 만드는 수리적 방패를 갖추기 위함입니다.
  • What to Learn:
    • ARQ (Automatic Repeat Request): 손상된 데이터를 다시 부르는 물리적 응답 기제
    • Cumulative Acknowledgement: 여러 패킷을 묶어서 확인을 해주는 수리적 효율
    • Fast Retransmit: 타임아웃 전이라도 중복 ACK를 보고 즉시 재전송하는 물리학
  • How to Learn:
    • 가상의 네트워크 유실률을 10%로 설정하고, TCP가 이를 복구하는 과정의 하드웨어 처리량 로그 분석 실습 -Selective ACK(SACK) 옵션 유무에 따른 대역폭 활용도의 수치적 격차 산출
  • Implement: 데이터 유실 시 특정 비트부터 다시 전송을 시작하는 ResendController

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
TCP State Machine TCP 소켓이 거쳐가는 폐쇄적인 상태들과 그 전이 조건을 정의한 수리 모델입니다. 추천 상태 관리 RFC 793 / Socket Lifecycle 사용자 레벨 아님 P1:CS2023 core
MSS (Maximum Segment Size) TCP가 한 번에 전송할 수 있는 최대 데이터 크기로, 하부 MTU 수치에 물리적으로 귀속됩니다. 실무 최적화 MTU / Latency Window Size 헤더 포함 크기 아님 Industry core
ISN (Initial Sequence Number) 보안과 패킷 혼선을 막기 위해 TCP 연결 시작 시 부여하는 무작위 초기 일련번호입니다. 추천 식별/보안 Sequence / Attack ID 단순히 0 아님 Industry core
TIME_WAIT TCP 연결 종료 후 지연 패킷 수신을 위해 잠시 소켓 상태를 유지하는 물리적 대기 상태입니다. 실무 자원 관리 4-Way / MSL FIN_WAIT 장애가 아닌 정상 상태 P1:CS2023 core

8. References

Primary

Secondary

  • [TCP/IP Illustrated, Volume 1] W. Richard Stevens — The ultimate guide.
  • [Internetworking with TCP/IP] Douglas Comer — Implementation details.

Industry

  • [RFC 791: Internet Protocol] — IPv4 bible.
  • [RFC 793: Transmission Control Protocol] — TCP bible.

9. Final Checklist

Primary

  • 'IP 헤더'의 'Protocol' 필드가 어떻게 상위 TCP나 UDP를 물리적으로 지목하는지 설명 가능한가? (P1)
  • 'TCP 상태' 중 ESTABLISHED가 되기까지의 3단계 수순을 수리적 시퀀스 번호와 함께 기술할 수 있는 가? (P1)

Secondary

  • 'IP 단편화'가 금지된 환경(DFbitDF bit)에서 패킷이 거대할 때 발생하는 물리학적 통신 장애를 소통 가능한가?
  • 소켓 부족(Socket Exhaustion) 현상이 왜 TIME_WAIT 상태의 물리적 누적에 기인하는지 논증할 수 있는 가?

Industry

  • 대규모 서버 설계 시, 대량의 동시 접속(C10KC10K)을 처리하기 위해 커널의 TCP 스택을 물리적으로 튜닝하는 방안을 제안할 수 있는 가? (SFIA)
  • 서비스 운영 중 'Out-of-Order' 패킷 급증이 하드웨어 메모리에 미치는 수리적 압박을 분석할 수 있는 가?