Handshake(3way ,4way)
by ksc036·2025. 05. 22. 오후 8:55
3-way handshake와 4-way handshake는 TCP 통신에서 연결을 설정하고 종료할 때 사용하는 절차입니다.
✅ 1. 3-Way Handshake (연결 설정) TCP 연결을 시작할 때 클라이언트와 서버가 서로 통신 가능한 상태인지 확인하고, **시퀀스 번호(SYN)**를 교환하며 연결을 설정합니다.
💡 과정
- 클라이언트 → 서버 : SYN
클라이언트가 연결을 요청하면서 SYN 패킷을 보냄 (Sequence Number 포함)
- 서버 → 클라이언트 : SYN + ACK
서버가 SYN을 수락하면서, 자신의 시퀀스 번호와 함께 ACK(응답)도 보냄
- 클라이언트 → 서버 : ACK
클라이언트가 서버의 SYN을 확인했다는 ACK을 보내고 연결 성립
📌 목적 서로의 전송 가능 상태 확인
시퀀스 번호 초기화 (데이터 전송 순서 보장 준비)
✅ 2. 4-Way Handshake (연결 종료) 연결을 종료할 때는 송신과 수신을 각각 독립적으로 종료해야 하기 때문에, 4단계가 필요합니다.
💡 과정
- 클라이언트 → 서버 : FIN
- 클라이언트가 데이터 전송을 끝냈다고 알림 (수신은 계속 가능)
- 서버 → 클라이언트 : ACK
- 서버가 FIN을 수신하고 확인 응답
- 서버 → 클라이언트 : FIN
- 서버도 데이터 전송을 끝냈다고 알림
- 클라이언트 → 서버 : ACK
- 클라이언트가 FIN 확인
📌 특징
-
TCP는 양방향 연결이므로, 종료도 각 방향마다 FIN + ACK가 필요함
-
클라이언트는 마지막 ACK을 보내고 TIME_WAIT 상태에서 일정 시간 대기 후 종료
CS
TCP
Network
이런 게시글은 어때요?
✅더 이상 게시글이 없어요! 🎉
1개의 댓글