TCP se conoce como un protocolo orientado a la conexión, lo que garantiza la confiabilidad y también es responsable de los mecanismos de control de congestión en la red. TCP Tahoe y TCP Reno son dos técnicas de control de congestión de TCP , se utilizan cuando el remitente recibe tres acuses de recibo duplicados.
TCP Tahoe:
Tahoe es un lago en los Estados Unidos. Este TCP en particular se diseñó alrededor de ese lago y, por lo tanto, se denominó TCP Tahoe . Fue la primera variante de TCP con algoritmos de control de congestión incorporados . Cuando TCP se diseñó por primera vez en 1981, el control de la congestión no era una parte integral del mismo.
TCP Tahoe = Inicio lento + AIMD + Retransmisión rápida
Fase de inicio lento: dura hasta que el tamaño de la ventana de congestión alcanza el » Umbral de inicio lento (ssthresh) «. El algoritmo de inicio lento duplica el tamaño de la ventana de congestión (cwnd) en un RTT. Inicialmente, ssthresh se establece en infinite(∞). Posteriormente, se adapta en función de los eventos de pérdida de paquetes. Cuando cwnd se vuelve igual a ssthresh, el inicio lento se detiene. Después de las tomas de control de la fase AIMD.
Fase AIMD: Comienza cuando se detiene el arranque lento. El aumento aditivo aumenta cwnd en 1 y la disminución multiplicativa reduce ssthresh al 50 % de cwnd. Tenga en cuenta que cwnd ‘no’ se reduce en un 50% pero ssthresh. Este es el punto a tener en cuenta que cwnd nuevamente se restablece al tamaño de ventana inicial (10 en el kernel de Linux).
Fase Fast Retransmit: Es el algoritmo de detección de pérdidas. Se desenstring por 3 acuses de recibo duplicados. En la detección de pérdida de paquetes, restablece cwnd a initcwnd.
Example: Suppose cwnd = 200 and packet loss occurs, then ssthresh=cwnd/2= 100; cwnd will be reset to initcwnd value that is 10. Again slow start will begin. Now say cwnd increases to 20, 40, 80 and 100 in 5th RTT. Once cwnd reached ssthresh, AIMD starts. AIMD increases cwnd by 1 per RTT, so if packet drop occurs at cwnd = 125 then cwnd=10 and ssthresh=62 and Slow Start Restarts. Note: Packet loss can be detected either by RTO algorithm or Fast Retransmit. In both cases, cwnd will be reset to 10 and ssthresh=cwnd/2 and Slow Start restarts again.
TCPReno:
Es la extensión de TCP Tahoe.
TCP Reno = TCP Tahoe + Recuperación rápida
Dado que TCP Reno es la extensión de TCP Tahoe, el inicio lento y la fase AIMD son las mismas.
Fase de recuperación rápida
Hace uso de RTO y Fast Retransmit. Si la detección de pérdida de paquetes se activa por 3 reconocimientos duplicados, se trata de un algoritmo de retransmisión rápida en acción. En la detección de pérdida de paquetes a través de Fast Retransmit, cwnd se reduce en un 50 % (cwnd = cwnd/2). Se reciben 3 ACK duplicados, lo que significa que la red está funcionando bien porque se están recibiendo ACK, lo que significa que los paquetes se están entregando al receptor. Por lo tanto, cwnd se reduce en un 50 % para permitir que la red salga del estado de congestión. En la detección de pérdida de paquetes a través de RTO, restablezca cwnd a initcwnd. Si el temporizador RTO expira, significa que la red está muy congestionada. Por lo tanto, cwnd debe reducirse al valor inicial para recuperar la red de la congestión.
Example: cwnd=120, ssthresh=∞ 1) packet loss detected using 3-duplicate ACK (aka Fast Retransmit). cwnd will be reduced to 50%, cwnd=60 ssthresh will be new cwnd, ssthresh=60 Now Reno has entered Fast Recovery Phase, it skips the slow start and AIMD takes over. Whereas in Tahoe Slow Start restarts when packet loss is detected. This is the difference between these two. 2) Now say cwnd is reached to 70 in 10 more RTT from cwnd=60, after AIMD started. packet drop occurs at cwnd=70, cwnd becomes 35 and ssthresh=35. 3) now cwnd increases to 50, and packet loss detected using RTO. then cwnd=initial cwnd= 10, ssthresh=cwnd/2=25 Whenever packet loss detected, Reno never uses Slow Start again, it skip it.
Imagen de comparación para TCP Tahoe y Reno:
Publicación traducida automáticamente
Artículo escrito por pintusaini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA