Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
43 Introducci
on a los Sistemas Distribuidos
Parte 1: Ejercicios te
oricos
1. El control de congesti
on de una conexion TCP se halla en el siguiente estado:
window size = 32 * MSS
cwnd = 8 * MSS
awnd = min [cwnd; window size] = 8 * MSS
ssthresh = 4 * MSS
C
omo se afectar
an las variables cwnd y ssthresh cuando se reciba un ACK? Justifique.
a)
b)
c)
d)
2. (Modelos de Congesti
on) Consideraremos el siguiente modelo de la congestion en la red, sin
errores ni timeouts: Un usuario establece una conexion TCP desde una conexion a Internet
de alta velocidad (por ejemplo, 10 Mbps). La conexion TCP aumenta linealmente su ventana
de congesti
on (cWnd) hasta que en cierto punto se alcanza el nivel de bottleneck bandwith,
es decir, el buffer de alg
un router intermedio comienza a llenarse, hasta que se produce la
perdida de un segmento. Entonces se aplica Fast Retransmit y Fast Recovery, y la ventana
de congesti
on se reduce a la mitad.
En estado estacionario, la ventana de congestion se puede modelar como un diente de sierra:
Parte 2: Simulaci
on
Es este ejercicio estableceremos una conexion con errores de transmision con un servidor HTTP,
y analizaremos c
omo soluciona TCP las perdidas de paquetes, los errores y duplicados, es decir
c
omo asegura una conexi
on confiable y sin errores. Para la simulacion de errores y perdidas en el
medio se utiliz
o la herramienta tc de Linux, que permite manipular el trafico que pasa de la capa
de red del sistema operativo a la placa de red.
Nota:
CONFIGURACI
oN DEL CLIENTE:
1) sudo tc qdisc add dev eth1 root netem delay 200ms
2) sudo sysctl -w net.ipv4.tcp congestion control=reno
3) sudo sysctl -w net.ipv4.tcp sack=0
CONFIGURACI
oN DEL SERVIDOR:
1) sudo tc qdisc add dev eth0 root netem delay 200ms drop 5 % corrupt 5 %
2) sudo sysctl -w net.ipv4.tcp congestion control=reno
3) sudo sysctl -w net.ipv4.tcp sack=0
Tenga en cuenta que a partir de la versi
on 2.6.39 del kernel de Linux, la ventana de congesti
on inicial se
estableci
o en 10 MSS (default) (m
as informaci
on en https://lwn.net/Articles/427104/).
5. Detenga la captura.
2.1. An
alisis de la conexi
on TCP
En esta parte analizaremos los resultados de la captura con el Wireshark. Comience aplicando
un filtro para observar u
nicamente los segmentos TCP de su propia transferencia HTTP. Utilice
simult
aneamente las capturas del lado del cliente y del lado del servidor.
1. Imprima el gr
afico Time-Sequence que genera el Wireshark, a traves del men
u Statistics.
Adjunte este gr
afico al informe. Le servira tambien para ayudarse en los proximos puntos.
Atenci
on: Asegurese de imprimir el gr
afico correspondiente al servidor.
2. Elabore un gr
afico temporal de toda la transferencia, pero solo muestre los grupos de
segmentos enviados en cada burst. Recuerde que como estamos empleando un delay constante de
100ms para el canal, los tiempos de recepci
on y envo de los segmentos estar
an muy sincronizados. Por eso
podemos asumir que los segmentos viajan en bursts, lo cual facilita el an
alisis y confecci
on del gr
afico.
S
olo muestre el ID. de segmento, es decir un valor autoincremental tal que
ID MSS + 1 = SequenceNumber
A un costado del gr
afico indique el valor que mantienen las variables cwnd y ssthresh del lado
del servidor.
A modo de ejemplo:
Observaciones
Los segmentos se graficar
an con lineas oblicuas. La lnea de tiempo deber
a a estar a escala.
Recuerde que el RTT de los segmentos es de 400 ms.
Indique los segmentos que no llegan a destino con una cruz sobre el n
umero de segmento
Indique los segmentos que llegan con errores con una raya sobre el n
umero de segmento
Si se envan varios ACK con el mismo ACK number, indique la cantidad de ACKs con un
n
umero entre parentesis (ej., ACK 48(3)).