This shows you the differences between two versions of the page.
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+WiFi, wired+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? | ||
+ | |