DOC PREVIEW
UT Dallas CS 6390 - CongestionControl

This preview shows page 1-2-22-23 out of 23 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 23 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Advanced Computer Networks TCP Congestion ControlWhat is congestion?IssuesTCP Congestion ControlSlide 5Slide 6Slow StartSlow Start ExampleCongestion Avoidance via AIMDExample of Slow Start/Congestion AvoidanceResponses to CongestionSummary of TCP congestion controlFast RetransmitFlavors of TCP Congestion ControlTCP RenoFast RecoveryTCP Tahoe and TCP Reno (for single segment losses)TCP CCTCP New RenoSACKCongestion AvoidanceCongestion Avoidance in TCP (TCP Vegas)AlgorithmAdvanced Computer NetworksTCP Congestion ControlWhat is congestion?Increase in network load results in decrease of useful work doneDifferent sources compete for resources inside networkWhy is it a problem?Sources are unaware of current state of resourceSources are unaware of each otherIn many situations, this will result in decrease in throughput (congestion collapse)Destination1.5-Mbps T1 linkRouterSource2Source1100-Mbps FDDI10-Mbps EthernetIssuesHow to deal with congestion?pre-allocate resources so as to avoid congestion (avoidance)control congestion if (and when) it occurs (control) Two points of implementationhosts at the edges of the network (transport protocol)routers inside the network (queuing discipline)Underlying service modelbest-effort data deliveryTCP Congestion ControlIdeaassumes best-effort network (FIFO or FQ routers) each source determines network capacity for itselfuses implicit feedbackACKs pace transmission (self-clocking)Challengedetermining the available capacity in the first placeadjusting to changes in the available capacityTCP Congestion ControlTCP sender is in one of two states: slow start OR congestion avoidanceThree components of implementationOriginal TCP (TCP Tahoe)1. Slow Start 2. Additive Increase Multiplicative Decrease (AIMD) 3. Fast RetransmitTCP Reno 3. Fast RecoveryTCP VegasIntroduces Congestion AvoidanceTCP Congestion ControlObjective: adjust to changes in the available capacityNew state variables per connection: CongestionWindow and (slow start)thresholdlimits how much data source has in transitMaxWin = MIN(CongestionWindow, AdvertisedWindow)EffWin = MaxWin - (LastByteSent - LastByteAcked)Slow StartInitial value: Set cwnd = 1 Note: Unit is a segment size. TCP actually is based on bytes and increments by 1 MSS (maximum segment size)The receiver sends an acknowledgement (ACK) for each packet Note: Generally, a TCP receiver sends an ACK for every other segment. Each time an ACK is received by the sender, the congestion window is increased by 1 segment:cwnd = cwnd + 1 If an ACK acknowledges two segments, cwnd is still increased by only 1 segment.Even if ACK acknowledges a segment that is smaller than MSS bytes long, cwnd is increased by 1.Does Slow Start increment slowly? Not really. In fact, the increase of cwnd is exponential (why?)Slow Start ExampleThe congestion window size grows very rapidlyFor every ACK, we increase cwnd by 1 irrespective of the number of segments ACK’edTCP slows down the increase of cwnd when cwnd > ssthresh segment 1ACK for segment 1cwnd = 1cwnd = 2segment 2segment 3ACK for segments 2cwnd = 4segment 4segment 5segment 6ACK for segments 4cwnd = 8ACK for segments 3ACK for segments 5ACK for segments 6segment 7ACK for segments 7Congestion Avoidance via AIMDCongestion avoidance phase is started if cwnd has reached the slow-start threshold valueIf cwnd >= ssthresh then each time an ACK is received, increment cwnd as follows:cwnd = cwnd + 1/ cwndSo cwnd is increased by one only if all cwnd segments have been acknowledged.Example of Slow Start/Congestion AvoidanceAssume that ssthresh = 8Roundtrip timesCwnd (in segments)ssthreshcwnd = 1cwnd = 2cwnd = 4cwnd = 8cwnd = 9cwnd = 10Responses to CongestionSo, TCP assumes there is congestion if it detects a packet lossA TCP sender can detect lost packets via:Expiration of a retransmission timerReceipt of a duplicate ACK (why?)TCP interprets a Timeout as a binary congestion signal. When a timeout occurs, the sender performs: cwnd is reset to one:cwnd = 1ssthresh is set to half the current size of the congestion window:ssthresh = cwnd / 2 and slow-start is enteredSummary of TCP congestion controlInitially:cwnd = 1;ssthresh = advertised window size;New Ack received:if (cwnd < ssthresh) /* Slow Start*/ cwnd = cwnd + 1;else /* Cong. Avoidance */ cwnd = cwnd + 1/cwnd;Timeout:/* Multiplicative decrease */ssthresh = cwnd/2;cwnd = 1;Fast RetransmitIf three or more duplicate ACKs are received in a row, the TCP sender believes that a segment has been lost. Then TCP performs a retransmission of what seems to be the missing segment, without waiting for a timeout to happen.Enter slow start:ssthresh = cwnd/2cwnd = 11KSeqNo=0AckNo=1024AckNo=10241KSeqNo=1024SeqNo=20481KAckNo=1024SeqNo=30721KSeqNo=10241KSeqNo=40961KAckNo=4096Flavors of TCP Congestion Control TCP Tahoe (1988, FreeBSD 4.3 Tahoe)Slow StartCongestion AvoidanceFast RetransmitTCP Reno (1990, FreeBSD 4.3 Reno)Fast RecoveryNew Reno (1996)SACK (1996)RED (Floyd and Jacobson 1993)TCP RenoDuplicate ACKs:Fast retransmitFast recovery Fast Recovery avoids slow startTimeout:Retransmit Slow StartTCP Reno improves upon TCP Tahoe when a single packet is dropped in a round-trip time.Fast RecoveryFast recovery avoids slow start after a fast retransmitIntuition: Duplicate ACKs indicate that data is getting throughAfter three duplicate ACKs set:Retransmit “lost packet”On packet loss detected by 3 dup ACKs:ssthresh = cwnd/2cwnd=ssthreshenter congestion avoidance1KSeqNo=0AckNo=1024AckNo=10241KSeqNo=1024SeqNo=20481KAckNo=1024SeqNo=30721KSeqNo=10241KSeqNo=40961KAckNo=4096TCP Tahoe and TCP Reno(for single segment losses)RenotimecwndtimecwndTahoeTCP CCTCP New RenoWhen multiple packets are dropped, Reno has problemsPartial ACK: Occurs when multiple packets are lostA partial ACK acknowledges some, but not all packets that are outstanding at the start of a fast recovery, takes sender out of fast recoverySender has to wait until timeout occurs New Reno: Can deal with multiple lost segments without going to slow startAfter the recovery of initial loss packet, one ACK is enough to trigger re-transmission of next lost packet within the same group of lost segmentsSender keeps track of which packets have been


