Congestion Control avoidance 
Seminar Presented 
by 
Mr. Anthony-Claret Onwutalobi 
On the 10th of March (Winter Session) 
University of Helsinki, Finland
Introduction 
 Definition of Terms: 
 Congestion - is a condition of severe 
delay caused by an overload of datagram 
at one or more switching point (router). 
[2] 
 Congestion Control: is a distributed 
algorithm use by TCP to share network 
resources among competing users. [3]
Area to Cover 
 Overview of Congestion Control 
 The use of Old TCP and its problem 
 The Introduction of New TCP and its 
Benefits 
 The limitation of the four Algorithm 
 Summary 
 Suggestions and questions
Introduction Continue.. 
 The Old TCP and How it operates: 
 UDP - 
 The Short Coming 
 Packet transmitted via Connectionless network 
 Packet can be lost or destroyed when network 
hardware fails 
 Packet loss due to heavy load. 
 Packet arrived out of order 
 Packet delivered after a long delay.
The New TCP 
(Positive Acknowledgement Transmission Protocol) 
 In principle, a reliable delivery with no 
duplicate or data loss as oppose to UDP 
protocol. 
 This mechanism requires both endpoints to be 
on a constant communication whereby the 
sender sends application packages (datagram) 
and wait for an acknowledgement from the 
receiver. 
 The sender stores the history of the packages 
sent and also set a timer when it sends a 
packet. It waits for a reply for a set periodic 
and will retransmit the package if no reply ACK 
received.
Short Coming of New TCP 
 solves the problem of Connectionless UDP 
protocol by ensuring the reliability of data 
transmitted over the network, 
 however it is too mechanical and it wastes 
a lot of network bandwidth. 
 It also has poor utilization of network 
resources because the sender must delay 
sending a new package until it receives an 
acknowledgement for the previous packet
Introducing Sliding Window 
 This limitation propels a research and introduction of 
sliding window. 
 Sliding window keeps tracks of transmitted and 
acknowledged packets. 
 Since the timer is set for each datagram sent over 
the network, the lost packets are easily identified 
and retransmitted 
 Although this sliding window protocol is connection-oriented 
which guarantee data connection.
Source http://www.tutorialsweb.com/networking/tcpip/images/Fig10_SlidingWindow.jpg
Slow Start 
 Slow-start is run when the pipe is empty (i.e., 
when first starting or re-starting after a timeout). 
Its goal is to get the "ack clock" started so 
packets will be metered into the network at a 
reasonable rate. 
 Algorithm: 
 Add a congestion window, cwnd, to the per-connection 
state. 
 When starting or restarting after a loss, set cwnd to 
one packet 
 On each Ack for new data, increase cwnd by one 
packet. 
 When sending, send the minimum of the receiver’s 
advertised window and cwnd.
Assumption: The maximum congestion window size is 8. Therefore, the congestion window size will not 
increase after it reaches the size 8. The sender starts with the congestion window size 1. Upon each ACK 
from the receiver, the sender increases the congestion window size by 1. For example, when the sender 
receives "ACK 1", its congestion window 
size is increased to be 2. Thus, in the next window, the sender can send 2 packets consecutively without 
receiving any ACKs from the receiver.
Congestion Avoidance 
 congestion avoidance, is run any 
time *except* when (re-)starting 
and is responsible for estimating the 
(dynamically varying) pipe size[4] 

When to Enter Congestion Avoidance 
 Congestion avoidance is a TCP 
restriction technique of regulating 
slow start exponential duplication 
method to avoid flooding the 
network with segment which could 
cause congestion. 
 Sender receives Ack over a lost 
packet. 
 Sender timeout Expires
Slow Start and Congestion Avoidance 
Algorithm 
 Slow Start and Congestion Avoidance Algorithm: [3] 
 Initialization for a given connection 
 Sets cwnd to one segment and ssthresh to 65535 bytes 
 The TCP output routine never sends more than minimum of cwnd and 
the receiver’s advertised window 
 When congestion occurs (indicated by a timeout or the reception of 
duplicate Ack), 
 One-half of the current window size (the minimum of cwnd and the 
receiver's 
 advertised window, but at least two segments) is saved in ssthresh. 
 Additionally, if the congestion is indicated by a timeout, cwnd is set to 
one segment 
 (slow start) 
 When new data is acknowledged by the other end, increase cwnd, but 
the way it 
 increases depends on whether TCP is performing slow start or 
congestion avoidance.
Fast Retransmit 
 Since TCP does not know whether a duplicate ACK 
