Differences

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

Link to this comparison view

isrm:laboratoare:12 [2016/09/20 19:19]
dragos.niculescu created
isrm:laboratoare:12 [2019/05/18 11:14] (current)
mbarbulescu
Line 1: Line 1:
-==== Laboratorul 12 (TODO) ​====+==== Laboratorul 12  ==== 
 +=== Exemplu de colocviu ​===
  
-=== 4h: Studiu TCP+WiFiwired+wireless ​ ===+  * <color red>​trebuie</​color>​ să luați minimum 50% cumulativ în colocvii pentru a promova cursul  
 +  * colocviile valorează 15%respectiv 20% din nota finală 
 +    * un colocviu durează 45 minute, cu semigrupa 
 +  * aveți acces la toate laboratoarele și scripturile folosite în timpul semestrului 
 +  * primiți un script, sau vi se cere să implementați un script nou pe baza celor existente 
 +    * submiteți rezultatele pe hârtie, sau electronic 
 +    * indicați modificările,​ și modul de rulare 
 +    * interpretarea rezultatelor (aici sunt majoritatea punctelor)
  
-Review TCP: CW, AW, RTT, fast retr, throughput  ​+=== Scenariu de simulare ===
  
-  * One hop wireless: ​AP->​client +Mulți producători oferă posibilitatea de a avea mai multe SSID-uri pe un AP cu un singur card fizic, operând desigur pe același canal. Se vor transmite beacon-uri și se vor accepta autentificări/asocieri pe amblele SSID ca și cum ar fi separate, deși fizic este un singur card. Se consideră situația în care operăm doar în 802.11b 
-  * plot MAC loss/delay/​jitter vs PHY loss for fixed situations ​ +    * beaconul de 802.11b(și g/n) se transmite la 1Mbps, și este de minim 150 octeți 
-    * uniform loses +    * Pachetele de date (UDP sau TCP) se transmit la cea mai buna ''​dataRate_'' ​11Mbps 
-    * bursty losses  +    * beaconul folosește broadcast (fără SIFS+ACK), dar folosiți un script de unicast pentru aproximare 
-    * fixed rate, retries +    * AP-ul este configurat să transmită beacon la un interval de ''​100ms''​
-  * TCP/ICMP RTT vs MAC loss +
-  * Application level RTT vs MAC loss +
-  * Application level RTT vs AP bufferbloat ​  +
- +
-  * Topology with one hop WiFi and one hop wired: simplest practical WiFi.   +
-  * download S->AP->Client +
-    * vary loss on the wireless link +
-    * vary delay on the wired link  +
-    * vary buffer in the AP   +
-    * monitor CW, RTT, throughput ​  +
-     +
-=== 2h: TCP mechanisms to combat loss  ===  +
-   * what is in which OS? Linux/​Windows/​IOS +
-   * SACK, TCP flavors +
- +
-=== 2h: Multiple downlink, uplink TCP clients ===  +
-   * increased efficiency?​ +
-   * TCP acks are uplink ​is there a problem? ​   +
-   * good link vs bad link, HOL blocking, fairness+
  
 +Se cere:
 +    - (10%) care este durata unui beacon?
 +    - (5%) câte beacon-uri pe secundă s-ar putea transmite fără contenție?
 +    - (5%) ce debit în bps folosește un SSID?
 +    - (10%) ce debit de TCP aș putea obține de la AP-ul meu 11b, 11Mbps în absența oricăror beacon-uri? ​
 +    - (10%) eu și vecinul operăm pe același canal, și fiecare avem câte 3 SSID-uri (intern, prieteni, DMZ). Se mai văd încă alte 4 SSID-uri unice în bloc, **toate foarte aproape și pe același canal**. Ce throughput de TCP pot spera să obțin în condiții optime: dacă sunt aproape de AP-ul meu, nu mai e nici un alt client ​ în aer? 
 +    - (40%) plot manual(cu pixul) sau gnuplot: TCP Throughput al unei stații în funcție de (nr. SSID=1..20). Se va ține de cont de următorul lucru:
 +        * Beacon se trimite la ''​100ms''​ interval, cu cea mai mica ''​dataRate_''​ suportată de ''​802.11b'':​ 1 Mbps
 +        * Pachetele de date TCP se trimit la cea mai mare ''​dataRate_'' ​ suportată de ''​802.11b'':​ 11 Mbps
 +    - (20%) interpretare. Care este relația matematică între capacitatea disponibilă și numărul de rețele create? Puteți folosi funcția ''​fit''​ din gnuplot, sau fit manual. ​  
 +  ​
 +=== Rezolvare ===     
 +    - se folosește scriptul infra.tcl din lab 2, 3 în care se modifică 11b, dataRate 1Mbps
 +      * <​code>​ ns ./infra.tcl -run_tcp 0 -nn 2 -packetSize 150 -sendingRate 1Mbps </​code> ​
 +      * rezultă 4000 packete în 10s, adică 2.5ms/​beacon ​
 +    - 400pps  ​
 +    - 150*8biți*10beacons/​sec = 0.012Mbps <​code>​ ns ./infra.tcl -run_tcp 0 -nn 2 -packetSize 150 -sendingRate 0.012Mbps </​code>​ răspunde 10pps 
 +    - cu 11b/11Mbps <​code>​ns ./infra.tcl -run_tcp 1 -nn 2 -packetSize 1460</​code>​ obținem 4.15Mbps.  ​
 +    - un SSID emite 10 beacons/​second,​ deci 25ms/​second,​ adică 2.5% din capacitate. În cazul ideal, pierd liniar cu numărul de SSID vizibile, câte 2.5%. Pentru 3 eu, 3 vecinul, 4 altele = 10 => 25% pierderi, deci 3.1Mbps în cel mai bun caz. 
 +    - se modifică infra.tcl pentru a crea această topologie. Vezi deasemenea multirate.tcl (lab 11) pentru a seta noduri cu MCS diferit
 +      * (idee: 10%)
 +         * nodurile 3..(nn-1) -> 2  emulăm beacon-uri la 1Mbps, UDP de 150bytes, 10pps (0.012Mbps)  ​
 +         * nodurile 1 -> 0 la 11Mbps, TCP cu 1460 
 +      * (descriere modificări:​ 10%) <​code> ​
 +> # setarea MCS diferențiat pentru noduri: ​    
 +> if { $i <= 1} { 
 +>     Mac/802_11 set dataRate_ 11Mb ;# nodurile 0 și 1
 +> } else { 
 +>     Mac/802_11 set dataRate_ 1Mb ​ ;# nodurile 2..(nn-1)
 +> }
 +> $ns_ node-config -macType $val(mac)
 +...
 +> # planificarea a 1 flux TCP 0->1, nn-2 fluxuri UDP/​150/​10pps=12Kbps ​
 +
 +> for {set i 3} {$i < [ expr $val(nn) - 1]} {incr i} { 
 +>     ​attach-cbr-traffic $i 2 150 0.012Mbps $val(start0) $val(stop0) $i ;# emulare beaconuri
 +>     puts "​attached $i->​2"​
 +313a314
 +> attach-tcp-traffic 1 0 1460 $val(start0) $val(stop0) 1001     ;TCP
 +</​code>​
 +       * (cum rulez: 10%)Se rulează <​code>​x=4;​ while [ $x -le 23 ]; do echo -n "​$(($x-3)) "; ns ./​infra1.tcl -nn $x | grep '​Throughput 1001'; x=$(($x+1));​ done | tee b </​code>​
 +       * x=4 înseamnă 0->1 TCP, 3->2 beaconuri, rezultă 4.15Mbps ​
 +       * (grafic cu pixul: 10% ) <​code>​gnuplot>​ plot '​b'​ using 1:4 w l </​code>​ {{ :​isrm:​laboratoare:​14:​ex_col_sol.png?​nolink |}} ... aproape dreaptă. La 10 SSID-uri rezultă cam 3Mbps, aproape de cât estimează și analiza.  ​
 +    - fit manual: se observă dependența lineară și se confirmă analiza de la p2. În gnuplot <​code>​
 +> f(x) = a*x + b
 +> fit f(x) '​b'​ using 1:4 via a,b
 +> plot f(x) t '​fit',​ '​b'​ using 1:4 t '​data'​
 +</​code>​ Ce valori rezultă pentru a și b, și ce semnificație au? 
 +  ​
isrm/laboratoare/12.1474388369.txt.gz · Last modified: 2016/09/20 19:19 by dragos.niculescu
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