4 Way Handshake 는 TCP(Transmission Control Protocol)를 사용하여 클라이언트와 서버 간의 데이터 통신이 완료된 후, 연결을 안전하게 종료하기 위한 과정입니다. 이 과정에서 클라이언트와 서버는 총 4단계의 패킷 교환을 통해 서로에게 연결 종료를 알리고, 자원을 정리하여 다른 연결에 사용할 수 있게 됩니다.
데이터 전송이 완료되면 클라이언트는 서버에게 연결 종료를 요청하기 위해 FIN 패킷을 전송합니다. 이때 FIN 패킷에는 클라이언트가 전송한 마지막 시퀀스 번호가 포함되어 있습니다. 클라이언트가 FIN 패킷을 전송하면, 이후로 더 이상 데이터를 전송하지 않겠다는 의미가 됩니다.
서버가 클라이언트로부터 FIN 패킷을 받으면, 클라이언트의 연결 종료 요청을 수락하겠다는 의미로 ACK 패킷을 전송합니다. 이때 서버는 클라이언트의 마지막 시퀀스 번호에 1을 더한 값을 ACK 번호로 사용하여 클라이언트에게 돌려줍니다. 이렇게 함으로써 서버는 클라이언트의 FIN 패킷을 잘 받았음을 알리고, 클라이언트는 이를 확인할 수 있습니다.
서버는 클라이언트의 ACK 패킷을 확인한 후, 자신도 더 이상 데이터를 전송하지 않겠다는 의미로 FIN 패킷을 클라이언트에게 전송합니다. 이때 서버의 FIN 패킷에는 서버가 전송한 마지막 시퀀스 번호가 포함되어 있습니다.
마지막으로, 클라이언트는 서버로부터 받은 FIN 패킷을 확인하고, 서버의 마지막 시퀀스 번호에 1을 더한 값을 ACK 번호로 사용하여 ACK 패킷을 서버에게 전송합니다. 이렇게 함으로써 서로에게 연결 종료를 알리고, 클라이언트와 서버는 이를 확인할 수 있습니다.
4 Way Handshake는 클라이언트와 서버 간에 데이터 통신이 끝난 후, 연결을 안전하게 종료하는 데 필수적인 과정입니다. 이 과정을 통해 양쪽 시스템은 연결 종료를 서로 확인하고, 자원을 정리하여 다른 연결에 사용할 수 있게 됩니다. 또한, 4 Way Handshake 과정에서는 패킷의 손실, 중복 및 순서 변경 등의 문제를 방지할 수 있어 안정적인 네트워크 환경을 제공합니다.
4 Way Handshake의 대표적인 활용 사례로는 파일 전송이 있습니다. 사용자가 웹 서버에서 파일을 다운로드하거나 업로드할 때, 클라이언트와 서버 간의 데이터 전송이 완료되면 4 Way Handshake 과정이 진행됩니다. 이를 통해 양쪽 시스템은 서로에게 연결 종료를 알리고, 자원을 회수하여 다른 연결에 사용할 수 있게 됩니다.
이처럼 4 Way Handshake는 클라이언트와 서버 간의 데이터 통신을 안전하게 종료하는 데 중요한 역할을 하며, 파일 전송 등 다양한 인터넷 서비스에서 활용되고 있습니다. 이 과정을 통해 안정적인 네트워크 환경을 유지하며, 사용자들에게 원활한 인터넷 환경을 제공할 수 있습니다.