The TOFFEE Project
HOMEDOCUMENTATIONUPDATESVIDEOSRESEARCHDOWNLOADSPONSORSCONTACT


DOCUMENTATION 》 TEST CASES :: TEST RESULTS :: Raspberry Pi WAN Emulator TOFFEE-Mocha-1.0.14-1-rpi2

Here are my test cases and test results of Raspberry Pi TOFFEE-Mocha (version: TOFFEE-Mocha-1.0.14-1-rpi2) WAN Emulator build. I have connected two laptops as shown below via TOFFEE-Mocha Raspberry Pi2 device. I did these test cases to assess TOFFEE-Mocha, test its existing features, find and fix bugs if any, as well as a part of my routine research and analysis. It is connected via 100Mbps network since the Raspberry Pi2 supports only 100Mbps Ethernet as well my other USB2 to 100Mbps Ethernet adapter connected to it.
Raspberry Pi WAN Emulator TOFFEE-Mocha-1.0.14-1-rpi2 test setup

The DELL Laptop is installed with Apache2 web-server. And in the /var/www/html/videos/xaa file is copied. Which is a fragment of video file of size exactly 500MB.

Basic Test criteria:
The intent of all the test cases is to do few ping tests from HP Laptop to DELL Laptop via Raspberry Pi TOFFEE-Mocha device. And followed by a wget copy/download (via HTTP Protocol) of the xaa file from DELL Laptop via Raspberry Pi TOFFEE-Mocha device. And in each test case the same two tests are repeated while enabling various WAN emulation features supported in TOFFEE-Mocha (TOFFEE-Mocha-1.0.14-1-rpi2). Finally compare all test cases with the first test case (Test case1). Test case 1 is the reference test case in which no TOFFEE-Mocha WAN Emulation features are enabled in the TOFFEE-Mocha Raspberry Pi device.

Test case1 :: All TOFFEE-Mocha WAN Emulation features are disabled:
This is the first case in which all the TOFFEE-Mocha WAN Emulation features are disabled. Only Linux Kernel network bridging is created via TOFFEE-Mocha to facilitate to-and-fro packet flow between my HP and DELL laptops.

kiran@HP-ENVY-15:~/temp$ ping 192.168.0.100 -s 1200
PING 192.168.0.100 (192.168.0.100) 1200(1228) bytes of data.
1208 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=2.19 ms
1208 bytes from 192.168.0.100: icmp_seq=2 ttl=64 time=1.70 ms
1208 bytes from 192.168.0.100: icmp_seq=3 ttl=64 time=1.71 ms
1208 bytes from 192.168.0.100: icmp_seq=4 ttl=64 time=1.64 ms
1208 bytes from 192.168.0.100: icmp_seq=5 ttl=64 time=1.72 ms
1208 bytes from 192.168.0.100: icmp_seq=6 ttl=64 time=1.67 ms
1208 bytes from 192.168.0.100: icmp_seq=7 ttl=64 time=1.72 ms
1208 bytes from 192.168.0.100: icmp_seq=8 ttl=64 time=1.71 ms
1208 bytes from 192.168.0.100: icmp_seq=9 ttl=64 time=1.68 ms
1208 bytes from 192.168.0.100: icmp_seq=10 ttl=64 time=1.72 ms
^C
--- 192.168.0.100 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9015ms
rtt min/avg/max/mdev = 1.647/1.752/2.199/0.159 ms
kiran@HP-ENVY-15:~/temp$
kiran@HP-ENVY-15:~/temp$ wget http://192.168.0.100/videos/xaa
--2016-06-27 10:59:20--  http://192.168.0.100/videos/xaa
Connecting to 192.168.0.100:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 524288000 (500M)
Saving to: ‘xaa’

xaa                                  100%[===================================================================>] 500.00M  4.90MB/s    in 72s     


2016-06-27 11:00:32 (6.90 MB/s) - ‘xaa’ saved [524288000/524288000]

kiran@HP-ENVY-15:~/temp$

