토픽 155 / 164·비교표
## Part 3: 전송 계층
TCP vs UDP
| 항목 | TCP | UDP |
|---|
| 연결 | 연결 지향 (3-way Handshake) | 비연결 (즉시 전송) |
| 신뢰성 | 보장 (ACK, 재전송) | 미보장 (Best Effort) |
| 순서 보장 | 시퀀스 번호로 보장 | 미보장 |
| 흐름/혼잡 제어 | 슬라이딩 윈도우 / Slow Start 등 | 없음 |
| 헤더 크기 | 20~60바이트 | 8바이트 |
| 속도 | 느림 (오버헤드) | 빠름 |
| 용도 | 파일 전송, 웹, 이메일 | 실시간 스트리밍, DNS, 게임 |
TCP vs SCTP vs UDP
| 항목 | TCP | SCTP | UDP |
|---|
| 연결 | 연결 (3-way) | Association (4-way) | 비연결 |
| 스트림 | 단일 | 멀티스트리밍 | 없음 |
| 홈 | 단일홈 | 멀티호밍 (Failover) | 단일 |
| HOL Blocking | 있음 | 해결 (독립 스트림) | 없음 |
| 메시지 경계 | 바이트 스트림 | 보존 | 보존 |
| 용도 | 범용 | 시그널링 (SS7, 5G) | 실시간 |
QUIC vs TCP
| 항목 | QUIC | TCP |
|---|
| 기반 | UDP | TCP |
| 연결 설정 | 0/1-RTT | 3-way + TLS (3-RTT) |
| HOL Blocking | 스트림별 독립 (해결) | 전체 차단 (발생) |
| 암호화 | TLS 1.3 내장 (필수) | 선택적 |
| 연결 마이그레이션 | 지원 (Connection ID) | 불가 (IP 변경 시 재연결) |
| 적합 | 모바일, 실시간 웹 | 범용 |
3-Way Handshake vs 4-Way Termination
| 항목 | 3-Way Handshake (수립) | 4-Way Termination (종료) |
|---|
| 메시지 | SYN → SYN+ACK → ACK | FIN → ACK → FIN → ACK |
| RTT | 1.5 RTT | 2 RTT |
| 취약점 | SYN Flood | TIME_WAIT 포트 고갈 |
| 특징 | ISN 랜덤화 (보안) | Half-Close (잔여 데이터 전송) |
SYN Cookie vs SYN 프록시 vs Rate Limiting
| 항목 | SYN Cookie | SYN 프록시 | Rate Limiting |
|---|
| 방식 | Stateless (ISN 인코딩) | Stateful (방화벽 대행) | 임계값 제한 |
| 부담 | CPU | 방화벽 | 단순 |
| TCP 옵션 | 제한 (Window Scale, SACK) | 유지 | 무관 |
| 위험 | 낮음 | 낮음 | 정상 트래픽 차단 |
TCP 혼잡 제어: Reno vs CUBIC vs BBR
| 항목 | Reno | CUBIC | BBR |
|---|
| 방식 | AIMD (손실 기반) | 3차 함수 (손실 기반) | 지연 기반 (RTT 추정) |
| 복구 | Fast Recovery | 빠른 회복 | 버퍼블로트 방지 |
| 적합 | 기본 | 고BDP 네트워크 (Linux 기본) | 고지연/손실 환경 (Google) |
| 수렴 | 느림 | 중간 | 빠름 |
Stop-and-Wait vs Sliding Window
| 항목 | Stop-and-Wait | Sliding Window |
|---|
| 전송 방식 | 1개 전송 후 ACK 대기 | W개 연속 전송 |
| 이용률 | 낮음 (1/(1+2a)) | 높음 (W/(1+2a)) |
| 효율 | 낮음 (RTT 대기) | 높음 (파이프라인) |
| 복잡도 | 단순 | 버퍼/시퀀스 관리 필요 |