SlideShare a Scribd company logo
Presented By
                                 Abhijit Bagchi (IT/2008/32)
                            Bikash Chandra Pal (IT/2008/07)
                                Soumya Sarkar (IT/2008/14)
Under The Guidance of Prof Moumita Deb
• Basics of Congestion     Retransmission
C   • Congestion a             Algorithm(TCP
                               Reno)
      Catastrophe?
o   • Basics Strategy to •     Issues in wireless
      combat congestion        Network.
n   • Congestion window •      TCP New Reno
    • Slow Start Phase     •   TCP Vegas .
t   • Congestion           •   TCP Westwood.
      Avoidance Phase •        Proposed Algorithm
e   • Congestion           •   Future Works
      Detection Phase
n   • Illustration of
      Congestion Control
t   • Fast Retransmit
s   • Fast Recovery
    • Adaptive
Basics of Congestion

A network is considered
congested when too many
packets try to access the
same router’s buffer, resulting
in a large amount of packets
being dropped.
Congestion a catastrophe?


• Impact of congestion may be
  temporary but if not handled it will
  be catastrophic .

• A congestive collapse effects
  network stability, throughput and
  fair resource allocation to network
  users

• Congestion control in a TCP/IP
  based internet is complex and
  challenging and over the years a lot
  of effort and resources have been
  dedicated to the research in this
  area.
Basic Strategy to Combat Congestion



• In case of network congestion TCP limits sender transmission
  rate to reduce load in the path between sender and receiver

• TCP employs a window-based scheme to control the
  transmission rate where size of the window directly impacts
  transmission

• Acknowledgements are used to pace the transmission of
  packets by the sender
Congestion Window


 Congestion Window (cwnd) is a variable held by the TCP source
  for each connection




Cwnd is set based on the perceived level of Congestion in the
  network
Slow Start Phase


• When a new connection is established the congestion window is
  initialized to one MSS(Maximum Segment Size)

•    Each time an ACK is received, the congestion window is
    increased by one MSS.

•   The sender can transmit up to the minimum of the congestion
    window and the advertised receiver window size.

• Thus, the size of congestion window increases exponentially
  until a threshold value is reached
Slow Start Phase(contd..)


The sender keeps track of a variable called ssthresh (slow start
threshold) When cwnd reaches this threshold slow start ends and
next phase starts
Congestion Avoidance Phase


• Every connection       is   associated   with   a   threshold
  value(ssthresh) .

• When cwnd reaches the due threshold, congestion
  avoidance (additive increase) algorithm takes over.

• In this phase the window size increases linearly until timeout
  occurs or duplicate acknowledgement is received
Congestion Detection Phase


• Congestion may be detected via either timeout or reception
  of duplicate acknowledgement packets

• If detection by timeout then, ssthresh=0.5 X window size and
  a new slow start phase starts with cwnd=1MSS

• If detection by 3 duplicate acknowledgement then,
  ssthresh=0.5 X window size and cwnd=ssthresh and a new
  congestion avoidance phase starts

• This is called Multiplicative decrease where in either case the
  ssthresh variable is reinitialized to half the current cwnd
Illustrations of Congestion Control
Fast Retransmit

• Hence congestion avoidance algorithm was later modified

• 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 more than 3 ACK is received for same segment the sender
  sends that particular segment even before its timer expires
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.

• It was added with Tcp Reno , another variant of Tcp
Adaptive Retransmission Algorithm


tout   calculated as a function of RTT

Send packet and keep timestamp ts

When ACK arrives, record timestamp ta

                             SampleRTT=ts – ta

   EstimatedRTT=α EstimatedRTT + (1 – α) SampleRTT(0.8<α<0.9)

                        tout=ß × EstimatedRTT (ß=2)
Issues of Wireless Networks


• In wireless network, current TCP network cannot recognize
  packet loss from congestion or from fading radio signals

• This results in unnecessary shrinking of congestion window
  which results in degradation of performance

• However via significant research certain techniques have been
  discovered to solve these problems
TCP New Reno
• New Reno is a slight modification over Tcp Reno. It is able to detect
  multiple packet losses

• Like Reno, New-Reno also enters into fast-retransmit when it receives
  multiple duplicate packets, however It differs from Reno in that it doesn’t
  exit fast-recovery until all the data which was outstanding at the time it
  entered fast recovery is acknowledged

