클라이언트는 서버에게 연결 요청(TCP SYN 세그먼트)을 보냅니다.
서버는 연결 요청(SYN)을 수신하고, 연결 허가 응답(SYN ACK)을 보냅니다.
클라이언트는 연결 허가 응답(SYN ACK)을 수신하고, 연결 허가 확인(ACK)을 보냅니다. 단, 이때 데이터를 포함해서 보낼 수 있습니다.
클라이언트는 서버에게 연결 해제 요청(TCP FIN)을 보냅니다.
서버는 연결 해제 요청(FIN)을 수신합니다. 클라이언트에게 연결 해제 요청 확인(ACK)으로 응답합니다. 그리고 전송해야할 나머지 데이터들을 모두 보냅니다. 다 보냈으면, 서버 연결 종료 상태 진입(FIN)을 클라이언트에게 보냅니다. FIN을 보낸 직후 연결 종료 상태에 진입합니다.
클라이언트는 FIN을 수신하고, 서버 연결 종료 상태 진입 확인(ACK)으로 응답합니다. 클라이언트는 ACK를 보낸 직후 잠깐의 시간을 기다린 후 종료합니다. 여기서 잠깐 기다리는 이유는, 아직 서버로부터 받지 못한 데이터가 있을 것을 대비해 일정 시간 동안 잉여 패킷을 기다리는 것입니다.
서버는 서버 연결 종료 상태 진입 확인(ACK)을 수신하면, 연결을 종료합니다.