Experiments of the packet dropper module( by Glen )
Test Script file for the test
Network infrastructure diagram,
Packet Flow: Madrid:eth1==>Dublin:eth2==>Dublin:eth1==>Prague:eth2
Packet dropper is running on the Static Router (Dublin).
Packet Dropper Module code Makefile
TCP connection. Request Size is optimal size 1448Bytes.
Kernel file modified: /usr/src/linux/net/core/dev.c /usr/src/linux/net/netsyms.c
Optimal Request Size 1448 (TCP blast test) iteration times=100000 | ||||||||||||||
drop rate | Time elapse (sec) | var/avg | Throughput | |||||||||||
1st | 2nd | 3rd | 4th | 5th | 6th | 7th | 8th | 9th | 10th | AVG | Var | |||
0 | 12.33 | 12.34 | 12.41 | 12.37 | 12.35 | 12.44 | 12.34 | 12.40 | 12.35 | 12.38 | 12.371 | 0.0292 | 0% | 12335300.30 |
0.1% | 27.88 | 27.87 | 27.87 | 27.92 | 27.92 | 27.87 | 27.87 | 27.90 | 27.90 | 27.85 | 27.885 | 0.02 | 0% | 5472476.24 |
0.5% | 28.41 | 28.43 | 28.63 | 28.44 | 28.30 | 28.80 | 28.79 | 28.48 | 28.60 | 28.76 | 28.564 | 0.152 | 1% | 5342389.02 |
1% | 30.43 | 30.40 | 31.38 | 30.47 | 31.25 | 31.05 | 30.21 | 31.32 | 31.27 | 31.46 | 30.924 | 0.4372 | 1% | 4934678.57 |
2% | 37.09 | 38.62 | 41.73 | 38.07 | 38.59 | 36.74 | 39.40 | 38.67 | 39.88 | 40.32 | 38.911 | 1.1372 | 3% | 3921770.19 |
5% | 86.16 | 86.17 | 92.66 | 88.77 | 89.84 | 90.15 | 87.78 | 87.51 | 87.00 | 86.59 | 88.263 | 1.6736 | 2% | 1728923.78 |
10% | 293.59 | 288.31 | 301.46 | 283.20 | 289.61 | 288.89 | 292.89 | 306.97 | 291.82 | 267.83 | 290.457 | 6.889 | 2% | 525378.97 |
20% | 1579.44 | 1612.92 | 1835.97 | 1858.58 | 1909.68 | 1709.72 | 1799.82 | 1777.15 | 1823.33 | 1737.23 | 1764.384 | 83.6452 | 5% | 86489.11 |
Note: The data in 0% dropping rate is the case when Packet_dropper module is not installed
A PS version of the chart is available here
The throughput is calculated in this way:
Throughput = 1526 * 100000/(Average elapse time )
Although the request size is 1448. There are overheads (TCP header/ IP header/ Ethernet Wrapper). The actual data sent is 1526 bytes each time
The Original experiment data: NoDrop, drop0.1, drope0.5, drop1, drop2, drop5, drop10, drop20
Explanation of the chart:
The throughput drops significantly even when the dropping rate is very low ( 0.1% ). This might help to explain the TCP exponential back off: When the sender finds packet is lost, it reduces the sending speed in half.