본문 바로가기
CS/[널널한 개발자] 네트워크

4-3] L4 수준에서 외울 것들 - TCP 연결 종료 및 상태 변화

by 묻공러 2023. 6. 20.

TCP 연결 종료(4-way handshaking) 및 상태 변화

클라이언트가 연결을 시작 및 종료하는 것이

일반적인 TCP 통신체계이다

 

연결 종료는 Application 수준에서 일어나는 것이고

여기서 Application 수준이란 Socket보다 위의 단계인 Process 수준을 의미한다

 

연결 종료는 위 그림처럼 [FIN + ACK, ACK 형태] * 2로 진행이 되고

Client가 FIN + ACK를 진행하고 Server가 ACK를

Server가 FIN + ACK를 진행하고 Client가 ACK를 하는 과정을 거치게 된다

 

또한, 그 과정을 중에 Process들은 FIN_WAIT, TIME_WAIT, CLOSE_WAIT, LAST_ACK과 같은 과정을 거치게 된다

그리고 Application Protocol에서 Server가 연결을 종료하는 것이 아닌

Client가 연결을 종료하도록 유도해야 Server에서 TIME_WAIT가 발생하지 않는다

 

다시 정리하면, 아래 그림처럼 정리된다

Client는 

 

Server는

 

추가적으로, 아래 그림처럼

Server가 SYN 연결 받는다고 했는데 연결을 마무리하지 않고 FIN이 오는 경우에는 이동을 건너뛰게 된다