데이터를 목적지까지 정확하게 전달하기 위해 TCP 프로토콜은 3방향 핸드셰이크 전략을 채택합니다. TCP 프로토콜을 사용하여 데이터 패킷이 전송된 후 TCP는 전송 후 상황을 무시하지 않고 상대방에게 성공적으로 전달되었는지 확인합니다. 핸드셰이크 중에는 TCP 플래그(SYN 및 ACK)가 사용됩니다.
송신측에서는 먼저 상대방에게 SYN 플래그가 포함된 데이터 패킷을 보냅니다. 이를 수신한 후 수신측에서는 확인 정보를 전달하기 위해 SYN/ACK 플래그와 함께 데이터 패킷을 다시 보냅니다. 마지막으로 송신 측에서는 "핸드셰이크"가 끝났음을 나타내는 ACK 플래그와 함께 데이터 패킷을 다시 보냅니다. 어떤 단계에서 뚜렷한 이유 없이 핸드셰이크가 중단되면 TCP 프로토콜은 동일한 데이터 패킷을 동일한 순서로 다시 보냅니다.
TCP 연결을 끊으려면 "4개 웨이브"가 필요합니다.
첫 번째 웨이브: 활성 종료 당사자가 FIN을 보내 활성 당사자에서 수동 종료 당사자로의 데이터 전송을 종료합니다. 즉, 활성 종료 당사자가 알려줍니다. 수동적 종료 당사자: 더 이상 데이터를 보내지 않습니다(물론 fin 패키지 이전에 보낸 데이터가 해당 확인 메시지를 받지 못한 경우 활성 종료 당사자는 계속 데이터를 다시 보냅니다). 적극적으로 종료하는 당사자는 여전히 데이터를 수락할 수 있습니다.
두 번째 웨이브: 수동 종료 당사자가 FIN 패킷을 수신한 후 상대방에게 ACK를 전송하고 확인 시퀀스 번호는 수신된 시퀀스 번호 + 1(SYN과 동일, 하나의 FIN이 하나의 시퀀스 번호를 차지함) ).
세 번째 물결: 수동적 종결 당사자는 수동적 종결 당사자에서 능동적 종결 당사자로의 데이터 전송을 닫는 데 사용되는 FIN을 보냅니다. 이는 활성 종결 당사자에게 내 데이터가 전송되었으며 더 이상 전송되지 않았음을 알리는 것을 의미합니다. 더 많은 데이터가 전송됩니다.
네 번째 웨이브: Active Closing Party가 FIN을 받은 후 Passive Closing Party에게 ACK를 보내고, 확인 시퀀스 번호는 받은 시퀀스 번호 + 1입니다. 이 시점에서 4개의 웨이브가 완성됩니다.
위 내용은 TCP 전송의 3방향 핸드셰이크와 4파장 전략에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!