Differences

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

Link to this comparison view

isrm:laboratoare:new:03-04-capac [2020/02/17 22:08]
mbarbulescu
isrm:laboratoare:new:03-04-capac [2020/04/19 23:34] (current)
vlad.traista [Introducere în tshark]
Line 46: Line 46:
   * trafic de tip UDP și TCP   * trafic de tip UDP și TCP
   * clienți multipli la un AP downlink și uplink   * clienți multipli la un AP downlink și uplink
 +
 +====== ​ Introducere în tshark======
 +
 +[[https://​www.wireshark.org/​docs/​man-pages/​tshark.html|Tshark]] este un wireshark pentru terminal. Are avantajul de a folosi limbajul wireshark pentru filtre (condițiile pot fi create în wireshark si apoi copiate cu copy/​paste),​ dar în același timp oferă controlul afișarii la stdout. ​  
 +
 +[[https://​hackertarget.com/​tshark-tutorial-and-filter-examples/​|Exemple filtre]]
 +
 +''​tshark -T fields -e frame.time_epoch ​ -e frame.number -e ip.src ​ -r ./​first-0-0.pcap '​(ip.proto == 17) && (ip.src == 10.1.1.1)''' ​
 +
 +  * fișierul .pcap este produs din simulare second.cc, sau dintr-un dump real
 +  * ''​-T fields''​ indică câmpurile din pachete care se doresc printate ​
 +  * Colecție de câmpuri de interes:
 +
 +^ opțiune pentru ​ -e  ^ semnificație ​   ^ 
 +| frame.time_epoch ​   | timpul de la începutul simulării ​   | 
 +| frame.number ​   | numărul cadrului |
 +| ip.src ​   | adresa IP sursă ​     |
 +| ip.id    |  IP identifier field     |
 +| ip.ttl ​   | câmpul TTL din headerul de IP      |
 +| wlan.flags ​   | câmpul flags din headerul WLAN      |
 +| wlan.seq ​   | numărul de secvență WLAN     |
 +| wlan.fcs_good | cadrul WLAN este validat de câmpul FCS |  ​
 +
 +
 +
 +
 +  * ''​(ip.proto == 17) && (ip.src == 10.1.1.1)''​ indică condiția de filtrare a pachetelor din .pcap; folosește acelasi limbaj ca și wireshark  ​
 +  * ''​(udp.dstport == 9)'',​ doar cadrele către portul 9 (echo) ​
 +  * ''​wlan.fc.type_subtype == 0x08'',​ filtrează cadrele de tip beacon (FIXME) ​     ​
 +  * ''​wlan.fc.pwrmgt == 1'',​ filtrează cadrele de tip power management (FIXME) ​  
 +====== [03.01] Capacitatea ideală simulare ======
 +
 +
 +    * 802.11b Antet PHY de 192biți trimis la MCS=1Mbps ​ {{:​isrm:​laboratoare:​03:​802.11b.phy.preamble.png?​400| }}
 +    * 802.11g Antet PHY de 16us + 24biți trimis la MCS=6Mbps {{:​isrm:​laboratoare:​03:​erp-ofdm.11ag.png?​600| }}   
 +    * calculați durata unei tranzacții atomice de transmitere a unui cadru: DIFS, arbitraj, PHY header, MAC header, IP/UDP header, UDP Payload de x octeți, FCS, SIFS, ACK
 +      * atenție: MAC, IP,​UDP,​Payload,​ CRC și corp ACK se transmit prin aer la rata MCS, măsurată în bps
 +    * folosiți duratele temporizărilor specificate în standard, și dimensiunile antetelor PHY din schemele de mai sus
 +      *  11b: slot=20, SIFS=10, DIFS=50
 +      *  11g: slot=9, SIFS=10, DIFS=28
 +    * pentru început determinați durata în microsecunde a unei tranzacții (separat 11b și 11g)
 +      *Durata pentru 802.11b (( 50 + 310 + 192 + (24 + 20 + 8 + x + 4)*8/MCS + 10 + 192 + 14*8/MCS )) 
 +    * scrieți funcția Throughput_11b(x) unde x este payload UDP, iar MCS(o constantă) ia valorile din standard 11b=1, 2, 5.5, 11 (( ''​gnuplot>​ Throughput_11b(x) = x*8 /(764 + (70 + x)*8/​MCS)''​ ))   
 +    * scrieți funcția Throughput_11g(x) unde x este payload UDP, iar MCS ia valorile din standard 11g=6, 12, 36, 54 
 +    * deduceți modul în care debitul obținut în Mbps depinde de MCS și de dimensiunea UDP payload
 +      * ''​gnuplot>​ plot MCS=1, Throughput(x) w l t '​1Mbps',​ MCS=2, Throughput(x) w l t '​2Mbps',​ MCS=5.5, Throughput(x) ...''​
 +    * realizați grafice pentru 802.11b (axa x: payload UDP; axa y: Throughput[Mbps])  ​
 +      * 4 curbe pentru 1Mbps, 2Mbps, 5.5Mbps, 11Mbps
 +      * {{:​isrm:​laboratoare:​03:​11b.ovhd.png?​linkonly|rezultat}}
 +    * realizați grafice pentru 802.11g (axa x: payload UDP; axa y: Throughput[Mbps])  ​
 +      * 4 curbe pentru 6Mbps, 12Mbps, 24Mbps, 54Mbps ​
 +      * {{:​isrm:​laboratoare:​03:​11g.ovhd.png?​linkonly|rezultat}}
 +
 +
 +====== [03.02] Capacitatea ideală simulare ======
 +
 +  * Pentru un singur client, se vor repeta curbele de mai sus folosind ns-3. Modelul [[https://​github.com/​isrm-lab/​ns3-labs/​blob/​master/​lab3.cc|lab3.cc]] configurează la (0,0) un AP și n-1 noduri plasate în vecinătatea sa. Traficul este generat de la AP către fiecare nod.
 +  * Pentru capacitatea ideală, folosim un AP, un client, trafic de tip UDP. Exepmlu de rulare de interes (cu parametrii de interes) pentru acest task:
 +
 +<code bash>
 +./waf --run "lab3 --numberOfNodes=2 --payloadSize=1000 --dataRate=11Mbps --phyRate=DsssRate11Mbps"​
 +</​code>​
 +
 +''​numberOfNodes''​ reprezintă numărul total de noduri (inclusiv AP-ul). ​
 +
 +Parametrul ''​phyRate''​ (reprezinta MCS) va lua urmaoarele valori:
 +  * Pentru ''​802.11b'':​
 +
 +<code C++>
 +  DsssRate1Mbps
 +  DsssRate2Mbps
 +  DsssRate5_5Mbps
 +  DsssRate11Mbps
 +</​code>​
 +
 +  * Pentru ''​802.11g'':​
 +
 +<code C++>
 +  ErpOfdmRate6Mbps
 +  ErpOfdmRate9Mbps
 +  ErpOfdmRate12Mbps
 +  ErpOfdmRate18Mbps
 +  ErpOfdmRate24Mbps
 +  ErpOfdmRate36Mbps
 +  ErpOfdmRate48Mbps
 +  ErpOfdmRate54Mbps
 +</​code>​
 +
 +Parametrul ''​dataRate''​ corespunde traficului trimis de aplicație în socketul UDP. Pe linia de comandă **trebuie** dați parametrii relevanți pentru dimensiunea pachetului și rata dorită de UDP. 
 +
 +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 tip>
 +Puteți reduce timpii simulării folosind parametrul ''​%%--%%simulationTime=1''​
 +</​note>​
 +
 +<note tip>
 +De ce iterăm peste aceste packet size-uri? Iată câteva valori din trafic real: [[http://​www.bandcalc.com/​| VoIP]] ~ 20-300; DNS, TCP~ 500; Ethernet MTU=1500; 802.11 Beacon=380
 +</​note>​
 +
 +====== [03.03] Capacitatea ideală simulare - RTS/CTS activ ======
 +
 +Repetați experimentele anterioare cu RTS/CTS activat. Ce impact are asupra pachetelor mari? Dar a celor mici? Activarea RTS/CTS o puteți face astfel pentru simulare:
 +
 +<code bash>
 +./waf --run "lab3 --numberOfNodes=2 --payloadSize=1000 --dataRate=11Mbps --phyRate=DsssRate11Mbps --enableRtsCts=true" ​
 +</​code>​
 +
 +<note tip>
 +Pentru [[http://​80211notes.blogspot.com/​2014/​03/​phy-rate-and-udp-throughput.html|11n și 11ac]] situația este chiar mai gravă, iar soluția este agregarea de cadre.
 +</​note>​
 +
isrm/laboratoare/new/03-04-capac.1581970100.txt.gz · Last modified: 2020/02/17 22:08 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