Differences

This shows you the differences between two versions of the page.

Link to this comparison view

isrm:laboratoare:08 [2014/10/12 22:25]
dragos.niculescu removed
isrm:laboratoare:08 [2019/12/24 18:39] (current)
mbarbulescu
Line 1: Line 1:
 ==== Laboratorul 8 ==== ==== Laboratorul 8 ====
-=== Rate multiple ​(MCS) ===+=== 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 modulează 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)
  
-Se dă scriptul {{isrm:​laboratoare:​08:​multirate.tcl}} ​care definește  +== Jain's Fairness Index === 
-nodurile WiFi 0,1,2,3,4 astfel +În cazul în care toate cererile sunt egaleiar $x_i$ este cantitatea obținută de participantul $i$:
-<​code>​ +
-        3+
  
-    4   ​0 ​  +\[ 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] \] 
-        ​+  
-</​code>​ +Proprietăți
-Nodul 0 funcționează ca AP și emite la 11Mbps, iar celelalte noduri sunt clienți, cu legături uplink de 1MbpsSunt definite patru fluxuri UDP 1->3, 2->4, 4->0, 0->4, toate cu pachete de 1460 de octeți. ​ +  * $x_i$ egale $ => Jain(x_i)=1$ echitate perfectă 
-Distanțele de la clienți la AP sunt de 20m, RTS este dezactivat, RxThresh=250m, iar acești parametri nu vor fi modificați.  +  * $x_1..x_k$ egale și $x_{k+1}..x_n==>$ $Jain(x_i)=\frac{k}{n}$ ​ 
-Scriptul **necesită** următorii +  * $x_1$ ia totul, iar ceilalți nimic '$ =Jain(x_i)=\frac{1}{n}$ inechitatea cea mai gravă 
-parametri pe linia de comandă: +  * independentă de populație 
-  * rate0 <rateindică rata oferită pentru fluxul ​1->​3  ​ +  * independentă de dimensiunea $x_i$ 
-  * rate1 <​rate>​ indică rata oferită pentru fluxul 2->​4 ​ +  * continuă în [0..1]
-  * rate2 <​rate>​ indică rata oferită pentru fluxul 4->​0 ​ +
-  * rate3 <​rate>​ indică rata oferită pentru fluxul ​0->​4 ​+
  
-La sfârșitul simulării de 100 secunde se afișează throughputul în bps +== Echitatea ε == 
-pentru fiecare flux, și numărul total de pachete transferat pe durata +  * capturează inechitatea cea mai gravă 
-întregii simulări. Scriptul cere ca parametrii rate să fie diferiți de +  * $ \varepsilon(x) = \frac{\min_i x_i}{\max_i x_i} $ 
-zero, dar pentru a dezactiva un flux, trebuie furnizată o rată +  * 0 = starving1 = echitate perfectă
-neglijabilăde exemplu 0.01bps. Unitatea de măsură nu se separă cu +
-spațiu: 11Mbps, 360Kbps, etc.+
  
-  - Să se calculeze capacitatea maximă a aerului în pps si bps pentru fiecare emițător luat în izolare. Cât durează transmiterea unui cadru de la stații? Dar de la AP? 
-  - Dacă doar fluxul 0 (1->3) este activ, ce throughput se obține end to end?  
-  - Care este rata coliziunilor (cps)? Cât durează o coliziune? ​ 
-  - Cum se justifică valoarea obținută? Care este compoziția cadrelor din aer?  
-  - Dacă doar fluxurile 0 (1->3) și 1 (2->4) sunt active, ce throughput se obține end to end?  
-  - Cum se justifică valoarea obținută? ​ 
-  - Cum puteți obține o valoare mai mare?  
  
 +Descărcați scriptul {{isrm:​laboratoare:​src:​cw-fair.tcl}} care folosește parametrii: -rlen -cwmin -cwmax. În script este definită durata simulării simtime. Topologia folosită este cu un AP în mijloc, și rlen-1 stații dispuse circular la distanță egală care transmit UDP __către__ AP.
  
