This shows you the differences between two versions of the page.
|
isrm:laboratoare:new:10 [2020/05/04 15:55] vlad.traista [[00b] Rulare script] |
isrm:laboratoare:new:10 [2023/05/09 12:54] (current) dragos.niculescu [[03c] Obțtinerea unui throughput mai mare] |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| ==== [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> | </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> | ||
| - | |||
| ==== [00b] Rulare script ==== | ==== [00b] Rulare script ==== | ||
| - | |||
| - | <note warning>Inainte de a rula scriptul, actualizati repo-ul cu comenzile din setup (a fost actualizat laboratorul 10).</note> | ||
| Topologia din script folosteste standardul **802.11g** contine nodurile WiFi 0,1,2,3,4 astfel: | Topologia din script folosteste standardul **802.11g** contine nodurile WiFi 0,1,2,3,4 astfel: | ||
| Line 199: | Line 177: | ||
| Vom obtine 736 coliziuni pe parcursul a 100 de secunde ceea ce inseamna o rata de coliziuni de aproximativ 7 cps. | Vom obtine 736 coliziuni pe parcursul a 100 de secunde ceea ce inseamna o rata de coliziuni de aproximativ 7 cps. | ||
| - | Deoarece toate dispozitive sunt în CS, nu avem terminale ascunse, iar coliziunile sunt cauzate de fereastra 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). Astfel, durata unei coliziuni este: 2.19 ms * 7 = 15.33 ms ceea ce inseamna ca dintr-o secunda (1000 ms), 1.53% din timp este irosit de coliziuni. | + | Deoarece toate dispozitive sunt în CS, nu avem terminale ascunse, iar coliziunile sunt cauzate de fereastra 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). Astfel, durata coliziunilor dintr-o secunda este: 2.19 ms * 7 = 15.33 ms ceea ce inseamna ca dintr-o secunda (1000 ms), 1.53% din timp este irosit de coliziuni. |
| ==== [02c] Justificarea ratei de coliziuni ==== | ==== [02c] Justificarea ratei de coliziuni ==== | ||
| Line 274: | Line 252: | ||
| Dar debitul obținut pentru fiecare flux este doar \(x/2\) = 87pps, adică 1.01 Mbps. | Dar debitul obținut pentru fiecare flux este doar \(x/2\) = 87pps, adică 1.01 Mbps. | ||
| * Stația 1 ocupă 175 * 2.19 ms = 383.25 ms -> 38.3% din timp | * Stația 1 ocupă 175 * 2.19 ms = 383.25 ms -> 38.3% din timp | ||
| - | * Stația 2 ocupă 175 * 2.19 ms = 206.5 ms -> 38.3% din timp | + | * Stația 2 ocupă 175 * 2.19 ms = 383.25 ms -> 38.3% din timp |
| * AP ocupă 175 * 1.18 ms = 206.5 ms -> 20.6% din timp | * AP ocupă 175 * 1.18 ms = 206.5 ms -> 20.6% din timp | ||
| * Coliziuni - 2.8% din timp (am obtinut anterior 1.9%, o valoare relativ apropiata de 2.8%) | * Coliziuni - 2.8% din timp (am obtinut anterior 1.9%, o valoare relativ apropiata de 2.8%) | ||
| Line 280: | Line 258: | ||
| + | ==== [03c] Obținerea unui throughput mai mare ==== | ||
| + | |||
| + | * Cum obținem mai mult de 1.04Mbps + 1.04Mbps în experimentul de la 3b? | ||