Here is the screenshot of the System Monitor Networking stats captured in my HP Laptop. Notice the blue curve (Network History) in the graph which denotes constant flow of packets with few glitches here and there.
Raspberry Pi WAN Emulator TOFFEE-Mocha-1.0.14-1-rpi2 Test case1

Test case2:
Constant packet delay: 1-millisecond and 0-microseconds
Dynamic packet delay disabled. Random packet drop disabled
This is a constant 1-millisecond packet delay. As you can see below there is a performance drop in both ping tests as well in the xaa wget file download.

kiran@HP-ENVY-15:~/temp$ ping 192.168.0.100 -s 1200
PING 192.168.0.100 (192.168.0.100) 1200(1228) bytes of data.
1208 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=3.73 ms
1208 bytes from 192.168.0.100: icmp_seq=2 ttl=64 time=3.63 ms
1208 bytes from 192.168.0.100: icmp_seq=3 ttl=64 time=3.65 ms
1208 bytes from 192.168.0.100: icmp_seq=4 ttl=64 time=3.71 ms
1208 bytes from 192.168.0.100: icmp_seq=5 ttl=64 time=3.70 ms
1208 bytes from 192.168.0.100: icmp_seq=6 ttl=64 time=3.90 ms
1208 bytes from 192.168.0.100: icmp_seq=7 ttl=64 time=3.56 ms
1208 bytes from 192.168.0.100: icmp_seq=8 ttl=64 time=3.69 ms
1208 bytes from 192.168.0.100: icmp_seq=9 ttl=64 time=3.74 ms
1208 bytes from 192.168.0.100: icmp_seq=10 ttl=64 time=3.67 ms
^C
--- 192.168.0.100 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9014ms
rtt min/avg/max/mdev = 3.562/3.702/3.902/0.099 ms
kiran@HP-ENVY-15:~/temp$
kiran@HP-ENVY-15:~/temp$ wget http://192.168.0.100/videos/xaa
--2016-06-27 11:06:33--  http://192.168.0.100/videos/xaa
Connecting to 192.168.0.100:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 524288000 (500M)
Saving to: ‘xaa’

xaa                                  100%[===================================================================>] 500.00M   889KB/s    in 9m 37s  

2016-06-27 11:16:10 (887 KB/s) - ‘xaa’ saved [524288000/524288000]

kiran@HP-ENVY-15:~/temp$

Notice the blue curve(Network History). The overall performance dropped to around 800KB/s.
Raspberry Pi WAN Emulator TOFFEE-Mocha-1.0.14-1-rpi2 Test case2

Test case3:
Constant packet delay: 1-millisecond and 500-microseconds
Dynamic packet delay disabled. Random packet drop disabled
This is a constant 1-millisecond and 500-microseconds (which is 1.5millisecond) packet delay. As you can see below there is a performance drop in both ping tests as well in the xaa wget file download.

kiran@HP-ENVY-15:~/temp$ ping 192.168.0.100 -s 1200
PING 192.168.0.100 (192.168.0.100) 1200(1228) bytes of data.
1208 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=4.66 ms
1208 bytes from 192.168.0.100: icmp_seq=2 ttl=64 time=4.70 ms
1208 bytes from 192.168.0.100: icmp_seq=3 ttl=64 time=4.69 ms
1208 bytes from 192.168.0.100: icmp_seq=4 ttl=64 time=4.60 ms
1208 bytes from 192.168.0.100: icmp_seq=5 ttl=64 time=4.69 ms
1208 bytes from 192.168.0.100: icmp_seq=6 ttl=64 time=4.72 ms
1208 bytes from 192.168.0.100: icmp_seq=7 ttl=64 time=4.73 ms
1208 bytes from 192.168.0.100: icmp_seq=8 ttl=64 time=4.81 ms
^C
--- 192.168.0.100 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7012ms
rtt min/avg/max/mdev = 4.605/4.705/4.813/0.073 ms
kiran@HP-ENVY-15:~/temp$ 
kiran@HP-ENVY-15:~/temp$ wget http://192.168.0.100/videos/xaa
--2016-06-27 11:17:54--  http://192.168.0.100/videos/xaa
Connecting to 192.168.0.100:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 524288000 (500M)
Saving to: ‘xaa’