View Full Document

UT Dallas CS 6390 - CongestionControl

Documents in this Course
VoIP

VoIP

44 pages

TE-MPLS

TE-MPLS

38 pages

TCP

TCP

28 pages

QoS

QoS

27 pages

P2P

P2P

50 pages

IPv6

IPv6

81 pages

IPv6

IPv6

64 pages

AODV-v2

AODV-v2

19 pages

aodv

aodv

32 pages

19. P2P

19. P2P

50 pages

18. VoIP

18. VoIP

44 pages

17. QoS

17. QoS

27 pages

13. TCP

13. TCP

28 pages

6. IPv6

6. IPv6

81 pages

19. P2P

19. P2P

50 pages

18. VoIP

18. VoIP

44 pages

17. QoS

17. QoS

27 pages

6. IPv6

6. IPv6

81 pages

6. IPv6

6. IPv6

81 pages

19. P2P

19. P2P

50 pages

18. VoIP

18. VoIP

44 pages

17. QoS

17. QoS

27 pages

13. TCP

13. TCP

28 pages

CC

CC

74 pages

19. P2P

19. P2P

50 pages

18. VoIP

18. VoIP

44 pages

17. QoS

17. QoS

27 pages

13. TCP

13. TCP

28 pages

6. IPv6

6. IPv6

81 pages

CC

CC

74 pages

Load more
Download CongestionControl
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view CongestionControl and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CongestionControl 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?