• Thus it over comes the problem faced by Reno of reducing the cwnd
  multiples times

• Disadvantage:-New-Reno suffers from the fact that its take one RTT to
  detect each packet loss. When the ACK for the first retransmitted segment
  is received only then can we deduce which other segment was lost.
TCP Vegas
• TCP Vegas emphasizes on packet delay rather than on packet loss.
• Vegas sets Base RTT to the smallest measured RTT, and the
  expected throughput is computed according to
          Expected throughput =window size/ Base RTT .
          Actual throughput= window size/ current RTT.
• Vegas Calculates the difference in throughputs
          Diff=ӀActual throughput-Expected Throughputӏ      .
• If Diff < α, Vegas increases the window size linearly during the next
  RTT. If Diff > β, then Vegas decreases the window size linearly
  during the next RTT. Otherwise, it leaves the window size
  unchanged.
TCP Vegas(Contd.)




Disadvantage:-Since Vegas changes the window size linearly , it may not be utilizing bandwidth
properly
Tcp Westwood

• In TCP Westwood the sender continuously computes the
  connection BandWidth Estimate (BWE) which is defined as the
  share of bottleneck bandwidth used by the connection.

• After a packet loss indication, the sender resets the congestion
  window and the slow start threshold based on BWE. More
  precisely,
                   cwnd=BWE x RTT.

• Disadvantage :- TCPW performs poorly when random packet
   loss rate exceeds a few percent
Tcp Westwood (cont..)
Proposed Algorithm


• We would first set the baseRTT to minimum of
  measured round-trip times
• Calculate the
        Expected ACK rate(e)=cwnd/baseRTT;
        Actual ACK rate(a)=cwnd/RTT;
• Compare the Actual throughput with the expected
  throughput .
Proposed Algorithm(contd.)

• If (e==a)||(e<a) then , cwnd =BWE x RTT

• Else cwnd= β x (BWE x RTT) where 0< β< 1

• Bandwidth Estimate(BWE)=dk /tk-t(k-1)
   where dk=data sent between tk-t(k-1)
             interval.
Future Works
• In this project we intend to simulate the devised algorithm via
  ns 2.34 simulator and find out results in various test cases

• This test case results will be compared with existing values to
  come to a proper conclusion about the merits of this
  algorithm
Congestion control in tcp

More Related Content

