Step by Security Study
4 Way Handshaking 본문
개념
TCP의 연결을 종료하는 과정
4번의 패킷 교환으로 회선 연결을 정상적으로 끊게 됨
과정
FIN
ACK
FIN+ACK
ACK
최초에는 서로 통신 상태이기 때문에 양쪽이 ESTABLISHED 상태이다.
1. 통신을 종료하고자 하는 클라이언트가 서버에거 FIN 패킷을 보내고 자신의 FIN-WAIT1 상태로 대기
2. FIN 패킷을 받은 서버는 해당 포트를 CLOSE_WAIT으로 바꾸고 잘받았다는 ACK를 클라이언트에게 전하고 ACK를 받은 클라이언트는 상태를 FIN-WAIT2로 변경한다. 그와 동시에 서버에서는 해당 포트에 연결되어 있는 Application에게 Close ()를 요청한다.
3. Close () 요청 받은 Application은 종료 프로세스를 진행시켜 최종적으로 Close ()가 되고 서버는 FIN 패킷을 클라이언트에게 전송 후 자신의 LAST_ACK로 상태를 바꾼다.
4. FIN-WAIT2에서 서버가 연결을 종료했다는 신호를 기다리다가 FIN을 받으면 받았다는 Ack를 서버에 전송하고 자신은 TIME-WAIT으로 전환한다. (TIME-WAIT에서 일정 시간이 지나면 CLOSED 되게 된다) 최종 ACK를 받은 서버는 자신의 포트도 CLOSED로 닫게 된다. -> 세션 종료
용어 정리
FIN : 클라이언트측의 연결 종료 요청
FIN + ACK : 서버 측의 종료 알림
'네트워크' 카테고리의 다른 글
IP와 MAC Address 정리 (0) | 2023.09.25 |
---|---|
ICMP 정리 (0) | 2023.09.23 |
3 Way Handshaking (0) | 2023.09.23 |
캡슐화 인캡슐레이션 디캡슐레이션 정리 (0) | 2023.09.23 |
TCP/IP 4계층 모델 (0) | 2023.09.23 |