xaa                                  100%[===================================================================>] 500.00M   602KB/s    in 14m 16s 

2016-06-27 11:32:10 (598 KB/s) - ‘xaa’ saved [524288000/524288000]

kiran@HP-ENVY-15:~/temp$

Test case4:
Constant packet delay: 0-millisecond and 0-microsecond
Dynamic packet delay enabled (factor 1). Random packet drops disabled
In this case constant packet delay is disabled and dynamic packet delay is enabled with dynamic delay factor 1. If the dynamic delay factor is 1 then the dynamic delay is more proportional to the size of the packet. Hence you can see there is a huge performance drop in the ping packets. As well stable performance drop in the wget xaa file download. Since it is a large 500MB file download, so the performance drop is fairly constant without much fluctuations. But in real world scenario, assume you are doing casual browsing and large folder with 100s of small file downloads, in those cases you may experience burst-like network performance. Since small packets are transferred without any significant delay and large near MTU sized packets are proportionally delayed.

kiran@HP-ENVY-15:~/temp$ ping 192.168.0.100 -s 1200
PING 192.168.0.100 (192.168.0.100) 1200(1228) bytes of data.
1208 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=4.09 ms
1208 bytes from 192.168.0.100: icmp_seq=2 ttl=64 time=4.17 ms
1208 bytes from 192.168.0.100: icmp_seq=3 ttl=64 time=4.15 ms
1208 bytes from 192.168.0.100: icmp_seq=4 ttl=64 time=4.09 ms
1208 bytes from 192.168.0.100: icmp_seq=5 ttl=64 time=4.13 ms
1208 bytes from 192.168.0.100: icmp_seq=6 ttl=64 time=4.19 ms
1208 bytes from 192.168.0.100: icmp_seq=7 ttl=64 time=4.19 ms
1208 bytes from 192.168.0.100: icmp_seq=8 ttl=64 time=4.29 ms
^C
--- 192.168.0.100 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7008ms
rtt min/avg/max/mdev = 4.091/4.167/4.295/0.061 ms
kiran@HP-ENVY-15:~/temp$
kiran@HP-ENVY-15:~/temp$ wget http://192.168.0.100/videos/xaa
--2016-06-27 11:35:32--  http://192.168.0.100/videos/xaa
Connecting to 192.168.0.100:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 524288000 (500M)
Saving to: ‘xaa’

xaa                                  100%[===================================================================>] 500.00M   887KB/s    in 9m 39s  

2016-06-27 11:45:11 (884 KB/s) - ‘xaa’ saved [524288000/524288000]

kiran@HP-ENVY-15:~/temp$

Test case5:
Constant packet delay: 0-millisecond and 0-microsecond
Dynamic packet delay enabled (factor 2). Random packet drops disabled
Same test case as above (i.e Test case 4) but with dynamic delay factor 2. This cuts down the exponential dynamic delay proportional to the packet size. And hence there is better network performance compared with test case 4. But in general you may experience similar network performance characteristics dynamically as test-case 4, but in this case little less significant.

kiran@HP-ENVY-15:~/temp$ ping 192.168.0.100 -s 1200
PING 192.168.0.100 (192.168.0.100) 1200(1228) bytes of data.
1208 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=2.86 ms
1208 bytes from 192.168.0.100: icmp_seq=2 ttl=64 time=2.88 ms
1208 bytes from 192.168.0.100: icmp_seq=3 ttl=64 time=2.96 ms
1208 bytes from 192.168.0.100: icmp_seq=4 ttl=64 time=2.91 ms
1208 bytes from 192.168.0.100: icmp_seq=5 ttl=64 time=2.88 ms
1208 bytes from 192.168.0.100: icmp_seq=6 ttl=64 time=2.85 ms
1208 bytes from 192.168.0.100: icmp_seq=7 ttl=64 time=2.92 ms
1208 bytes from 192.168.0.100: icmp_seq=8 ttl=64 time=2.89 ms
1208 bytes from 192.168.0.100: icmp_seq=9 ttl=64 time=2.89 ms
^C
--- 192.168.0.100 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8014ms
rtt min/avg/max/mdev = 2.858/2.898/2.967/0.059 ms
kiran@HP-ENVY-15:~/temp$
kiran@HP-ENVY-15:~/temp$ wget http://192.168.0.100/videos/xaa
--2016-06-27 11:46:47--  http://192.168.0.100/videos/xaa
Connecting to 192.168.0.100:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 524288000 (500M)
Saving to: ‘xaa’

