This is an old revision of the document!
Se dă scriptul multirate.tcl care definește nodurile WiFi 0,1,2,3,4 astfel:
3 4 0 2 1
Nodul 0 funcționează ca AP și emite la 11Mbps, iar celelalte noduri sunt clienți, cu legături uplink de 1Mbps. Sunt definite patru fluxuri UDP 1→3, 2→4, 4→0, 0→4, toate cu pachete de 1460 de octeți. 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. Scriptul necesită următorii parametri pe linia de comandă:
La sfârșitul simulării de 100 secunde se afișează throughputul în bps pentru fiecare flux, și numărul total de pachete transferat pe durata întregii simulări. Scriptul cere ca parametrii rate să fie diferiți de zero, dar pentru a dezactiva un flux, trebuie furnizată o rată neglijabilă, de exemplu 0.01bps. Unitatea de măsură nu se separă cu spațiu: 11Mbps, 360Kbps, etc.
ns ./multirate.tcl -rate0 0.01bps -rate1 0.01bps -rate2 0.01bps -rate3 11Mbps
Se obțin 511pps, sau 5.97Mbps pentru AP. Un cadru durează \( \frac{1000}{511} = 1.95ms \)
ns ./multirate.tcl -rate0 0.01bps -rate1 0.01bps -rate2 11Mbps -rate3 0.01bps
Se obțin 77pps, sau 902Kbps pentru statii. Un cadru durează \( \frac{1000}{77} = 12.98ms \)
ns ./multirate.tcl -rate0 902Kbps -rate1 0.01bps -rate2 0.1bps -rate3 0.1bps
Se obțin 755Kbps, sau 64pps. În aer se află cadre scurte, la 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.
cat ./multirate.tr | grep cbr | grep COL | wc -l
Rezultă 4cps coliziuni pe secundă. Deoarece toate dispozitive sunt în CS, nu avem terminale ascunse, și coliziunile sunt datorate ferestrei de contenție. Avem 2 transmițători: AP și stația 1, ce 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.
* Stația 1 ocupă 64*12.98 = 823ms = 82% din timp. * AP ocupă 64*1.95=123ms = 12% din timp * coliziuni, restul de 5% din timp
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.<>
ns ./multirate.tcl -rate0 755Kbps -rate1 755Kbps -rate2 0.1bps -rate3 0.1bps cat ./multirate.tr | grep cbr | grep COL | wc -l
Se obțin câte 199Kbps pentru fiecare flux, adică 17pps. Coliziuni 8.2cps.
* 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
Adică 42% din timp este irosit pentru a transmite prin aer cadre care vor fi aruncate la AP!
ns ./multirate.tcl -rate0 377Kbps -rate1 377Kbps -rate2 0.1bps -rate3 0.1bps
Se obțin câte 337Kbps pentru fiecare flux, adică 29pps. Coliziuni C = 5.9cps. Folosind 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.