is caused by a lost segment or just a reordering 
of segments, it waits for a small number of 
duplicate ACKs to be received. 
 It is assumed that if there is just a reordering of 
the segments, there will be only one or two 
duplicate ACKs before the reordered segment is 
processed, which will then generate a new ACK. 
 If three or more duplicate ACKs are received in a 
row, it is a strong indication that a segment has 
been lost. TCP then performs a retransmission of 
what appears to be the missing segment, without 
waiting for a retransmission timer to expire.
Fast Recovery 
 After fast retransmit sends what 
appears to be the missing segment, 
congestion avoidance, but not slow 
start is performed. 
 This is the fast recovery algorithm. 
It is an improvement that allows 
high throughput under moderate 
congestion, especially for large 
windows. [2]
References 
 [1] The Great Idea Finder “Fascinating facts about the 
invention of the Traffic Light William L. Potts 
“http://www.ideafinder.com/history/inventions/trafficlight.ht 
m Date Accessed: 10th February 2008 
 [2] D. E. Commer, “Internetworking with TCP/IP, Volume 1: 
Principles, protocols, and Architecture, 2006 
 [3] W. R. Stevens, “TCP Slow Start, Congestion Avoidance, 
Fast Retransmit, and Fast Recovery Algorithms, “RFC 2001, 
Jan 1997 
 [4] D. E. Commer, “Internetworking with TCP/IP, Volume 1: 
Principles, protocols, and Architecture, 2006 
 [5] http://www.tutorialsweb.com/networking/tcp-ip/ 
images/Fig10_SlidingWindow.jpg
References - Continue 
 [6] V. Jacobson, “Modified TCP congestion 
Avoidance Algorithm, “end2end –internet April 
30, 1990 ftp://ftp.isi.edu/end2end/end2end-interest- 
1990.mail 
 [7] D. X. Wei C. Jin, S. H. Low, S. Hedge, “FAST 
TCP” Motivation, Architecture, Algorithm, 
Performance IEEE Network, 2005 
 [8]http://www.isi.edu/nsnam/DIRECTED_RESEAR 
CH/DR_WANIDA/DR/JavisInActionSlowStartFrame 
.html Date Accessed 15/02/08 
 [9]http://www.cs.rice.edu/~amsaha/Papers/Cexa 
m/notes/node109.html 15/02/08
Thank You for Paying Attention 
 Suggestions! and Questions???

