Comparison Between Two Averaging Schemes

Experiment Description :

Run 6s rapid flow between smithfd-rapid22 to smithfd-rapid1 over the private network with thttp cross traffic. The thttp cross traffic is generated from smithfd-rapid6/smithfd-linux2 to smithfd-rapid3/smithfd-linux1 with commands "thttp -h pvt-rapid6.netlab -p 5678 -b 2400 -c 4 -s 300". The thttp flows start 120s before rapid flow starts.

Experiment Results:

Throughput of Rapid flow

[  4]  0.0- 0.5 sec  6.02 MBytes   101 Mbits/sec
[  4]  0.5- 1.0 sec  27.5 MBytes   461 Mbits/sec
[  4]  1.0- 1.5 sec  3.59 MBytes  60.2 Mbits/sec
[  4]  1.5- 2.0 sec  11.9 MBytes   199 Mbits/sec
[  4]  2.0- 2.5 sec  0.00 Bytes  0.00 bits/sec
[  4]  2.5- 3.0 sec  10.4 MBytes   174 Mbits/sec
[  4]  3.0- 3.5 sec  1.84 MBytes  30.8 Mbits/sec
[  4]  3.5- 4.0 sec  6.64 MBytes   111 Mbits/sec
[  4]  4.0- 4.5 sec  22.4 MBytes   376 Mbits/sec
[  4]  4.5- 5.0 sec  11.9 MBytes   200 Mbits/sec
[  4]  5.0- 5.5 sec  28.0 MBytes   470 Mbits/sec
[  4]  5.5- 6.0 sec  28.7 MBytes   482 Mbits/sec
[  4]  6.0- 6.5 sec  1.93 MBytes  32.3 Mbits/sec
[  4]  6.5- 7.0 sec  82.7 KBytes  1.35 Mbits/sec
[  4]  7.0- 7.5 sec  33.9 KBytes   556 Kbits/sec
[  4]  0.0- 7.6 sec   171 MBytes   187 Mbits/sec

Throughput of cross traffic

1350256924.79525 291.519432 Mbps
1350256925.79525 313.35544 Mbps
1350256926.79525 290.614112 Mbps
1350256927.79525 334.111568 Mbps
1350256928.79525 321.095824 Mbps
1350256929.79525 281.811768 Mbps
1350256930.79525 283.469208 Mbps

Arithmetic Avering Size VS Exponential Moving Averaging alpha=0.5

Arithmetic Mean

Original pruned stream:
	sendgap1 sendgap2 sendgap3 ...
	recvgap1 recvgap2 recvgap3 ...
	size1    size2    size3 ...
Normalized stream:
        sendgap1' sendgap2' sendgap3' ...
        recvgap1' recvgap2' recvgap3' ...
        2segments 2segments 2segments ...
New pruned stream: avg_size=k
	new_sendgap1=sendgap1+...+sendgapk new_sendgap2=sendgap2+...+sendgap(k+1) new_sendgap3=sendgap3+...+sendgap(k+2) ...
	new_recvgap1=recvgap1+...+recvgapk new_recvgap2=recvgap2+...+recvgap(k+1) new_recvgap3=recvgap3+...+recvgap(k+2) ...
        new_size1=2segments                new_size2=2segments		          new_size3=2segments ...

Exponential Moving Averaging

Original Pruned stream: 
	sendgap1 sendgap2 sendgap3 ... 
        recvgap1 recvgap2 recvgap3 ...
        size1    size2    size3 ...
Normalized stream:
        sendgap1' sendgap2' sendgap3' ...
        recvgap1' recvgap2' recvgap3' ...
        2segments 2segments 2segments ...
new pruned steam: 
        new_sendgap1=sendgap1 new_sendgap2=alpha*new_sendgap1+(1-alpha)*sendgap2 ...
        new_recvgap1=recvgap1 new_recvgap2=alpha*new_recvgap1+(1-alpha)*recvgap2 ...
        new_size1=2segments   new_size2=2segments ...

1. AB_est


When abest is computed with "averaged/smoothed" rate:








When abest is computed with original probing rate:
for alrithmatic sliding window averaging: 
    for elements in the excursion, abest_per_probe=the probing rate of the previous elements of the excursion in the original pruned stream
    eg. avg_size= a
        excursion starts from i
        if i!= 0, abest assigned to the excursion is the probing rate of i-1 th elements in the original pruned stream
        if i==0, abest assigned to the excursion is the probing rate of the i(0) th elements in the original pruned stream
for exponential averaging:
    find excursions with averaged streams, but assign abest_per_probe with the probing rate for the original pruned stream