3방향 핸드셰이크란 무엇인가요? 핸드셰이크를 세 번 수행해야 하는 이유는 무엇인가요?
TCP/IP 프로토콜에서 TCP 프로토콜은 안정적인 연결 서비스를 제공하며 아래 그림과 같이 3방향 핸드셰이크를 사용하여 연결을 설정합니다.
호스트 A는 클라이언트이고 호스트 B는 서버입니다.
확인 번호: 해당 값은 보낸 사람의 전송 시퀀스 번호 + 1(즉, 다음 시퀀스 번호)과 같습니다. 수신자는 수신을 기대합니다).
설명: (1) 첫 번째 핸드셰이크: 연결을 설정할 때 클라이언트 A는 SYN 패킷(SYN=j)을 서버 B로 보내고 SYN_SEND 상태로 들어가 서버 B의 확인을 기다립니다.
(2) 두 번째 핸드셰이크: 서버 B는 SYN 패킷을 수신하고 클라이언트 A의 SYN(ACK=j+1)을 확인하는 동시에 SYN 패킷(SYN=k)을 보냅니다. 즉, SYN+ACK 패킷이며, 이때 서버 B는 SYN_RECV 상태로 진입합니다.
(3) 세 번째 핸드셰이크: 클라이언트 A는 서버 B로부터 SYN+ACK 패킷을 수신하고 확인 패킷 ACK(ACK=k+1)를 서버 B로 보냅니다. 패킷이 전송된 후 클라이언트 A는 서버 B는 ESTABLISHED 상태로 들어가고 3방향 핸드셰이크를 완료합니다.
필요성: