El protocolo de enlace de tres vías y el gesto de cuatro vías de TCP son fáciles de entender

Apretón de manos de tres vías

1. Antecedentes: TCP está ubicado en la capa de transporte y su función es proporcionar servicios confiables de flujo de bytes para entregar datos con precisión al destino. Por lo tanto, el protocolo TCP adopta una estrategia de protocolo de enlace de tres vías.

2. Principio:

1) El remitente primero envía un paquete de datos con el indicador SYN (sincronización) al receptor.

2) Después de que el receptor lo recibe, envía de vuelta un paquete de datos con el indicador SYN/ACK para transmitir información de confirmación, indicando que lo he recibido.

3) Finalmente, el remitente devuelve un paquete de datos con un indicador ACK, lo que significa que lo sé y que el "apretón de manos" ha terminado.

En términos sencillos

1) Cliente: Oye, John Doe, soy yo, ¿has oído eso?

2) Servidor: Lo escuché, ¿puedes oírme?

3) Cliente: Está bien, podemos escucharnos, nuestra comunicación puede aquí vamos.

Wavehand de cuatro vías

1. Significado: cuando la parte pasiva recibe la notificación del mensaje FIN de la parte activa, solo significa que la parte activa no tiene datos enviados a. la parte pasiva. Sin embargo, es posible que no todos los datos de la parte pasiva se envíen completamente a la parte activa, por lo que la parte pasiva no cerrará el SOCKET de inmediato. Es posible que deba enviar algunos datos a la parte activa y luego enviar un mensaje FIN a la parte activa. parte para decirle a la parte activa que esté de acuerdo. La conexión se cierra, por lo que el mensaje ACK y el mensaje FIN aquí se envían por separado en la mayoría de los casos.

2. Principio:

?1) Primera ola: el cliente envía un FIN para cerrar la transmisión de datos del Cliente al Servidor, y el Cliente ingresa al estado FIN_WAIT_1.

?2) La segunda ola: después de recibir el FIN, el Servidor envía un ACK al Cliente, confirmando que el número de secuencia es el número de secuencia recibido + 1 (lo mismo que SYN, un FIN ocupa uno número de secuencia) y el servidor ingresa al estado CLOSE_WAIT.

?3) La tercera ola: el servidor envía un FIN para cerrar la transmisión de datos del servidor al cliente, y el servidor ingresa al estado LAST_ACK.

?4) La cuarta ola: después de que el Cliente recibe el FIN, el Cliente ingresa al estado TIME_WAIT y luego envía un ACK al Servidor. El número de secuencia de confirmación es el número de secuencia recibido + 1, y el servidor entra en estado CERRADO, completado cuatro veces. Agita la mano

En términos sencillos

1) Cliente: he terminado de decir todo

2) Servidor: Lo he escuchado todo, pero espérame, aún no he terminado de hablar

3) Servidor: Está bien, ya terminé de hablar

4) Cliente: Está bien, entonces nuestra comunicación ha terminado