TCP Congestion Control - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

TCP Congestion Control

Description:

Strategy: Send packets into the network without reservations and ... Factoid. TCP is used over connections with bandwidth ranging from 9600 bps to 2.4 Gbps. ... – PowerPoint PPT presentation

Number of Views:95
Avg rating:3.0/5.0
Slides: 16
Provided by: egBuc
Category:

less

Transcript and Presenter's Notes

Title: TCP Congestion Control


1
  • TCP Congestion Control

2
TCP Congestion Control
Strategy Send packets into the network without
reservations and then react to observable events
that occur.
3
End-to-End Congestion Control
  • Distributed algorithm there is no central
    observer monitoring whether packets are being
    dropped by routers. Sources should get feedback
    from endpoints.
  • A source sends a packet out. When it receives an
    ACK, it concludes the packet arrived at the
    destination (and has thus left the network). At
    this point, it should be safe to insert a new
    packet.

4
Additive Increase/Multiplicative Decrease
  • TCP is connection oriented for each open
    connection, define a state variable
    CongestionWindow.
  • The source uses this variable to determine how
    much data it can have in transit at any given
    time.
  • The maximum number of unACKed bytes is the
    minimum of AdvertisedWindow and CongestionWindow.
  • A TCP source can send no faster than the slowest
    component (network or destination host) can
    accommodate.

5
Additive Increase/Multiplicative Decrease
  • AdvertisedWindow is set by the receiving side of
    a connection.
  • CongestionWindow should be decreased when
    congestion is higher, and increased when
    congestion is lower.
  • Use timeouts to sense congestion for every
    timeout observed, halve the CongestionWindow
    (multiplicative decrease). The variable is never
    allowed to fall below on MSS.
  • For every ACKed packet, TCP adds one MSS to
    CongestionWindow

6
The Evolution of CongestionWindow
  • Note that the algorithm states that the source is
    willing to decrease the window at a much faster
    rate than it is willing to increase it.

Question Why should the algorithm be more
conservative with increases than with decreases?
7
A Fairy Tale
TCP
  • Once upon a time
  • There was a little transport protocol called TCP.
    She was always eager to make the best use of the
    available bandwidth. When a connection was
    started, she tried to send as many packets as the
    AdvertisedWindow allowed. Things didnt go very
    well for TCP after that

BIG BAD PACKET LOSS WOLF
8
Factoid
  • TCP is used over connections with bandwidth
    ranging from 9600 bps to 2.4 Gbps.

9
Slow Start
  • Set CongestionWindow to 1. Send as many packets
    as indicated in CongestionWindow.
  • If all packets sent are ACKed, then double
    CongestionWindow.
  • Send as many packets as indicated in
    CongestionWindow.
  • If all packets sent are ACKed, then double
    CongestionWindow.
  • Send as many packets as indicated in
    CongestionWindow.
  • If all packets sent are ACKed, then double
    CongestionWindow.

16
CongestionWindow
8
4
2
1
time
10
Packets in Transit
Additive Increase
Slow Start
11
Ok but where does it stop?
  • Eventually, one or more packets are not ACKed
    because somewhere along the way they got dropped.
  • If the connection times our waiting for an ACK,
    halve the CongestionWindow.
  • The last value of used before there was packet
    loss is the target congestion window. Since
    this is useful information, we save it in a
    variable called CongestionThreshold.
  • Reset CongestionWindow to one packet and start
    over. For every ACK received, increment
    CongestionWindow by one until CongestionThreshold.
  • After that, increment CongestionWindow slowly, by
    one packet for every elapsed RTT.

12
TCP Congestion Control in action
Timeout CW halved, CT set
Packet loss no new packets sent
Linear ramp up
Exponential ramp up
Exponential ramp up til CT
Linear ramp up
Packet loss no new packets sent
13
Fast Retransmit
  • Implementation detail TCP timers were too
    coarse-grained.
  • Consequence Long periods of time in which the
    connection would go dead waiting for a timer to
    expire.
  • Heuristic Sometimes it may be beneficial to
    trigger a retransmit before a timer expires.
  • Fast retransmit Every time a packet arrives at
    the receiver, ACK it, even if this SeqNo has
    already been ACKed. Clearly, this will lead to
    duplicate ACKs. The sender uses this information
    as a hint that some packet has been lost. TCP
    waits for three duplicate ACKs before
    retransmitting a packet.

14
Fast Retransmit in action
15
Fast Recovery
  • Fast retransmit may signal congestion. When that
    happens, instead of dropping the CongestionWindow
    down to one packet and run slow start, use the
    ACKs in transit to trigger the sending of new
    packets.
Write a Comment
User Comments (0)
About PowerShow.com