CSS432 Congestion Control Textbook Ch6.1 – 6.4

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

Congestion Control Reasons: - too many packets in the network and not enough buffer space S = rate at which packets are generated R = rate at which receivers.
TCP Congestion Control
ECE 4450:427/527 - Computer Networks Spring 2015
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.
Fall 2006CS 5611 Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion Quality of Service.
1 Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion.
Networks: Congestion Control1 Congestion Control.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Third Ed.,Peterson.
Congestion Control Outline Queuing Discipline Reacting to Congestion Avoiding Congestion.
1 Lecture 9: TCP and Congestion Control Slides adapted from: Congestion slides for Computer Networks: A Systems Approach (Peterson and Davis) Chapter 3.
Congestion Control and Resource Allocation
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
ACN: Congestion Control1 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.
CONGESTION CONTROL and RESOURCE ALLOCATION. Definition Resource Allocation : Process by which network elements try to meet the competing demands that.
Congestion Control (cont’d). TCP Congestion Control Review Congestion control consists of 3 tasks  Detect congestion  Adjust sending rate  Determine.
Fundamentals of Computer Networks ECE 478/578 Lecture #22: Resource Allocation and Congestion Control Instructor: Loukas Lazos Dept of Electrical and Computer.
Congestion Control Chapter 6 Outline Resource Allocation Issues Queuing Disciplines FCFS (FIFO queues) Priority Queuing Fair Queuing (for flows) TCP Congestion.
9.7 Other Congestion Related Issues Outline Queuing Discipline Avoiding Congestion.
Spring 2006CS 3321 Congestion Control and Resource Allocation Outline: Overview Queuing Disciplines TCP Congestion Control Combined Techniques.
Spring 2003CS 3321 Congestion Avoidance. Spring 2003CS 3322 Congestion Avoidance TCP congestion control strategy: –Increase load until congestion occurs,
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
TCP Congestion Control Computer Networks TCP Congestion Control 1.
Spring 2009CSE Congestion Control Outline Resource Allocation Queuing TCP Congestion Control.
CSE Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 19 – March 23, 2010.
TCP Congestion Control
Spring 2015© CS 438 Staff - University of Illinois1 Next Topic: Vacation Planning UIUC Chicago Monterey San Francisco Chicago to San Francisco: ALL FLIGHTS.
CS 6401 Congestion Control in TCP Outline Overview of RENO TCP Reacting to Congestion SS/AIMD example.
Random Early Detection (RED) Router notifies source before congestion happens - just drop the packet (TCP will timeout and adjust its window) - could make.
Spring Computer Networks1 Congestion Control Sections 6.1 – 6.4 Outline Preliminaries Queuing Discipline Reacting to Congestion Avoiding Congestion.
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.
Univ. of TehranIntroduction to Computer Network1 An Introduction Computer Networks An Introduction to Computer Networks University of Tehran Dept. of EE.
Other Methods of Dealing with Congestion
9.6 TCP Congestion Control
Chapter 3 outline 3.1 transport-layer services
Chapter 6 TCP Congestion Control
Congestion Control.
Congestion Control Outline Queuing Discipline Reacting to Congestion
Chapter 6 Congestion Avoidance
Congestion Control Outline Queuing Discipline Reacting to Congestion
Congestion Control Outline Queuing Discipline Reacting to Congestion
CSS432 Congestion Control Textbook Ch6.1 – 6.4
ECE 4450:427/527 - Computer Networks Spring 2017
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.
The University of Adelaide, School of Computer Science
Congestion Control in TCP
Other Methods of Dealing with Congestion
Other Methods of Dealing with Congestion
The University of Adelaide, School of Computer Science
CSS432 Congestion Control Textbook Ch6.1 – 6.4
Chapter 6 TCP Congestion Control
State Transition Diagram
If both sources send full windows, we may get congestion collapse
CS4470 Computer Networking Protocols
TCP Overview.
Congestion Control in TCP
Presentation transcript:

