Differences

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

Link to this comparison view

isrm:laboratoare:new:01 [2021/01/01 18:13]
vlad.traista [Rulare exemple existente]
isrm:laboratoare:new:01 [2021/01/01 18:24] (current)
vlad.traista [Development]
Line 1: Line 1:
 ====== Laborator 01: Introducere în ns-3 ====== ====== Laborator 01: Introducere în ns-3 ======
  
-''​ns-3''​ este un simulator de rețele (''​Ethernet'',​ ''​WiFi'',​ ''​4G''​ etc.) ce oferă:+''​ns-3''​ este un simulator de rețele (''​Ethernet'',​ ''​Wi-Fi'',​ ''​4G''​ etc.) ce oferă:
   * modele pentru studiul circulației unui pachet în rețea   * modele pentru studiul circulației unui pachet în rețea
   * un engine pentru simulări de rețele complexe (noduri, modele de propagare, trafic ''​UDP''/''​TCP''​ etc.)   * un engine pentru simulări de rețele complexe (noduri, modele de propagare, trafic ''​UDP''/''​TCP''​ etc.)
   * un mecanism de tracing atat in format text, cat și în format pcap.   * un mecanism de tracing atat in format text, cat și în format pcap.
  
-Simulatorul este scris în ''​C++'',​ iar modelele se pot dezvolta în ''​C++''​ sau ''​Python''​. In cadrul laboratoarelor vom folosi și vom dezvolta modele în ''​C++''​ deoarece suportul ​oferit ​in ''​ns-3'' ​este mai bun decat cel pentru ''​Python''​. ​+Simulatorul este scris în ''​C++'',​ iar modelele se pot dezvolta în ''​C++''​ sau ''​Python''​. In cadrul laboratoarelor vom folosi și vom dezvolta modele în ''​C++''​ deoarece ​capabilitatile si suportul ​oferite ​in ''​ns-3'' ​sunt mai bune decat cele pentru ''​Python''​. ​
  
 **Obiectiv:​** Acest laborator oferă o idee de bază a modului în care funcționează simulatorul:​ **Obiectiv:​** Acest laborator oferă o idee de bază a modului în care funcționează simulatorul:​
Line 179: Line 179:
 </​code>​ </​code>​
  
-Iată un exemplu de schimb de pachete ​Wifi pentru procedura de asociere a stației la access point:+Iată un exemplu de schimb de pachete ​Wi-Fi pentru procedura de asociere a stației la access point:
  
 {{:​isrm:​laboratoare:​new:​sample-pcap-caputre-ns3.png?​500|}} {{:​isrm:​laboratoare:​new:​sample-pcap-caputre-ns3.png?​500|}}
Line 189: Line 189:
 ===== Structura unui cod sursă al unei simulări în C++ ===== ===== Structura unui cod sursă al unei simulări în C++ =====
  
-Parcurgem codul sursă din ''​ns3/​examples/​wifi-tcp.cc''​+Parcurgem codul sursă din ''​ns3/​examples/wireless/​wifi-tcp.cc''​
  
 Urmariți și explicațiile de aici: https://​www.nsnam.org/​docs/​tutorial/​html/​building-topologies.html#​building-a-wireless-network-topology Urmariți și explicațiile de aici: https://​www.nsnam.org/​docs/​tutorial/​html/​building-topologies.html#​building-a-wireless-network-topology
 ===== Structura modelului Wi-Fi ===== ===== Structura modelului Wi-Fi =====
  
-În cadrul laboratorului ne vom concentra pe simulări Wi-Fi (IEEE 802.11). ''​ns-3''​ ne oferă posibilitatea de a configura toate nivelele din stiva OSI: +În cadrul laboratorului ne vom concentra pe simulări Wi-Fi (IEEE ''​802.11''​). ''​ns-3''​ ne oferă posibilitatea de a configura toate nivelele din stiva OSI: 
-     * PHY - modelul de canal, propagare, atenuare, senzitivitatea receptorilor +     ​* ​''​PHY'' ​- modelul de canal, propagare, atenuare, senzitivitatea receptorilor 
-     * MAC: +     ​* ​''​MAC''​
-         * LMAC (lower MAC): accesul la mediu (DCF/EDCA ca algoritmi de backoff pentru evitarea coliziunilor),​ RTS/CTS, ACK-uri de nivel 2 +         ​* ​''​LMAC'' ​(lower ​''​MAC''​): accesul la mediu (''​DCF''​/''​EDCA'' ​ca algoritmi de backoff pentru evitarea coliziunilor), ​''​RTS/CTS''​''​ACK''​-uri de nivel 2 
-         * UMAC (upper MAC): beacon, probe request/​probe response, WPA2 etc. +         ​* ​''​UMAC'' ​(upper ​''​MAC''​): beacon, probe request/​probe response, ​''​WPA2'' ​etc. 
-     * IPv4, TCP/UDP - tipul de trafic între noduri+     ​* ​''​IPv4''​''​TCP''​/''​UDP'' ​- tipul de trafic între noduri
  
 {{:​isrm:​laboratoare:​new:​wifiarchitecture.png?​600|}} {{:​isrm:​laboratoare:​new:​wifiarchitecture.png?​600|}}
Line 212: Line 212:
  
 <code bash> <code bash>
-student@isrm-vm-2020:~/ns-3-dev$ ./waf --command-template="​valgrind \+student@isrm-vm:​~/​ns3$ ./waf --command-template="​valgrind \
     --leak-check=full --show-reachable=yes %s" \     --leak-check=full --show-reachable=yes %s" \
     --run wifi-tcp     --run wifi-tcp
  
-Waf: Entering directory `/home/vagrant/facultate/​isrm/​ns-3-dev/​build'​ +Waf: Entering directory `/home/student/ns3/​build'​ 
-Waf: Leaving directory `/home/vagrant/​facultate/​isrm/ns-3-dev/​build'​+Waf: Leaving directory `/home/student/ns3/​build'​
 Build commands will be stored in build/​compile_commands.json Build commands will be stored in build/​compile_commands.json
-'​build'​ finished successfully (1.303s+'​build'​ finished successfully (0.936s
-==21406== Memcheck, a memory error detector +==2901== Memcheck, a memory error detector 
-==21406== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==2901== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. 
-==21406== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info +==2901== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info 
-==21406== Command: /home/vagrant/facultate/​isrm/​ns-3-dev/​build/​examples/​wireless/​ns3.30.1-wifi-tcp-debug +==2901== Command: /home/student/ns3/​build/​examples/​wireless/​ns3-dev-wifi-tcp-debug 
-==21406== + 
 +==2901== 
 (...) (...)
-=21406== LEAK SUMMARY:+=2901== LEAK SUMMARY:
 (...) (...)
-==21406== For counts of detected and suppressed errors, rerun with: -v +==2901== For counts of detected and suppressed errors, rerun with: -v 
-==21406== ERROR SUMMARY: 0 errors from 0 contexts (suppressed:​ 0 from 0)+==2901== ERROR SUMMARY: 0 errors from 0 contexts (suppressed:​ 0 from 0)
 </​code>​ </​code>​
  
Line 239: Line 240:
  
 ===== Development ===== ===== Development =====
- 
-  * Pentru lucrul acasă vă recomandăm să folosiți instrucțiunile din pagina [[isrm:​mv|setup ISRM]] deoarece are toate pachetele necesare (inclusiv Visual Studio Code cu toate dependențele necesare). 
  
 <note tip> <note tip>
isrm/laboratoare/new/01.1609517598.txt.gz · Last modified: 2021/01/01 18:13 by vlad.traista
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