Preguntas de la entrevista de operación y mantenimiento sobre el "protocolo de enlace de tres vías de TCP" varios "por qué"

Preguntas de la entrevista de operación y mantenimiento sobre el protocolo de enlace de tres vías de TCP, varios "por qué"

1. ¿Podría decirnos la estructura de los paquetes TCP?

  • TCP está en la capa de transporte y maneja la comunicación de puerto a puerto, por lo tanto : el número de puerto de origen inicial y el número de puerto de destino del encabezado del mensaje;
  • El número de secuencia de 32 bits Seq, en bytes , se refiere al número de secuencia del primer byte al comienzo de la parte de datos del mensaje;
  • El número de secuencia de reconocimiento de 32 bits ack, la unidad es byte , lo que significa que se espera que el otro puerto lateral envíe datos desde el primer byte;
  • Longitud del encabezado de 4 bits, rango 0-15, la unidad es de 4 bytes , la longitud del encabezado es de hasta 60 bytes, pero debido a que el encabezado tiene la información de identificación del mensaje necesaria y las restricciones de contenido del protocolo (contexto), se acuerda que al menos 20 bytes ;
  • Se reservan 6 bits, se ponen a cero y se reservan para las generaciones futuras.
  • Bits de función: URG, ACK, PSH, RST, SYN, FIN
    • URG: bit urgente, que identifica si los datos son urgentes o no, y se utiliza junto con el puntero de datos en la cabeza y la cola, es decir, el byte desde el primer byte hasta el byte especificado por el puntero urgente son datos urgentes y deben transmitirse lo antes posible.
    • ACK no es el acuse de recibo anterior. Recuerde que solo el ACK es 1 y el campo del número de acuse de recibo es válido, y el acuse de recibo no es válido si el número de acuse de recibo es 0; por lo tanto, después de que alguien le pregunte cuánto ACK es después de que se establezca la conexión TCP, ¿responderá? Por supuesto que es 1.
    • PSH: La capa de transporte se entrega al proceso de solicitud de recepción lo antes posible, ya no espera hasta que se llena todo el caché con la capa de transporte para entregarlo hacia arriba, entonces, ¿entiende para quién es este bit ? Así es, la capa de transporte en el extremo receptor.
    • RST: Restablecer bit (¡tan incómodo!) Cuando RST = 1, cuando hay un error de conexión grave durante la conexión TCP, la conexión debe liberarse y luego la conexión TCP de la capa de transporte debe restablecerse. Entonces, ¿sabes cuándo es útil este bit ? ¡Así es, después del proceso de conexión TCP y la conexión es exitosa ! Durante el proceso de conexión, el tercer protocolo de enlace falla y el receptor debe enviar un mensaje RST = 1 para cerrar de manera forzosa esta conexión TCP. ¿Qué sucede después de que la conexión es exitosa? Apareció uno de los dos lados de la transmisión de salida, el host se bloqueó, etc., ¡este bit también fue útil! A esta persona a menudo se le pregunta y debe memorizarse.
    • SYN: bit de sincronización, 1 significa que este paquete es una solicitud de conexión (primer reconocimiento) o un mensaje de recepción de conexión (segundo reconocimiento), ¿comprende? Después de que la conexión sea exitosa, o del tercer protocolo de enlace, este es 0.
    • FIN: El bit de terminación se usa para liberar la conexión de una parte a la otra, por lo que les pregunto, en el transcurso de cuatro ondas de mano, el mensaje con FIN = 1 apareció varias veces y fue correcto dos veces, porque es una comunicación full-duplex. Una parte debe informar a la otra parte que no le enviaré ningún dato nuevo.
  • Campo de ventana: 2 bytes. Señale cuántos bytes de datos puede enviar la otra parte desde el espacio de búfer de la capa de transporte actual . Entonces les pregunto, ¿estos ** datos de caché incluyen el encabezado? ** ¡Por supuesto que no está incluido!
  • Suma de comprobación: 2B, compruebe el encabezado y los datos. Memorizar
  • Puntero urgente: 2B, que indica cuántos bytes de datos urgentes hay, contando desde la parte de datos.
  • Campo de opción: longitud variable.
  • Parte de datos.
    Inserte la descripción de la imagen aquí

2. ¿Podría describir el proceso del apretón de manos de tres vías?

Inserte la descripción de la imagen aquí

  • El primer protocolo de enlace : el cliente (Cliente) envía el primer paquete al servidor (Servidor) con los bits de la bandera: SYN = 1, ACK = 0 y el número de secuencia Seq = x. El cliente ( estado CERRADO original ) ingresa: estado SYN-SEND , esperando que el servidor confirme;

  • El segundo protocolo de enlace : el servidor recibe el paquete enviado por el cliente y luego envía el segundo paquete. SYN del paquete = 1, ACK = 1 , el número de secuencia de recepción ack es x + 1, el número de secuencia de envío Seq es y, y el servidor ingresa SYN -Estado RCVD ;

  • El tercer protocolo de enlace : después de recibir el paquete del servidor, el cliente envía el último paquete al servidor. El bit de bandera SYN = 0, ACK = 1 , el número de secuencia de envío Seq es x + 1 y ack es y + 1. Después de que se envía este paquete, tanto el cliente como el servidor ingresan al estado ESTABLECIDO uno tras otro . Hasta ahora, el apretón de manos de tres vías está completo.

3. ¿Por qué hay un tercer apretón de manos en lugar de dos?

  • El protocolo de enlace bidireccional solo permite que una parte establezca un ISN , mientras que la otra parte lo reconoce. Esto significa que solo una parte puede enviar datos .
  • TCP es un protocolo de comunicación bidireccional , lo que significa que cualquier extremo debería poder enviar datos de forma fiable. Ambas partes deben establecer un ISN (es decir, un número de secuencia inicial generado aleatoriamente ), y ambas partes deben reconocer el ISN del otro y decirse entre sí este valor para lograr la sincronización entre las dos partes y garantizar una transmisión confiable.
  • En resumen, una de las partes debe confirmar el número de secuencia de secuencia enviado por la otra parte para que se considere una conexión unidireccional. Por ejemplo, ambas partes están de acuerdo en que se requieren al menos tres apretones de manos, ¿comprende?

4. ¿Qué sucede si falla el tercer apretón de manos?

  • Una vez que el extremo receptor ha estado en el estado SYN-RCVD, no ha recibido el mensaje ACK. Si se agota el tiempo , no retransmitirá el mensaje de confirmación. En su lugar, enviará directamente el segmento del mensaje con RST = 1 , entrará en el estado CERRADO y empezará de nuevo. Ingrese al estado ESCUCHAR.
    Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_31789689/article/details/108208865
Recomendado
Clasificación