TCP 3-way handshake는 TCP의 접속, 4-way handshake는 TCP의 접속 해제 과정이다.
- SYN: synchronize sequence number
- ACK: acknowledgement
연결(3-way)

- 클라이언트는 서버에 접속을 요청하는 SYN 패킷(M)을 보낸다
- 서버는 클라이언트의 요청인 SYN(M)을 받고 클라이언트에게 요청을 수락한다는 ACK(M+1)과 SYN(N)이 설정된 패킷을 발송한다.
- 클라이언트는 서버의 수락 응답인 ACK(M+1)과 SYN(N)을 받고 ACK(N+1)을 서버에 보내면 연결이 성립된다.
해제(4-way)

- 클라이언트가 연결을 종료하겠다는 FIN 플래그를 전송
- 서버는 FIN을 받고, 알았다는 확인 메세지로 ACK를 보냄
- 서버는 통신을 끝내기 전 데이터를 모두 보낼 때까지 Time out이 됨
- 서버는 데이터를 모두 보내고 통신이 끝났으면 FIN 플래그를 전송
- 클라이언트는 FIN를 확인했다는 ACK를 보냄
- 클라이언트의 ACK 메세지를 받은 서버는 소켓 연결을 close 한다.
⇒ 해제는 서버가 아직 보낼 데이터가 남아있을 수 있기 때문에, 4(3+1) way이다.
Share article