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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.2. TCP Tuning & Performance Improvements 91<br />

500<br />

50<br />

450<br />

45<br />

400<br />

40<br />

Cwnd (packets)<br />

350<br />

300<br />

250<br />

200<br />

150<br />

Goodput (mbit/sec)<br />

35<br />

30<br />

25<br />

20<br />

15<br />

100<br />

Normal Acking<br />

50<br />

Delayed Acking<br />

Delayed Acking with ABC<br />

0<br />

0 50 100 150 200 250 300<br />

Time (seconds)<br />

10<br />

Normal Acking<br />

5<br />

Delayed Acking<br />

Delayed Acking with ABC<br />

0<br />

0 50 100 150 200 250 300<br />

Time (seconds)<br />

(a) CWND<br />

(b) Goodput<br />

Figure 5.6: Effect of delayed acks upon cwnd dynamics.<br />

delayed acks is less aggressive, <strong>and</strong> increases cwnd at half the rate compared<br />

to a TCP connection without delayed acknowledgments.<br />

This results in<br />

reduced throughput over short timescales after each congestion event for any<br />

TCP connection where the receiver is using delayed acknowledgments. This<br />

is shown in Figure 5.6 for machines on a private dummynet network (See<br />

Appendix A.5).<br />

This is especially noticeable in the slow start phase, because in slow start<br />

each arriving ack increases the congestion window by one segment, thus<br />

effectively doubling the rate at which packets are sent.<br />

The Linux kernel implements delayed acking by default [Bra89], but imposes<br />

a less conservative delayed acking time of up-to 200ms. Linux introduces<br />

a feature called quick acks [SK02] which helps to reduce the problems<br />

of reduced responsiveness when using delayed acking during slow start. The<br />

idea is to disable delayed acks at the receiver for the first n packets of the<br />

connection, where n is a configurable parameter, acknowledging every packet<br />

at the beginning of the connection <strong>and</strong> thus achieving the equilibrium state<br />

(congestion avoidance) in shorter time.<br />

On the other h<strong>and</strong>, such a policy would increase the probability of net-

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

Saved successfully!

Ooh no, something went wrong!