Differences

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

Link to this comparison view

isrm:laboratoare:new:04 [2020/03/13 20:55]
mbarbulescu [[01] Capacitatea ideală simulare UDP 2 noduri RTS/CTS]
isrm:laboratoare:new:04 [2024/03/19 09:04] (current)
mbarbulescu [[00] Pregătire laborator]
Line 3: Line 3:
 ====== Concepte noi ====== ====== Concepte noi ======
  
-TODO: despre ​RTS/CTS+Un mod explicit de rezervare a mediului se face prin intermefdiul pachetelor ''​RTS/CTS''​. Emițătorul trimite RTS, iar receptorul răspunde cu CTS. În pașii 3 și 4 se transmit datele și confirmarea ACK în modul obișnuit. Diferența este acum că nodurile vecine au ocazia să estimeze durata conversației în 4 pași prin citirea câmpului **Duration** fie din RTS, fie din CTS.
  
-====== ​ [00] Pregătire laborator ======+{{ :​isrm:​laboratoare:​rtscts.gif |}}
  
-Intrați în directorul ''​/home/student/Desktop/ISRM/ns-3-dev''​Rulați comenzile:+Mai multe explicații despre RTS/CTS puteți citi: 
 +   * [[https://mrncciew.com/2014/10/26/cwap-802-11-ctrl-rtscts/​|pe mrnccview]] 
 +   * Sec 7.5.1.1 RTS/CTS frame exchange din [[https://​wi-fi.cs.pub.ro/​~dniculescu/​didactic/​isrm/​doc/​%20Next%20Generation%20Wireless%20LANs_%20Throughput,​%20Robustness,​%20and%20Reliability%20in%20802.11n%20%5b2008%5d.pdf|Perahia - Next generation wireless]]
  
-<code bash> +Despre trafic TCP vă recomandăm reîmprospătarea cunoștințelor folosind TCP/IP Illustrated 
-git remote add isrm https://​gitlab.com/​b12mihai1/​ns-3-dev.git ​ +====== ​ [00] Pregătire laborator ======
-git remote update +
-git checkout -b isrm_2020 remotes/​isrm/​isrm_2020 +
-git submodule init +
-git submodule update --remote --merge +
-git submodule foreach git pull origin master ​  # in caz ca cea anterioara nu ne muta pe ultimul commit din master +
-</​code>​+
  
-Dacă directorul nu există rulați comenzile de mai jos și țineți minte unde aveți ''​ns-3-dev''​ folder cu toate lucrurile compilate: 
  
-<code bash+<note important
-git clone https://gitlab.com/​b12mihai1/ns-3-dev.git ~/​ns-3-dev +Pe [[:isrm:​mv|mașina virtuală]] aveți tot ce trebuie în ''​/home/student/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>​+
  
-Pentru a realiza grafice, ​trebuie ​sa instalam si pachetele de Python:+Dacă lucrați pe alt dispozitiv ​trebuie ​să rulați comenzile:
 <code bash> <code bash>
-student@isrm-vm-2020:​~$ ​sudo apt-get update +student@isrm-vm-2020:​~$ ​git clone https://​gitlab.com/​nsnam/​ns-3-dev.git 
-student@isrm-vm-2020:​~$ ​sudo apt-get install python3-pip +student@isrm-vm-2020:​~$ ​cd ~/ns-3-dev 
-student@isrm-vm-2020:​~$ ​pip3 install matplotlib jupyter +student@isrm-vm-2020:​~/ns-3-devgit checkout -b ns-332-rel ns-3.32 
-student@isrm-vm-2020:​~$ ​sudo ln -~/.local/bin/jupyter-notebook ​/usr/bin/jupyter-notebook+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>​
  
 Pentru a lansa aplicatia de Jupyter Notebook, rulati urmatoarea comanda: Pentru a lansa aplicatia de Jupyter Notebook, rulati urmatoarea comanda:
Line 49: Line 42:
 </​code>​ </​code>​
  
 +Daca sunt probleme cu plot-ul (in special in Windows Subsystem for Linux) mai e nevoie de acest pachet:
 +
 +<code bash>
 +sudo apt install -y python3-tk
 +</​code>​
 ====== [01] Capacitatea ideală simulare UDP 2 noduri RTS/CTS ====== ====== [01] Capacitatea ideală simulare UDP 2 noduri RTS/CTS ======
 +
 +Atentie trebuie rulat pentru 802.11b:
 +
 +<code bash>
 +sed -i '​s/​WIFI_PHY_STANDARD_80211g/​WIFI_PHY_STANDARD_80211b/​g'​ ./​ns3-labs/​lab-03-04-capacity/​lab3.cc
 +</​code>​
 +
  
 Re-rulați simularea de capacitate ideală trafic UDP cu 2 noduri activând RTS/​CTS. ​ Re-rulați simularea de capacitate ideală trafic UDP cu 2 noduri activând RTS/​CTS. ​
Line 63: Line 68:
 Inspectați cele trei trace-uri generate: ''​wifi-lab3.tr,​ AccessPoint-0-0.pcap ​ Station-1-0.pcap''​ Inspectați cele trei trace-uri generate: ''​wifi-lab3.tr,​ AccessPoint-0-0.pcap ​ Station-1-0.pcap''​
  
 +Ca template de bash pentru rularea scriptului, puteti folosi urmatorul template:
 +
 +<code bash>
 +
 +for mcs in 1 2 3 4; do
 +   for payload in 100 200 300 400; do
 +
 +        ./waf --run "lab3 --numberOfNodes=2 --payloadSize=$payload --offeredRate=11Mbps --phyRate=$mcs --simulationTime=2 --tracing=true --enableRtsCts=true"​
 +   done
 +done
 +</​code>​
 ====== [02] Capacitatea ideală simulare TCP ====== ====== [02] Capacitatea ideală simulare TCP ======
  
Line 99: Line 115:
  
 Scopul acestui task este să repetați graficele precedente/​teoretice folosind simularea în ''​ns-3''​. Puncte de evaluare pentru ''​payloadSize'':​ 20, 50, 100, 500, 1000, 1500.  Scopul acestui task este să repetați graficele precedente/​teoretice folosind simularea în ''​ns-3''​. Puncte de evaluare pentru ''​payloadSize'':​ 20, 50, 100, 500, 1000, 1500. 
 +
 +<note important>​
 +Pentru a schimba standardul folosit in cadrul scriptului, modificati la [[https://​github.com/​isrm-lab/​ns3-labs/​blob/​master/​lab-03-04-capacity/​lab3.cc#​L111|linia]].
 +</​note>​
  
 <note important>​ <note important>​
Line 203: Line 223:
 Îmbunătățește RTS/CTS situația TCP-ului? Îmbunătățește RTS/CTS situația TCP-ului?
  
-====== [04] Capacitatea ideală simulare UDP/TCP multiple ​downlink ​======+====== [04] Capacitatea ideală simulare UDP/TCP multiple ​uplink ​======
  
-Vom evalua capacitatea în condiții noi: client unic vs. multipliuplink ​vs downlink. Topologia este una specifică modului infrastructură,​ cu un AP și mai mulți clienți asociați, dar cadrele de beacon, autentificareși asociere sunt omise pentru simplitate. Realizați graficul doar pentru ''​802.11b'',​ ''​payloadSize=1460'',​ ''​phyRate=11Mbps''​+Vom evalua capacitatea în condiții noi: client unic vs. multipli uplink. Topologia este una specifică modului infrastructură,​ cu un AP și mai mulți clienți asociați, dar cadrele de beacon, autentificare și asociere sunt omise pentru simplitate. Realizați graficul doar pentru ''​802.11b'',​ ''​payloadSize=1460'',​ ''​phyRate=11Mbps''​
  
-Scenariul este: downlink - sursa: ​AP, destinații1..30 clienți ​(scriptul originaltrafic întai UDP apoi TCP+Scenariul ​pentru uplink ​este urmatorulreceptorul este reprezentat de AP, iar sursele sunt clienții 1..30 (pana la 30 de clienti).
  
-Se variază ​doar numărul de clienți, ​și se plotează debitul ​cumulativ pentru toate fluxurile.+Folosind acelasi script ca in exercitiile anterioare si variind ​doar numărul de clienți, ​construiti grafice care sa arate evolutia debitului ​cumulativ pentru toate fluxurile ​in functie de numarul de clienti. Realizati aceste grafice atat pentru trafic UDP, cat si pentru trafic TCP.
  
  
isrm/laboratoare/new/04.1584125719.txt.gz · Last modified: 2020/03/13 20:55 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