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).

구분TCPUDP
비유등기우편일반 엽서
연결3-way handshake로 수립없음 (connectionless)
신뢰성순서·무손실 보장, 재전송없음 (앱이 직접)
속도핸드셰이크 비용즉시 전송
머리표 (헤더)20 byte8 byte
쓰는 곳HTTP/HTTPS, SSH, DBDNS, 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/21FTP
22SSH
25SMTP (메일 송신)
53DNS (UDP 주력)
80HTTP
443HTTPS / HTTP2 / HTTP3
3000Next/Node dev
5432PostgreSQL
6379Redis
27017MongoDB
실기 드릴 2문항
edit실기 드릴 · 단답형

TCP 연결 수립 단계의 공식 이름은?

check_circle실기 드릴 · OX

HTTP/3는 TCP 기반이다.