Aproximarea cea mai întâlnită pentru modelarea propagării semnalelor este folosirea așa numitelor ray-tracing techniques. Acestea implică aproximarea propagării undelor electromagnetice prin reprezentarea lor ca simple particule: ne interesează reflexia și refracția prin diverse obstacole (pereți, obiecte, indoor/outdoor etc.). Cel mai simplu model este two-ray ground - acesta descrie propagarea semnalului atunci când avem o cale directă între transmițător și receptor, cunoscută sub numele de LOS (line of sight) și o cale e reflectată de terenul de jos. Figura de mai jos reprezintă două stații vorbind wireless în aer cu two-ray, unde l
este line of sight (LOS) și x
e semnalul reflectat
În ns2 - cercurile de comunicare și de CS sunt definite în putere(W), care corespunde unei distanțe(m):
set opt(prop) Propagation/TwoRayGround; Phy/WirelessPhy set CSThresh_ 1.55924e-11 ; #550m - exact Phy/WirelessPhy set RXThresh_ 3.65262e-10 ; #250m - exact Phy/WirelessPhy set CPThresh_ 10.0 ; #captura, în dB
În acest exemplu la 251m nu se primește nici un cadru, deși la 250m se primesc toate. Două noduri aflate sub 550m își cedează reciproc accesul când este cazul, adică nu-și sunt terminale ascunse unul altuia. Captura este atunci când într-o coliziune se poate recupera cadrul mai puternic, dacă acesta e cu 10dB mai puternic.
Tot în exemplul de mai sus, cele trei variabile reprezintă
W
W
Semnalul transmis printr-un canal wireless va experimenta variații aleatoare din cauza unor blocaje ale obiectelor aflate în calea semnalului. Puterea la receptor e influențată nu doar de distanță, dar și de obiectele întâlnite de semnal, unele fiind fixe altele mobile (exemplu: Wi-Fi indoor: este influențat de pereți, mobilă și oamenii din cameră, care se mișcă). Modelarea unui astfel de canal folosește modele statistice pentru a caracteriza atenuarea unui semnal care ajunge la receptor.
Ce arme are un transmițător la dispoziție pentru a combate acest fenomen:
dbm
- în PCAP-uri Wifi sau iwconfig
este Tx Power
)
Ce arme are un receptor la dispoziție pentru a combate acest fenomen:
802.11ac
a introdus LDPC coding - o tehnică mai bună de codare a datelor decât cele tradiționale)
Ce arme au atât transmițătorul cât și receptorul pentru a combate ambele fenomene: MIMO (Multiple Input, Multiple Output) - folosirea de mai multe antene la transmisie și recepție (la 802.11ac
avem un maxim de 4×4) și STBC (Space Time Block Coding) - o tehnică de a transmite mai multe copii a unui stream de date pe mai multe antene pentru a asigura fiabilitatea datelor transmise. Cele două capabilități sunt advertised de AP (access point) în beacon iar stațiile îi transmit AP-ului dacă le au în cadrul probe request-ului.
În ns-2:
set prop Propagation/Shadowing; Phy/WirelessPhy set CSThresh_ 1.55924e-11 ; #550m - probabilistic Phy/WirelessPhy set RXThresh_ 3.65262e-10 ; #50m - probabilistic Phy/WirelessPhy set CPThresh_ 10.0 ; #captura # parametri specifici modelului $prop set pathlossExp_ 2.7 $prop set std_db_ 2.2 $prop set dist0_ 1.0
Se dă scriptul shadow2.tcl care folosește 802.11b, MCS=2Mbps cu modelul shadowing și definește următoarea topologie:
S1--dist--D1 ...10000m ... S2--dist--D2. S1 = sursa 1, D1 = destinația 1, primește pachete doar de la S1 prin UDP S2 = sursa 2, D2 = destinația 2, primește pachete doar de la S2 prin TCP
Scriptul acceptă parametrii -dist
pentru a seta distanța sursă-destinație (în metri), și -tries
pentru a seta numărul maxim de încercări de transmitere a cadrului. Cele două perechi nu se influențează reciproc din cauza distanței mari, iar S1→D1
folosește UDP, în timp ce S2→D2
folosește TCP. Practic se rulează două experimente pentru aceeași distanță de comunicare, si acelasi regim de retransmisii. Scriptul afișează debitul în bps
obținut de cele 2 fluxuri și generează fișierul shadow2.tr
care poate fi analizat pentru a contoriza pachetele în diverse scenarii.
Exemplu de rulare:
student@isrm-vm:~/lab-04$ ns ./shadow2.tcl -tries 4 -dist 100 Starting Simulation... loss-monitor for flow 0 nlost_ 568 npkts_ 3155 bytes_ 4669400 lastPktTime_ 25.194375494945955 expected_ 3723 sending time : 25.0 Throughput 0 1474016.0 bps loss-monitor for flow 2 sending time: 25.0 lastack: 2413 srtt: 313 datab: 3702560 retr: 143080 Throughput 2 1127353.6000000001
> plot “date” using 1:($3*100.0/$5) with …
adică axa y este raportul coloanelor 3 și 5 în procente, iar axa x este coloana 1. Nu vă preocupați de partea estetică a graficelor (etichete, legendă, culori, etc). unqsent=$(cat shadow2.tr | grep MAC | grep '^s' | grep cbr | awk '$3 <= 25.0 {print $47}' | uniq -c| wc -l)
Mai jos le aveti scrise: