통신의 시작을 알리는 3wayHandshake와 달리, 4wayHandshake는 세션을 종료하기 위해 수행되는 절차이다.
Client와 server가 established상태에서 통신을 마치고자 패킷을 주고받는다.
1. FIN-> 먼저 클라이언트가 연결을 종료하고자 하는 FIN플래그를 전송한다.
2. <-ACK 서버는 응답메시지를 보내고, 자신의 통신이 끝날때를 기다린다. 이 잠시의 시간을 TIME_WAIT상태라고 한다.
3. <-FIN 서버가 통신을 끝마쳤으면, 연결이 종료되었음을 클라이언트에게 FIN플래그를 전송해 알린다.
4. ACK-> 클라이언트측에서 확인했다는 메시지를 송신한다.