더북(TheBook)

2.6.2.4 연결 해제

TCP 연결을 종료하려면 양측이 종료 요청 및 응답을 주고받아야 한다. 연결을 종료하기 원하는 호스트는 FIN 패킷을 보내 데이터 전송이 끝났다는 걸 알려준다. 이후 송신용 버퍼에 있는 모든 데이터를 비롯해 FIN 패킷까지 정상적인 절차로 전송하고, ACK를 받을 때까지 재전송도 통상과 같이 수행한다. 하지만 TCP 모듈은 더 이상 윗단 계층이 주는 데이터는 추가로 보내지 않는다. 또한, 상대편 호스트가 보내는 데이터를 받기는 하지만 모두 위에 넘기지 않고 그냥 ACK만 보낸다. 한편 상대편도 그쪽의 데이터를 다 보낸 뒤엔 마지막으로 FIN을 보낼 것이다. 연결을 해제하려는 호스트가 FIN을 보내어 그 ACK를 받고, 또 상대 호스트의 FIN도 받으면 비로소 연결이 완전히 종료되어 연결 상태가 모두 삭제된다. 혹은 ACK를 기다리다가 시간이 초과되면 마찬가지로 연결이 완전히 종료된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.