TCP의 연결해제 : 4 WAY HANDSHAKE TIME_WAIT

carlkim·2023년 10월 31일
0

CS학습 - 네트워크

목록 보기
13/48

TCP의 연결해제 과정 : 4 WAY HANDSHAKE TIME_WAIT

  1. 클라이언트가 FIN_WAIT_1 상태가 되면서 FIN 세그먼트를 서버에 보낸다.

  2. 서버와 클라이언트는 ESTABLESHED 상태가 된 상태.(연결상태)

3 서버는 CLOSE_WAIT 상태가 된다(클라이언트가 FIN_WAIT_1 상태를 보냈을 때)

  1. 서버는 CLOSE_WAIT 상태에서 ACK를 보낸다

  2. 클라이언트는 FIN_WAIT_2 상태가 된다.

  3. 서버는 조금 있다가 LAST_ACK 단계가 되면서 FIN 태그를 보낸다.

  4. 클라이언트는 TIME_WAIT 상태가되면서 일정시간 이후에 CLOSED 단계가 된다.

  5. 클라이언트는 ACK 단계를 서버에게 보내면 서버도 CLOSED 단계가 된다.

일정 시간 지나야 닫히는 이유는 지연 패킷을 받기 위해서.

혹시라도 넘어오는 데이터가 있는지 모르니까

데이터의 무결성을 지키기 위해서 기다린다.

TIME_WAIT

승객들이 막차를 타는 행동과 비슷

지연 패킷이 발생했을 때 데이터 무결성을 해결하기 위함, 두 배의 최대 세그먼트 수명(MSL) 시간을 기다립니다, 기본적으로 MSL은 2분입니다. 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태를 말하며 지연 패킷 등의 문제를 해결하는데 쓰인다.
또한 연결을 올바르게 닫힌상태로 만들기 위해 존재, 예를 들어 CLOSED가 아닌 LAST_ACK로 되어 있으면 그 다음 연결 때 오류가 나타난다.

profile
가장 나답게 문제해결.

0개의 댓글