IT Technology/Network

[TCP] 4-way Handshake란?

by빵수 2021. 10. 23. 22:33
728x90
반응형

[TCP] 4-way Handshake란?

 

 

 

 

 

● 4-way Handshake란?

 

TCP/IP 네트워크 환경에서 서버와 클라이언트를 연결을 해제(세션 종료)하는데 필요한 프로세스이다.

 

 

TCP FLAG

 

 

 

 4-way Handshake 프로세스

 

 

1) 클라이언트에서 서버와의 연결 종료를 위해 서버에 FIN 패킷을 보내고 FIN_WAIT1 상태가 됩니다.

 - 반대로 서버에서 먼저 끊을 수 도 있다.

2) 서버는 클라이언트로부터 FIN을 받고 응답 패킷 ACK을 보냅니다. 상태는 CLOSE_WAIT가 됩니다

3) 서버가 통신이 끝나면, 즉 연결을 종료할 준비가 되면 클라이언트에게 FIN패킷을 보내고 LAST_WAIT 상태가 됩니다  

4) 클라이언트는 확인 패킷 ACK을 보내고 TIME_WAIT 상태가 된다.

 

위 과정을 통해 서버와 클라이언트는 안전하게 세션을 종료하게 된다.

 

 

 

 

● tcpdump로 4-way Handshake 확인

 

test-1 서버(출발지)에서 목적지 KT DNS 서버(168.126.63.1) 53 포트 telnet 접속 후 연결 해지를 tcpdump로 덤프를 뜬 내용이다.

tcpdump에서는 ACK 플래그를 "."(점)으로 표시합니다.

서버 -> test-1 : FIN ACK

test-1 -> 서버 : FIN ACK

서버 -> test-1 : ACK

 

 

 

 

● wireshark로 4-way Handshake 확인

 

192.168.210.102(출발지)에서 목적지 KT DNS 서버(168.126.63.1) 53 포트 접속 후 연결을 끊은 내용입니다.

아래 내용을 보면 서버에서 먼저 FIN을 날려 연결을 끊으려는 하는 모습이네요 

서버 -> 클라이언트 : FIN ACK

클라이언트 -> 서버 : ACK

클라이언트-> 서버 : FIN ACK

서버 -> 클라이언트 : ACK

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

출처

https://sh-safer.tistory.com/146

반응형