-=== Rezolvare === +  * pentru ​10 noduri, estimați rulând manual echitatea cu ferestre CW fixe de 7 vs 4095Comentați. 
-  - Se dezactivează toate fluxurile în afară de unul pentru ​a studia un transmițător în izolare: <​code> ​     +  * comparați echitatea pe termen scurt (1s)mediu(5s), lung (50s
-    ns ./multirate.tcl -rate0 0.01bps -rate1 0.01bps ​ -rate2 0.01bps -rate3 11Mbps ​ </​code>​ Se obțin 511ppssau 5.97Mbps pentru AP. Un cadru durează \\frac{1000}{511} = 1.95ms \<​code> ​     +    ​* pentru ferestre fixe CW = 7, 31, 511 realizați trei grafice care indică echitatea în funcție de numărul de clienți 2..20Fiecare grafic conține 3 curbe pentru ​duratele pe care se face medierea(1s, 5s, 50s)  
-    ​ns ./multirate.tcl -rate0 0.01bps -rate1 0.01bps ​ -rate2 11Mbps -rate3 0.01bps ​ </​code> ​ Se obțin 77pps, sau 902Kbps ​pentru ​statii. Un cadru durează \\frac{1000}{77} = 12.98ms \) +    ​* cum explicați tendințele de creștere/scădere a echității cu: numărul de cliențidimensiunea ferestreiscara de timp considerată?​ (( Echitatea este determinată (și) de coliziuni. Populație: mai mulți vorbitori înseamnă mai multe șanse de coliziune; Fereastra prea mică duce la mai multe coliziuni; Timp: pe termen lungtoțparticipanții au relativ aceleași șanse de a obține mediulsau de a intra în coliziune. ​  ​))      
-  - Se activează doar fluxul 0 (1->​3): ​ <​code> ​     +  ​* Pentru 802.11 standard, calculați echitatea ​pe termen ​scurt (5s) și pe termen lung (50s). Realizați grafice care să ilustreze variația echității cu numărul de clienți. 
-    ​ns ./multirate.tcl -rate0 902Kbps -rate1 0.01bps ​ -rate2 0.1bps -rate3 0.1bps ​ </​code>​ Se obțin 755Kbps, sau 64pps. În aer se află cadre scurtela 11Mbps, și cadre lungi, emise la 1Mbps, cel puțin câte 64 din fiecare, deoarece 64pps sunt livrate la destinație. Este posibil să mai fie și cadre în coliziune+    ​* cum este echitatea față de cazurile cu fereastră fixă? De ce? (( în 802.11pe termen scurt "Rich get richerpoor get poorer"​))  
-  - <​code>​ cat ./​multirate.tr ​ | grep cbr | grep COL | wc -l </​code> ​ Rezultă 4cps coliziuni pe secundă. Deoarece toate dispozitive sunt în CSnu avem terminale ascunse, școliziunile sunt datorate ferestrei de contenție. Avem 2 transmițători:​ AP și stația 1ce emit cadre de lungimi diferite. O coliziune ​durează până la sfârșitul cadrului cel mai lung (802.11 nu are CSMA/CD), adică 12.98ms. 4*12.98ms = 52ms = 5.2% din timp.  +    * cum se poate îmbunătățechitatea pentru configurația dată? (modificați, rulați, plotați) (( Hint: renunțăm la capacitate pt echitate...)) 
-  ​- Trebuie să aflăm câte cadre din fiecare tip se află în aer  într-o secundăFiecare emițător câștigă mediul în mod egal pe termen ​lung, x cadre pe secundă, dar fiecare îl ține ocupat în funcție de MCS folosit: ​(1Mbps, 11Mbps\( R_1 = 77pps, R_2 = 511pps\). În plus mai avem și C coliziuni ​pe secundă. $$ \frac{x}{R_1} + \frac{x}{R_2} + \frac{C}{R_1} = 1 $$ $$ x = (1-\frac{C}{R_1})\frac{R_1R_2}{R_1+R_2} = 63pps$$ adică 63*1480*8 = 751Kbps, consistent cu ce am obținut în simulare.<​code>​  +    * Utilizarea RTS/CTS duce la creșterea echității? De ce? 
-    * Stația 1 ocupă 64*12.98 = 823ms = 82% din timp.  +  ​* Ce se schimbă atunci când în loc de N fluxuri upstreamavem de exemplu 2 fluxuri downstream ​și N-2 upstream? ​(( WiFi produce o oarecare echitate între vorbitorideci cele 2 fluxuri downstream pentru care AP este vorbitor vor primi împreună cât un flux upstream)) 
-    * AP ocupă 64*1.95=123ms = 12% din timp +  * Rezultate  
-    * coliziuni, restul ​de 5% din timp </​code>​ Coada de pachete este probabil mereu goală în AP, și în creștere la stație, deoarece se generează mai mult decât se poate emite.<>​ +  * Echitatea Jain pentru CW 31 {{:​isrm:​laboratoare:​08:​jain.cw31.png?​direct&​200|}}  
-  - Activăm fluxurile 0 ș1, oferind maximul precedent: <​code> ​     +  * Echitatea Jain pentru ​CW 511  {{:​isrm:​laboratoare:​08:​jain.cw511.png?​direct&​200|}} ​ 
-    ns ./​multirate.tcl -rate0 755Kbps -rate1 755Kbps ​ -rate2 0.1bps -rate3 0.1bps +  ​* Echitatea Jain pentru ​802.11(CW=31..1023) {{:​isrm:​laboratoare:​08:​jain.802.11.png?​direct&​200|}}  ​ 
-    ​cat ./​multirate.tr ​ | grep cbr | grep COL | wc -l  +  * Echitatea Jain pentru 802.11 ​cu RTS {{:​isrm:​laboratoare:​08:​jain.802.11.rts.png?​direct&​200|}} ​
-  </​code>​ Se obțin câte 199Kbps pentru fiecare flux, adică 17pps. Coliziuni 8.2cps.  +
-  - Dacă se transmite un maximum ​de la fiecare sursă (1 și 2)AP-ul va avea de retransmis pentru ambeledar nu câștigă mediul decât în 1/3 din arbitrări, deșcadrele lui sunt mai scurte. $$  \frac{x}{R_1} + \frac{x}{R_1} + \frac{x}{R_2} + \frac{C}{R_1} = 1 $$ Ce este diferit față de cazul precedent este că toți cei trei   emițători sunt saturați, AP-ul însă nu dirijează decât \( \frac{x}{2} \pentru ​  ​fiecare flux, iar restul este pierdut. $$ x = (1 - \frac{C}{R_1})\frac{R_1 R_2}{R_1+2 R_2} = 32pps$$ Dar debitul obținut pentru fiecare flux este doar \(x/2\) = 16pps, adică 190Kbps.<​code>​ +
-    * Stația 1 ocupă 32*12.98ms = 42% din timp  +
-    * Stația 2 ocupă 32*12.98ms = 42% din timp  +
-    * AP ocupă 32*1.95ms = 6% din timp  +
-    * Coliziuni 8.2*12.98ms = 10% din timp </code> Adică 42% din timp este irosit pentru a transmite prin aer cadre care vor fi aruncate la AP! +
-  ​- Ar trebui ca fiecare cadru emis de o sursă să fie dirijat ​de către APsi nu aruncat, deci împărțirea prin contenție nu se dorește echitabilă,​ ci AP-ul ar trebui să obțină dublu față de fiecare stație. \(x\) este acum debitul per flux: $$  \frac{x}{R_1} + \frac{x}{R_1} + \frac{2x}{R_2} + \frac{C}{R_1} = 1 $$ Din păcte C și x sunt interdependenteși o proporție de coliziuni ​este inevitabilă chiar dacă AP-ul este nesaturat. Cu 0 coliziuni am obține ​ $$ x \frac{0.5 R_1 R_2}{R_1 + 2 R_2= 18pps = 396Kbps $$ Dacă rulăm, obținem 214Kbps și 7.9cps, ceea ce este departe de formulă, dar totuși crește debitul și scad coliziunile,​ deci este clar că trebuie trimis mai puțin de la surse. Un alt indiciu este că nu se pot emite mai mult de 755Kbps ​pentru ​un flux, deci 755Kbps/​2 ​377Kbps de la fiecare stație 0 și 1, deoarece mediul este comun. <​code> ​ ns ./multirate.tcl -rate0 377Kbps -rate1 377Kbps ​ -rate2 0.1bps -rate3 0.1bps +
-  ​</​code>​ Se obțin câte 337Kbps ​pentru ​fiecare flux, adică 29ppsColiziuni C 5.9cpsFolosind acest ultim C, obținem: $$ x = (1 - \frac{C}{R_1})\frac{0.5 R_1 R_2}{R_1+2 R_2= 31pps = 365Kbps $$  Dacă oferim doar 365K, se obțin 362K, si doar 4cps (similar ​cu 2., 3.), probabil ​ optimul pentru această configurație. +
  
 +== Max-min Fairness (facultativ) ==
 +Pentru fluxurile care au cereri diferite, echitatea [[http://​en.wikipedia.org/​wiki/​Max-min_fairness | Max-min]] alocă gradual pentru fiecare conexiune până este satisfăcută cea mai mică, apoi se continuă cu cele rămase. ​
 +  * Modificați rata pachetelor cerute de unele stații, și determinați dacă accesul la aer 802.11 este echitabil în sens Max-min.
isrm/laboratoare/08.1413141926.txt.gz · Last modified: 2014/10/12 22:25 by dragos.niculescu
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