CSS432 Congestion Control Textbook Ch6.1 – 6.4 Instructor: Joe McCarthy (based on Prof. Fukuda’s slides) CSS432: Congestion Control

CSS432: Congestion Control Taxonomy Limited resources in network systems Link bandwidth Buffer size in routers or switches Resource allocation & congestion control: 2 sides of same coin Pre-allocate resources so as to avoid congestion Control congestion only when it occurs Flow control vs. congestion control Flow control: to keep a fast sender from overrunning a slow receiver Congestion control: to keep a set of senders from sending two much data into the network Two points of implementation Router Centric QoS-based service Reservation-based Rate-based Host Centric Best-effort service Feedback-based Window-based CSS432: Congestion Control

CSS432: Congestion Control Connectionless Flow Datagrams Switched independently Typically flow through same set of routers if transmitted from the same source to the same destination Connectionless Flows Routers & states: No state: purely connectionless service Hard state: purely connection-oriented service Soft state: allocate resources on a per-flow basis CSS432: Congestion Control

CSS432: Congestion Control Queuing Discipline First-In-First-Out (FIFO) w/ Tail Drop Does not discriminate between traffic sources (flows) Fair Queuing (FQ) Work conserving: link is never left idle (if data to be sent) Explicitly segregates traffic based on flows Ensures no flow captures more than its share of capacity If there are n flows sending data, each is allocated 1/n bandwidth Variation: weighted fair queuing (WFQ) Problem: Variable packet length Flow 1 Flow 2 Flow 3 Flow 4 Round-robin service [Section 3.2] CSS432: Congestion Control

Bit-Round Fair Queuing (BRFQ) Algorithm For each queue, compute the virtual finish time (F) upon arrival of a new packet. Choose a packet with the lowest virtual finish time. No preemption Pros and Cons Emulates bit-by-bit fair queuing Not perfect: can’t preempt a large packet currently being transmitted Example of fair queuing in action: (a) packets with earlier finishing times are sent first; (b) sending of a packet already in progress is completed CSS432: Congestion Control

TCP Congestion Control Created by Van Jacobson, 1980s, ~8 years after TCP/IP protocol stack became operational Immediately preceding this time, the Internet was suffering from congestion collapse hosts would send their packets into the Internet as fast as the advertised window would allow, congestion would occur at some router (causing packets to be dropped), and the hosts would time out hosts retransmit their packets, resulting in even more congestion CSS432: Congestion Control

TCP Congestion Control Concept: Assumes best-effort network (FIFO or FQ routers) Determines network capacity at each source host Uses implicit feedback Uses ACKs to pace packet transmission (self-clocking) Challenge: Determining the available capacity in the first place Adjusting # of in-transit packets in response to dynamic changes in the available capacity CSS432: Congestion Control

Additive Increase/Multiplicative Decrease (AIMD) New state variable per connection: CongestionWindow Limits how much data source can send: Previously: EffectiveWindow = AdvertisedWindow – (LastbyteSent - LastByteAcked) Now: = Min( CongestionWindow, AdvertisedWindow ) – (LastByteSent – LastByteAcked) Idea: Increase CongestionWindow when congestion deceases Decrease CongestionWindow when congestion increases Sending application LastByteWritten TCP LastByteSent LastByteAcked LastByteSent – LastByteAcked ≤ AdvertisedWindow EffectiveWindow = AdvertisedWindow – (LastByteSent – LastByteAcked) y CSS432: Congestion Control

CSS432: Congestion Control AIMD (cont) Question: how does the source determine whether or not the network is congested? CSS432: Congestion Control

CSS432: Congestion Control 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 CSS432: Congestion Control

