Processing math: 100%

Exerciții

Scheletul laboratorului se regaseste la adresa de aici. Funcționalitatea disponibilă este descrisă în README.md. În continuare, vom folosi Mininet pentru a simula o topologie formată din 3 host-uri conectate la un router: sudo python3 topo.py.

Astăzi vom folosi matplotlib pentru a desena grafice.

sudo apt install python3-pip sudo pip3 install matplotlib

Astazi vom studia comportamentul TCP in mai multe situatii, vom urmarii live cum TCP actualizeaza CWND si cum acest lucru afecteaza throughput-ul.

Vă punem la dispoziție un script de Python, run_client.py, care rulează un client de iperf și desenează un grafic interactiv cu throughput-ul și congestion window-ul (cwnd) clientului. Adresa IP a lui H2 este ip address show -> 172.16.0.100. Din topo.py puteți modifica parametrii link-urilor.

1. Pe h2 rulați un server de iperf. Pe h1 rulați scriptul run_client.py și urmăriți graficul. După 30 de secunde deschideți pe h3 un al doilea client de iperf. Urmăriți cele două grafice, ce se întâmplă cu throughput-ul și cwnd? Cum sunt impartite intre h1 si h3? Modificati valorile bandwidth-ului la 30Mbps, se modifica comportamentul?

2. Vom reproduce scenariul anterior, doar că pe H1 vom rula scriptul run_client.py, iar pe h3 vom porni n instanțe de clienți folosind iperf -c 172.16.0.100. Ce putem spune că se întâmplă în acest caz?

3. De data aceasta vom rula două servere iperf pe h2, unul de UDP și unul de TCP. Pe h1 vom rula run_client.py, iar pe h3 vom rula un client de UDP cu un bandwidth (-b) cu valori cuprinse între 1 Mb - 10 Mb. Ce observăm?

4. Parcurgeti subsectiunea Modeling TCP congestion control. Vom modifica delay-ul din topo.py pe link-ul dintre router si h3 sa fie 5ms. Cum va fi impartit throughput-ul intre h1 si h3?

Hint: CWND=83p=kp și Throughput=32MSSRTTp

5. Vom face un client de iperf. Acesta este un simplu program ce se conectează la un server, trimite un număr de bytes pentru t secunde și la final afișează throughput-ul.