xaa                                  100%[===================================================================>] 500.00M  1.67MB/s    in 5m 2s   

2016-06-27 11:51:49 (1.66 MB/s) - ‘xaa’ saved [524288000/524288000]

kiran@HP-ENVY-15:~/temp$

Test case6:
Constant packet delay: 0-millisecond and 0-microsecond
Dynamic packet delay disabled. Random packet drop enabled (factor 1)
In this case both dynamic and constant delay features are disabled and random packet drop is enabled with random drop factor 1 option. With this setting you may not notice much issues in ping performance as you can see below. This ping performance is almost the same as Test case 1 (i.e no WAN Emulation settings enabled in TOFFEE-Mocha). But you may notice a drastic file download performance degrade. You can control this via drop factor variable. In this case it is value 1. So there is excess packet loss. This will add confusion in TCP connection(s) and hence you will get extremely unpredictable dynamic performance.

kiran@HP-ENVY-15:~/temp$ ping 192.168.0.100 -s 1200
PING 192.168.0.100 (192.168.0.100) 1200(1228) bytes of data.
1208 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=1.69 ms
1208 bytes from 192.168.0.100: icmp_seq=3 ttl=64 time=1.74 ms
1208 bytes from 192.168.0.100: icmp_seq=4 ttl=64 time=1.97 ms
1208 bytes from 192.168.0.100: icmp_seq=5 ttl=64 time=1.79 ms
1208 bytes from 192.168.0.100: icmp_seq=6 ttl=64 time=1.71 ms
1208 bytes from 192.168.0.100: icmp_seq=7 ttl=64 time=1.74 ms
1208 bytes from 192.168.0.100: icmp_seq=8 ttl=64 time=1.73 ms
1208 bytes from 192.168.0.100: icmp_seq=9 ttl=64 time=1.70 ms
1208 bytes from 192.168.0.100: icmp_seq=11 ttl=64 time=1.71 ms
1208 bytes from 192.168.0.100: icmp_seq=12 ttl=64 time=1.66 ms
1208 bytes from 192.168.0.100: icmp_seq=13 ttl=64 time=1.71 ms
^C
--- 192.168.0.100 ping statistics ---
13 packets transmitted, 11 received, 15% packet loss, time 12015ms
rtt min/avg/max/mdev = 1.661/1.745/1.970/0.077 ms
kiran@HP-ENVY-15:~/temp$
kiran@HP-ENVY-15:~/temp$ wget http://192.168.0.100/videos/xaa
--2016-06-27 11:54:40--  http://192.168.0.100/videos/xaa
Connecting to 192.168.0.100:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 524288000 (500M)
Saving to: ‘xaa’

xaa                                  100%[===================================================================>] 500.00M   663KB/s    in 12m 25s 

2016-06-27 12:07:04 (687 KB/s) - ‘xaa’ saved [524288000/524288000]

kiran@HP-ENVY-15:~/temp$

Notice the blue curve (Network History) which is completely fluctuating. You get extremely bad and unpredictable performance. Notice the second screenshot, where it sometimes halts the packet transfer due to the confusion caused by random packet drop.
Raspberry Pi WAN Emulator TOFFEE-Mocha-1.0.14-1-rpi2 Test case6_1
Raspberry Pi WAN Emulator TOFFEE-Mocha-1.0.14-1-rpi2 Test case6_2

