▪︎ TCP 통신
📌 TCP는 서버와 클라이언트 사이간을 종료하기 위해 4-way-handshake를 사용한다.
- TCP 4-way-handshake
- TCP/IP 프로토콜을 사용하여 통신을 하는 응용 프로그램이 상대방 컴퓨터와 세션을 종료하기 위해 수행되는 절차
- Client는 Established 상태, Server도 Established 상태이다.
- Client가 Server에 연결 종료 요청을 하기 위해 FIN 플래그를 전송한다.
- Client는 Estabilished에서 FIN-WAIT 상태 변경한다.
- Server는 Client가 보낸 FIN 플래그를 받고 요청을 정상적으로 받았다는 ACK를 전송한다.
- Server는 Established에서 CLOSE_WAIT로 상태 변경한다.
- Server가 연결을 종료할 준비가 되면, 이를 알리기 위해 Client에게 FIN 플래그를 전송한다.
- Server는 CLOSE_WAIT에서 LAST-ACK로 상태 변경한다.
- Client가 Server가 보낸 FIN 플래그를 받고 정상적으로 받았다는 ACK를 전송한다.
- Client는 FIN-WAIT에서 TIME-WAIT 상태 변경한다.
- Server는 Client가 보낸 ACK를 받고 LAST-ACK에서 CLOSED로 상태 변경한다.
- 일정 시간이 지난 후 Client는 TIME-WAIT에서 CLOSED로 상태 변경한다.
상태 | 설명 |
ESTABLISHED | 포트 연결 상태 |
FIN-WAIT | FIN 플래그를 기다리는 중 |
CLOSE_WAIT | ACK를 보내고 서버에서 종료에 대한 통신이 끝날 때까지 기다리는 상태 |
LAST-ACK | 연결 종료를 위한 준비가 되었음을 알리는 FIN 플래그 전송 후 서버 상태 |
TIME-WAIT | 연결 종료 후 도착하는 패킷이 유실되지 않게끔 일정 시간동안 세션 유지하는 상태 |
CLOSED | 세션을 만료하고 연결을 종료한 상태 |
'Network' 카테고리의 다른 글
NAT Gateway : NAT의 기본 개념과 AWS NGW 동작방식과 아키텍처 예시 (0) | 2022.11.13 |
---|---|
TCP 3-way-handshake (0) | 2022.11.11 |
네트워크 스위치 (0) | 2022.11.11 |