En la siguiente tabla se describe la evolución de los tamaños de las ventanas y las tasas de envío basados en los supuestos anteriores.
1 (disminuye el promedio del
tamaño de ventana. tasa de envío total para el enlace menor a 100 ms 150= 100+50)
2 5
(disminuye el promedio del tamaño de ventana. Tasa de envío total para el enlace menor a 100msec is 100=
50+50)
(disminuye el promedio del tamaño de ventana. tasa de envío total para el
enlace menor a 200msec is 125=(100+50)/2 + (50+50)/2)
1 (disminuye el promedio del tamaño de ventana. Tasa de envío total para el enlace menor at 100msec is 45=
(20+25)
1 2
(no disminuye mas, el tamaño de la ventana ya es 1)
(disminuye el promedio del tamaño de ventana. Tasa de envío total para el
enlace menor a 200msec is 40= (20+10)/2 + (25+25)/2) 500 2 20 10 600 3 30 3 15 700 1 10 15 800 2 20 1 5 900 3 30 5 1 2
(disminuye el promedio del tamaño de ventana. Tasa de envío total para el enlace
menor a 100msec is 35= (30+5) 1100 2 20 10 1200 3 30 3 15 1300 1 10 15 1400 2 20 1 5 1500 3 30 5 1600 1 10 2 10 1700 2 20 10 1800 3 30 3 15 1900 1 10 15 2000 2 20 1 5 2100 3 30 5 2200 1 10 2 10 1000 10 10 Time (msec)
(incrementa el promedio del tamaño de ventana. Tasa de envío total para el
enlace menor a 200msec is 30= (20+30)/2 + (5+5)/2) 300 10 25 400 10 10 100 50 (en [100- 200]msec] 50 (en [100- 200]msec) 200 20 25 C1 C2
Tamaño de ventana (num. De segmentos enviados mayores a
100msec) promedio de tasa de envio de datos (segmentos por segundo, =ventana/0.2)
Tamaño de ventana (num. De segmentos enviados mayores a 200msec)
promedio de tasa de envio de datos (segmentos por segundo, =ventana/0.2)
b. ¿Obtendrán estas dos conexiones, a largo plazo, la misma cuota de ancho de banda del enlace congestionado? Explique su respuesta.
48. Continúe con la red descrita en el problema anterior, pero ahora suponga que las dos conexiones TCP, C1 y C2, tienen el mismo intervalo RTT de 100 milisegundos.
Suponga que en el instante t0, el tamaño de la ventana de congestión de C1 es de 15 segmentos pero el tamaño de la ventana de congestión de C2 es igual a 10 segmentos.
a. ¿Cuáles serán los tamaños de las ventanas de congestión después de transcurridos 2200 milisegundos?
R/.
Del mismo modo que en el último problema, podemos calcular sus tamaños de ventana en el tiempo en el siguiente tabla. Tanto C1 y C2 tienen el mismo tamaño de la ventana 2 después de 2200msec.
Tamaño de venta Velocidad de datos enviados Tamaño de ventana Velocidad de datos enviados (num. De segmentos enviados mayores a 100 msec) (segmentos por segundo = ventana/0.1) (num. De segmentos enviados mayores a 100 msec) (segmentos por segundo = ventana/0.1) 0 15 150 (en [0- 100lmsec] 10 100 (en [0- 1001 msec) 100 7 70 5 50 200 3 30 2 20 300 1 10 1 10 400 2 20 2 20 500 1 10 1 10 600 2 20 2 20 700 1 10 1 10 800 2 20 2 20 900 1 10 1 10 1000 2 20 2 20 1100 1 10 1 10 1200 2 20 2 20 1300 1 10 1 10 1400 2 20 2 20 1500 1 10 1 10 1600 2 20 2 20 1700 1 10 1 10 1800 2 20 2 20 1900 1 10 1 10 2000 2 20 2 20 2100 1 10 1 10 2200 2 20 2 20 C1 C2 Tiempo (msec)
b. . ¿Obtendrán estas dos conexiones, a largo plazo, la misma cuota de ancho de banda del enlace congestionado?
R/.
Sí, esto se debe a que el algoritmo AIMD de TCP. Y que ambas conexiones tienen el mismo RTT.
c. Decimos que dos conexiones están sincronizadas si ambas conexiones alcanzan su tamaño de ventana máximo al mismo tiempo y alcanzan su tamaño mínimo de ventana también al mismo tiempo. ¿Terminarán con el tiempo sincronizándose estas dos conexiones? En caso afirmativo, ¿cuáles son sus tamaños máximos de ventana?
R/.
Sí, esto se puede ver claramente a partir de la tabla anterior. Su tamaño máximo de la ventana es 2.
d. ¿Ayudará esta sincronización a mejorar la tasa de utilización del enlace compartido? ¿Por qué? Esboce alguna idea para evitar esta sincronización.
R/.
No, esta sincronización no va a ayudar a mejorar la utilización del enlace, ya que estas dos conexiones actúan como un único oscilante conexión entre min y max tamaño de ventana. Por lo tanto, el vínculo no se utiliza plenamente (recordemos que asumir este enlace no tiene ningún buffer).
Una forma posible de romper la sincronización es añadir un tampón finito al enlace y colocar aleatoriamente paquetes en el búfer antes del desbordamiento de búfer. Esto causará diferentes conexiones para reducir sus tamaños de ventana en diferentes momentos. Hay muchas técnicas para hacer eso como: AQM (Active Queue Management), RED (Random Early Detect), PI (Proportional and Integral AQM), AVQ (Adaptive Virtual Queue) y REM (Random exponential Marking), etc
49. Veamos una modificación del algoritmo de control de congestión de TCP. En lugar de utilizar un incremento aditivo podemos emplear un incremento multiplicativo. Un emisor TCP incrementa su tamaño de ventana según una constante pequeña positiva a (0 < a < 1) cuando recibe un ACK válido. Halle la relación funcional existente entre la tasa de pérdidas L y el tamaño máximo de la ventana de congestión W. Demuestre que para esta conexión TCP modificada, independientemente de la tasa media de transferencia de TCP, una conexión TCP siempre invierte la misma cantidad de tiempo en incrementar el tamaño de su ventana de congestión de W/2a W. R/.
Tenga en cuenta que W representa el tamaño máximo de la ventana.
En primer lugar se encuentra el número total de segmentos enviados durante el intervalo en TCP cambia su tamaño de la ventana de W / 2 hasta e incluir W. Esto viene dado por:
S = W / 2 + (W / 2) * (1 + α) + (W / 2) * (1 + α)2 + (W / 2) * (1 + α)3 +... + (W / 2) * (1 + α)k Nos encontramos con k = log (1 + α)2, entonces S = W * (2α +1) / (2α).
Tasa de pérdida de L está dada por: L = 1 / S = (2α) / (W * (2α 1)).
El tiempo que toma TCP para aumentar su tamaño de la ventana de W / 2 a W está dada por: k* RTT = (log (1 + α) 2) * RTT, que es claramente independiente del rendimiento medio de TCP.
Tenga en cuenta, el rendimiento promedio de TCP está dado por: B = MSS * S / ((k +1) * RTT) = MSS / (L * (k +1) * RTT).
Tenga en cuenta que esto es diferente de TCP que tiene rendimiento promedio: B , donde la raíz cuadrada de L aparece en el denominador.
50. En nuestra exposición sobre el futuro de TCP de la Sección 3.7 hemos destacado que para alcanzar una tasa de transferencia de 10 Gbps, TCP sólo podría tolerar una probabilidad de pérdida de segmentos de 2 · 10^-10 (o lo que es equivalente, un suceso de pérdida por cada 5.000.000.000 segmentos). Indique de dónde se obtienen los valores 2 · 10^-10 y 1 por cada 5.000.000 para los valores de RTT y MSS dados en la Sección 3.7. Si TCP tuviera que dar soporte a una conexión a 100 Gbps, ¿qué tasa de pérdidas sería tolerable?
R/.
Supongamos que los paquetes de 1500 bytes y un tiempo de ida y vuelta de 100 ms. Desde el rendimiento de TCP la ecuación es: y tenemos
51. En nuestra exposición sobre el control de congestión de TCP de la Sección 3.7, implícitamente hemos supuesto que el emisor TCP siempre tiene datos que enviar. Consideremos ahora el caso en que el emisor TCP envía una gran cantidad de datos y luego en el instante t 1 se queda inactiva (puesto que no tiene más datos que enviar). TCP permanece inactivo durante un periodo de tiempo relativamente largo y en el instante t2 quiere enviar más datos. ¿Cuáles son las ventajas y las desventajas de que TCP tengan que utilizar los valores de Ventana Congestión y umbral de t 1 cuando comienza a enviar datos en el instante t2? ¿Qué alternativa recomendaría? ¿Por qué? R/.
Una ventaja de utilizar los valores anteriores de cwnd y ssthresh en el instante t2 es que TCP haría un comienzo lento para no tener que ir a través de la congestión de la rampa hasta el rendimiento del valor obtenido en el instante t1. Una desventaja del uso de estos valores es que pueden ser poco exactos. En particular, si la ruta de acceso se ha vuelto congestionada entre t1 y t2, el remitente envía el valor del segmento en una gran ventana de un camino ya (más) congestionado.
52. En este problema vamos a investigar si UDP o TCP proporcionan un cierto grado de autenticación del punto terminal.
a. Considere un servidor que recibe una solicitud dentro de un paquete UDP y responde a la misma dentro de un paquete UDP (por ejemplo, como en el caso de un servidor DNS). Si un cliente con la dirección IP X suplanta su dirección con la dirección Y, ¿A dónde enviará el servidor su respuesta?
R/.
b. Suponga que un servidor recibe un SYN con la dirección IP de origen Y, y después de responder con un SYNACK, recibe un ACK con la dirección IP de origen Y y con el número de reconocimiento correcto. Suponiendo que el servidor elige un número de secuencia inicial aleatorio y que no existe ningún atacante interpuesto (man-in-the-middle), ¿puede el servidor estar seguro de que el cliente está en la dirección Y (y no en alguna otra dirección X que esté intentando suplantar a Y)?
R/.
El servidor puede estar seguro de que el cliente es de hecho Y. Si fuera algún otro domicilio erróneo Y, el SYNACK habría sido enviado a la dirección Y, y el TCP en ese anfitrión no enviaría el segmento TCP ACK de vuelta. Incluso si el atacante enviara debidamente un segmento TCP ACK, no sabría la secuencia correcta del número de servidor (ya que el servidor utiliza números de secuencia iniciales aleatorias.)
53. En este problema, vamos a considerar el retardo introducido por la fase de arranque lento de TCP. Se tiene un cliente y un servidor web directamente conectados mediante un enlace a velocidad R. Suponga que el cliente desea extraer un objeto cuyo tamaño es exactamente igual a 15 S, donde S es el tamaño máximo de segmento (MSS). Sea RTT el tiempo de transmisión de ida y vuelta entre el cliente y el servidor (suponemos que es constante). Ignorando las cabeceras del protocolo, determine el tiempo necesario para recuperar el objeto (incluyendo el tiempo de establecimiento de la conexión TCP) si:
a. 4 S/R > S/R + RTT > 2S/R R/. RTT RTT + + S / R + RTT + S / R + RTT + 12S / R = 4RTT + 14 b. S/R + RTT > 4 S/R R/. RTT + RTT RTT + S / R + S / R + RTT + S / R + + + RTT 8S / R = 5RTT +11 S/R c. S/R > RTT. R/. RTT RTT + + S / R + RTT + 14 S / R = 3 RTT + 15 S / R