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.

4.5. TCP Variants 67<br />

20<br />

15<br />

cwnd<br />

ssthresh<br />

Detected Packet Loss<br />

Timeout<br />

cwnd (Packets)<br />

10<br />

5<br />

0<br />

0 5 10 15 20 25 30<br />

Duration (RTT)<br />

Figure 4.5: Time Evolution of Example TCP Reno Trace.<br />

cwnd upon each dupack received as each represents another data segment<br />

which has left the network. Therefore, upon the receipt of each dupack, the<br />

cwnd is inflated by one segment as each dupack signals the fact that another<br />

packet has left the network.<br />

When all the dupacks have been received (cwnd/2 packets corresponding<br />

to the number of of packets that were in flight prior to the loss detection), the<br />

next ack should be that caused by the retransmission <strong>and</strong> therefore should<br />

acknowledge all packets. Upon the receipt of this normal ack, the sender<br />

exits Fast Recovery <strong>and</strong> set its cwnd to ssthresh to maintain sending at a<br />

rate which does not destroy the ack clock.<br />

Therefore, under Reno, slow start is only invoked at the start of a TCP<br />

connection <strong>and</strong> when a packet is timed out by the RT O, i.e. only when the<br />

ack clock of the TCP flow has been destroyed.<br />

Figure 4.5 shows a typical time evolution of TCP Reno. Slow start is<br />

initiated whereby at the 4 th RTT packet loss is detected <strong>and</strong> ssthresh is<br />

recalculated. Unlike TCP Tahoe, TCP Reno effectively sets cwnd to the value<br />

of ssthresh after Fast Recovery. After this, congestion avoidance is initiated

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

Saved successfully!

Ooh no, something went wrong!