Laborator 09 - Echitate

Bibliografie recomandată

Echitate(Fairness)

În calculatoare și comunicații sunt folosite diverse metrici ale echității pentru a determina împărțirea “echitabilă” a resurselor. Am folosit ghilimelele deoarece există mai multe modele conceptuale de echitate, cu alte cuvinte, dreptatea nu este numai una! Problema echității se modelează diferit în funcție de următoarele aspecte:

  • utilizatorii cer părți egale, diferite, sau maximul disponibil
  • utilizatorii pot utiliza efectiv părți egale sau diferite (e.g: wireless aproape/departe de BS)
  • dependența între resursa primită și QoE nu e liniară (e.g: MPEG frames)
  • eficiența globală nu este sacrificată prea mult pentru o echitate dorită (e.g: comunism)
  • echitatea se obține doar pe termen lung (e.g: WiFi)

Jain's Fairness Index

În cazul în care toate cererile sunt egale, iar $x_i$ este cantitatea obținută de participantul $i$:

\[ Jain(x_i)=\frac{(\sum_{i=1}^{n}{x_i})^2}{n \sum_{i=1}^{n}{x_i^2}} \] \[ Jain(x_i) \in [0,1] \]

Proprietăți:

  • $x_i$ egale $ => Jain(x_i)=1$ echitate perfectă
  • $x_1..x_k$ egale și $x_{k+1}..x_n=0 =>$ $Jain(x_i)=\frac{k}{n}$
  • $x_1$ ia totul, iar ceilalți nimic '$ => Jain(x_i)=\frac{1}{n}$ - inechitatea cea mai gravă
  • independentă de populație
  • independentă de dimensiunea $x_i$
  • continuă în [0..1]

Echitatea ε

  • capturează inechitatea cea mai gravă
  • $ \varepsilon(x) = \frac{\min_i x_i}{\max_i x_i} $
  • 0 = starving, 1 = echitate perfectă

Task-uri

[00a] Pregătirea laboratorului

Pe mașina virtuală aveți tot ce trebuie în /home/student/ns-3-dev.

Dacă lucrați pe alt dispozitiv trebuie să rulați comenzile:

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

Pentru a lansa aplicatia de Jupyter Notebook, rulati urmatoarea comanda:

student@isrm-vm-2020:~$ jupyter-notebook

[00b] Rulare script

Topologia din script contine n noduri dintre care n-1 sunt statii, iar ultimul nod este reprezentat de catre access point. Statiile sunt dispuse concentric in jurul access point-ului. Spre exemplu, pentru o topologie cu 4 noduri (3 statii si un access point), CW minim 15, CW maxim 1023, parametrii default de 802.11g, fără PCAP tracing si o durata simulării de 10 secunde, scriptul se ruleaza astfel:

./waf --run "lab9 --minCw=15 --maxCw=1023 --nn=4 --pcap=false --simulationTime=10"

In urma rularii, ultimele 2 linii sunt de interes:

rlen jain eps
3 1 0.999515

rlen reprezinta numarul de statii, jain reprezinta indexul de echitate Jain, iar eps reprezinta indexul de echitate Epsilon.

[01] Echitatea cu CW fix

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 (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 (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ă?

Echitatea este determinată de urmatorii factori:

  • coliziuni
  • populație: mai mulți vorbitori înseamnă mai multe șanse de coliziune
  • fereastra prea mică duce la mai multe coliziuni
  • timp: pe termen lung, toți participanții au relativ aceleași șanse de a obține mediul sau de a intra în coliziune

[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 (5s, 20s, 50s).

Cum este echitatea față de cazurile cu fereastră fixă? De ce? 1)

Cum se poate îmbunătăți echitatea pentru configurația dată? 2) Modificați si rulați.

[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 (5s, 20s, 50s).

Utilizarea RTS/CTS duce la creșterea echității? De ce?

Ce se schimbă atunci când în loc de N fluxuri upstream, avem de exemplu 2 fluxuri downlink și N-2 uplink? 3)

  • Rezultate
  • Echitatea Jain pentru CW = 31
  • Echitatea Jain pentru CW = 511
  • Echitatea Jain pentru 802.11(CW=31..1023)
  • Echitatea Jain pentru 802.11 cu RTS

Acest exercitiu presupune modificari in scriptul de ns3.

[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

1) o exprimare folclorica dinn 802.11, “Rich get richer, poor get poorer”
2) Renunțăm la capacitate pt echitate
3) 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
isrm/laboratoare/new/09.txt · Last modified: 2022/05/09 09:16 by mbarbulescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0