Differences

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

Link to this comparison view

isrm:laboratoare:new:06 [2020/12/24 15:18]
mbarbulescu [[00] Pregătirea laboratorului]
isrm:laboratoare:new:06 [2022/04/11 09:34] (current)
mbarbulescu [[03] Algoritmi adaptivi - evoluția în PCAP]
Line 15: Line 15:
   * După cum am menționat mai sus layer-ul de MAC (nivelul legătură de date cum  îl mai știți) își ia ca feedback RSSI (sau SNR - Signal to Noise Ratio) pentru a decide MCS-ul folosit la transmisie. Un algoritm destul de simplu care folosește un raport între SNR și BER (Bit Error Rate) este [[https://​www.nsnam.org/​doxygen/​classns3_1_1_ideal_wifi_manager.html#​details|Ideal Rate control algorithm din ns-3]], care este implementat conform descrierii din acest paper: {{:​isrm:​laboratoare:​new:​mesh-mobicom01.pdf|}}   * După cum am menționat mai sus layer-ul de MAC (nivelul legătură de date cum  îl mai știți) își ia ca feedback RSSI (sau SNR - Signal to Noise Ratio) pentru a decide MCS-ul folosit la transmisie. Un algoritm destul de simplu care folosește un raport între SNR și BER (Bit Error Rate) este [[https://​www.nsnam.org/​doxygen/​classns3_1_1_ideal_wifi_manager.html#​details|Ideal Rate control algorithm din ns-3]], care este implementat conform descrierii din acest paper: {{:​isrm:​laboratoare:​new:​mesh-mobicom01.pdf|}}
  
-  * **AARF** - Adaptive Automatic Rate Feedback (paper: {{:​isrm:​laboratoare:​new:​aarf.pdf|}}) - un algortim ​îmbunătățit al clasicului ARF publicat în 1997 de Bell Labs (paper aici: {{:​isrm:​laboratoare:​new:​06770930.pdf|}}) și care a fost folosit în dongle-uri WiFi 802.11b de la acea vreme. Pe scurt acești algoritmi încearcă din start să folosească cel mai mare MCS suportat de ambii vorbitori iar după două eșecuri să micșoreze treptat. Într-un mod similar, dar cu o implementare proprietară,​ funcționează algoritmii ''​iwl-mwm-rs''​ din placile Wireless Intel (care au driverul ''​iwlwifi''​),​ puteți vedea un paper aici: {{:​isrm:​laboratoare:​new:​mswim_2019_1_.pdf|}}. Implementarea AARF în [[https://​www.nsnam.org/​docs/​doxygen/​classns3_1_1_aarf_wifi_manager.html#​details|simulatorul ns-3 este descrisă aici]]. ​+  * **AARF** - Adaptive Automatic Rate Feedback (paper: {{:​isrm:​laboratoare:​new:​aarf.pdf|}}) - un algoritm ​îmbunătățit al clasicului ARF publicat în 1997 de Bell Labs (paper aici: {{:​isrm:​laboratoare:​new:​06770930.pdf|}}) și care a fost folosit în dongle-uri WiFi 802.11b de la acea vreme. Pe scurt acești algoritmi încearcă din start să folosească cel mai mare MCS suportat de ambii vorbitori iar după două eșecuri să micșoreze treptat. Într-un mod similar, dar cu o implementare proprietară,​ funcționează algoritmii ''​iwl-mwm-rs''​ din placile Wireless Intel (care au driverul ''​iwlwifi''​),​ puteți vedea un paper aici: {{:​isrm:​laboratoare:​new:​mswim_2019_1_.pdf|}}. Implementarea AARF în [[https://​www.nsnam.org/​docs/​doxygen/​classns3_1_1_aarf_wifi_manager.html#​details|simulatorul ns-3 este descrisă aici]]. ​
  
   * În kernelul de Linux, pentru plăcile care nu implementează în firmware off-loaded un algoritm adaptiv, există [[https://​wireless.wiki.kernel.org/​en/​developers/​documentation/​mac80211/​ratecontrol/​minstrel|algoritmul Minstrel]] și este folosit de stiva WiFi de networking a Linux. Acest algoritm nu se bazează exclusiv pe feedback-ul RX-ului (e.g. RSSI cum menționam mai sus) ci încearcă să creeze un model statistic de variabile aleatoare care sunt determinate de: număr de biți transmiși, numărul de retransmisii ale unui pachet în aer deja planificat de DCF și probabilitatea estimată de succes a TX-ului în funcție de robustețea MCS-ului ales la acel moment. Minstrel încearcă **toate** ratele de TX posibile și le elimină pe cele care oferă rezultate proaste. Implementarea Minstrel în [[https://​www.nsnam.org/​doxygen/​classns3_1_1_minstrel_wifi_manager.html#​details|simulatorul ns-3 este descrisă aici]].   * În kernelul de Linux, pentru plăcile care nu implementează în firmware off-loaded un algoritm adaptiv, există [[https://​wireless.wiki.kernel.org/​en/​developers/​documentation/​mac80211/​ratecontrol/​minstrel|algoritmul Minstrel]] și este folosit de stiva WiFi de networking a Linux. Acest algoritm nu se bazează exclusiv pe feedback-ul RX-ului (e.g. RSSI cum menționam mai sus) ci încearcă să creeze un model statistic de variabile aleatoare care sunt determinate de: număr de biți transmiși, numărul de retransmisii ale unui pachet în aer deja planificat de DCF și probabilitatea estimată de succes a TX-ului în funcție de robustețea MCS-ului ales la acel moment. Minstrel încearcă **toate** ratele de TX posibile și le elimină pe cele care oferă rezultate proaste. Implementarea Minstrel în [[https://​www.nsnam.org/​doxygen/​classns3_1_1_minstrel_wifi_manager.html#​details|simulatorul ns-3 este descrisă aici]].
Line 46: Line 46:
 </​code>​ </​code>​
 </​note>​ </​note>​
- 
-Pentru a realiza grafice, trebuie sa instalam si pachetele de Python: 
-<code bash> 
-student@isrm-vm-2020:​~$ sudo apt-get update 
-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>​ 
  
 Pentru a lansa aplicatia de Jupyter Notebook, rulati urmatoarea comanda: Pentru a lansa aplicatia de Jupyter Notebook, rulati urmatoarea comanda:
Line 72: Line 64:
  
 <note tip>​MCS-urile mai slabe care nu pot înghesui mulți biți de informație într-un simbol sunt mai robuste pe distanțe lungi.</​note>​ <note tip>​MCS-urile mai slabe care nu pot înghesui mulți biți de informație într-un simbol sunt mai robuste pe distanțe lungi.</​note>​
 +
 +<note important>​Plotați Throughput în funcție de distanță</​note>​
  
 ===== [02] Algoritmi adaptivi - trafic UDP ===== ===== [02] Algoritmi adaptivi - trafic UDP =====
Line 84: Line 78:
 ./waf --run "lab5 --apManager=ns3::​IdealWifiManager"​ ./waf --run "lab5 --apManager=ns3::​IdealWifiManager"​
 </​code>​ </​code>​
 +
 +<note important>​Plotați Throughput (Oy) în funcție de distanță (Ox)</​note>​
  
 ===== [03] Algoritmi adaptivi - evoluția în PCAP ===== ===== [03] Algoritmi adaptivi - evoluția în PCAP =====
Line 107: Line 103:
  
 Pentru mai multe detalii legate de cum puteti parsa un fisier ''​pcap''​ cu ''​tshark'',​ puteti sa va uitati [[https://​ocw.cs.pub.ro/​courses/​isrm/​laboratoare/​new/​03#​b_analiza_pcap_cu_tshark|aici]]. Pentru mai multe detalii legate de cum puteti parsa un fisier ''​pcap''​ cu ''​tshark'',​ puteti sa va uitati [[https://​ocw.cs.pub.ro/​courses/​isrm/​laboratoare/​new/​03#​b_analiza_pcap_cu_tshark|aici]].
 +
 +<note important>​Pentru fiecare algoritm: plotați 2 grafice: Ox=Timestamp și Oy va fi MCS ales (''​data_rate''​) respectiv ''​wlan_radio.signal_dbm''​. Folosiți același template de la lab5</​note>​
 +
 +<note tip>Se alege pcap-ul: ''​lab5-propagation-adaptive-1-0.pcap''</​note>​
  
 ===== [04 - optional] Algoritmi adaptivi - trafic TCP ===== ===== [04 - optional] Algoritmi adaptivi - trafic TCP =====
isrm/laboratoare/new/06.txt · Last modified: 2022/04/11 09:34 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