Free YouTube Transcribe

Video transcript

Control de congestión - CC4303

I. Bachmann · 1,035 words · 5 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

0:01Hola, hoy vamos a hablar sobre control de congestión y control de flujo en redes.

0:05Partamos hablando de congestión.

0:07Cuando hablamos de congestión, usualmente nos imaginamos un taco de automóviles y sus consecuencias:

0:12Como tiempos de espera muy largos para avanzar relativamente poco.

0:15O incapacidad para llegar de un lugar a otro a tiempo.

0:18Cuando hablamos de redes, el concepto de congestión no es tan diferente.

0:22Decimos que una red se congestiona cuando ‘intenta’ pasar más información de lo que la red soporta.

0:28Las limitaciones de la cantidad de información que puede soportar la red pueden deberse a limitaciones de memoria,

0:33capacidad del medio físico de transmisión

0:35y la velocidad a la que el sistema es capaz de procesar los segmentos.

0:38Una congestión alta ralentiza la conexión haciendo que se les peguen los juegos o los videos.

0:44Para evitar estas cosas existe el control de congestión.

0:48Antes de continuar, hagamos un pequeño paréntesis.

0:51Al principio dijimos que íbamos a hablar de control de congestión y control de flujo

0:55El control de congestión y el control de flujo no son iguales, pero en TCP trabajan juntos.

1:00A grandes rasgos, el control de congestión se encarga del tráfico de la red a través de la ventana de congestión,

1:05mientras que el control de flujo se encarga del tráfico al receptor a través de la ventana de recepción.

1:10En nuestra versión simplificada de TCP controlaremos el flujo usando control de congestión de TCP real.

1:17Por lo que nos enfocaremos en control de congestión (más adelante vamos a ver control de flujo por si acaso).

1:22En TCP control de congestión tiene 3 partes

1:24Slow Start o partida lenta.

1:27Congestion Avoidance, evitar la congestión.

1:29Y fast recovery, recuperación rápida.

1:32Antes de explicar en qué consiste cada uno de estos pasos necesitamos las siguientes definiciones:

1:37Ventana de congestión: Corresponde a la cantidad de información que dejamos pasar en un determinado momento.

1:42La ventana de congestión es lo que vamos a ir modificando para controlar la congestión.

1:46El Maximum Segment Size o MSS:

1:50Corresponde a la cantidad más grande de datos que se le permite enviar a un segmento TCP.

1:54Finalmente el Slow Start Threshold o ssthresh:

1:58Corresponde al tamaño máximo que puede tener la ventana de congestión dentro de Slow Start.

2:02Si la ventana de congestión pasa este límite, entonces pasamos a Congestion Avoidance.

2:07De esta forma, el ciclo de control de congestión se ve así:

2:12Veamos cómo funciona Slow Start:

2:14Slow Start hace que la ventana de congestión aumente en 1 MSS cada vez que un segmento recibe su ACK correspondiente.

2:22Veamos un ejemplo.

2:22Partimos con una ventana de congestión de tamaño 1 MSS.

2:26Cómo actualmente la ventana mide 1, mando un segmento, me llega el ACK,

2:30y se aumenta el tamaño de la ventana de congestión en 1, por lo que ahora esta es de tamaño 2.

2:36Como la ventana es de tamaño 2, mando 2 segmentos, me llegan 2 ACKs,

2:40así que se aumenta el tamaño de la ventana de congestión en 2, por lo que ahora esta es de tamaño 4.

2:45Si repetimos esto una vez más, nos van a llegar 4 ACKs y, por lo tanto, ahora la ventana de congestión tiene tamaño 8.

2:53Slow Start no es precisamente lento, de hecho la ventana de congestión crece de forma exponencial.

3:00Una ventana de congestión grande eventualmente va a resultar en pérdida de segmentos por congestión.

3:05Cuando ocurre un timeout por primera vez seteamos el ssthresh como la mitad del tamaño de la ventana de congestión que provocó el timeout.

3:13y bajamos el tamaño de la ventana de congestión a 1 MSS.

3:17Así, si la ventana es de tamaño 8 al ocurrir el primer timeout,

3:20vamos a quedar con un ssthresh de tamaño 4 y una ventana de tamaño 1.

3:25Luego retomamos Slow Start hasta que la ventana de congestión pase el tamaño ssthresh.

3:30Cuando esto ocurre pasamos a Congestion Avoidance.

3:34Congestion Avoidance usa una estrategia de incrementos aditivos al tamaño de la ventana de congestión (additive increase)

3:40y disminuciones multiplicativas del tamaño de la ventana (multiplicative decrease).

3:44Esto es AIMD.

3:47En este estado, cada vez que llega un ACK vamos a aumentar el tamaño de la ventana de congestión

3:51en una fracción del tamaño máximo de segmento MSS.

3:55De esta forma se aumenta el tamaño de la ventana en 1 MSS cada vez que TODA LA VENTANA llega bien.

4:01Es decir, si la ventana es de tamaño 4, deben llegar 4 ACKs para aumentar el tamaño de la ventana en 1 MSS

4:09Con esto el tamaño de la ventana aumenta de forma lineal.

4:13Si durante Congestion Avoidance ocurre un timeout volvemos a Slow Start con estas condiciones.

4:18El comportamiento de AIMD hace que la ventana de congestión se comporte de esta forma.

4:24Este gráfico se puede ver si van a ver el tráfico de la red cuando están haciendo una descarga.

4:29Finalmente, si recibimos 3 ACKs duplicados, pasamos a Fast Recovery.

4:34¿A qué nos referimos cuando hablamos de 3 ACKs duplicados? Veamos.

4:38Acá tenemos un emisor y un receptor.

4:40El emisor va a tratar de mandar 4 segmentos, pero vemos que el segundo no llega.

4:45El primer ACK llega tal como el emisor espera.

4:48Pero luego el receptor reenvía el ACK asociado al primer segmento cada vez que no llega el segundo segmento.

4:55De esta forma avisa que no le ha llegado el segundo segmento.

4:58Así, termina repitiendo 3 veces el ACK asociado al segundo segmento.

5:03Como esto pasa antes del timeout el emisor asume que hubo pérdida y pasamos a Fast Recovery.

5:08Detectar pérdidas de esta manera es conocido como Fast Retransmit.

5:13En Fast Recovery vamos a aumentar en 1 el tamaño de la ventana de congestión por cada uno de los ACKS que nos hizo entrar a este estado.

5:21Si ocurre timeout, igual que antes, volvemos a slow start.

5:25Y si se recibe un ACK distinto al ACK duplicado, se pasa a Congestion Avoidance

5:30Debemos notar que fast Recovery NO es obligatorio y, por lo tanto, no todas las implementaciones de TCP lo usan.

5:37En esta clase hemos visto:

5:39Cómo funciona control de congestión en TCP.

5:41Slow Start.

5:42Congestion Avoidance.

5:44Y Fast recovery.

5:45Cualquier duda o consulta, ¡no duden en contactar al equipo docente!

Recently added transcripts

Browse the whole transcript library

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.