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

Next revision
Previous revision
Next revisionBoth sides next revision
qos_project [2017/11/29 10:42] – [6. [CO2] Implementing the Applications and Tools] carineqos_project [2017/12/03 13:03] – [1. Hardware] samer
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}}]
  
-[{{ :glinet.jpg?nolink&150 | Figure 2. TP-Link WR741nd wireless router}}]+[{{ :tp-link.jpg?nolink&150 | Figure 2. TP-Link WR741nd wireless router}}]
 ===== -. Software ===== ===== -. Software =====
  
Line 158: Line 158:
    
 </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: 
- * On a Server side: iperf3 -s 
- * On a Client side: iperf3 -c 192.168.200.192 
-To visualize 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 10seconds 
- 
-To reverse mode(server sends, 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 2 flows in 1 min(60 seconds) 
- 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. 
- 
- 
-===== Extracts ===== 
-#On TPlink router 
 <file /etc/config/dhcp> <file /etc/config/dhcp>
-config dnsmasq 
-        option domainneeded '1' 
-        option boguspriv '1' 
-        option filterwin2k '0' 
-        option localise_queries '1' 
-        option rebind_protection '1' 
-        option rebind_localhost '1' 
-        option local '/lan/' 
-        option domain 'lan' 
-        option expandhosts '1' 
-        option nonegcache '0' 
-        option authoritative '1' 
-        option readethers '1' 
-        option leasefile '/tmp/dhcp.leases' 
-        option resolvfile '/tmp/resolv.conf.auto' 
-        option localservice '1' 
- 
 config dhcp 'lan' config dhcp 'lan'
         option interface 'lan'         option interface 'lan'
Line 211: Line 169:
         option dhcpv6 'server'         option dhcpv6 'server'
         option ra 'server'         option ra 'server'
- 
-config dhcp 'wan' 
-        option interface 'wan' 
-        option ignore '1' 
- 
-config odhcpd 'odhcpd' 
-        option maindhcp '0' 
-        option leasefile '/tmp/hosts/odhcpd' 
-        option leasetrigger '/usr/sbin/odhcpd-update' 
  
 config host config host
Line 230: Line 179:
         option mac 'b8:27:eb:20:aa:54'         option mac 'b8:27:eb:20:aa:54'
         option ip '192.168.200.193'         option ip '192.168.200.193'
-</file> 
-# DHCP configuration on router GL-iNet: 
-<file /etc/config/dhcp> 
-config dnsmasq 
- option domainneeded '1' 
- option boguspriv '1' 
- option localise_queries '1' 
- option rebind_protection '1' 
- option rebind_localhost '1' 
- option local '/lan/' 
- option domain 'lan' 
- option expandhosts '1' 
- option authoritative '1' 
- option readethers '1' 
- option leasefile '/tmp/dhcp.leases' 
- option resolvfile '/tmp/resolv.conf.auto' 
- 
-config dhcp 'lan' 
- option interface 'lan' 
- option start '100' 
- option limit '150' 
- option leasetime '12h' 
- option dhcpv6 'server' 
- option ra 'server' 
- option ra_management '1' 
- 
-config dhcp 'wan' 
- option interface 'wan' 
- option ignore '1' 
- 
-config odhcpd 'odhcpd' 
- option maindhcp '0' 
- option leasefile '/tmp/hosts/odhcpd' 
- option leasetrigger '/usr/sbin/odhcpd-update' 
- 
-config dhcp 
- option start '100' 
- option leasetime '12h' 
- option limit '150' 
- option interface 'eth1' 
- 
-config domain 'localhost' 
- option name 'console.gl-inet.com' 
- option ip '192.168.8.1' 
 </file> </file>
  
-#ifconfig on raspberry pi2+Finally, we verify the routing and addressing on the Raspberry Pi devices using ''ifconfig'' (or ''ip addr show'') and ''ip route'' commands. 
  
 <code bash>  <code bash> 
Line 290: Line 195:
           collisions:0 txqueuelen:1000           collisions:0 txqueuelen:1000
           RX bytes:229130 (223.7 KiB)  TX bytes:121127 (118.2 KiB)           RX bytes:229130 (223.7 KiB)  TX bytes:121127 (118.2 KiB)
- 
-lo        Link encap:Local Loopback 
-          inet addr:127.0.0.1  Mask:255.0.0.0 
-          inet6 addr: ::1/128 Scope:Host 
-          UP LOOPBACK RUNNING  MTU:65536  Metric:1 
-          RX packets:221 errors:0 dropped:0 overruns:0 frame:0 
-          TX packets:221 errors:0 dropped:0 overruns:0 carrier:0 
-          collisions:0 txqueuelen:1 
-          RX bytes:20606 (20.1 KiB)  TX bytes:20606 (20.1 KiB) 
- 
- 
 </code> </code>
-#ifconfig on raspberry pi3 
- 
-<code bash> 
-pi@raspberrypi:~ $ ifconfig 
-eth0      Link encap:Ethernet  HWaddr b8:27:eb:20:aa:54   
-          inet addr:192.168.200.193  Bcast:192.168.200.255  Mask:255.255.255.0 
-          inet6 addr: fe80::c7d8:36cf:a404:2c5/64 Scope:Link 
-          inet6 addr: fdd5:bc83:a776:0:7379:7bf5:f8c5:b6ff/64 Scope:Global 
-          inet6 addr: fdd5:bc83:a776::193/128 Scope:Global 
-          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
-          RX packets:745 errors:0 dropped:3 overruns:0 frame:0 
-          TX packets:394 errors:0 dropped:0 overruns:0 carrier:0 
-          collisions:0 txqueuelen:1000  
-          RX bytes:66979 (65.4 KiB)  TX bytes:48816 (47.6 KiB) 
- 
-lo        Link encap:Local Loopback   
-          inet addr:127.0.0.1  Mask:255.0.0.0 
-          inet6 addr: ::1/128 Scope:Host 
-          UP LOOPBACK RUNNING  MTU:65536  Metric:1 
-          RX packets:256 errors:0 dropped:0 overruns:0 frame:0 
-          TX packets:256 errors:0 dropped:0 overruns:0 carrier:0 
-          collisions:0 txqueuelen: 
-          RX bytes:20736 (20.2 KiB)  TX bytes:20736 (20.2 KiB) 
-</code> 
-#ip route on raspberry pi2 
  
 <code bash>  <code bash> 
Line 333: Line 202:
 192.168.200.0/24 dev eth0  proto kernel  scope link  src 192.168.200.192  metric                                                                                                                                                              202 192.168.200.0/24 dev eth0  proto kernel  scope link  src 192.168.200.192  metric                                                                                                                                                              202
 </code> </code>
-#ip route on raspberry pi3+===== -. [CO2] Implementing the Applications and Tools ===== 
 + 
 +<WRAP center round info 100%> 
 +  * Accomplished 
 +      * Using the tools to obtain performance results of basic tests 
 +      * Wiki tutorial on the tools and applications  
 +  * Exceeded 
 +      * Installing tools on a new device 
 +</WRAP> 
 + 
 +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 four applications: iperf, flent, VLC, HTTP. 
 +==== -. iperf tool ==== 
 + 
 +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'' 
 + 
 + 
 + 
 + 
 + 
 + 
  
-<code bash> 
-pi@raspberrypi:~ $ ip route 
-default via 192.168.200.1 dev eth0  metric 202  
-192.168.200.0/24 dev eth0  proto kernel  scope link  src 192.168.200.193  metric 202  
-</code> 
  
  
qos_project.txt · Last modified: 2021/08/28 09:58 by samer