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.

4.3. Congestion Control 59<br />

probe for extra b<strong>and</strong>width by increasing its sending rate slowly, falling back<br />

to a ‘safe’ sending rate should loss or excessive delay of an ack (an implicit<br />

indication congestion) occur.<br />

The implementation of such an algorithm is given below:<br />

ACK : cwnd ← cwnd + 1<br />

cwnd<br />

(4.4)<br />

LOSS : cwnd ← cwnd − 1 × cwnd (4.5)<br />

2<br />

Upon receipt of an acknowledgment, when in congestion avoidance, the<br />

sender increases the cwnd by<br />

1<br />

cwnd .<br />

Therefore, after about cwnd of acks,<br />

the sender will be able to send one more packet due to this increase. This<br />

mechanism allows TCP to ‘probe’ the network to determine if it has more<br />

resources; if it does, then it will make use of the extra b<strong>and</strong>width by continuing<br />

to increase cwnd; if not, after approximately RT T the sender should<br />

either be able to determine packet loss from dupacks sent by the receiver or<br />

through a RT O soft timer expiration (See Section 4.5.1).<br />

Should a loss be detected, then the congestion avoidance algorithm of<br />

TCP reduces cwnd by half 3 <strong>and</strong> hence reducing the number of packets inflight<br />

from the connection. This will reduce the resources used by this TCP<br />

connection <strong>and</strong> helps to prevent congestion collapse from occurring.<br />

The value of cwnd is never allowed to be less than 1 packet.<br />

It must be noted that the requirement to prevent congestion collapse is<br />

that all end-to-end connections should have the same form of reactive congestion<br />

control behaviour. Therefore, the requirement of preventing congestion<br />

3 [APS99, Pos81b] actually specify that cwnd ← F lightSize/2, where F lightSize is<br />

the amount of data sent, but yet unacknowledged. For simplicity, it is assumed that the<br />

F lightSize is the same as the cwnd. This assumption is valid only when TCPs ack clock<br />

is not broken.

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

Saved successfully!

Ooh no, something went wrong!