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

·2023년 4월 13일
0
post-thumbnail

3-way-handshake 과정

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

  1. 클라이언트는 서버에 SYN 패킷을 보낸다. 이 패킷에는 난수의 시퀀스 번호가 포함되어 있다.

  2. 서버는 SYN 패킷을 받고, 클라이언트에게 ACK 패킷과 SYN 패킷을 함께 보낸다. ACK 패킷에는 클라이언트에서 받은 시퀀스 번호 +1 이 포함되어 있으며 이를 통해 어떤 클라이언트가 보낸 요청인지 파악한다.

  3. 클라이언트는 ACK 패킷을 받고, 서버에서 보낸 시퀀스 번호 +1 을 다시 ACK 패킷에 담아 서버에 보낸다. 이제 클라이언트와 서버는 데이터 전송을 위한 신뢰성 있는 연결 설정이 완료된 것이다.

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

클라이언트가 서버 모두 서로의 존재를 파악하기 위해서이다. TCP 프로토콜은 양방향성 커넥션으로 클라이언트와 서버가 서로의 존재를 알아야 한다. 클라이언트가 자신을 알리기 위해 1번, 서버가 클라이언트를 파악했음에 1번, 서버의 응답을 클라이언트가 파악했음을 1번 해서 3번이다.

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

0개의 댓글