Red de computadoras: 4 capas de transporte (administración de conexiones TCP, control de flujo, control de congestión)

Tabla de contenido

Uno, gestión de la conexión TCP

    1. Establecimiento de conexión TCP (protocolo de enlace de tres vías para establecer una conexión)

    2. Liberación de la conexión TCP (protocolo de enlace de cuatro vías para liberar la conexión)

    3. Resumen del establecimiento y liberación de la conexión

Dos, control de flujo de TCP

Tres, control de congestión TCP

    1. Arranque lento y evitación de la congestión

    2. Retransmisión rápida y recuperación rápida

    3. Otro


Uno, gestión de la conexión TCP

1. TCP: Protocolo orientado a la conexión.

2. Una conexión TCP tiene 3 etapas: establecimiento de la conexión, transmisión de datos y liberación de la conexión.

3. Durante el proceso de establecimiento de la conexión TCP, hay 3 problemas por resolver:

  • 1) Permitir que cada parte notifique la existencia de la otra.
  • 2) Para permitir que ambas partes negocien algunos parámetros (como el tamaño máximo de ventana ... etc.)
  • 3) Capacidad para asignar recursos de la entidad de transporte (como el tamaño de la caché ... etc.).

4. Cada conexión TCP está determinada de forma única por dos puntos finales (es decir, dos sockets) en ambos extremos de la comunicación.

5. Definición de algunos campos

  • Campo de número de secuencia . Contabilizado para 4B, TCP está orientado a bytes (es decir, se transmite byte a byte cuando se transmite TCP), por lo que a cada byte en el flujo de datos transmitido por la conexión TCP se le asigna un número de serie. El valor del campo de número de secuencia se refiere al número de secuencia del primer byte de los datos enviados en este segmento . Por ejemplo, el valor del campo del número de secuencia de un segmento es 301, y los datos transportados son 100B en total, lo que indica que el número de secuencia del último byte de los datos de este segmento es 400, por lo que el número de secuencia de datos del siguiente segmento debe comenzar desde 401.
  • Campo de número de confirmación . Contabilizado 4B, es el número de secuencia del primer byte que espera recibir los datos del siguiente segmento de la otra parte . Si el número de confirmación es N, significa que todos los datos hasta el número de secuencia N-1 se han recibido correctamente.
  • Reconocer el bit ACK . El campo del número de confirmación es válido solo cuando ACK = 1. Cuando ACK = 0, el número de confirmación no es válido. TCP estipula que ACK debe establecerse en 1 en todos los segmentos de mensaje transmitidos después de que se establezca la conexión.
  • Bit de sincronización SYN , sincronización SYN = 1 significa que se trata de una solicitud de conexión o un mensaje de recepción de conexión . Cuando SYN = 1 y ACK = 0, indica que se trata de un mensaje de solicitud de conexión. Si la otra parte acepta establecer una conexión, SYN = 1 y ACK = 1 se utilizan en el mensaje de respuesta. Es decir, SYN = 1 significa que se trata de una solicitud de conexión o un mensaje de recepción de conexión.
  • El bit de terminación FIN (Finalizar) se utiliza para liberar una conexión. FIN = 1 indica que se han enviado los datos del remitente de este segmento y se requiere liberar la conexión de transmisión.

 

1. Establecimiento de conexión TCP (protocolo de enlace de tres vías para establecer una conexión)

      

El proceso de establecimiento de la conexión TCP generalmente se denomina protocolo de enlace de tres vías.

primer paso:

  • El TCP del cliente envía primero un segmento de solicitud de conexión al TCP del servidor.
  • Este segmento de mensaje especial no contiene datos de la capa de aplicación. SYN flag = 1 , el cliente seleccionará aleatoriamente un número de secuencia inicial seq = x
  • (El mensaje de solicitud de conexión no contiene datos , pero consume un número de serie )

El segundo paso:

  • Una vez que el TCP del servidor recibe el segmento de solicitud de conexión, si acepta establecer una conexión, envía un acuse de recibo al cliente y asigna búferes y variables de TCP a la conexión de TCP.
  • En el segmento del mensaje de confirmación, el bit SYN = 1 , el bit ACK = 1 , el valor del campo del número de confirmación es x + 1 , y el servidor genera aleatoriamente el número de secuencia inicial seq = y
  • (El mensaje de confirmación no contiene datos , pero también consume un número de serie )

tercer paso:

  • Cuando el cliente recibe el segmento del mensaje de confirmación, debe dar una confirmación al servidor y también asignar búferes y variables a la conexión.
  • En este segmento de mensaje, el bit ACK = 1 , el campo del número de secuencia = x + 1 y el campo del número de confirmación = y + 1 .
  • El segmento de mensaje puede transportar datos, si no transporta datos, el número de secuencia no se consume.

Después de realizar con éxito los tres pasos anteriores, se establece una conexión TCP y luego se pueden transmitir los datos de la capa de aplicación. TCP proporciona comunicación full-duplex, por lo que los procesos de aplicación en ambos lados de la comunicación pueden enviar datos en cualquier momento.

Además, cabe señalar que los recursos del lado del servidor se asignan cuando se completa el segundo protocolo de enlace, mientras que los recursos del lado del cliente se asignan cuando se completa el tercer enlace, lo que hace que el servidor sea vulnerable a los ataques de inundación SYN.

 

2. Liberación de la conexión TCP (protocolo de enlace de cuatro vías para liberar la conexión)

Cualquiera de los dos procesos que participan en la conexión TCP puede terminar la conexión.

El proceso de liberación de la conexión TCP generalmente se denomina protocolo de enlace de cuatro vías.

    

 

3. Resumen del establecimiento y liberación de la conexión

 

Dos, control de flujo de TCP

