ANALYSIS OF CONGESTION CONTROL
MECHANISMS IN TCP
Abstract TCP, due to its flexibility in using with heterogeneous networks and its scalability
made it suitable for large networks. Due to the heterogeneous traffic and heavy data transfer
demands in the network, congestion is one of the crucial issues of concern. Current congestion
handling mechanism in TCP is packet Dropping in which packets are dropped at the congested
router . Source waiting after a RTT understands that there is congestion in the network and
reduces window size. Packet Dropping involves the lengthy RTT delays which reduces the
performance of the network .congestion control can be divided in to 3 phases detection ,
notification, and control. Congestion detection is usually based on queuing delays or buffer
overflows . One of the better example is RED (random early detection) which takes
predetermined queue threshold into account and drops packets probabilistically. As for the
Congestion notification BCN is one of the techniques and ECN involves packet marking ,
several methods for packet marking are mark tail ,mark front, mark random . There are may
other methods of congestion control and notification. This paper will present the qualitative
analysis of methods of congestion notification and control .
key Words: congestion control, packet marking, explicit congestion notification
Introduction: when the sender sends more packets than the receiver can take in a interval of
time the packets are lost in the network. this phenomena is called congestion. because of very
high usage of internet for diversified purposes and applications congestion is a major issue in
network communication in TCP. TCP has congestion control mechanisms built into the protocol.
It reacts to congestion within the network by adjusting the rate of the data flow from TCP
congestion control mechanism conceptually divided into three phases.
first one is congestion detection and the second one is congestion notification and the third one is
response( flow control) from the source.
1. Congestion Detection
Congestion detection is detecting the occurrence of congestion and consequent packet loss at the
router. congestion detection mechanism are mainly classified in to packet dropping strategies and
non packet dropping strategies.
the simplest method for getting \away with congestion is denying all incoming packets that will
overflow the buffer . In this phenomena router just discards the over flowed packets and the
source which is waiting for a ACK for that dropped packet knows that it is lost after a RTT
(Round Trip Time).and more complex and efficient methods are active queue management
methods which decide congestion based on several other criteria apart from buffer over flow
(like RED). This kind of congestion detection is very problematic for delay sensitive TCP, and
the packet retransmissions and ACK messages will decrease TCP's performance considerably .
There are more advanced methods which will reduce this burden of packet loss by some other
way than dropping.
1.1 Random early detection
random early detection involves dropping of packets randomly based on queuing thresholds.
this strategy maintains a maximum and minimum queue thresholds . when queue size less than
the minimum queue threshold no packets are dropped. and if queue size exceeds maximum
threshold every incoming packet is dropped. if it is between two thresholds it will be dropped
with a probability that is proportional to size of the queue .
2. Congestion Notification
congestion detection is of two types , implicit congestion notification using packet losses
and explicit congestion notification . currently implemented scheme in TCP is Packet dropping
.other methods for congestion notification are delaying acknowledgments and packet
2.1implicit congestion notification
one of the implicit congestion notification methods is just packet dropping .As stated
earlier packet dropping strategy becomes a burden over TCP . Delaying of acknowledgements
strategy delays acknowledgements of a congested packet which will be a sign of just starting
congestion to sender. but the biggest disadvantage in this kind of strategies is sender cannot
distinguish between congestion and other kinds of losses in the network.
2.2 Explicit congestion notification
Explicit congestion notification involves destination or some intermediate router reporting
about congestion to the sender. according to ECN there should be three members in the
congestion notification process, source ,destination and router . source is responsible for telling
the router that it is capable of receiving explicit congestion notification the router is responsible
for passing down the congestion notification by some means and receiver should echo the
congestion notification to sender. the process of congestion notification is as follows when
congestion takes place at the router marks a packet i.e. sets the ECN bit 1 and sends this packet
to receiver . the issue that which packet to mark is a queuing issue and it has significant effect on
ECN . there are 3 methods of marking a packet
marking tail, marking front, marking random  .mark tail means when congestion occurs the
packet at the end of the queue i.e where packets are inserted into the queue . mark front means
marking the packet that will just go in next transmission . and mark random is marking a random
packet according to active queue management like RED. in spite of its improvement over packet
dropping ECN suffers the biasing towards long slow connections to fast new connections. to
avoid this problem a new approach fair window algorithm, is proposed by Hamann and Walrand
. in which packets are dropped on criteria for both type of connections.
Fig. ECN process
flow control can be mainly classified into two types rate based control mechanisms and
window based congestion control mechanisms
window based flow control mechanisms:
most of the current congestion flow mechanisms and ongoing research is based on window
based flow control schemes and it is implemented in several algorithms like slow start ,
congetsion avoidence,fast retransmission and fast recovery .
The slow start algorithm adds a congestion window to sender with a maximum possible size
measured in packets. when there is a packet loss or new connection this congestion window will
be set to one packet . when a acknowledgement is received the window size is increased with
number of acknowledgements received. now the sender can send a minimum of window size
packets. it advertises its current congestion window size.
The speed at which slow start algorithm increases the congestion window will easily reach the
limit that a intermediate router can handle and it will eventually discard some of the packets. To
avoid this congestion avoidance strategy increases congestion window size up to a threshold
value sstresh and changes into congestion avoidance phase in which congestion window size
is increment is inversely proportional to congestion window size (cwnd ).
in this approach if a source receives more than one acknowledgements per packet that is sent
(preferably 3) the packet , the packet is considered to be lost . this is much better than a time out
for the detection of packet loss which involves several RTTs.
disadvantage with window based flow control mechanisms is oscillation of window size
continuously . when a source sends full window of packets, it will reduce the window size by
some amount less than exact capacity of the router. after one RTT again the sender increases
window over router capacity . this repeats continuously ,so the window size will never be
rate based flow control mechanisms:
this class of flow control schemes are not much researched , but there are some methods like
linear increase and exponential decrease  and experimental methods like burst level
congestion control using hindsight optimization .
1.Packet marking strategies for Explicit Congestion Notification (ECN)
Leung, I.K.-K.; Muppala, J.K.;Performance, Computing, and Communications, 2001. IEEE International
Conference on. , 4-6 April 2001
Pages:17 - 23
2.End-to-end congestion control schemes: utility functions, random losses and ECN marks
Kunniyur, S.; Srikant, R.;
Networking, IEEE/ACM Transactions on , Volume: 11 , Issue: 5 , Oct. 2003 Pages:689 - 702
3.Congestion control in TCP: performance of binary congestion notification
enhanced TCP compared to Reno and Tahoe TCP
Sisalem, D.; Schulzrinne, H.;
Network Protocols, 1996. Proceedings., 1996 International Conference on , 29 Oct.-1 Nov. 1996
Pages:268 - 275
4.Burst-Level Congestion Control Using Hindsight Optimization
Gang Wu, Edwin K. P. Chong, and Robert Givan
IEEE TRANSACTIONS ON AUTOMATIC CONTROL, VOL. 47, NO. 6, JUNE 2002 979
5.Internet congestion control
Low, S.H.; Paganini, F.; Doyle, J.C.;
Control Systems Magazine, IEEE , Volume: 22 , Issue: 1 , Feb. 2002
Pages:28 - 43
6. A Framework for Routing and Congestion Control
for Multicast Information Flows
Saswati Sarkar, Member, IEEE, and Leandros Tassiulas
IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 48, NO. 10, OCTOBER 2002