wikiroute

networking recipes

User Tools

Site Tools


qos_project

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
qos_project [2017/11/30 18:48] – [Extracts] samerqos_project [2017/12/07 14:06] – [5.3.VLC Tool] enwan
Line 12: Line 12:
  
  
-[{{ :tp-link.jpg?nolink&150 | Figure 1. GL-iNet 6461 wireless router}}]+[{{ :glinet.jpg?nolink&150 | Figure 1. GL-iNet 6461 wireless router}}][{{ :tp-link.jpg?nolink&150 | Figure 2. TP-Link WR741nd wireless router}}]
  
-[{{ :glinet.jpg?nolink&150 | Figure 2. TP-Link WR741nd wireless router}}] 
 ===== -. Software ===== ===== -. Software =====
  
 The following tools can help in assessing the QoS on the platform: The following tools can help in assessing the QoS on the platform:
  
-Install and compile netperf:+  * Install and compile netperf:
 <code bash> <code bash>
 wget https://github.com/HewlettPackard/netperf/archive/master.zip wget https://github.com/HewlettPackard/netperf/archive/master.zip
Line 29: Line 28:
 </code> </code>
  
-Install matplotlib and fping+  * Install matplotlib and fping
  
 <code bash> <code bash>
Line 42: Line 41:
 </code> </code>
  
