Differences

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

Link to this comparison view

isrm:laboratoare:09 [2019/04/25 15:04]
mbarbulescu
isrm:laboratoare:09 [2019/04/25 19:25] (current)
mbarbulescu
Line 4: Line 4:
 Scopul acestui laborator este de a înțelege conceptul de Carrier-Sensing în 802.11 și de a compara mecanismele fizic și virtual de a testa prezența purtătoarei. Scopul acestui laborator este de a înțelege conceptul de Carrier-Sensing în 802.11 și de a compara mecanismele fizic și virtual de a testa prezența purtătoarei.
  
-CS la nivel fizic este folosit atunci când un nod care vrea să transmită mai întâi evaluează starea canalului. Dacă energia detectată este peste un anumit prag, numit 'Carrier sense threshold', canalul este declarat ocupat, iar nodul trebuie să aștepte. Altfel, canalul este considerat liber, și nodul poate începe transmisia.+Carrier Sense la nivel fizic este folosit atunci când un nod care vrea să transmită mai întâi evaluează starea canalului. Dacă energia detectată este peste un anumit prag, numit **Carrier sense threshold**, canalul este declarat ocupat, iar nodul trebuie să aștepte. Altfel, canalul este considerat liber, și nodul poate începe transmisia. 
 + 
 +În contrast, CS virtual folosește indicațiile NAV (Network Allocation Vector) pentru a estima cât timp este mediul ocupat. În principiu, o stație recepționează toate cadrele, inclusiv cele care nu îi sunt adresate explicit. Fiecare cadru conține în câmpul **Duration** din antetul 802.11 o estimare a duratei conversației din care face parte. **Bibliografie pentru NAV**: Sec 7.5.1 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]] 
 + 
 +Vedeți mai jos o captura a unui pachet wifi - unde vedem câmpul **Duration** 
 + 
 +{{ :​isrm:​laboratoare:​wifi-message-hi-2.png?​500 |}} 
 + 
 +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]]
  
-În contrast, CS virtual folosește indicațiile NAV (Network Allocation Vector) pentru a estima cât timp este mediul ocupat. În principiu, o stație recepționează toate cadrele, inclusiv cele care nu îi sunt adresate explicit. Fiecare cadru conține în câmpul '​Duration'​ o estimare a duratei conversației din care face parte. 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 '​Durata'​ fie din RTS, fie din CTS. 
 În ns2 se folosește următorul **pseudocod** pentru recepția cadrelor de la distanța d în condițiile în care mai poate apărea un cadru de la distanța d1: În ns2 se folosește următorul **pseudocod** pentru recepția cadrelor de la distanța d în condițiile în care mai poate apărea un cadru de la distanța d1:
-<​code>​+ 
 +<​code ​C>
 recepție(d) recepție(d)
  
Line 23: Line 37:
  
 == Instrucțiuni ns2 == == Instrucțiuni ns2 ==
 +
 +<note important>​
 +Reminder de la [[isrm:​laboratoare:​04|laboratorul 4]]: Variabilele din ''​ns-2'':​
 +  * CSThresh - carrier sense threshold - măsurat în ''​W''​
 +  * RXThresh - receiver sensitivity - măsurat în ''​W''​
 +  * CPThresh - capture threshold - adimensional,​ este un raport
 +  * [[http://​disc.ece.illinois.edu/​downloads/​lab106.html|Sursa]]
 +
 +Simularea din acest laborator folosește propagarea Two-Ray ground: În ns2 - cercurile de comunicare și de carrier sense sunt definite în putere (măsurată în ''​W''​),​ care corespunde unei distanțe (în ''​m''​).
 +
 +</​note>​
 +
 Pentru experimente se consideră topologia din dreapta. Nodul A transmite pachete cu flux constant CBR către nodul B, iar D transmite către C. Descărcați scriptul {{:​isrm:​laboratoare:​src:​twoflows.tcl |}} care primește următorii parametri: Pentru experimente se consideră topologia din dreapta. Nodul A transmite pachete cu flux constant CBR către nodul B, iar D transmite către C. Descărcați scriptul {{:​isrm:​laboratoare:​src:​twoflows.tcl |}} care primește următorii parametri:
  
Line 41: Line 67:
 </​code>​ </​code>​
  
-cu modelul TwoRayGround și păstrând toți ceilalți parametri la valorile default. Unele dintre aceste valori sunt deja calculate în scriptul twoflows.tcl (sunt comentate). ​+cu modelul TwoRayGround și păstrând toți ceilalți parametri la valorile default. Unele dintre aceste valori sunt deja calculate în scriptul ​''​twoflows.tcl'' ​(sunt comentate). ​
  
 <note warning> <note warning>
Line 63: Line 89:
 # adică 3.5e-7mW = -64.5dBm  ​ # adică 3.5e-7mW = -64.5dBm  ​
 </​code>​ </​code>​
 +
 +<note tip>
 +Alternativ puteți folosi acest [[https://​github.com/​yadox666/​dBm2mW|script Python]] pentru a converti dBm în mW și invers. ​
 +</​note>​
  
  ​Repetați toate experimentele și pentru cazul în care RTS/CTS este activat pentru toate cadrele. ​ Pentru fiecare situație, calulați debitul și numărul de pachete trimise/​primite la nivel UDP. Folosiți indicațiile din laboratorul precedent pentru a sintetiza aceste statistici din fișierul trace rezultat în urma simulării. Din comenzile folosite în laboratorul trecut:  ​Repetați toate experimentele și pentru cazul în care RTS/CTS este activat pentru toate cadrele. ​ Pentru fiecare situație, calulați debitul și numărul de pachete trimise/​primite la nivel UDP. Folosiți indicațiile din laboratorul precedent pentru a sintetiza aceste statistici din fișierul trace rezultat în urma simulării. Din comenzile folosite în laboratorul trecut:
isrm/laboratoare/09.1556193887.txt.gz · Last modified: 2019/04/25 15:04 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