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:47]
mbarbulescu created
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.
  
 +{{ :​isrm:​laboratoare:​rtscts.gif |}}
 +
 +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]]
 +
 +Despre trafic TCP vă recomandăm reîmprospătarea cunoștințelor folosind TCP/IP Illustrated
 ====== ​ [00] Pregătire laborator ====== ====== ​ [00] Pregătire laborator ======
  
-Intrați în directorul ''/​home/​student/​Desktop/​ISRM/​ns-3-dev''​. Rulați comenzile: 
  
 +<note important>​
 +Pe [[:​isrm:​mv|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:
 <code bash> <code bash>
-git remote add isrm https://​gitlab.com/​b12mihai1/​ns-3-dev.git  +student@isrm-vm-2020:~$ git clone https://​gitlab.com/​nsnam/​ns-3-dev.git 
-git remote update +student@isrm-vm-2020:​~$ cd ~/ns-3-dev 
-git checkout -b isrm_2020 remotes/isrm/isrm_2020 +student@isrm-vm-2020:​~/​ns-3-dev$ ​git checkout -b ns-332-rel ns-3.32 
-git submodule init +student@isrm-vm-2020:~$ cd ~/ns-3-dev/​examples 
-git submodule update ​--remote ​--merge +student@isrm-vm-2020:​~/​ns-3-dev/​examples$ ​git clone https://​github.com/​isrm-lab/​ns3-labs.git 
-git submodule foreach git pull origin master ​  # in caz ca cea anterioara nu ne muta pe ultimul commit din master+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>​
  
-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:+Pentru a lansa aplicatia ​de Jupyter Notebook, rulati urmatoarea comanda:
  
 <code bash> <code bash>
-git clone https://​gitlab.com/​b12mihai1/​ns-3-dev.git ​~/ns-3-dev +student@isrm-vm-2020:~$ jupyter-notebook
-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>​ </​code>​
  
-Pentru a realiza graficetrebuie sa instalam si pachetele ​de Python:+Pe parcursul laboratoruluivom avea nevoie ​de utilitarul ''​tshark''​:
 <code bash> <code bash>
-student@isrm-vm-2020:​~$ sudo apt-get update +student@isrm-vm-2020:​~$ sudo apt-get install ​tshark
-student@isrm-vm-2020:​~$ sudo apt-get install ​python3-pip +
-student@isrm-vm-2020:​~$ pip3 install matplotlib jupyter +
-student@isrm-vm-2020:​~$ sudo ln -s ~/​.local/​bin/​jupyter-notebook /​usr/​bin/​jupyter-notebook+
 </​code>​ </​code>​
  
-Pentru a lansa aplicatia ​de Jupyter Notebook, rulati urmatoarea comanda:+Daca sunt probleme cu plot-ul (in special in Windows Subsystem for Linux) mai e nevoie ​de acest pachet:
  
 <code bash> <code bash>
-student@isrm-vm-2020:~$ jupyter-notebook+sudo apt install ​-y python3-tk
 </​code>​ </​code>​
 +====== [01] Capacitatea ideală simulare UDP 2 noduri RTS/CTS ======
 +
 +Atentie trebuie rulat pentru 802.11b:
  
-Pe parcursul laboratorului,​ vom avea nevoie de utilitarul ''​tshark'':​ 
 <code bash> <code bash>
-student@isrm-vm-2020:~$ sudo apt-get install tshark+sed -i '​s/​WIFI_PHY_STANDARD_80211g/​WIFI_PHY_STANDARD_80211b/​g'​ ./ns3-labs/lab-03-04-capacity/​lab3.cc
 </​code>​ </​code>​
  
-====== [01] Capacitatea ideală simulare TCP ======+ 
 +Re-rulați simularea de capacitate ideală trafic UDP cu 2 noduri activând RTS/CTS.  
 + 
 +<code bash> 
 +mihai@wormhole:​~/​facultate/​ns-3-dev$ ./waf --run "lab3 --numberOfNodes=2 \ 
 +   ​--payloadSize=1400 --offeredRate=11Mbps --phyRate=DsssRate11Mbps \ 
 +   ​--simulationTime=2 --tracing=true --enableRtsCts=true"​ 
 +</​code>​ 
 + 
 +De ce este throughput-ul mai prost la UDP folosind RTS/CTS? Comparați cu rezultatul obținut la laboratorul trecut și cu cea dată de formulă.  
 + 
 +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 ======
  
 Repetați experimentele de la traficul UDP din [[:​isrm:​laboratoare:​new:​03|laborator 3, exercițiul 3]] folosind trafic de tip TCP. Repetați experimentele de la traficul UDP din [[:​isrm:​laboratoare:​new:​03|laborator 3, exercițiul 3]] folosind trafic de tip TCP.
Line 85: 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 176: Line 210:
 </​note>​ </​note>​
  
-====== [02] Capacitatea ideală simulare TCP cu RTS/CTS ======+====== [03] Capacitatea ideală simulare TCP cu RTS/CTS ======
  
 Repetați experimentele de mai sus folosind RTS/CTS pentru traficul de tip TCP.  Repetați experimentele de mai sus folosind RTS/CTS pentru traficul de tip TCP. 
Line 189: Line 223:
 Îmbunătățește RTS/CTS situația TCP-ului? Îmbunătățește RTS/CTS situația TCP-ului?
  
-====== [03] 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.1584125239.txt.gz · Last modified: 2020/03/13 20:47 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