TCP proporciona servicios de control de flujo para eliminar la posibilidad de que el remitente desborde el búfer del receptor . (Por lo tanto, se puede decir que el control de flujo es un servicio de coincidencia de velocidad que combina la tasa de envío del remitente con la tasa de lectura del receptor ).

TCP提供流量控制服务来**消除发送方使接收方缓冲区溢出的可能性**。
(因此可以说流量控制是一个速度匹配服务,匹配发送方的发送速率与接收方的读取速率。)

发送方**不能发送太多、太快的数据让接收方缓冲区溢出**。

 TCP提供一种基于滑动窗口协议的流量控制机制,TCP使用**滑动窗口机制**来实现流量控制。

 1)谁控制谁?流量控制是为了控制发送方发送速率保证接收方来得及接收。

 2)怎样控制?接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方地发送速率。将窗口字段设置位0,则发送方不能发送数据。

 

Tres, control de congestión TCP

拥塞控制:是指**防止过多的数据注入网络,保证网络中的路由器或链路不致过载**。

拥塞控制和流量控制的**相似之处**:它们都通过控制发送方发送数据的速率来达到控制效果。

拥塞控制与流量控制的**区别**:
拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
相反,流量控制往往是指点对点的通信量的控制,即接收端控制发送端,它所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。

**流量控制**是为了**让接收方能来得及接收**,而**拥塞控制**是为了**能降低整个网络的拥塞程度**。(!)


例如,某个链路的传输速率为10Gb/s,某巨型机向一台PC以1Gb/s的速率传送文件,
显然网络的带宽是足够大的,不存在拥塞问题,但如此高的发送速率将导致PC可能来不及接收,因此必须进行**流量控制**。
但若有100万台PC在此链路上以1Mb/s的速率传送文件,则现在的问题就变为网络的负载是否超过了现有网络所能承受的范围。

 

Para controlar mejor la congestión en la capa de transporte , el Estándar de recomendación de Internet define los siguientes cuatro algoritmos :

  • Comienzo lento
  • Evitación de la congestión
  • Retransmisión rápida
  • Rápida recuperación

 

Al determinar la tasa de envío de segmentos de mensajes, el remitente no solo debe considerar la capacidad de recepción del receptor, sino también considerar no congestionar la red desde la perspectiva general.

Por lo tanto, el protocolo TCP requiere que el remitente mantenga las siguientes dos ventanas :

  • 1) La ventana de recepción rwnd , la parte receptora refleja la capacidad de la parte receptora de acuerdo con el último valor de ventana prometido por el tamaño del búfer de recepción actual . El receptor informa al remitente basándose en el campo de ventana colocado en el encabezado del mensaje TCP.
  • 2) Ventana de congestión cwnd , el valor de la ventana establecido por el remitente según el grado de congestión de la red estimado por el remitente , que refleja la capacidad actual de la red . Siempre que no haya congestión en la red, la ventana de congestión aumenta un poco para enviar más paquetes. Pero 1 mientras la red esté congestionada, la ventana de congestión se reduce para reducir la cantidad de paquetes inyectados en la red.

El límite superior debe tomarse la ventana de transmisión y la ventana de recepción, la ventana de congestión cwnd rwnd más pequeña, es decir, el límite superior de la ventana de transmisión = min [rwnd, cwnd]

 

El tamaño de la ventana de recepción se puede notificar al remitente de acuerdo con el campo de la ventana en el encabezado del mensaje TCP, y ¿cómo mantiene el remitente la ventana de congestión ? Este es el algoritmo de inicio lento y para evitar la congestión que se explica a continuación.

 

1. Arranque lento y evitación de la congestión

  • Inicio lento: la ventana de congestión cwnd aumenta exponencialmente, multiplicada por 2 cada vez.

    Cuando cwnd alcanza el umbral de inicio lento ssthresh (umbral), se inicia el algoritmo para evitar la congestión

  • Evitación de la congestión:
    • La ventana de congestión cwnd aumenta linealmente, aumentando en 1 cada vez. ( Es decir, la suma aumenta )
    • Cuando ocurre un tiempo de espera (congestión de la red), haga que el umbral de inicio lento ssthresh sea igual a la mitad del cwnd actual . ( Es decir, se reduce la multiplicación ), la ventana de congestión cwnd se establece en 1

 

2. Retransmisión rápida y recuperación rápida

  • Cuando se reciben continuamente 3 confirmaciones repetidas , se ejecutan los algoritmos de retransmisión rápida y recuperación rápida.
  • Rápida recuperación:
    • Cuando let recibe 3 confirmaciones repetidas en sucesión , el umbral de inicio lento ssthresh es igual a la mitad del cwnd actual . ( Es decir, la multiplicación se reduce ), el valor de cwnd se establece en el valor después de que se cambia el umbral de inicio lento ssthresh (esto es diferente del algoritmo de inicio lento).
    • Luego comience a ejecutar el algoritmo para evitar la congestión, agregando 1 cada vez. ( Es decir, la suma aumenta )

 

    1) Cuando el remitente detecta un tiempo de espera , utiliza un inicio lento y evita la congestión ;

    2) Cuando el remitente recibe 3 ACK redundantes ( 3 reconocimientos repetidos ), se utilizan la retransmisión rápida y la recuperación rápida .

      El tamaño real de la ventana de transmisión (decidido conjuntamente por el control de tráfico y el control de congestión) = la ventana del lado de recepción y la ventana de congestión en ese

 

3. Otro

¿Cómo percibe el remitente la congestión de la red?

  • Evento perdido (pérdida de paquetes) = tiempo de espera o 3 ACK repetidos
  • Después de que ocurre un evento de pérdida, el remitente TCP reduce la tasa (ventana de congestión)
     

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_39450145/article/details/112675390
Recomendado
Clasificación