4-way-handshake 에 대해 설명해주세요.

·2023년 4월 13일
0
post-thumbnail

4-way-handshake 과정

TCP 프로토콜에서 4-way-handshake 과정은 TCP 연결 해제 과정으로, 클라이언트와 서버 간에 신뢰성 있는 연결을 해제하기 위해 4번의 패킷 교환이 이루어진다.

  1. 클라이언트는 연결을 종료하고자 FIN 패킷을 보낸다. 이 패킷에는 클라이언트가 전송한 모든 데이터의 난수의 시퀀스 번호가 포함된다.

  2. 서버는 FIN 패킷을 받고, 클라이언트에게 ACK 패킷을 보낸다. 이때, 서버는 아직 전송되지 않은 데이터가 있다면 이를 전송한다. ACK 패킷에는 FIN 패킷에 포함된 시퀀스 번호 + 1 의 값이 포함되어 있다.

  3. 서버에서 클라이언트에게 보내야 할 모든 데이터를 전송이 완료되면, FIN 패킷을 클라이언트에게 보낸다. FIN 패킷에는 난수의 시퀀스 번호가 포함된다.

  4. 클라이언트는 서버의 FIN 패킷을 받고, 서버에게 ACK 패킷을 보낸다. ACK 패킷에는 FIN 패킷에 포함된 시퀀스 번호 + 1 의 값이 포함되어 있다.

왜 4번의 연결과정이 필요한가

서로의 존재를 파악하기 위해서이다.

클라이언트가 모든 요청을 다 보냈다는 것을 알리기 위해 1번, 서버가 이를 파악했음을 위해 1번, 서버가 모든 응답을 다 보냈다는 것을 알리기 위해 1번, 클라이언트가 이를 파악했음을 위해 1번 해서 4번이다.

profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

0개의 댓글