2023.09.27 - [Network/용어 및 개념] - [TCP] 3-Way handshake
TCP 4-way handshake 란?
TCP(Transmission Control Protocol)은 통신 시작을 위한 연결과정인 3-way handshake 과정을 거쳤습니다.
안전한 연결을 있다면 안전한 연결해제 또한 존재합니다. 이러한 과정을 4-way handshake입니다.
4-way handshake 동작방식
동장 방식은 4단계로 이루어집니다.
1. Clinet > Server : FIN Flag
> 클라이언트는 통신을 종료하고자 할 때 연결 종료를 시작하는 메시지를 서버에게 보냅니다.
> 클라이언트는 데이터 전송이 완료되었음을 나타내는 FIN 플래그가 설정된 패킷을 서버로 보냅니다.
> 클라이언트는 이때 FIN_WAIT 1 상태로 진입합니다.
이 상태에서 클라이언트는 아직 서버로부터 전송이 덜된 패킷이나 재전송된 패킷에 대비합니다.
2. Server > Client : ACK Flag
> 서버는 클라이언트의 FIN 플래그를 받아 데이터 전송이 완료되었음을 확인한 후 ACK 응답을 보냅니다.
> 서버는 아직 보낼 데이터가 남아 있을 수 있으므로 연결을 종료하지 않습니다.
> 서버는 CLOSE_WAIT 상태로 진입합니다.
3. Server > Client : FIN Flag
> 서버도 통신을 종료하고자 할 때 서버는 FIN플래그 패킷을 클라이언트로 보냅니다.
> 서버는 LAST_WAIT 상태로 진입합니다.
4. Client > Server : ACK Flag
> 클라이언트가 서버로부터의 FIN 패킷을 받아 이를 확인하는 응답으로 ACK 패킷을 보냅니다.
> 클라이언트는 TIME_WAIT 상태로 진입합니다.
> 클라이언트의 ACK 패킷을 받은 서버는 완전히 연결을 종료합니다.
4개의 과정을 통해 클라이언트와 서버 간에 안전하고 데이터 손실이 없이 TCP 연결을 종료합니다.
FIN : 연결 종료
쉽게 생각하자면!
손님이 "웹 서버"라는 음식점에서 식사를 마쳤습니다.
손님(Client), 사장(Server)
1. 손님 : "계산은 카드로 계산하겠습니다" (FIN)
2. 사장 : "네 손님 카드 받았습니다. 잠시만 기다려주세요!" (ACK)
3. 사장 : "손님 결제완료 되었습니다. 식사 맛있게 하셨나요?" (FIN)
4. 손님 : "맛있게 잘 먹었습니다. 다음에 또 방문하겠습니다" (ACK)
'Network > 용어 및 개념' 카테고리의 다른 글
[TCP] 3-Way handshake (0) | 2023.09.27 |
---|