Congestion control in tcp

  • 1. Presented By Abhijit Bagchi (IT/2008/32) Bikash Chandra Pal (IT/2008/07) Soumya Sarkar (IT/2008/14) Under The Guidance of Prof Moumita Deb
  • 2. • Basics of Congestion Retransmission C • Congestion a Algorithm(TCP Reno) Catastrophe? o • Basics Strategy to • Issues in wireless combat congestion Network. n • Congestion window • TCP New Reno • Slow Start Phase • TCP Vegas . t • Congestion • TCP Westwood. Avoidance Phase • Proposed Algorithm e • Congestion • Future Works Detection Phase n • Illustration of Congestion Control t • Fast Retransmit s • Fast Recovery • Adaptive
  • 3. Basics of Congestion A network is considered congested when too many packets try to access the same router’s buffer, resulting in a large amount of packets being dropped.
  • 4. Congestion a catastrophe? • Impact of congestion may be temporary but if not handled it will be catastrophic . • A congestive collapse effects network stability, throughput and fair resource allocation to network users • Congestion control in a TCP/IP based internet is complex and challenging and over the years a lot of effort and resources have been dedicated to the research in this area.
  • 5. Basic Strategy to Combat Congestion • In case of network congestion TCP limits sender transmission rate to reduce load in the path between sender and receiver • TCP employs a window-based scheme to control the transmission rate where size of the window directly impacts transmission • Acknowledgements are used to pace the transmission of packets by the sender
  • 6. Congestion Window Congestion Window (cwnd) is a variable held by the TCP source for each connection Cwnd is set based on the perceived level of Congestion in the network
  • 7. Slow Start Phase • When a new connection is established the congestion window is initialized to one MSS(Maximum Segment Size) • Each time an ACK is received, the congestion window is increased by one MSS. • The sender can transmit up to the minimum of the congestion window and the advertised receiver window size. • Thus, the size of congestion window increases exponentially until a threshold value is reached
  • 8. Slow Start Phase(contd..) The sender keeps track of a variable called ssthresh (slow start threshold) When cwnd reaches this threshold slow start ends and next phase starts
  • 9. Congestion Avoidance Phase • Every connection is associated with a threshold value(ssthresh) . • When cwnd reaches the due threshold, congestion avoidance (additive increase) algorithm takes over. • In this phase the window size increases linearly until timeout occurs or duplicate acknowledgement is received
  • 10. Congestion Detection Phase • Congestion may be detected via either timeout or reception of duplicate acknowledgement packets • If detection by timeout then, ssthresh=0.5 X window size and a new slow start phase starts with cwnd=1MSS • If detection by 3 duplicate acknowledgement then, ssthresh=0.5 X window size and cwnd=ssthresh and a new congestion avoidance phase starts • This is called Multiplicative decrease where in either case the ssthresh variable is reinitialized to half the current cwnd
  • 12. Fast Retransmit • Hence congestion avoidance algorithm was later modified • 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 more than 3 ACK is received for same segment the sender sends that particular segment even before its timer expires
  • 13. 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. • It was added with Tcp Reno , another variant of Tcp
  • 14. Adaptive Retransmission Algorithm tout calculated as a function of RTT Send packet and keep timestamp ts When ACK arrives, record timestamp ta SampleRTT=ts – ta EstimatedRTT=α EstimatedRTT + (1 – α) SampleRTT(0.8<α<0.9) tout=ß × EstimatedRTT (ß=2)
  • 15. Issues of Wireless Networks • In wireless network, current TCP network cannot recognize packet loss from congestion or from fading radio signals • This results in unnecessary shrinking of congestion window which results in degradation of performance • However via significant research certain techniques have been discovered to solve these problems
  • 16. TCP New Reno • New Reno is a slight modification over Tcp Reno. It is able to detect multiple packet losses • Like Reno, New-Reno also enters into fast-retransmit when it receives multiple duplicate packets, however It differs from Reno in that it doesn’t exit fast-recovery until all the data which was outstanding at the time it entered fast recovery is acknowledged • Thus it over comes the problem faced by Reno of reducing the cwnd multiples times • Disadvantage:-New-Reno suffers from the fact that its take one RTT to detect each packet loss. When the ACK for the first retransmitted segment is received only then can we deduce which other segment was lost.
  • 17. TCP Vegas • TCP Vegas emphasizes on packet delay rather than on packet loss. • Vegas sets Base RTT to the smallest measured RTT, and the expected throughput is computed according to Expected throughput =window size/ Base RTT . Actual throughput= window size/ current RTT. • Vegas Calculates the difference in throughputs Diff=ӀActual throughput-Expected Throughputӏ . • If Diff < α, Vegas increases the window size linearly during the next RTT. If Diff > β, then Vegas decreases the window size linearly during the next RTT. Otherwise, it leaves the window size unchanged.
  • 18. TCP Vegas(Contd.) Disadvantage:-Since Vegas changes the window size linearly , it may not be utilizing bandwidth properly
  • 19. Tcp Westwood • In TCP Westwood the sender continuously computes the connection BandWidth Estimate (BWE) which is defined as the share of bottleneck bandwidth used by the connection. • After a packet loss indication, the sender resets the congestion window and the slow start threshold based on BWE. More precisely, cwnd=BWE x RTT. • Disadvantage :- TCPW performs poorly when random packet loss rate exceeds a few percent
  • 21. Proposed Algorithm • We would first set the baseRTT to minimum of measured round-trip times • Calculate the Expected ACK rate(e)=cwnd/baseRTT; Actual ACK rate(a)=cwnd/RTT; • Compare the Actual throughput with the expected throughput .
  • 22. Proposed Algorithm(contd.) • If (e==a)||(e<a) then , cwnd =BWE x RTT • Else cwnd= β x (BWE x RTT) where 0< β< 1 • Bandwidth Estimate(BWE)=dk /tk-t(k-1) where dk=data sent between tk-t(k-1) interval.
  • 23. Future Works • In this project we intend to simulate the devised algorithm via ns 2.34 simulator and find out results in various test cases • This test case results will be compared with existing values to come to a proper conclusion about the merits of this algorithm