This shows you the differences between two versions of the page.
isrm:laboratoare:new:09 [2020/04/11 20:21] vlad.traista [[04] Analiza] |
isrm:laboratoare:new:09 [2022/05/09 09:16] (current) mbarbulescu [[Bonus] Analiza] |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Bibliografie recomandată ===== | ===== Bibliografie recomandată ===== | ||
- | TODO | + | * [[https://www.cse.wustl.edu/~jain/atmf/ftp/af_fair.pdf|Throughput Fairness Index: An Explaination (slides)]] |
+ | * {{:isrm:laboratoare:new:a_quantitative_measure_of_fairness_and_d.pdf|A quantitative measure of fairness and discrimination for resource allocation in shared computer systems - R. Jain, D. Chiu, W. Hawe, 1984}} | ||
===== Echitate(Fairness) ===== | ===== Echitate(Fairness) ===== | ||
Line 38: | Line 39: | ||
==== [00a] Pregătirea laboratorului ==== | ==== [00a] Pregătirea laboratorului ==== | ||
- | Dacă vreți să creați folder nou pe calculatoarele voastre: | + | <note important> |
+ | Pe [[:isrm:mv|mașina virtuală]] aveți tot ce trebuie în ''/home/student/ns-3-dev''. | ||
- | <code bash> | + | Dacă lucrați pe alt dispozitiv trebuie să rulați comenzile: |
- | git clone https://gitlab.com/b12mihai1/ns-3-dev.git ~/ns-3-dev | + | |
- | cd ~/ns-3-dev | + | |
- | git checkout -b isrm_2020 remotes/origin/isrm_2020 | + | |
- | git submodule init | + | |
- | git submodule update --remote --merge | + | |
- | git submodule foreach git pull origin master | + | |
- | ./waf configure --build-profile=debug --enable-examples --enable-tests && ./waf build -j4 | + | |
- | </code> | + | |
- | + | ||
- | Dacă folosiți [[:isrm:mv|mașina virtuală]]: | + | |
<code bash> | <code bash> | ||
- | student@isrm-vm:~$ cd ~/ns-3-dev | + | student@isrm-vm-2020:~$ git clone https://gitlab.com/nsnam/ns-3-dev.git |
+ | student@isrm-vm-2020:~$ cd ~/ns-3-dev | ||
+ | student@isrm-vm-2020:~/ns-3-dev$ git checkout -b ns-332-rel ns-3.32 | ||
+ | student@isrm-vm-2020:~$ cd ~/ns-3-dev/examples | ||
+ | student@isrm-vm-2020:~/ns-3-dev/examples$ git clone https://github.com/isrm-lab/ns3-labs.git | ||
+ | student@isrm-vm-2020:~$ cd ~/ns-3-dev | ||
+ | student@isrm-vm-2020:~$ ./waf configure --build-profile=debug --enable-examples --enable-tests | ||
+ | student@isrm-vm-2020:~$ ./waf build -j4 | ||
</code> | </code> | ||
+ | </note> | ||
- | Verificați că sunteți pe branch-ul ''isrm_2020'' din remote-ul https://gitlab.com/b12mihai1/ns-3-dev.git: | + | Pentru a lansa aplicatia de Jupyter Notebook, rulati urmatoarea comanda: |
<code bash> | <code bash> | ||
- | student@isrm-vm:~/ns-3-dev$ git remote -v | + | student@isrm-vm-2020:~$ jupyter-notebook |
- | origin https://gitlab.com/b12mihai1/ns-3-dev.git (fetch) | + | |
- | origin https://gitlab.com/b12mihai1/ns-3-dev.git (push) | + | |
- | + | ||
- | student@isrm-vm:~/ns-3-dev$ git branch -vv | + | |
- | * isrm_2020 5993ca379 [origin/isrm_2020] fix submodules to have https instead of ssh | + | |
- | master da1b41ed1 [origin/master] tcp: Ensure that congestion state is set after every notification | + | |
- | </code> | + | |
- | + | ||
- | Rulați următoarele comenzi pentru update-ul submodului din ''examples/ns3-labs'': | + | |
- | + | ||
- | <code bash> | + | |
- | student@isrm-vm:~/ns-3-dev$ git submodule update --remote --merge | + | |
- | </code> | + | |
- | + | ||
- | Dacă cea de mai sus nu merge alternativ puteți încerca: | + | |
- | + | ||
- | <code bash> | + | |
- | student@isrm-vm:~/ns-3-dev$ git submodule foreach git pull origin master | + | |
</code> | </code> | ||
Line 100: | Line 82: | ||
Rulati scriptul pentru 10 noduri si observati valorile celor 2 indecsi de echitate pentru ferestre CW fixe de 7 vs 4095. Comentați rezultatul. | Rulati scriptul pentru 10 noduri si observati valorile celor 2 indecsi de echitate pentru ferestre CW fixe de 7 vs 4095. Comentați rezultatul. | ||
- | Comparați echitatea pe termen scurt (1s), mediu(5s), lung (50s) pentru ferestrele CW fixe de 7 vs 4095. Simularea primește parametrul ''simulationTime'' pe care îl puteți ajusta. | + | Comparați echitatea pe termen scurt (5s), mediu(20s), lung (50s) pentru ferestrele CW fixe de 7 vs 4095. Simularea primește parametrul ''simulationTime'' pe care îl puteți ajusta. |
- | Pentru ferestre fixe CW = 7, 31, 511, 4095, realizați patru grafice care indică echitatea în funcție de numărul de clienți ''2..20''. Fiecare grafic conține 3 curbe pentru duratele de rulare (1s, 5s, 50s). | + | Pentru ferestre fixe CW = 7, 31, 511, 4095, realizați patru grafice care indică echitatea în funcție de numărul de clienți ''2..20''. Fiecare grafic conține 3 curbe pentru duratele de rulare (5s, 20s, 50s). |
Cum explicați tendințele de creștere/scădere a echității cu: numărul de clienți, dimensiunea ferestrei, scara de timp considerată? | Cum explicați tendințele de creștere/scădere a echității cu: numărul de clienți, dimensiunea ferestrei, scara de timp considerată? | ||
Line 114: | Line 96: | ||
</note> | </note> | ||
- | ==== [02] Echitatea cu CW variabila (802.11 standard) ==== | + | ==== [02] Echitatea cu CW variabil (802.11 standard) ==== |
- | Pentru 802.11 standard cu dimensiunea ferestrei CW variabila ''minCW=15, maxCW=1023'', realizați un grafic care indică echitatea în funcție de numărul de clienți ''2..20''. Graficul conține 3 curbe pentru duratele de rulare (1s, 5s, 50s). | + | Pentru 802.11 standard cu dimensiunea ferestrei CW variabila ''minCW=15, maxCW=1023'', realizați un grafic care indică echitatea în funcție de numărul de clienți ''2..20''. Graficul conține 3 curbe pentru duratele de rulare (5s, 20s, 50s). |
Cum este echitatea față de cazurile cu fereastră fixă? De ce? ((o exprimare folclorica dinn 802.11, "Rich get richer, poor get poorer")) | Cum este echitatea față de cazurile cu fereastră fixă? De ce? ((o exprimare folclorica dinn 802.11, "Rich get richer, poor get poorer")) | ||
Line 122: | Line 104: | ||
Cum se poate îmbunătăți echitatea pentru configurația dată? ((Renunțăm la capacitate pt echitate)) Modificați si rulați. | Cum se poate îmbunătăți echitatea pentru configurația dată? ((Renunțăm la capacitate pt echitate)) Modificați si rulați. | ||
- | ==== [03] Echitatea cu CW variabila (802.11 standard) cu RTS/CTS ==== | + | ==== [03] Echitatea cu CW variabil (802.11 standard) cu RTS/CTS ==== |
- | Pentru 802.11 standard cu dimensiunea ferestrei CW variabila ''minCW=15, maxCW=1023'' si cu RTS/CTS activat, realizați un grafic care indică echitatea în funcție de numărul de clienți ''2..20''. Graficul conține 3 curbe pentru duratele de rulare (1s, 5s, 50s). | + | Pentru 802.11 standard cu dimensiunea ferestrei CW variabila ''minCW=15, maxCW=1023'' si cu RTS/CTS activat, realizați un grafic care indică echitatea în funcție de numărul de clienți ''2..20''. Graficul conține 3 curbe pentru duratele de rulare (5s, 20s, 50s). |
Utilizarea RTS/CTS duce la creșterea echității? De ce? | Utilizarea RTS/CTS duce la creșterea echității? De ce? | ||
- | ==== [Bonus] Analiza ==== | + | ==== [Bonus 1] Analiza mix downlink/uplink ==== |
- | Ce se schimbă atunci când în loc de N fluxuri upstream, avem de exemplu 2 fluxuri downstream și N-2 upstream? (( WiFi produce o oarecare echitate între vorbitori, deci cele 2 fluxuri downstream pentru care AP este vorbitor vor primi împreună cât un flux upstream)) | + | Ce se schimbă atunci când în loc de N fluxuri upstream, avem de exemplu 2 fluxuri downlink și N-2 uplink? (( WiFi produce o oarecare echitate între vorbitori, deci cele 2 fluxuri downlink pentru care AP este vorbitor vor primi împreună cât un flux uplink)) |
* Rezultate | * Rezultate | ||
* Echitatea Jain pentru CW = 31 | * Echitatea Jain pentru CW = 31 | ||
Line 139: | Line 121: | ||
<note>Acest exercitiu presupune modificari in scriptul de ns3.</note> | <note>Acest exercitiu presupune modificari in scriptul de ns3.</note> | ||
+ | ==== [Bonus 2] TCP traffic ==== | ||
+ | |||
+ | Realizați exercițiul 2 cu trafic TCP (se înlocuiește ''ns3::UdpSocketFactory'' în codul simulării cu ''ns3::TcpSocketFactory'' sau puteți urmări funcția ''setup_tcp_flow'' din ''lab5.cc'' |