CSS432: Congestion Control AIMD (cont) Algorithm Increment CongestionWindow by 1 packet per RTT (additive increase) Divide CongestionWindow by 2 whenever a timeout occurs (multiplicative decrease) 60 20 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 KB T ime (seconds) 70 30 40 50 10 10.0 CongestionWindow Size In practice: increment a little for each ACK Increment = MSS * (MSS/CongestionWindow) CongestionWindow += Increment CSS432: Congestion Control

CSS432: Congestion Control Slow Start Source Destination … Objective: reach the available capacity as fast as possible Idea: Begin with CongestionWindow = 1 packet Double CongestionWindow each RTT (increment by 1 packet for each ACK) When timeout occurs: Set congestionThreashold to CongestionWindow / 2 Begin with CongestionWindow = 1 packet again Observe slow start with tcpdump in assignment 3. CSS432: Congestion Control

CSS432: Congestion Control Slow Start Exponential growth, but slower than all at once Used… when first starting connection When Nagle’s algorithm is used and packets are lost, (timeout occurs and the congestion window is already 0) Final Algorithm: CongestionThreshold = INF while (true) { CongestionWindow = 1 while ( CongestionWindow < CongestionThreshold ) CongestionWindow *= 2 (based on slow start, exponential growth) while ( ACK returned ) CongestionWindow++ (based on additive increase, linear growth) if timeout occurs, CongestionThreshold = CongestionWindow / 2 Continue } CSS432: Congestion Control

CSS432: Congestion Control Slow Start Trace: Where: Colored line = value of CongestionWindow Solid bullets at top = timeouts Hash marks = time when each packet is transmitted Vertical bars = time when a packet that was eventually retransmitted (i.e., was lost) was first transmitted 60 20 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 KB 70 30 40 50 10 CSS432: Congestion Control

CSS432: Congestion Control Slow Start http://www.6test.edu.cn/~lujx/linux_networking/0131777203_ch24lev1sec4.html CSS432: Congestion Control

CSS432: Congestion Control Slow Start Trace: Problem: lose up to half a CongestionWindow’s worth of data 60 20 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 KB 70 30 40 50 10 Timeout Packets lost The actual congestion threshold Congestion window CSS432: Congestion Control

Fast Retransmit (TCP Tahoe) Problem: coarse-grained TCP timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission The receiver sends back the same ACK as the last packet received in the correct sequential order. The sender retransmits the packet whose ID is one larger than this duplicate ACK, upon receiving 3 ACKs. Packet 1 Packet 2 Packet 3 Packet 4 Packet 5 Packet 6 Retransmit packet 3 ACK 1 ACK 2 ACK 6 Sender Receiver Duplicate ACK 1 Duplicate ACK 2 Duplicate ACK 3 CSS432: Congestion Control

Effect of Fast Retransmit 60 20 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 KB 70 30 40 50 10 70 60 50 40 KB 30 20 10 1.0 2.0 3.0 4.0 5.0 6.0 7.0 CSS432: Congestion Control

Effect of Fast Retransmit Too many packets sent A half of them dropped off No ACKs returned CongestionWindow stays flat (no increase) Coarse-grained timeouts A packet lost Duplicate ACKs allow transmission of more packets CongestionWindow is divided in a half upon retransmits rather than timeouts 70 60 50 40 KB 30 20 10 1.0 2.0 3.0 4.0 5.0 6.0 7.0 CSS432: Congestion Control

Fast Recovery (TCP Reno) skip the slow start phase go directly to half the last successful CongestionWindow (ssthresh) CSS432: Congestion Control

CSS432: Congestion Control

CSS432: Congestion Control Congestion Avoidance TCP’s strategy: congestion control control congestion after it happens repeatedly increase load in an effort to find the point at which congestion occurs, and then back off Alternative strategy: congestion avoidance predict when congestion is about to happen reduce rate before packets start being discarded Two possibilities router-centric: RED Gateways Explanation in the following slides host-centric: TCP Vegas Compare measured and expected throughput rate, and shrink congestion window if the measured rate is smaller. CSS432: Congestion Control

Summary of TCP Versions RFC 1122 TCP Tahoe TCP Reno TCP Vegas RTT Estimation X Karn’s Algorithm Slow Start AIMD Fast Retransmit Fast Recovery Throughput-rate congestion control CSS432: Congestion Control

Random Early Detection (RED) Notification is implicit just drop the packet (TCP will timeout) could make explicit by marking the packet Early random drop rather than wait for queue to become full, drop each arriving packet with some drop probability whenever the queue length exceeds some drop level Congestion avoidance Global synchronization avoidance CSS432: Congestion Control

CSS432: Congestion Control RED Details Detect / respond to long-lived congestion (vs. short bursts) Low-pass filter Compute average queue length AvgLen = (1 - Weight) * AvgLen + Weight * SampleLen 0 < Weight < 1 (usually 0.002) SampleLen is queue length each time a packet arrives CSS432: Congestion Control

CSS432: Congestion Control RED Details (cont) Two queue length thresholds if AvgLen <= MinThreshold then enqueue the packet else if AvgLen >= MaxThreshold then drop arriving packet else // MinThreshold < AvgLen < MaxThreshold calculate probability P drop arriving pack with probability P CSS432: Congestion Control

CSS432: Congestion Control RED Details (cont) Computing probability P TempP = MaxP * (AvgLen - MinThreshold) / (MaxThreshold - MinThreshold) P = TempP / (1 - count * TempP) Drop Probability Curve Typically 0.02 Keep track of how many newly arriving packets have been queued while AvgLen has remained between the 2 thresholds Typically: MaxThreshold = MinThreshold * 2 MaxThreshold < MaxBuffer CSS432: Congestion Control

CSS432: Congestion Control Reviews Queuing disciplines: FIFO FQ TCP congestion control: AIMD, cold/slow start, and fast retransmit/fast recovery Congestion avoidance: RED and TCP vegas Exercises in Chapter 6 Ex. 2 (Avoidance) Ex. 6 (Router congestions) Ex. 25(Slow start) Ex. 27 (AIMD, slow start) Ex. 34 (RED) CSS432: Congestion Control

CSS432: Congestion Control Exercise 2 TCP uses a host-centric, feedback-based, window-based resource allocation model. How might TCP have been designed to use instead the following models: (a) Host-centric, feedback-based and rate-based. (b) Router-centric and feedback-based. CSS432: Congestion Control

CSS432: Congestion Control Exercise 6 Consider the arrangement of hosts H and routers R and R1 in Figure 6.27. All links are full-duplex, and all routers are faster than their links. Show that R1 cannot become congested and for any other router R, we can find a traffic pattern that congests that router alone. CSS432: Congestion Control

CSS432: Congestion Control Exercise 25 You are an Internet Service Provider; your client hosts connect directly to your routers. You know some hosts are using experimental TCPs and suspect some may be using a “greedy” TCP with no congestion control. What measurements might you make at your router to establish that a client was not using a slow start at all? If a client used slow start on startup but not after a timeout, could you detect that? CSS432: Congestion Control

CSS432: Congestion Control 27. Consider the TCP trace in Figure 6.28. Identify time intervals representing slow start on startup, slow start after timeout, and linear-increase congestion avoidance. Explain what is going on from T=0.5 to T=1.9. The TCP version that generated this trace includes a feature absent from the TCP that generated Figure 6.11. What is this feature? This trace and the one in Figure 6.13 both lack a feature. What is it? Figure 6.28 Figure 6.11 Figure 6.13 CSS432: Congestion Control

CSS432: Congestion Control Exercise 34 Consider a RED gateway with MaxP = 0.01 and with an average queue length halfway between the two thresholds Find the drop probability Pcount for count = 1 and count = 100 Calculate the probability that none of the first 50 packets is dropped. Note that this is (1 – P1) * … * (1 – P50) CSS432: Congestion Control