Test case7:
Constant packet delay: 0-millisecond and 0-microsecond
Dynamic packet delay disabled. Random packet drop enabled (factor 2)
Same as Test case 6, but in this case the random packet drop factor is value 2. This means the probability of packet drop (packet loss) is lesser than drop factor 1. So similar to Test case 6, you may not notice any significant ping performance issues. But in the wget xaa file download, you may notice now it is somewhat better than test case 6. There is less confusion in the link/connectivity, and hence better network performance and so less turbulence.

kiran@HP-ENVY-15:~/temp$ ping 192.168.0.100 -s 1200
PING 192.168.0.100 (192.168.0.100) 1200(1228) bytes of data.
1208 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=1.66 ms
1208 bytes from 192.168.0.100: icmp_seq=2 ttl=64 time=1.71 ms
1208 bytes from 192.168.0.100: icmp_seq=3 ttl=64 time=1.77 ms
1208 bytes from 192.168.0.100: icmp_seq=4 ttl=64 time=1.78 ms
1208 bytes from 192.168.0.100: icmp_seq=5 ttl=64 time=1.78 ms
1208 bytes from 192.168.0.100: icmp_seq=6 ttl=64 time=1.62 ms
1208 bytes from 192.168.0.100: icmp_seq=7 ttl=64 time=1.66 ms
1208 bytes from 192.168.0.100: icmp_seq=8 ttl=64 time=1.73 ms
1208 bytes from 192.168.0.100: icmp_seq=9 ttl=64 time=1.71 ms
^C
--- 192.168.0.100 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8014ms
rtt min/avg/max/mdev = 1.629/1.717/1.781/0.060 ms
kiran@HP-ENVY-15:~/temp$
kiran@HP-ENVY-15:~/temp$ wget http://192.168.0.100/videos/xaa
--2016-06-27 12:10:13--  http://192.168.0.100/videos/xaa
Connecting to 192.168.0.100:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 524288000 (500M)
Saving to: ‘xaa’

xaa                                  100%[===================================================================>] 500.00M  5.96MB/s    in 95s     

2016-06-27 12:11:48 (5.28 MB/s) - ‘xaa’ saved [524288000/524288000]

kiran@HP-ENVY-15:~/temp$

Notice the blue curve (Network History), the network performance is now improved compared to the test case 6. You can notice due to still existing random packet drop (although less compared to test case 6), there is a dynamic network fluctuating performance.

Raspberry Pi WAN Emulator TOFFEE-Mocha-1.0.14-1-rpi2 Test case7

So these are the various test cases I tested casually. The intent is not to try all combinations of TOFFEE-Mocha features. But the intent is to test how far these features are going to affect the real-time simulated WAN network performance. And as well to understand which combination of settings need to be set for any given WAN network simulation, such as Mobile networks, Satellite networks, inflight WiFi and so on.



Suggested Topics:


TOFFEE-Mocha - WAN Emulator


Categories

💎 TOFFEE-MOCHA new bootable ISO: Download
💎 TOFFEE Data-Center Big picture and Overview: Download PDF


Recommended Topics:

Grid Hosting vs CDN Hosting ↗
Saturday' 13-Mar-2021

TOFFEE (and TOFFEE-DataCenter) deployment with web-proxy cache ↗
Saturday' 13-Mar-2021
If you want to deploy TOFFEE along with a web-proxy cache (such as Squid Proxy) you can deploy the same as shown below. TOFFEE does not cache files. TOFFEE does packet level network optimization. So if you want caching your web content you can use transparent mode web-proxy cache intercepting your WAN links. A web-proxy may reduce amount of data being processed (optimized) within these TOFFEE devices and so reduce the CPU overheads and improve its performance.

The TOFFEE Project :: TOFFEE-Mocha :: WAN Emulator ↗
Saturday' 13-Mar-2021
The TOFFEE Project :: TOFFEE-Mocha :: Linux Open-Source WAN Emulator

TCP Tune-up and Performance Analysis Graphs - Congestion Control - Research - Dos and Don'ts ↗
Saturday' 13-Mar-2021

