Brain
Science
root
/
학습 노트
/
Study Note
/
3: 네트워크 (Network)
/
8. Transport Layer
8. Transport Layer
401. 전송 계층의 역할: 종단 간(End-to-End) 오류/흐름/혼잡 제어, 다중화/역다중화
402. 포트 번호 (Port Number) - 16비트, 응용 프로세스 식별
403. Well-Known 포트 (0~1023), Registered 포트 (1024~49151), Dynamic 포트 (49152~65535)
404. 소켓 주소 (Socket Address) = IP 주소 + 포트 번호
405. TCP (Transmission Control Protocol) - 연결 지향형, 신뢰성 전송, 스트림 기반
406. UDP (User Datagram Protocol) - 비연결형, 비신뢰성, 빠른 속도, 메시지 기반
407. TCP 세그먼트 (Segment) 헤더 - 기본 20바이트 ~ 60바이트
408. 소스/목적지 포트 번호, 일련번호 (Sequence Number, 32bit)
409. 확인응답번호 (Acknowledgment Number, 32bit) - 다음 수신할 바이트 번호 (누적 ACK)
410. 헤더 길이/데이터 오프셋 (Data Offset, 4bit)
411. TCP 제어 플래그(6bit) - URG(긴급), ACK(응답), PSH(푸시), RST(초기화), SYN(동기화), FIN(종료)
412. ECN 징후 플래그 - CWR, ECE
413. 윈도우 크기 (Window Size, 16bit) - 수신측 버퍼 여유 공간 (흐름 제어용)
414. 체크섬 (Checksum) - 가상 헤더 (Virtual Header) 포함 (IP + TCP/UDP 헤더)
415. 긴급 포인터 (Urgent Pointer)
416. TCP 3-Way Handshake - 연결 설정 과정 (SYN -> SYN/ACK -> ACK)
417. ISN (Initial Sequence Number) 무작위 할당 이유 (보안성 강화)
418. TCP 4-Way Handshake - 연결 종료 과정 (FIN -> ACK -> FIN -> ACK)
419. TIME_WAIT 상태 (기본 2MSL 대기) - 지연 패킷 수신 및 정상 종료 보장
420. CLOSE_WAIT / LAST_ACK 상태
421. TCP 흐름 제어 (Flow Control) - 수신자 관점, 슬라이딩 윈도우 알고리즘
422. 윈도우 스케일옵션 (Window Scale Option) - 최대 1GB까지 윈도우 확장
423. 송신 버퍼 (Send Buffer) / 수신 버퍼 (Receive Buffer)
424. 어리석은 윈도우 증후군 (Silly Window Syndrome) 문제
425. 네이글 알고리즘 (Nagle's Algorithm) - 작은 패킷 지연 모음 (송신측 해결)
426. 클라크 해결책 (Clark's Solution) - 수신측 여유 전까지 윈도우 크기 0 유지 (수신측 해결)
427. 지연된 ACK (Delayed ACK) - 응답 패킷 모아서 전송
428. TCP 혼잡 제어 (Congestion Control) - 망(네트워크) 관점, 패킷 유실 방지
429. 혼잡 윈도우 (CWND, Congestion Window)
430. 슬로우 스타트 (Slow Start) - CWND 지수적 증가
431. 임계치 (ssthresh, Slow Start Threshold)
432. 혼잡 회피 (Congestion Avoidance / AIMD 알고리즘) - CWND 선형 증가
433. 빠른 재전송 (Fast Retransmit) - 중복 ACK 3개(3 Dup-ACK) 수신 시 타임아웃 전 재전송
434. 빠른 회복 (Fast Recovery) - 재전송 후 슬로우 스타트 생략하고 혼잡회피로 진입
435. TCP Tahoe (타임아웃, 3 Dup-ACK 모두 1로 하락) 모델
436. TCP Reno (빠른 재전송/빠른 회복 지원) 모델
437. TCP NewReno / SACK (선택적 확인응답 옵션, 블록 다중유실 회복)
438. TCP BIC / CUBIC - 현대 리눅스 커널 기본 알고리즘 (지수함수 기반 고속망 최적화)
439. BBR (Bottleneck Bandwidth and Round-trip propagation time) - 구글, 지연시간 기반 혼잡제어
440. RTO (Retransmission TimeOut) 측정 방식
441. RTT (Round Trip Time), SRTT (Smoothed RTT) - 혼잡 제어 동적 타이머
442. 칸 알고리즘 (Karn's Algorithm) - 재전송 패킷 RTT 샘플 제외
443. 불필요한 재전송 (Spurious Retransmission) 해결 방안
444. TCP Keep-Alive 타이머
445. 영 윈도우 (Zero Window) 탐색 - Persist Timer
446. MPTCP (Multipath TCP) - 다중 경로 대역폭 결합, 모바일/Wi-Fi 핸드오버 무단절
447. SCTP (Stream Control Transmission Protocol) - 다중 스트림, 멀티 호밍 (Multi-homing), 4단계 핸드셰이크(쿠키방식)
448. UDP 헤더 구조 - 8바이트 (포트, 길이, 체크섬 등 최소 기능)
449. 브로드캐스트 / 멀티캐스트 전송은 UDP만 가능
450. 실시간 전송, 오버헤드 최소화 목적 (VoIP, DNS, 스트리밍)
451. RTP (Real-time Transport Protocol) - UDP 위에서 동작 (순서번호, 타임스탬프)
452. RTCP (RTP Control Protocol) - 품질 감시 모니터링
453. XTP (Xpress Transport Protocol)
454. QUIC (Quick UDP Internet Connections) - 전송 계층 혁신 (멀티플렉싱, 0-RTT/1-RTT 핸드셰이크)
455. QUIC 전송 - TCP가 아닌 UDP 상위에 구현됨
456. HOL (Head-of-Line) 블로킹 문제 해결 (독립적 스트림 처리 적용)
457. QUIC 연결 마이그레이션 (Connection Migration) - IP 변경시에도 연결 유지 (Connection ID)
458. TLS 1.3 기본 내장 - 보안성과 지연 단축 동시 확보
459. FEC 기능 선택적 포함 (초기)
460. 패킷 손실 복구 메커니즘 개선 - 고유 패킷 번호 (재전송시 번호 바뀜)