Presentation is loading. Please wait.

Presentation is loading. Please wait.

Recap Slow start introduced cwnd Slow start introduced cwnd Can transmit up to Can transmit up to min( cwnd, offered window ) Flow control by the sender.

Similar presentations


Presentation on theme: "Recap Slow start introduced cwnd Slow start introduced cwnd Can transmit up to Can transmit up to min( cwnd, offered window ) Flow control by the sender."— Presentation transcript:

1 Recap Slow start introduced cwnd Slow start introduced cwnd Can transmit up to Can transmit up to min( cwnd, offered window ) Flow control by the sender Flow control by the sender cwnd increases by 1 (MSS) for every new ack cwnd increases by 1 (MSS) for every new ack

2 Recap Exponential increase of cwnd Exponential increase of cwnd Eventually, packet drop Eventually, packet drop Detected by time-out Detected by time-out –Let x = min ( cwnd, offered window ) at this point After time-out cwnd = 1 again After time-out cwnd = 1 again Recover the lost packet Recover the lost packet

3 Recap In the next cycle, cwnd allowed to increase exponentially till In the next cycle, cwnd allowed to increase exponentially till(1/2)*x Motivation for multiplicative decrease Motivation for multiplicative decrease –Over several RTTs, exponential decrease –Counteracting exponential increase in load

4 Congestion Avoidance The parameter where (1/2)*x is stored The parameter where (1/2)*x is storedssthresh Slow start threshold: The value till which cwnd increases exponentially in the next cycle Slow start threshold: The value till which cwnd increases exponentially in the next cycle

5 cwnd 1248 Time-out observed ssthresh = (1/2)*8 = 4 Next cycle: cwnd increases rapidly (by 1 for each new ack) till ssthresh After reaching ssthresh, cwnd increases more gently

6 Congestion Avoidance SS Loss (timeout) Store related value in ssthresh; ssthresh=(1/2)*cwnd cwnd=1 cwnd reaches ssthresh; henceforth, different rule for incrementing cwnd Loss (timeout) cwnd=1 Incrementing cwnd more conservatively, after it is = ssthresh; loss detection by timeout; next cycle begins with cwnd=1 SS time Store related value in ssthresh; ssthresh=(1/2)*cwnd

7 Congestion Avoidance Incrementing cwnd after it has reached ssthresh Incrementing cwnd after it has reached ssthresh –For each new ack, increment = 1/cwnd segment

8 Congestion Avoidance RTT Congestion avoidance begun cwnd At this point, cwnd increases to (cwnd+1) Exponential increase with RTT in Slow Start but additive increase with RTT in Congestion Avoidance time SS

9 SS and CA combined SS and CA are found together in implementations SS and CA are found together in implementations Upon reception of new ack Upon reception of new ack if (cwnd <= ssthresh) /* slow start */ cwnd += 1 else /* congestion avoidance */ else /* congestion avoidance */ cwnd += 1/cwnd SS and CA are distinct algorithms with different objectives, but both update the same parameter: cwnd SS and CA are distinct algorithms with different objectives, but both update the same parameter: cwnd

10 SS and CA Slow start Slow start –Get the ack clock started Congestion avoidance Congestion avoidance –Adapt to the congestion on the path Congestion leads to packet loss Congestion leads to packet loss Loss indicated by timeout Loss indicated by timeout

11 Congestion Avoidance After Congestion Avoidance has been implemented, are there aspects that can yet be improved? After Congestion Avoidance has been implemented, are there aspects that can yet be improved? –Loss detection still by timeout –A cycle always begins in Slow Start, with cwnd=1 n:n+s (s) X n+s:n+2s (s) Ack = n n+2s:n+3s (s) Ack = n Last ack carried no. n

12 Duplicate acks Early detection of congestion by watching for duplicate acks Early detection of congestion by watching for duplicate acks Instead of detecting congestion via time-outs Instead of detecting congestion via time-outs Every time-out is followed by cwnd = 1, and this means the window has to be built up again Every time-out is followed by cwnd = 1, and this means the window has to be built up again When bandwidth-delay product is large, this means considerable wastage When bandwidth-delay product is large, this means considerable wastage

13 Fast Retransmit Early retransmission, or “Fast Retransmit” Early retransmission, or “Fast Retransmit” If K dup acks are observed, conclude that a packet was dropped and retransmit the packet If K dup acks are observed, conclude that a packet was dropped and retransmit the packet K: a small fraction of the bandwidth-delay product K: a small fraction of the bandwidth-delay product Most implementations set K=3 Most implementations set K=3 K is called the duplicate ack threshold K is called the duplicate ack threshold

14 Bandwidth delay product (BDP) = 8 segments Also called “pipe capacity”


Download ppt "Recap Slow start introduced cwnd Slow start introduced cwnd Can transmit up to Can transmit up to min( cwnd, offered window ) Flow control by the sender."

Similar presentations


Ads by Google