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이 오는 경우에는 이동을 건너뛰게 된다
'CS > [널널한 개발자] 네트워크' 카테고리의 다른 글
4-5] L4 수준에서 외울 것들 - TCP '연결'이라는 착각 (0) | 2023.06.20 |
---|---|
4-4] L4 수준에서 외울 것들 - TCP, UDP 헤더형식과 게임서버 특징 (0) | 2023.06.20 |
4-2] L4 수준에서 외울 것들 - TCP 연결과정 (0) | 2023.06.20 |
4-1] L4 수준에서 외울 것들 - TCP, UDP 개요 (0) | 2023.06.19 |
3-5] L3 수준에서 외울 것들 - TTL, 단편화, DHCP, ARP, Ping (0) | 2023.06.19 |