TCP Reno con ejemplo

TCP Reno es una parte integral de los protocolos TCP responsables del control de congestión en la red. TCP Reno es una extensión de TCP Tahoe (el primer algoritmo de control de congestión incorporado). 

TCP Reno = Inicio lento + AIMD + Retransmisión rápida + Recuperación rápida

Funcionamiento de TCP Reno 

Suposición: 

  1. El remitente tiene datos ilimitados para enviar
  2. initcwnd = 10 segmentos
  3. Los paquetes 3 y 4 se descartan.

Veamos el funcionamiento de TCP reno con la ayuda de un ejemplo:

S. No.     Paquetes ACKed         cwnd    a bordo  Paquetes transmitidos
1. Ninguna 10 10 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
2. 1 11 11 11, 12
3. 2 12 12 13, 14
4. 2 (DA1, R5)    13 13 15, 16
5. 2 (DA2, R6)  14 14 17, 18
6. 2 (DA3, R7) *     7 13 Te3
7. 2 (DA4, R8) 7 12
8. 2 (DA5, R9)  7 11
9. 2 (DA6, R10) 7 10
10 2 (DA7, R11)   7 9
11 2 (DA8, R12)    7 8
12 2 (DA9, R13)  7 7
13 2 (DA10, R14)    7 7 19
14 2 (DA11, R15) 7 7 20
15. 2 (DA12, R16) 7 7 21
dieciséis. 2 (DA13, R17)  7 7 22
17 2 (DA14, R18) 7 7 23
18 3  7+1/7 7 24
19 3 (DA1, R19)   7+2/7 7 25
20 3 (DA2, R20)  7+3/7 7 26
21 3 (DA3, R21)*   (7+4/7)/2 7 Re 4

Paso 1 : inicialmente, el remitente envía 10 paquetes a la red sin esperar ningún ACK. 

cwnd = 10, inflight = 10. 

Suponemos de antemano que los paquetes 3 y 4 se pierden, el remitente aún no lo sabe.

Paso 2-5: El remitente obtiene el ACK para el paquete-1 y aumenta el cwnd en 1. Por lo tanto, cwnd = 11. Dado que el receptor recibe el paquete-1, no está en curso. Por lo tanto, durante el vuelo = 10 – 1 = 9. Pero máx. el valor de inflight es igual a cwnd, por lo que el remitente envía 2 nuevos paquetes al enlace. Los paquetes 11 y 12 se transmiten.

Cuando llega un nuevo ACK al lado del remitente e inflight <= cwnd, entonces el remitente aumenta su cwnd e inflight en 1 y transmite 2 nuevos paquetes a la red. Los pasos 2 a 5 siguen el mismo escenario. 

Paso 6: 

  • Cuando el receptor recibe los paquetes desordenados (es decir, 1, 2, 5, 7) genera un ACK duplicado. 
  • El receptor envía el ACK del último paquete recibido en orden. 
  • Cuando el remitente obtiene el tercer ACK duplicado, retransmite el paquete perdido (paquete-3).
  • Esta vez cwnd no aumenta, a diferencia de los pasos anteriores.

4 cosas ocurren cuando se detecta una pérdida de paquete en TCP Reno:

  1. cwnd se reduce a la mitad, es decir, cwnd = cwnd/2
  2. sthresh se reduce a la mitad de cwnd, es decir, ssthresh = cwnd/2
  3. El emisor se convierte en silencio por media ventana llamada media ventana de silencio.
  4. Sender entra en la fase de recuperación rápida.

El remitente no transmite ningún paquete nuevo durante la mitad de una ventana de silencio, pero como se confirma la pérdida de un paquete, lo retransmite inmediatamente. Este es el caso único cuando inflght es mayor que cwnd. Sender permanece en silencio hasta que la lucha interna se vuelve igual a cwnd, este período en sí mismo se llama la mitad de la ventana de silencio.

Pasos 7-12: es la media ventana del silencio. El remitente obtiene los ACK de los paquetes transmitidos anteriormente, pero no transmite ningún paquete nuevo a la red. El remitente obtiene los ACK duplicados del paquete 2 porque no ha recibido los paquetes en orden. El paquete-3 retransmitido todavía está en vuelo y el receptor no lo ha recibido.

Pasos 13-17: el silencio de media ventana ha terminado y ahora el remitente mantiene el inflight = cwnd, transmitiendo un nuevo paquete cuando llega un ACK duplicado. Si no envía un nuevo paquete, en vuelo será menos de cwnd por 1, por ACK, por lo que para utilizar el enlace por completo, se transmiten nuevos paquetes.

Paso 18 : el remitente recibe el ACK del paquete 3 que se retransmitió antes de entrar en la fase de recuperación rápida. ACK-3 se considera un nuevo ACK. Este es el punto en el que el remitente sale de la fase de recuperación rápida. Ahora, entra en la fase de IA. AI significa aumento aditivo. Ahora cwnd aumentará en 1/cwnd por ACK. Por lo tanto, a bordo se incrementará en 1 por RTT. 

Paso 19 y 20: el remitente obtiene los ACK duplicados 1 y 2 del paquete 3. Sabemos que el paquete 4 se perdió (suposición), pero el remitente aún no lo sabe. Esta es una de las principales limitaciones de TCP Reno.

El receptor ha recibido los paquetes-1,2,3 en orden, falta el paquete-4, por eso está enviando el ACK duplicado del último paquete recibido en orden (paquete-3).

Paso 21: el remitente obtiene el tercer ACK duplicado del paquete 3. Confirma que se perdió el siguiente paquete; el paquete-4 se pierde. Volverá a entrar en la fase de Recuperación Rápida pero antes retransmitirá el paquete-4.

Thus, cwnd = current cwnd / 2
inflight > cwnd {exception}
Enters Fast recovery.

Limitación de TCP Reno: 

  1. No puede detectar la pérdida de múltiples paquetes en un solo tamaño de ventana cwnd. Reduce el cwnd varias veces (igual al paquete perdido) en tamaño de ventana única. Por lo tanto, reduce significativamente cwnd, lo cual es innecesario porque la red puede salir del estado de congestión reduciendo cwnd una vez.
  2. Durante el silencio de media ventana, el remitente está desperdiciando sus recursos permaneciendo inactivo.
  3. Lleva mucho tiempo detectar la pérdida de varios paquetes en la misma ventana de congestión.

Publicación traducida automáticamente

Artículo escrito por pintusaini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *