So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced.

Slides:



Advertisements
Similar presentations
Slide Set 14: TCP Congestion Control. In this set... We begin Chapter 6 but with 6.3. We will cover Sections 6.3 and 6.4. Mainly deals with congestion.
Advertisements

TCP Congestion Control
EE 4272Spring, 2003 Chapter 17 Transport Protocols Connection-Oriented Transport Protocol  Under Reliable Network Service  Design Issues  Under Unreliable.
ECE 4450:427/527 - Computer Networks Spring 2015
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth Edition,Peterson.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Introduction to Congestion Control
CSS432 Congestion Control Textbook Ch6.1 – 6.4
CSS432: Congestion Control1 CSS432 Congestion Control Textbook Ch6.1 – 6.4 Professor: Munehiro Fukuda.
1 Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Third Ed.,Peterson.
15-744: Computer Networking L-10 Congestion Control.
1 Lecture 9: TCP and Congestion Control Slides adapted from: Congestion slides for Computer Networks: A Systems Approach (Peterson and Davis) Chapter 3.
Spring 2002CS 4611 Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion.
Spring 2003CS 4611 Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion.
Computer Networks : TCP Congestion Control1 TCP Congestion Control.
Chapter 6 Congestion Control and Resource Allocation
Networks : TCP Congestion Control1 TCP Congestion Control.
Networks : TCP Congestion Control1 TCP Congestion Control Presented by Bob Kinicki.
Advanced Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth.
TCP Congestion Control
EE 4272Spring, 2003 Chapter 17 Transport Protocols Connection-Oriented Transport Protocol  Reliable Network Service: Design Issues  Unreliable Network.
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
Lecture 9 – More TCP & Congestion Control
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
1 Transport Layer Lecture 10 Imran Ahmed University of Management & Technology.
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Computer Networking Lecture 18 – More TCP & Congestion Control.
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
TCP Congestion Control Computer Networks TCP Congestion Control 1.
Spring 2009CSE Congestion Control Outline Resource Allocation Queuing TCP Congestion Control.
TCP Congestion Control
CS 6401 Congestion Control in TCP Outline Overview of RENO TCP Reacting to Congestion SS/AIMD example.
Spring Computer Networks1 Congestion Control II Outline Queuing Discipline Reacting to Congestion Avoiding Congestion DECbit Random Early Detection.
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
9.6 TCP Congestion Control
Transport Layer CS 381 3/7/2017.
Chapter 3 outline 3.1 transport-layer services
Chapter 6 TCP Congestion Control
COMP 431 Internet Services & Protocols
Congestion Control.
Introduction to Congestion Control
Congestion Control Outline Queuing Discipline Reacting to Congestion
Congestion Control Outline Queuing Discipline Reacting to Congestion
Congestion Control Outline Queuing Discipline Reacting to Congestion
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
TCP.
Lecture 19 – TCP Performance
CSS432 Congestion Control Textbook Ch6.1 – 6.4
ECE 4450:427/527 - Computer Networks Spring 2017
The University of Adelaide, School of Computer Science
Congestion Control in TCP
CSS432 Congestion Control Textbook Ch6.1 – 6.4
Chapter 6 TCP Congestion Control
CS640: Introduction to Computer Networks
State Transition Diagram
If both sources send full windows, we may get congestion collapse
TCP Congestion Control
CS4470 Computer Networking Protocols
Congestion Control Reasons:
TCP Congestion Control
TCP Overview.
Congestion Control in TCP
Advanced Computer Networks
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
TCP flow and congestion control
Congestion Michael Freedman COS 461: Computer Networks
Presentation transcript:

So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced Internet protocols as a way to name and access the nodes Now we are focusing on TCP as a mechanism to implement reliable traffic that can operate on a heterogeneous network and be friendly to other traffic We’ve seen flow control, initial connection negotiation (ISN, SYN/FIN, ) Next we look at congestion control

Congestion If both sources send full windows, we may get congestion collapse Other forms of congestion collapse: Retransmissions of large packets after loss of a single fragment Non-feedback controlled sources

Resource allocation mechanisms Router Centric vs Host-centric Whether routers are required to deal with congestion by themselves or whether end hosts monitor the network and respond to congestion. Both require some help from the other component Reservation based or feedback based Reservation: end host asks for certain resources Feedback based: End host reacts to feedback from system, explcit or implicit Window based or rate based TCP like: buffer size specifies amount of traffic to expect (can be bursty) Constrain rate at which data is sent