-Install VLC as in this  +  * Install VLC as in this [[https://thepi.io/how-to-compile-vlc-media-player-with-hardware-acceleration-for-the-raspberry-pi/|tutorial]].
-[[https://thepi.io/how-to-compile-vlc-media-player-with-hardware-acceleration-for-the-raspberry-pi/|tutorial]]. +
 ===== -. Addressing ===== ===== -. Addressing =====
  
-the addressing plan of the platform is shown in Fig. 2. Both routers have static addresses on their wan and lan interfaces. DHCP is activated on the LAN interfaces and static leases are configured so as to obtain the addresses on the terminals according to the figure. +The addressing plan of the platform is shown in Fig. 3. Both routers have static addresses on their wan and lan interfaces. DHCP is activated on the LAN interfaces and static leases are configured so as to obtain the addresses on the terminals according to the figure. 
-[{{ :qos-project.png?nolink&600 | Figure 2. Addressing plan for QoS platform}}]+[{{ :qos-project.png?nolink&600 | Figure 3. Addressing plan for QoS platform}}] 
  
 ===== -. Access and Configuration ===== ===== -. Access and Configuration =====
Line 158: Line 156:
    
 </file> </file>
-===== -. [CO2] Implementing the Applications and Tools ===== 
-In order to describe and analyze the basic steps for installing and using the tools and client/server applications, we need to look carefully to these 4 applications: iperf, flent, VLC, HTTP. 
  
-Let's start with the application iperf:+The two routers allocate IP addresses using DHCP. In order to facilitate the usage of the platform, fixed allocations are configured for the end hosts. This is configured in ''/etc/config/dhcp'on each router as in the following.  
  
-- To activate iperf3: +<file /etc/config/dhcp> 
-     * On the server side: iperf3 -s +config dhcp 'lan' 
-     * On the client side: iperf3 -c 192.168.200.192+        option interface 'lan' 
 +        option start '100' 
 +        option limit '150' 
 +        option leasetime '12h' 
 +        option dhcpv6 'server' 
 +        option ra 'server'
  
-- To visualize UDP trafic with a specific bandwidth: +config host 
-     * On the client sideiperf3 -c 192.168.200.192 -u -b 2M +        option name 'pi2' 
-Here we set the bandwidth with UDP to 2Mbit/s. +        option mac 'b8:27:eb:0f:f8:95' 
-Note that by default ,UDP sets the bandwidth to 1Mbit/s+        option ip '192.168.200.192'
  
-- To extend the transmission time(second) as well as the number packets sent: +config host 
-     * On the Client sideiperf3 -c 192.168.200.192 -t 15 +        option name 'pi3' 
-Note that  by default, iperf3 sets the time to 10 seconds+        option mac 'b8:27:eb:20:aa:54' 
 +        option ip '192.168.200.193' 
 +</file>
  
-- To reverse mode(server sends, client receives)+Finally, we verify the routing and addressing on the Raspberry Pi devices using ''ifconfig'' (or ''ip addr show''and ''ip route'' commands
-     * On the Client side: iper3 -c 192.168.200.192 -R +
  
-- To end multiple flows+<code bash>  
-     * On the Client sideiper3 -c 192.168.200.192 -P -t 60+pi@raspberrypi:~ $ ifconfig 
 +eth0      Link encap:Ethernet  HWaddr b8:27:eb:0f:f8:95 
 +          inet addr:192.168.200.192  Bcast:192.168.200.255  Mask:255.255.255.0 
 +          inet6 addr: fdd5:bc83:a776:0:2377:1496:eb81:1433/64 Scope:Global 
 +          inet6 addr: fe80::20ae:134e:ae88:4bc5/64 Scope:Link 
 +          inet6 addr: fdd5:bc83:a776::192/128 Scope:Global 
 +          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
 +          RX packets:1216 errors:0 dropped:3 overruns:0 frame:0 
 +          TX packets:983 errors:0 dropped:0 overruns:0 carrier:0 
 +          collisions:0 txqueuelen:1000 
 +          RX bytes:229130 (223.7 KiB)  TX bytes:121127 (118.KiB) 
 +</code>
  
-Here we are sending 2 flows in min(60 seconds) +<code bash>  
-Note that we need to extend more the tx time in order to have similar throughput for the 2 flows so that we don't consider it as a fairness issue.+pi@raspberrypi:~ $ ip route 
 +default via 192.168.200.dev eth0  metric 202 
 +192.168.200.0/24 dev eth0  proto kernel  scope link  src 192.168.200.192  metric                                                                                                                                                              202 
 +</code>
  
-Let's analyze flent application: +==== -. iperf tool ====
-            * On the Server side: netserver & +
--To visualize one TCP stream: +
-            * On the Client side:  flent tcp_upload -p totals -l 60 -H 192.168.200.192 -t title2 -o test2.png +
--To visualize 12 TCP streams: +
-            * On the Client side:  flent tcp_12up -p totals -l 60 -H 192.168.200.192 -t title3 -o test3.png+
  
 +Let us start with the application iperf. In the following, we present a short tutorial on the main functions of the perf tool.
  
 +  * To launch iperf3:
 +    * On the server side: ''iperf3 -s''
 +    * On the client side: ''iperf3 -c 192.168.200.192'', where 192.168.200.192is the IP address of the server.
  
 +  * By default, the trafic sent by iperf uses TCP. In order to send UDP trafic with a specific bandwidth:
 +    * On the client side: iperf3 -c 192.168.200.192 -u -b 2M
  
 +Here we set the bandwidth with UDP to 2Mbit/s. Note that by default, UDP sets the bandwidth to 1Mbit/s.
  
 +  * To extend the transmission time(second) as well as the number packets sent:
 +     * On the Client side: ''iperf3 -c 192.168.200.192 -t 15''
  
 +Note that by default, iperf3 sets the time to 10 seconds.
  
 +  * To use reverse mode (server sends the trafic and client receives):
 +    * On the Client side: ''iper3 -c 192.168.200.192 -R'' 
  
 +  * To send multiple flows:
 +    * On the Client side: ''iper3 -c 192.168.200.192 -P 2 -t 60''
  
 +Here we are sending two flows for one minute (60 seconds). We note that the average rate for the two flows can be different. However, this is not a fairness issue: we only need to extend the transmit time in order to have similar throughput for the two flows.
  
 +==== -. Flent Tool ====
 +
 +Let us now analyze [[ https://flent.org/index.html | Flent]] application. Flent is a network benchmarking tools which allows to easily run network tests.
 +
 +  * On the Server side: ''netserver &''
 +  * To sent one TCP stream from the client to the server:
 +    * On the Client side:  ''flent tcp_upload -p totals -l 60 -H 192.168.200.192 -t title2 -o test2.png''
 +  * To send 12 TCP streams:
 +     * On the Client side:  ''flent tcp_12up -p totals -l 60 -H 192.168.200.192 -t title3 -o test3.png''
 +
 +==== -.VLC Tool ====
 +
 +Let us now analyze the VLC application. VLC media player is a a highly portable multimedia player for various audio, video, streaming protocol. 
 +
 +  * On the Server side: we open VLC media player : Go to media --> stream --> we add the desired video --> Stream --> Next --> for the new destination we choose UDP legacy then we click on add --> we add the destination IP address 192.168.100.111 (client) and the port number 1234 --> next --> we uncheck the active transcoding --> next --> stream.
 +  * On the client side: we open VLC and then we click on play--> go to network and specify the network URL : udp://@:1234 and finally we click on play. 
 +
 +
 +
 +
 +===== -. [CO3] Shaping the Traffic  =====
 + 
 +We first tried to limit the bandwidth using the following command "cbq" but it didn't work since cbq is not installed on the HP-PC:
 +<code bash> tc qdisc add dev eth1 root handle 1: cbq avpkt 1000 bandwidth 8mbit </code>
  
 +On the Wan interface "eth0" of the router GL-iNet, the following command is used in order to limit the bandwidth of the outgoing traffic:
 +<code bash> tc qdisc add dev eth0 root tbf rate 8000kbit burst 10kb latency 50ms </code>
  
 +To verify the result of the configuration we used : 
 +<code bash> tc qdisc ls </code> 
  
-===== Extracts =====+After streaming VLC traffic and iperf UDP traffic with 6mbps to visualize the impact of the used command we noticed that the offered bandwidth is still the same 100 Mbps, therefore the same configuration should be done on the router TP-Link :  
 +<code bash> tc qdisc add dev eth1 root tbf rate 8000kbit burst 10kb latency 50ms </code>
  
 +Now the link between the two routers has a bandwidth of 8 Mbps for both the incoming and outgoing traffic on them.
 +In order to visualize the impact on the VLC video streamed from pi3 we generated UDP traffic from pi2 with 6mbps. The VLC video is affected giving that images of the video are pixelized. 
  
 +If we want to apply this feature in one direction we have to remove the limitation of the bandwidth on one of the routers(in our case we applied it on GL-iNet router):
 +<code bash> tc qdisc del dev eth0 root </code>
  
 +Exceeded :
  
 +We run flent with VLC and we noticed that the video wasn't affected because flent uses TCP.
qos_project.txt · Last modified: 2021/08/28 09:58 by samer