05.08.2014 Views

An Investigation into Transport Protocols and Data Transport ...

An Investigation into Transport Protocols and Data Transport ...

An Investigation into Transport Protocols and Data Transport ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

9.1. Transfer Tests Across Dedicated Private Wide Area Networks 195<br />

25<br />

ScalableTCP<br />

20<br />

cwnd (packets)<br />

15<br />

10<br />

5<br />

0<br />

15 15.5 16 16.5 17 17.5 18<br />

Time (seconds)<br />

Figure 9.2: Quantisation of cwnd.<br />

latency environment of MB-NG. The exception is the introduction of a slight<br />

glitch just before the mode switch of ScalableTCP at approximately p = 0.02<br />

<strong>and</strong> the slightly higher goodput of HSTCP at approximately p = 0.001. In<br />

both cases, this was due to the switch between the respective low <strong>and</strong> high<br />

speed modes, which due to the constant packet loss rate results in larger<br />

values of cwnd <strong>and</strong> hence high goodput (See Section 8.2.1).<br />

The slightly higher goodputs experienced in the experimental tests compared<br />

to the theory for MB-NG for ScalableTCP <strong>and</strong> HSTCP are due to<br />

quantisation effects as the Linux kernel stores the value of cwnd as integers 1 .<br />

As the implementation of the decrease calculation of cwnd upon congestion<br />

in Linux is cwnd ← cwnd − b × cwnd, the calculation of cwnd upon loss is<br />

such that the rounding error is less than what it should be <strong>and</strong> hence the<br />

final value of cwnd is in fact higher.<br />

This is shown for ScalableTCP at 0.02 p in Figure 9.2 where the maximum<br />

value of cwnd is 18 packets. As the back-off b of ScalableTCP is 1/8, the<br />

corresponding value of cwnd upon packet loss should be 15.75; however, due<br />

to the quantisation of cwnd, the actual value used is 16. This results in the<br />

1 In order to determine when to update cwnd, a separate integer counter cwnd cnt<br />

which is increased per valid ack <strong>and</strong> checked to see if it is larger than cwnd before cwnd<br />

is increased by a whole number. Thus maintaining an increase of 1 cwnd per RTT under<br />

St<strong>and</strong>ard TCP.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!