5. Capa de transporte (3) TCP

Tabla de contenido

Suplemento de funciones TCP 3.0

3.1 Formato del encabezado del segmento TCP

3.2 Gestión de conexiones TCP

3.2.1 Apretón de manos de tres mensajes

3.2.2 Cuatro mensajes saludando

3.3 Control de flujo TCP y transmisión confiable

3.4 Control de congestión TCP

3.4.1 Relación entre ventana de recepción, ventana de congestión y ventana de envío

3.4.2 Inicio lento y prevención de congestión

3.4.3 Retransmisión rápida y recuperación rápida


Suplemento de funciones TCP 3.0

  • TCP proporciona comunicación confiable full-duplex uno a uno , lo que permite que los procesos de aplicación en ambos lados de la comunicación envíen datos en cualquier momento. Por esta razón, ambos extremos de la conexión TCP están equipados con búferes de envío y búfer de recepción para almacenar temporalmente. datos de comunicación bidireccional.
  • TCP está orientado a flujos de bytes. Aunque la interacción entre el programa de aplicación y TCP es un bloque de datos (de diferentes tamaños) a la vez, TCP solo trata los datos entregados por el programa de aplicación como una serie de flujos de bytes no estructurados.
  • La longitud del mensaje UDP está determinada por el proceso de solicitud del remitente y la longitud del segmento del mensaje TCP está determinada por el valor de ventana proporcionado por el receptor y el nivel de congestión de la red actual . Si el bloque de datos enviado por el proceso de aplicación a la caché de TCP es demasiado largo, TCP lo dividirá en partes más cortas antes de enviarlo; si es demasiado corto, TCP también puede esperar hasta que se hayan acumulado suficientes bytes antes de formar un segmento y enviarlo. afuera.
  • El campo de protocolo del encabezado IP: TCP=6, UDP=17.

3.1 Formato del encabezado del segmento TCP

  • Número de puerto de origen y número de puerto de destino : cada uno ocupa 2B . El puerto es el SAP de la capa de transporte y la capa de aplicación. Las funciones de multiplexación y demultiplexación de la capa de transporte solo se pueden realizar a través de puertos.
  • Número de serie : Ocupa 4B, un total de 2 ^ 32 números de serie. Cada byte en el flujo de bytes transferido por una conexión TCP está numerado secuencialmente . El valor del campo de número de secuencia se refiere al número de secuencia del primer byte de datos enviado en este segmento.
  • Número de confirmación : Ocupa 4B, que es el número de secuencia del primer byte de datos que se espera recibir del siguiente segmento de mensaje de la otra parte. Si el número de confirmación = N, significa que todos los datos hasta el número de secuencia N-1 se han recibido correctamente. (El ACK de acuse de recibo acumulativo del protocolo de trama N de retroceso de la capa de enlace de datos indica que tanto N como N se han recibido correctamente)
  • Desplazamiento de datos (es decir, longitud del encabezado) : ocupa 4 bits e indica qué tan lejos está el inicio de los datos en el segmento TCP desde el inicio del segmento TCP. La unidad es 4B. La longitud máxima del encabezado TCP es 60B. Tenga en cuenta que no es el desplazamiento de datos utilizado en la fragmentación de datagramas IP, sino la longitud del encabezado TCP.
  • Bit de reconocimiento ACK : el campo del número de confirmación es válido solo cuando ACK=1; cuando ACK=0, el campo del número de confirmación no es válido. TCP estipula que una vez establecida la conexión, todos los segmentos del mensaje transmitido deben tener ACK establecido en 1.
  • Bit de sincronización SYN : Cuando SYN = 1, indica que se trata de un mensaje de solicitud de conexión o un mensaje de aceptación de conexión. Cuando SYN = 1, ACK = 0, indica que se trata de un mensaje de solicitud de conexión. Si la otra parte acepta establecer una conexión, debe usar SYN = 1, ACK = 1 en el mensaje de respuesta.
  • Bit de terminación FIN (finalizar) : Cuando FIN = 1, indica que los datos del remitente de este segmento de mensaje se han enviado y se requiere liberar la conexión de transmisión.
  • Ventana : Ocupa 2 B. El valor de la ventana es la base para que el receptor permita al remitente configurar la ventana de envío. Por ejemplo, supongamos que el número de confirmación es 701 y el campo de la ventana es 1000. Esto indica que la parte que envía este segmento todavía tiene números de secuencia de bytes 701 ~ 1700, un total de 1000 B de espacio en el búfer de recepción.
  • Suma de verificación : Ocupa 2 B. El alcance de la verificación del campo de suma de verificación incluye el encabezado y las partes de datos. Al calcular la suma de verificación, se agrega un pseudo encabezado de 12 B delante del segmento TCP.
  • Relleno : campo configuradode modo que toda la longitud del encabezado sea un múltiplo integral de 4B .
  • Bit reservado : reservado para uso futuro, pero debe establecerse en 0 por ahora.
  • Bit de emergencia URG : cuando URG = 1, indica que el campo del puntero de emergencia es válido.
  • Puntero de emergencia : ocupa 2B. Indica cuántos bytes de datos urgentes hay en este segmento (los datos urgentes están al frente de los datos del segmento).
  • Bit de inserción PSH (Push ): el TCP receptor recibe el segmento de mensaje con PSH = 1 y lo entrega al proceso de solicitud de recepción lo antes posible, en lugar de esperar hasta que se llene todo el caché antes de entregarlo hacia arriba.
  • Restablecer bit RST (Reast ): cuando RST = 1, indica que ocurrió un error grave en la conexión TCP (como una falla del host u otras razones), la conexión debe liberarse y luego se debe restablecer la conexión de transporte.
  • opciones . Longitud variable. TCP inicialmente especificaba solo una opción, la longitud máxima del segmento MSS . MSS es la longitud máxima del campo de datos en el segmento TCP.

