Oh My Algorithm
Concept Guide3-way · 4-way

TCP 핸드셰이크 (TCP Handshake)

TCP는 데이터를 주고받기 전에 3-way 핸드셰이크로 양방향 통신 준비를 확인하고, 끝낼 때는 4-way 핸드셰이크로 각 방향을 차례로 닫습니다. 각 단계마다 SYN·ACK·FIN 플래그와 순서 번호(seq/ack)를 교환하며 양쪽의 연결 상태가 단계적으로 바뀝니다.

01 개념 한눈에 보기

Interactive Step-by-Step
TAP OR HOVER
3-Way Handshake · 연결 수립
💻Client
CLOSED
🗄️Server
LISTEN
SYN
seq=x
SYN + ACK
seq=y, ack=x+1
ACK
ack=y+1

TCP 연결은 3번의 메시지로 서로의 통신 준비를 확인합니다. 시작 전 클라이언트는 CLOSED, 서버는 연결을 기다리는 LISTEN 상태입니다.

Logic Node1 / 5
TAP OR HOVER
4-Way Handshake · 연결 종료
💻Client
ESTABLISHED
🗄️Server
ESTABLISHED
FIN
seq=u
ACK
ack=u+1
FIN
seq=v
ACK
ack=v+1

연결을 끊을 땐 각 방향을 따로 닫아야 해서 보통 4번의 메시지가 오갑니다. 시작은 양쪽 모두 ESTABLISHED 상태입니다.

Logic Node1 / 6

02 쉽게 이해하기

For Everyone
🔑비유

전화 통화처럼 "들려요?"(SYN) → "네 들려요, 그쪽은요?"(SYN+ACK) → "저도 들려요"(ACK)로 서로를 확인한 뒤 대화를 시작하고, 끝낼 땐 양쪽이 각자 "이만 끊을게요"라고 인사합니다.

💡쉽게 말하면

연결을 열 때는 SYN → SYN+ACK → ACK 세 번을 주고받아 양쪽 모두 보내고 받을 준비가 됐음을 확인합니다(ESTABLISHED).

닫을 때는 한 방향씩 닫아야 해서 FIN → ACK → FIN → ACK 네 번이 오가며, 마지막엔 지연 패킷을 대비해 TIME-WAIT로 잠시 기다린 뒤 완전히 종료합니다.

📍어디에 쓰나
  • 신뢰성 있는 연결(HTTP·HTTPS·SSH 등) 동작 원리 이해
  • 연결 지연·포트 상태(TIME-WAIT) 진단
  • 방화벽·로드밸런서 동작 분석
Guide Progress0%