Congestion control avoidance

  • 1.
    Congestion Control avoidance Seminar Presented by Mr. Anthony-Claret Onwutalobi On the 10th of March (Winter Session) University of Helsinki, Finland
  • 2.
    Introduction  Definitionof Terms:  Congestion - is a condition of severe delay caused by an overload of datagram at one or more switching point (router). [2]  Congestion Control: is a distributed algorithm use by TCP to share network resources among competing users. [3]
  • 3.
    Area to Cover  Overview of Congestion Control  The use of Old TCP and its problem  The Introduction of New TCP and its Benefits  The limitation of the four Algorithm  Summary  Suggestions and questions
  • 4.
    Introduction Continue.. The Old TCP and How it operates:  UDP -  The Short Coming  Packet transmitted via Connectionless network  Packet can be lost or destroyed when network hardware fails  Packet loss due to heavy load.  Packet arrived out of order  Packet delivered after a long delay.
  • 5.
    The New TCP (Positive Acknowledgement Transmission Protocol)  In principle, a reliable delivery with no duplicate or data loss as oppose to UDP protocol.  This mechanism requires both endpoints to be on a constant communication whereby the sender sends application packages (datagram) and wait for an acknowledgement from the receiver.  The sender stores the history of the packages sent and also set a timer when it sends a packet. It waits for a reply for a set periodic and will retransmit the package if no reply ACK received.
  • 6.
    Short Coming ofNew TCP  solves the problem of Connectionless UDP protocol by ensuring the reliability of data transmitted over the network,  however it is too mechanical and it wastes a lot of network bandwidth.  It also has poor utilization of network resources because the sender must delay sending a new package until it receives an acknowledgement for the previous packet
  • 7.
    Introducing Sliding Window  This limitation propels a research and introduction of sliding window.  Sliding window keeps tracks of transmitted and acknowledged packets.  Since the timer is set for each datagram sent over the network, the lost packets are easily identified and retransmitted  Although this sliding window protocol is connection-oriented which guarantee data connection.
  • 8.
  • 9.
    Slow Start Slow-start is run when the pipe is empty (i.e., when first starting or re-starting after a timeout). Its goal is to get the "ack clock" started so packets will be metered into the network at a reasonable rate.  Algorithm:  Add a congestion window, cwnd, to the per-connection state.  When starting or restarting after a loss, set cwnd to one packet  On each Ack for new data, increase cwnd by one packet.  When sending, send the minimum of the receiver’s advertised window and cwnd.
  • 10.
    Assumption: The maximumcongestion window size is 8. Therefore, the congestion window size will not increase after it reaches the size 8. The sender starts with the congestion window size 1. Upon each ACK from the receiver, the sender increases the congestion window size by 1. For example, when the sender receives "ACK 1", its congestion window size is increased to be 2. Thus, in the next window, the sender can send 2 packets consecutively without receiving any ACKs from the receiver.
  • 11.
    Congestion Avoidance congestion avoidance, is run any time *except* when (re-)starting and is responsible for estimating the (dynamically varying) pipe size[4] 
  • 12.
    When to EnterCongestion Avoidance  Congestion avoidance is a TCP restriction technique of regulating slow start exponential duplication method to avoid flooding the network with segment which could cause congestion.  Sender receives Ack over a lost packet.  Sender timeout Expires
  • 13.
    Slow Start andCongestion Avoidance Algorithm  Slow Start and Congestion Avoidance Algorithm: [3]  Initialization for a given connection  Sets cwnd to one segment and ssthresh to 65535 bytes  The TCP output routine never sends more than minimum of cwnd and the receiver’s advertised window  When congestion occurs (indicated by a timeout or the reception of duplicate Ack),  One-half of the current window size (the minimum of cwnd and the receiver's  advertised window, but at least two segments) is saved in ssthresh.  Additionally, if the congestion is indicated by a timeout, cwnd is set to one segment  (slow start)  When new data is acknowledged by the other end, increase cwnd, but the way it  increases depends on whether TCP is performing slow start or congestion avoidance.
  • 14.
    Fast Retransmit Since TCP does not know whether a duplicate ACK is caused by a lost segment or just a reordering of segments, it waits for a small number of duplicate ACKs to be received.  It is assumed that if there is just a reordering of the segments, there will be only one or two duplicate ACKs before the reordered segment is processed, which will then generate a new ACK.  If three or more duplicate ACKs are received in a row, it is a strong indication that a segment has been lost. TCP then performs a retransmission of what appears to be the missing segment, without waiting for a retransmission timer to expire.
  • 15.
    Fast Recovery After fast retransmit sends what appears to be the missing segment, congestion avoidance, but not slow start is performed.  This is the fast recovery algorithm. It is an improvement that allows high throughput under moderate congestion, especially for large windows. [2]
  • 16.
    References  [1]The Great Idea Finder “Fascinating facts about the invention of the Traffic Light William L. Potts “http://www.ideafinder.com/history/inventions/trafficlight.ht m Date Accessed: 10th February 2008  [2] D. E. Commer, “Internetworking with TCP/IP, Volume 1: Principles, protocols, and Architecture, 2006  [3] W. R. Stevens, “TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms, “RFC 2001, Jan 1997  [4] D. E. Commer, “Internetworking with TCP/IP, Volume 1: Principles, protocols, and Architecture, 2006  [5] http://www.tutorialsweb.com/networking/tcp-ip/ images/Fig10_SlidingWindow.jpg
  • 17.
    References - Continue  [6] V. Jacobson, “Modified TCP congestion Avoidance Algorithm, “end2end –internet April 30, 1990 ftp://ftp.isi.edu/end2end/end2end-interest- 1990.mail  [7] D. X. Wei C. Jin, S. H. Low, S. Hedge, “FAST TCP” Motivation, Architecture, Algorithm, Performance IEEE Network, 2005  [8]http://www.isi.edu/nsnam/DIRECTED_RESEAR CH/DR_WANIDA/DR/JavisInActionSlowStartFrame .html Date Accessed 15/02/08  [9]http://www.cs.rice.edu/~amsaha/Papers/Cexa m/notes/node109.html 15/02/08
  • 18.
    Thank You forPaying Attention  Suggestions! and Questions???

Editor's Notes

  • #11 The diagram below shows the scenario of TCP slow-start mechanism: Assumption: The maximum congestion window size is 8. Therefore, the congestion window size will not increase after it reaches the size 8. The sender starts with the congestion window size 1. Upon each ACK from the receiver, the sender increases the congestion window size by 1. For example, when the sender receives "ACK 1", its congestion window size is increased to be 2. Thus, in the next window, the sender can send 2 packets consecutively without receiving any ACKs from the receiver.