This is an old revision of the document!


Laborator 3 - Capacitatea WiFi

Materiale ajutătoare

Teorie:

  • Despre modulațiile DSSS-CCK și OFDM - quick intro bun aici

Concepte (rezumatul rezumatului)

  • Modulație PHY - Modulația este un proces folosit în telecom prin care modificăm parametrii unui semnal cu scopul de a transmite informații. Dacă la radio am auzit de AM (modularea în amplitudine a semnalului) sau FM (modularea în frecvență a semnalului) în WiFi întâlnim preponderent DSSS (Direct Sequence Spread Spectrum), CCK (Complementary Code Keyring) și, cea mai modernă, inclusiv în tehnologia 802.11ac și 4G-LTE: OFDM (Orthogonal Frequency Division Multiplexing)
  • Cadrele (frame-urile) în wifi - vă veți tot lovi de conceptele astea fie prin curs, fie prin standard, fie chiar și prin kernelul de Linux:

* Pachetele ETH/IP/UDP cu care suntem familiari circulă prin WiFi conform figurii de mai jos (valabil pentru orice standard) - în lumea wifi ele poartă numele de MSDU (MAC Service Data Unit)

   TODO: insert f.png de aici: https://www.cwnp.com/802.11-mac-series-ndash-basics-mac-architecture-ndash-part-1-3/ 
   * La nivel MAC (L2) clientții (în standard îi întâlniți sub numele de STA de la stații) comunică cu AP (access point) prin MPDU - MAC Protocol Data Units. Headerul de MAC va conține chestii de interes pentru noi în acest laborator:
		* dataRate (sau MCS): 
			  * la frame-uri de tip "legacy" (802.11a și 802.11b/g) întâlnim valori în Mbps:
				   * Uzual pentru 802.11b (2.4 GHz DSSS-CCK): 1, 2, 5.5, 11 Mbps
				   * Uzual pentru 802.11g (2.4 GHz ERP-OFDM): 6, 12, 36, 54
				   * Uzual pentru 802.11a (5 GHz ERP-OFDM): 6, 9, 12, 18, 24, 36, 48, 54 Mbps
				   * Acestea sunt valori "teoretice" maxime care pot fi atinse de standardul respectiv 
			  * *OPȚIONAL*: la frame-uri de tip HT/VHT (802.11n/802.11ac) întâlniți valori de MCS de la 0 la 9 care conțin informații despre schema de modulare (BPSK, QPSK, QAM etc.) și rata de codare
		* duration - durata în microsecunde a semnalului modulat pe aer prin simboluri - cât timp va ține acest device mediul ocupat cu transmiterea pachetului plus timpul pe care acesta îl cere pentru ACK la nivel de wifi (SIFS)
		* CRC - 4 bytes adăugați de stivă pentru validarea MSDU-ului
		* Mai sunt și altele dar nu intră în scopul acestui laborator
	* La nivel PHY: avem PSDU (PLCP Service Data unit) și PPDU (PLCP Protocol Data Unit - o sumă de PSDU-uri)
 * Algoritmul de *acces la mediu* în wifi:
	* DCF (Distributed Coordinated Function) - întâlnită la majoritatea AP-urilor și clienților de 802.11 a/b/g/n, dar și la unele device-uri 802.11ac mai ales de tip Wave1
	* EDCA (Enhanced Distributed Channel Access) - întâlnim de la 802.11ac în sus
	* acestea afectează durata unei tranzacții atomice de transmitere a unui cadru (care nu e doar timpul în microsecunde necesar plasării simboluri PHY pe aer)
 * *Durata de transmitere* a unui cadru wifi cu tehnologia DCF pe aer e suma următoarelor elemente
   * DIFS - DCF Inter Frame Spacing - o valoare care spune device-urilor Wifi așa: dacă mediul e liber pentru un timp egal cu DIFS atunci puteți transmite cadrul vostru
   * Slot time - arbitraj - durate de timp definite de layerul de MAC pentru inter-frame spacing - depinde de tehnologia de PHY
   * transmiterea PPDU-ului pe aer: antet PHY, antet MAC, header IP, header UDP sau TCP, Payload L4 de x octeți, CRC (4 bytes)
   * SIFS - Short Inter Frame Spacing - durata de timp în care mă aștept să primesc ACK la nivel wifi (L2) de la celălalt device că a recepționat corect cadrul
   * ACK - durata de timp ocupată pe aer de cadrul de tip ACK - el e trimis tot cu o modulație (dataRate) în format legacy - de obicei se alege cea mai mică rată pe care o suportă
   un anumit standard (e.g 6 Mbps pentru 802.11a/g OFDM și 1 Mbps pentru 802.11b DSSS-CCK)

Scop

Scopul acestui laborator este de a calcula capacitatea unui canal 802.11 pentru diverse standarde, în condiții ideale. Vom face o analiză teoretică folosind temporizările, randomizările, și dimensiunile antetelor din standard, versus estimarea în simulator. Cazurile de interes sunt:

  • 802.11b, 802.11g - PHY în 2.4 GHz, PHY modulat în DSSS-CCK respectiv ERP-OFDM
  • 802.11a - PHY în 5 GHz, PHY modulat în ERP-OFDM
  • cu și fără RTS/CTS
  • trafic de tip UDP și TCP
  • clienți multipli la un AP downlink și uplink

Capacitatea WiFi

Scopul acestui laborator este de a calcula capacitatea unui canal 802.11 pentru diverse standarde, în condiții optime. Vom face o analiză teoretică folosind temporizările, randomizările, și dimensiunile antetelor din standard, versus estimarea în simulator. Cazurile de interes sunt:

  • 802.11b, 802.11a, 802.11g
  • cu/fără RTS/CTS
  • UDP, TCP
  • clienți multipli la un AP downlink, uplink

Capacitatea ideală teoretică

  • 802.11b Antet PHY de 192biți trimis la MCS=1Mbps
  • 802.11g Antet PHY de 16us + 24biți trimis la MCS=6Mbps
  • 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 1)
  • 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 2)
  • 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
  • realizați grafice pentru 802.11g (axa x: payload UDP; axa y: Throughput[Mbps])
    • 4 curbe pentru 6Mbps, 12Mbps, 24Mbps, 54Mbps

Capacitatea ideală simulare

  • Pentru un singur client, se vor repeta curbele de mai sus folosind ns-2. Scriptul infra.tcl 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
  • necesită parametrii -run_tcp 0 -nn 2 -packetSize 100 -sendingRate 1Mbps
    • parametrul '-sendingRate' corespunde traficului trimis de aplicație în socketul UDP
  • în script trebuie decomentată numai porțiunea corespunzătoare standardului (11b, 11g,sau 11a)
  • în script trebuie indicată MCS – se numește dataRate_
  • pe linia de comandă trebuie dați parametrii relevanți pentru dimensiunea pachetului și rata dorită de UDP
  • repetați graficele precedente/teoretice folosind simularea. Puncte de evaluare pentru packet size: 20, 50, 100, 500, 1000, 1500
    • De ce? VoIP ~ 20-300; DNS, TCP~ 500; Ethernet=1500; 802.11 Beacon=380
  • repetați experimentele cu RTS/CTS activat. Ce impact are asupra pachetelor mari? Dar a celor mici?
1) 50 + 310 + 192 + (24 + 20 + 8 + x + 4)*8/MCS + 10 + 192 + 14*8/MCS
2) gnuplot> Throughput_11b(x) = x*8 /(764 + (70 + x)*8/MCS)
isrm/laboratoare/03.1551882422.txt.gz · Last modified: 2019/03/06 16:27 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