Nota: El número de secuencia de un segmento de mensaje es el número del primer byte de su parte de datos.

3.2 Gestión de conexiones TCP

 Nota: El profesor Gao Jun de la Universidad Hu Ke tiene perfectas explicaciones en vídeo para las siguientes partes, y solo registra algunos puntos clave en sus notas personales para complementarlos más adelante. 

3.2.1 Apretón de manos de tres mensajes

  • El segmento de mensaje SYN (mensaje de solicitud de conexión o mensaje de aceptación de conexión) no puede transportar datos, pero consume un número de secuencia .
  • Los segmentos de confirmación TCP ordinarios pueden transportar datos, pero si no los transportan, el número de secuencia no se consume . Si el tercer segmento del protocolo de enlace de tres mensajes no transporta datos, el número de secuencia del siguiente segmento de datos que enviará el proceso del cliente TCP sigue siendo X+1.

3.2.2 Cuatro mensajes saludando

Cualquiera de los dos procesos que participan en la conexión TCP puede realizar una solicitud para liberar la conexión. 

  • TCP estipula que un segmento de mensaje TCP con el indicador de terminación FIN igual a 1 consume un número de secuencia incluso si no transporta datos.
  • El estado de espera 1 terminada indica que el cliente TCP ya no envía datos, pero el servidor TCP aún puede enviar datos.
  • Después de que el servidor ingresa al estado de espera de apagado, la conexión TCP está en un estado semicerrado . El cliente TCP ya no puede enviar datos, pero el servidor TCP aún puede enviar datos.

 

3.3 Control de flujo TCP y transmisión confiable

El mecanismo de transmisión confiable de la capa de enlace de datos tiene muchas similitudes con el mecanismo de transmisión confiable de TCP en la capa de transporte . Por ejemplo, se utilizan mecanismos de ventana, confirmación y retransmisión (tiempo de espera o ACK redundante).

Por lo tanto, la transmisión confiable de TCP es adecuada para la memoria comparativa. Las diferencias son las siguientes :

  • TCP utiliza números de secuencia , que se basan en el flujo de bytes transmitido (es decir, el número de bytes ), en lugar de en el segmento del mensaje. El tamaño de la ventana de TCP especifica cuántos números de secuencia hay. GBN y SR son números de ventana .
  • TCP utiliza acuses de recibo acumulativos de forma predeterminada , que es lo mismo que GBN. Sin embargo, GBN necesita retransmitir todas las tramas después del error, mientras que TCP solo retransmite el segmento del mensaje que consta del número de secuencia del error (los mensajes fuera de secuencia se almacenan en caché). Además, TCP proporciona una opción de confirmación de selección de SACK. En este momento, TCP es muy similar a SR. El mecanismo de recuperación de errores de TCP puede considerarse como una combinación de los protocolos GBN y SR .
  • TCP adopta un mecanismo de confirmación para segmentos de mensajes . En lugar de enviar una confirmación por cada byte, se envía una confirmación después de enviar un byte de un segmento de mensaje.
  • El ACK de acuse de recibo acumulativo del protocolo de trama N de retroceso de la capa de enlace de datos indica que tanto N como N se han recibido correctamente . La confirmación TCP N es N-1 y las anteriores a N-1 se han recibido correctamente .
  • El servidor TCP controla el flujo del remitente ajustando el tamaño de la ventana de recepción mediante la acumulación de segmentos de mensajes de confirmación .

Incluso si el valor de la ventana de recepción es 0, se deben aceptar los segmentos de detección de ventana cero, los segmentos de reconocimiento y los segmentos que transportan datos de emergencia. 

  

3.4 Control de congestión TCP

En una subred de comunicación, el fenómeno de degradación del rendimiento de la red causado por un exceso de paquetes de datos se denomina congestión .

El método para implementar el control de la congestión en la capa de red es la retroalimentación explícita. Actualmente, las últimas regulaciones del Protocolo de mensajes de control de Internet (ICMP) ya no utilizan mensajes de supresión de origen, es decir, comentarios explícitos.

En TCP, el control de la congestión se implementa principalmente en la capa de transporte mediante retroalimentación implícita .

  • El control de flujo consiste en suprimir la velocidad a la que el remitente envía datos para que el receptor pueda recibirlos a tiempo.
  • El control de la congestión es un problema global que involucra a todos los hosts, enrutadores de la red y todos los factores que causan la degradación de las capacidades de transmisión de la red. Simplemente agregar recursos no resolverá el problema de la congestión.

Métodos de control de congestión :

  • El control de circuito cerrado se refiere a una relación de control en la que la cantidad de salida controlada regresa al terminal de entrada como control de cierta manera y ejerce una influencia de control sobre el terminal de entrada. Es un método de control del sistema con información de retroalimentación .
  • El control de bucle abierto se refiere a un método de control del sistema sin información de retroalimentación.

3.4.1 Relación entre ventana de recepción, ventana de congestión y ventana de envío

 

3.4.2 Inicio lento y prevención de congestión

 

3.4.3 Retransmisión rápida y recuperación rápida

La versión reno de 1990 para mejorar el rendimiento de TCP. 

 Se utiliza junto con la retransmisión rápida el algoritmo de recuperación rápida.

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_74059671/article/details/128427153
Recomendado
Clasificación