Algunos conocimientos sobre el protocolo de enlace de tres vías de TCP

Apretón de manos de tres vías TCP para establecer notas de comunicación

Preparación del texto completo:

  • TCP: Protocolo de control de transmisión, un protocolo orientado a la conexión que proporciona un flujo de bytes de dúplex completo confiable para los programas de usuario.
  • Sección: La sección es la unidad de datos del protocolo de la capa de transporte TCP, generalmente la unidad más pequeña enviada por TCP
  • Número de secuencia de datos: TCP ordena los datos enviados asociando un número de secuencia a cada byte para garantizar la recuperación normal después de la recepción de datos.
  • SYN: SYN es una subsección, no lleva datos, solo encabezado TCP, encabezado IP y opciones de TCP

El siguiente es un diagrama de flujo del protocolo de enlace de tres vías de TCP interceptado del "Volumen 1 de programación de red UNIX":

Proceso de protocolo de enlace de tres vías TCP

  1. El servidor primero debe estar listo para recibir la solicitud de conexión del cliente (la inicialización se realiza a través de las funciones de socket, enlace y escucha, y luego se bloquea mediante accept para esperar a que llegue la solicitud del cliente); esto se denomina apertura pasiva
  2. El cliente llama a la función de conexión para iniciar una solicitud de conexión al servidor, llamada activa abierta; en este paso, el cliente envía una sección SYN al servidor, indicándole al servidor el número de serie inicial J de los datos que el cliente enviará en la conexión. ¡Esto completa el primer apretón de manos!
  3. Una vez que el servidor recibe la sección SYN del cliente, debe devolver un acuse de recibo (ACK); al mismo tiempo, también debe enviar una sección SYN (no solo el número de secuencia inicial del servidor a los datos del cliente, el cliente también debe conocer la secuencia inicial de datos del servidor Solo la comunicación bidireccional se puede realizar normalmente); generalmente, el servidor envía SYN y ACK en una sola sección en lugar de dividirlo en dos secciones. Este es el segundo apretón de manos.
  4. Dado que el servidor recibe un acuse de recibo (ACK) para el segmento SYN del cliente, el cliente también debe reconocer (ACK) después de recibir el segmento SYN del servidor. Entonces, el ACK devuelto por el cliente después de recibir el SYN del servidor es el tercer protocolo de enlace.

Lo siguiente es mi comprensión del protocolo de enlace de tres vías de TCP:

  1. Dado que se dice que TCP es confiable, lo más básico es garantizar las funciones normales de envío y recepción de ambas partes, y ambas partes saben que las funciones de envío y recepción de ambas partes son normales (es decir, no solo necesito saber que puedo enviar y recibir normalmente, sino que también necesito saber que la otra parte puede enviar y recibir normalmente. ; Y estrictamente hablando, el envío y la recepción normales aquí deben incluir o más hacer referencia al canal de comunicación normal entre el cliente y el servidor)
  2. Entonces, ¿cómo sabe que el envío y la recepción entre usted y la otra parte es normal?
  3. En el primer protocolo de enlace, el servidor normalmente puede recibir la sección SYN del cliente, lo que indica que la función de recepción del servidor y la función de envío del cliente son normales
  4. El segundo cliente de protocolo de enlace confirma que sus funciones de recepción y envío son normales (piense en ello, el éxito del segundo protocolo de enlace se basa en el éxito del primer protocolo de enlace, es decir, el cliente envía normalmente) y el servidor Las funciones de recepción y envío son normales (de manera similar, si el servidor no puede recibir (primer reconocimiento) o no puede enviar (segundo reconocimiento), el segundo reconocimiento no se puede completar)
  5. El cliente ya sabe que las dos partes están enviando y recibiendo normalmente, pero el servidor aún no puede saber completamente si las dos partes están enviando y recibiendo normalmente. En este momento, se requiere un tercer protocolo de enlace.
  6. Una vez que el cliente recibe el ACK + SYN del servidor y envía el ACK, puede conectarse y regresar; y el servidor necesita recibir el ACK del cliente antes de regresar. En otras palabras, el cliente regresa después de iniciar el tercer protocolo de enlace, y el servidor debe completar el tercer protocolo de enlace antes de finalizar la devolución. En comparación con el cliente, existe un cierto retraso.

Explique esta oración: "Estrictamente hablando, la transmisión y recepción normales aquí deben incluir o hacer referencia al canal de comunicación normal entre el cliente y el servidor". TCP generalmente no se usa para la comunicación en una sola computadora y los datos enviados desde un extremo aún no han llegado. El canal de comunicación en frente del otro extremo se llama canal, y el canal es relativamente inestable, lo que conducirá a una mayor posibilidad de pérdida de datos en el canal; por lo que la transmisión y recepción normal incluye la comunicación normal del canal antes de la recepción después de la transmisión.


referencia:

  1. "Programación de red UNIX Volumen 1: API de red de sockets" Capítulo 2

Supongo que te gusta

Origin blog.csdn.net/weixin_41629848/article/details/98648910
Recomendado
Clasificación