Queuing disciplines FIFO + tail drop:

Fair queuing: Fairness per flow

6.3 TCP 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 capacity

TCP Congestion Control A collection of interrelated mechanisms: Slow start Congestion avoidance Accurate retransmission timeout estimation Fast retransmit Fast recovery

Congestion Control Underlying design principle: packet conservation At equilibrium, inject packet into network only when one is removed Basis for stability of physical systems A mechanism which: Uses network resources efficiently Preserves fair network resource allocation Prevents or avoids collapse Congestion collapse is not just a theory Has been frequently observed in many networks

Additive Increase/Multiplicative Decrease Objective: adjust to changes in the available capacity New state variable per connection: CongestionWindow limits how much data source has in transit MaxWin = MIN(CongestionWindow, AdvertisedWindow) EffWin = MaxWin - (LastByteSent - LastByteAcked) Idea: increase CongestionWindow when congestion goes down decrease CongestionWindow when congestion goes up

AIMD (cont) Question: how does the source determine whether or not the network is congested? Answer: a timeout occurs timeout signals that a packet was lost packets are seldom lost due to transmission error lost packet implies congestion

AIMD (cont) Algorithm increment CongestionWindow by one packet per RTT (linear increase) divide CongestionWindow by two whenever a timeout occurs (multiplicative decrease) Source Destination … In practice: increment a little for each ACK Increment = (MSS * MSS)/CongestionWindow CongestionWindow += Increment

AIMD (cont) Trace: sawtooth behavior for cwnd vs time 70 60 50 40 KB 30 20 10 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 T ime (seconds)

Self-clocking If we have large actual window, should we send data in one shot? No, use acks to clock sending new data

..Self-clocking Pr Pb receiver sender Ab As Ar

Slow Start AIMD is too slow to ramp up TCP performance Objective: determine the available capacity in the first Idea: begin with CongestionWindow = 1 packet double CongestionWindow each RTT (increment by 1 packet for each ACK) Source Destination …

Slow Start Example one RTT 0R 1 1R 2 3 2R 4 6 5 7 3R 8 10 12 14 9 11 one pkt time 1R 1 2 3 2R 2 3 4 6 5 7 3R 4 5 6 7 8 10 12 14 9 11 13 15

Slow Start (cont) Exponential growth, but slower than all at once Used… when first starting connection when connection goes dead waiting for timeout Trace Problem: lose up to half a CongestionWindow’s worth of data 70 60 50 KB 40 30 20 10 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0

Fast Retransmit Sender Receiver Problem: coarse-grain TCP timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission Packet 1 Packet 2 ACK 1 Packet 3 Packet 4 ACK 2 Packet 5 ACK 2 Packet 6 ACK 2 ACK 2 Retransmit packet 3 ACK 6

Fast Retransmit If we get 3 duplicate acks for segment N Retransmit segment N Set ssthresh to 0.5*cwnd Set cwnd to ssthresh + 3 For every subsequent duplicate ack Increase cwnd by 1 segment When new ack received Reset cwnd to ssthresh (resume congestion avoidance)

Congestion Avoidance TCP needs to create congestion to find the point where congestion occurs Coarse grained timeout as loss indicator If loss occurs when cwnd = W Network can absorb 0.5W ~ W segments Set cwnd to 0.5W (multiplicative decrease) Needed to avoid exponential queue buildup Upon receiving ACK Increase cwnd by 1/cwnd (additive increase) Multiplicative increase -> non-convergence

Slow Start and Congestion Avoidance If packet is lost we lose our self clocking as well Need to implement slow-start and congestion avoidance together When timeout occurs set ssthresh to 0.5w If cwnd < ssthresh, use slow start Else use congestion avoidance

Fast Recovery In congestion avoidance mode, if duplicate acks are received, reduce cwnd to half If n successive duplicate acks are received, we know that receiver got n segments after lost segment: Advance cwnd by that number

Results Fast recovery skip the slow start phase 70 60 50 40 KB 30 20 10 1.0 2.0 3.0 4.0 5.0 6.0 7.0 Fast recovery skip the slow start phase go directly to half the last successful CongestionWindow (ssthresh)

Impact of Timeouts Timeouts can cause sender to Slow start Retransmit a possibly large portion of the window Bad for lossy high bandwidth-delay paths Can leverage duplicate acks to: Retransmit fewer segments (fast retransmit) Advance cwnd more aggressively (fast recovery)