topic★★★★★난이도 · 약 20분
TCP/UDP · 3-way handshake · 포트
TCP = 등기우편(확인·재전송), UDP = 일반 엽서(빠름·분실가능). 포트는 건물 안 방 번호.
#TCP#UDP#handshake#포트#QUIC
왜 배우는가
HTTP/REST는 TCP, 화상·게임·DNS는 UDP, HTTP/3는 UDP 기반 QUIC. 선택 이유를 알면 '왜 WebRTC가 안 끊기냐', 'HTTP/3가 왜 빠르냐' 감이 잡힌다.
포트(Port)는 IP 주소 뒤에 붙는 방 번호. `jit.co.kr:443` = 해당 서버의 443번 방(HTTPS). 한 서버에 여러 서비스가 동시에 돌 수 있게 해주는 식별자. 0~65535 범위, 잘 쓰는 번호는 80(HTTP) · 443(HTTPS) · 22(SSH) · 5432(Postgres) · 3000(Next dev).
| 구분 | TCP | UDP |
|---|---|---|
| 비유 | 등기우편 | 일반 엽서 |
| 연결 | 3-way handshake로 수립 | 없음 (connectionless) |
| 신뢰성 | 순서·무손실 보장, 재전송 | 없음 (앱이 직접) |
| 속도 | 핸드셰이크 비용 | 즉시 전송 |
| 머리표 (헤더) | 20 byte | 8 byte |
| 쓰는 곳 | HTTP/HTTPS, SSH, DB | DNS, WebRTC 음성, 게임, HTTP/3(QUIC) |
text
━━━ TCP 3-way handshake ━━━
클라 서버
│── SYN(seq=x) ──▶│ "여보세요, 연결할게요"
│◀─ SYN+ACK ──────│ "네, 저도 준비됐어요"
│── ACK ─────────▶│ "좋아요, 시작!"
│═══ 데이터 전송 ═══│
│── FIN ─────────▶│ "끝났어요"
│◀─ ACK ──────────│
│◀─ FIN ──────────│
│── ACK ─────────▶│
→ 실제 데이터 전송 전에 왕복 1.5회 필요 (RTT × 1.5)
→ 화상통화·게임엔 이 지연이 치명적 → UDP 선택매 HTTP 요청이 새 연결이면 핸드셰이크 비용이 쌓인다. HTTP/2의 연결 재사용, HTTP/3의 0-RTT가 왜 중요한지의 근거.
HTTP/3 = HTTPS over QUIC (UDP 기반). TCP를 버린 이유? 모바일에서 WiFi↔LTE 전환 시 TCP 연결이 끊긴다. QUIC는 연결 ID로 유지. 또한 3-way + TLS 핸드셰이크를 1-RTT 또는 0-RTT로 줄임. Cloudflare·Google이 밀고 있는 표준.
| 잘 쓰는 포트 | 서비스 |
|---|---|
| 20/21 | FTP |
| 22 | SSH |
| 25 | SMTP (메일 송신) |
| 53 | DNS (UDP 주력) |
| 80 | HTTP |
| 443 | HTTPS / HTTP2 / HTTP3 |
| 3000 | Next/Node dev |
| 5432 | PostgreSQL |
| 6379 | Redis |
| 27017 | MongoDB |
실기 드릴 2문항
edit실기 드릴 · 단답형
TCP 연결 수립 단계의 공식 이름은?
check_circle실기 드릴 · OX
HTTP/3는 TCP 기반이다.