Skype VOIP Data - WAN Acceleration ↗
Saturday' 13-Mar-2021

Internet optimization through TOFFEE-DataCenter WAN Optimization Demo ↗
Saturday' 13-Mar-2021



TrueBench - Linux CPU Benchmarking system ↗
Saturday' 13-Mar-2021
TrueBench is an unique open-source benchmarking system in which the core system performance and efficiency parameters are measured at extreme high resolution in the order of several million/billion µ-seconds for a given specific task. TrueBench is a part of The TOFFEE Project research.

Introducing TOFFEE-DataCenter ↗
Saturday' 13-Mar-2021
TOFFEE TOFFEE Data-Center is specifically meant for Data Center, Cluster Computing, HPC applications. TOFFEE is built in Linux Kernel core. This makes it inflexible to adapt according to the hardware configuration. It does sequential packet processing and does not scale up well in large multi-core CPU based systems (such as Intel Xeon servers, Core i7 Extreme Desktop systems,etc). Apart from this since it is kernel based, if there is an issue in kernel, it may crash entire system. This becomes a challenge for any carrier grade equipment (CGE) hardware build.

TOFFEE-Mocha-1.0.32-1-x86_64 and TOFFEE-Mocha-1.0.32-1-i386 Code Release ↗
Saturday' 13-Mar-2021
This is my first TOFFEE-Mocha combined x86-64 and i386 (Intel x86 64-bit and 32-bit) code release.

TOFFEE-DataCenter Download :: TOFFEE-DATACENTER-1.2.2-1-portable ↗
Saturday' 13-Mar-2021



Featured Educational Video:
Watch on Youtube - [89//1] B.E and M.E Final Year Projects - Form your Team ↗

TOFFEE-DataCenter WAN Optimization software development - Update: 13-Aug-2016 ↗
Saturday' 13-Mar-2021
Earlier the TOFFEE is intended to work on IoT devices, Satellite Networks, branch office/SOHO deployments. In most cases the users may deploy just one or couple of TOFFEE devices per site. But in the case of TOFFEE-DataCenter, users can scale-up deploying the same in multiple servers in a sort of distributed cluster computing scenario. Besides the core TOFFEE-DataCenter components (such as packet processing engine/framework), I need to do lot of changes in its Graphical User Interface (GUI) too to address these new requirements.

My Lab HDD and SSD logs for research ↗
Saturday' 13-Mar-2021

Bitcoin Mining - Blockchain Technology - Network Optimization via TOFFEE Data-Center WAN Optimization ↗
Saturday' 13-Mar-2021
Bitcoin Mining - Blockchain Technology - Network Optimization via TOFFEE Data-Center WAN Optimization

TOFFEE-Mocha WAN Emulation software development - Update: 17-June-2016 ↗
Saturday' 13-Mar-2021
Now I supported and finished complete GUI support of these parameters so that you can configure, store, reboot and the same will restore upon reboot. Besides I complete the TOFFEE-Mocha Big-Picture page. The Big picture is an interface where you can find all the configuration (or settings) of the TOFFEE-Mocha. This is almost similar to CISCO device show all command but in graphical representation. Sometimes a network admin can also print the Big Picture page and paste it near to the device to refer its settings.



Watch on Youtube - [1888//1] Deep Space Communication - Episode1 - Introduction ↗

Setting up a WAN Emulator within VirtualBox ↗
Saturday' 13-Mar-2021



Research :: Optimization of network data (WAN Optimization) at various levels:
Network File level network data WAN Optimization


Learn Linux Systems Software and Kernel Programming:
Linux, Kernel, Networking and Systems-Software online classes


Hardware Compression and Decompression Accelerator Cards:
TOFFEE Architecture with Compression and Decompression Accelerator Card


TOFFEE-DataCenter on a Dell Server - Intel Xeon E5645 CPU:
TOFFEE-DataCenter screenshots on a Dual CPU - Intel(R) Xeon(R) CPU E5645 @ 2.40GHz - Dell Server