CS CS COMPUTER NETWORKS CS CS CHAPTER 6. CHAPTER 6 Congestion Control

Similar documents
Congestion Control. Queuing Discipline Reacting to Congestion Avoiding Congestion. Issues

TCP Congestion Control. Housekeeping. Additive Increase/Multiplicative Decrease. AIMD (cont) Pick up folders for exam study Exam next Friday, Nov.

Congestion Control 3/16/09

Congestion. Can t sustain input rate > output rate Issues: - Avoid congestion - Control congestion - Prioritize who gets limited resources

Congestion Control. Resource allocation and congestion control problem

Congestion Control & Resource Allocation. Issues in Resource Allocation Queuing Discipline TCP Congestion Control

Chapter 6 Congestion Avoidance. Networking CS 3470, Section 1

Chapter 6 Congestion Control and Resource Allocation

What is Congestion? Congestion: Moral of the Story. TCP Approach. Transport Layer: TCP Congestion Control & Buffer Management

TCP Congestion Control. Lecture 16. Outline. TCP Congestion Control. Additive Increase / Multiplicative Decrease (AIMD)

CS 356: Computer Network Architectures Lecture 19: Congestion Avoidance Chap. 6.4 and related papers. Xiaowei Yang

CS/ECE 438: Communication Networks Spring Problem Set 7. Title: Congestion control and Performance Analysis

Congestion Control in TCP

ADVANCED COMPUTER NETWORKS

C 6. Congestion Control and Resource Allocation. Copyright 2010, Elsevier Inc. All rights Reserved

TCP Congestion Control

514 CHAPTER 6 Congestion control and resource allocation

Congestion Avoidance

UNIT IV. UDP TCP Adaptive Flow Control-Adaptive Retransmission Congestion Control Congestion avoidance QoS.

Overview. Administrivia. Congestion Control Revisited. Congestion at Router. Example: FIFO tail drop. Router design issues

6.3 TCP congestion control 499

CSCI-1680 Transport Layer III Congestion Control Strikes Back Rodrigo Fonseca

CS557: Queue Management

Lecture 14: Congestion Control"

CS321: Computer Networks Congestion Control in TCP

Lecture 14: Congestion Control"

Congestion Control and Resource Allocation

Computer Networking Introduction

Bandwidth Allocation & TCP

Lecture 21. Reminders: Homework 6 due today, Programming Project 4 due on Thursday Questions? Current event: BGP router glitch on Nov.

Chapter 6 Queuing Disciplines. Networking CS 3470, Section 1

CS551 Router Queue Management

Introduc)on to Computer Networks

The Transport Layer Congestion control in TCP

Congestion control in TCP

Reminders. - Open book, open notes, closed laptop - Bring textbook - Bring printouts of slides & any notes you may have taken

8. TCP Congestion Control

Congestion Control & Resource Allocation

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

TCP Congestion Control : Computer Networking. Introduction to TCP. Key Things You Should Know Already. Congestion Control RED

Overview Computer Networking What is QoS? Queuing discipline and scheduling. Traffic Enforcement. Integrated services

Congestion Control in TCP

CSCI Topics: Internet Programming Fall 2008

Congestion Control. Daniel Zappala. CS 460 Computer Networking Brigham Young University

Flow and Congestion Control (Hosts)

UNIT IV -- TRANSPORT LAYER

Chapter III: Transport Layer

Random Early Detection (RED) gateways. Sally Floyd CS 268: Computer Networks

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste

Assignment 7: TCP and Congestion Control Due the week of October 29/30, 2015

Congestion Control in TCP

End-to-End Protocols. Transport Protocols. User Datagram Protocol (UDP) Application Layer Expectations

COMPUTER NETWORKS CS CS 55201

COMPUTER NETWORKS CS CS 55201

Fast Retransmit. Problem: coarsegrain. timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission

Chapter 3 Transport Layer

Computer Networking

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

CS3600 SYSTEMS AND NETWORKS

Computer Networking. Queue Management and Quality of Service (QOS)

Mid Term Exam Results

EE122 MIDTERM EXAM: Scott Shenker, Ion Stoica

Lecture 8. TCP/IP Transport Layer (2)

Recap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness

Solutions to Select Exercises

Chapter 3 Transport Layer

Chapter 24 Congestion Control and Quality of Service 24.1

Multiple unconnected networks

Internet Protocols Fall Lecture 16 TCP Flavors, RED, ECN Andreas Terzis


Problem 7. Problem 8. Problem 9

CS Transport. Outline. Window Flow Control. Window Flow Control

Congestion Control. Tom Anderson

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers

Flow and Congestion Control

Resource allocation in networks. Resource Allocation in Networks. Resource allocation

CS4700/CS5700 Fundamentals of Computer Networks

Fall 2012: FCM 708 Bridge Foundation I

CS457 Transport Protocols. CS 457 Fall 2014

Flow and Congestion Control Marcos Vieira

Computer Networks. Course Reference Model. Topic. Congestion What s the hold up? Nature of Congestion. Nature of Congestion 1/5/2015.

Chapter 3 Transport Layer

CS 268: Computer Networking

TCP Congestion Control

TCP Congestion Control

15-744: Computer Networking. Overview. Queuing Disciplines. TCP & Routers. L-6 TCP & Routers

CNT 6885 Network Review on Transport Layer

Congestion / Flow Control in TCP

Computer Network Fundamentals Spring Week 10 Congestion Control Andreas Terzis

Transport Layer Congestion Control

Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4021: Networks Discussion. Chapter 5 - Part 2

Kent State University

Congestion Control in Communication Networks

TCP congestion control:

CSE/EE 461. TCP congestion control. Last Lecture. This Lecture. Focus How should senders pace themselves to avoid stressing the network?

Congestion Avoidance

CS519: Computer Networks. Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control

ECE 333: Introduction to Communication Networks Fall 2001

Priority Traffic CSCD 433/533. Advanced Networks Spring Lecture 21 Congestion Control and Queuing Strategies

Congestion Control in TCP

Transcription:

COMPUTER NETWORKS CS 45201 CS 55201 CHAPTER 6 Congestion Control COMPUTER NETWORKS CS 45201 CS 55201 CHAPTER 6 Congestion Control P. Farrell and H. Peyravi Department of Computer Science Kent State University Kent, Ohio 44242 farrell@mcs.kent.edu http://www.cs.kent.edu/ farrell P. Farrell and H. Peyravi Department of Mathematics and Computer Science Kent State University Kent, Ohio 44242 farrell@cs.kent.edu Fall 2001 Fall 2001 CS 4/55201: Computer Networks Fall 2001 CS 4/55201: Computer Networks Fall 2001

Congestion Control Issues Contents Congestion Control Issues Queuing Disciplines Two sides of the same coin Congestion Control Issues pre-allocate resources so that to avoid congestion send data and control congestion if (and when) is occurs 1 10 Mbps Ethernet Router 1.5 Mbps T1 Link Dest 2 100 Mbps FDDI Two points of implementation hosts at the edges of the network (transport protocol) routers inside the network (queuing discipline) Underlying service model best-effort (assume for now) multiple qualities of service (later) CS 4/55201: Computer Networks Fall 2001 CS 4/55201: Computer Networks Fall 2001 1 of??

Congestion Control Issues Queuing Disciplines Connectionless flows sequence of packets sent between source/destination pair maintain soft state at the routers 1 2 3 Router Router Router Dest 1 Dest 2 Queuing Disciplines First-In-First-Out (FIFO) does not discriminate between traffic sources Fair Queuing (FQ) explicitly segregates traffic based on flows ensures no flow captures more than its share of capacity variation: weighted fair queuing (WFQ) Taxonomy router-centric versus host-centric reservation-based versus Feedback-based window-based versus rate-based Evaluation fairness power (ratio of throughput to delay) Flow 1 Flow 2 Flow 3 Flow 4 Round Robin Service Power = Throughput Delay Optimal Load Load CS 4/55201: Computer Networks Fall 2001 2 of?? CS 4/55201: Computer Networks Fall 2001 3 of??

Queuing Disciplines Problem: packets not all the same length really want bit-by-bit round robin not feasible to interleave bits (schedule on packet basis) simulate by determining when packet would finish For a single flow suppose clock ticks each time a bit is transmitted let P i denote the length of packet i let S i denote the time when start to transmit packet i let F i denote the time when finish transmitting packet i F i = S i + P i When does router start transmitting packet i? If before router finished packet i 1 from this flow, then immediately after last bit of i 1 (F i 1 ) If no current packets for this flow, then start transmitting when arrives (call this A i ) 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 Thus: F i = MAX(F i 1, A i ) + P i For multiple flows calculate F i for each packet that arrives on each flow treat all F i s as timestamps next packet to transmit is one with lowest timestamp Not perfect: can t preempt the packet currently being transmitted CS 4/55201: Computer Networks Fall 2001 4 of?? CS 4/55201: Computer Networks Fall 2001 5 of??

... 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) Algorithm: increment CongestionWindow by one packet per RTT (linear increase) divide CongestionWindow by two whenever a timeout occurs (multiplicative decrease) Destination Idea: increase CongestionWindow when congestion goes down decrease CongestionWindow when congestion goes up 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 In practice: increment a little for each ACK Increment = (MSS * MSS)/CongestionWindow CongestionWindow += Increment where MSS is maximum message size CS 4/55201: Computer Networks Fall 2001 6 of?? CS 4/55201: Computer Networks Fall 2001 7 of??

... Example trace: sawtooth behavior KB 70 60 50 40 30 20 10 0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 Time in seconds Slow Start Objective: determine the available capacity in the first place Idea: begin with CongestionWindow = 1 packet double CongestionWindow each RTT Destination Exponential growth, but slower than all in one blast Used... when first starting connection when connection goes dead waiting for a timeout CS 4/55201: Computer Networks Fall 2001 8 of?? CS 4/55201: Computer Networks Fall 2001 9 of??

Fast Retransmit and Fast Recovery Problem: coarse-grain TCP timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission segment 1 segment 2 segment 3 segment 4 segment 5 segment 6 retransmit segment 3 ack 1 ack 2 ack 2 ack 2 ack 2 ack 6 TCP s strategy to control congestion once it happens to repeatedly increase load in an effort to find the point at which congestion occurs, and then back off Alternative strategy predict when congestion is about to happen, and reduce the rate at which hosts send data just before packets start being discarded we call this congestion avoidance, to distinguish it from congestion control Two possibilities router-centric: DECbit and RED Gateways host-centric: TCP Vegas CS 4/55201: Computer Networks Fall 2001 10 of?? CS 4/55201: Computer Networks Fall 2001 11 of??

DECbit Add binary congestion bit to each packet header Router monitors average queue length over last busy+idle plus current busy cycle Queue Length Previous Cycle Averaging Interval set congestion bit if average queue length greater than 1 when packet arrives Current Cycle Current Time attempts to balance throughput against delay End Hosts destination echos bit back to source source records how many packets resulted in set bit if less than 50% of last window s worth had bit set, then increase CongestionWindow by 1 packet if 50% or more of last window s worth had bit set, then decrease CongestionWindow by 0.875 times Time Random Early Detection (RED) Gateways 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 RED: fills in the details 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 Queue length Instantaneous Average Time CS 4/55201: Computer Networks Fall 2001 12 of?? CS 4/55201: Computer Networks Fall 2001 13 of??

two queue length thresholds if AvgLen <= MinThreshold then enqueue the packet if MinThreshold < AvgLen < MaxThreshold calculate probability P drop arriving packet with probability P if MaxThreshold <= AvgLen drop arriving packet probability P not fixed MaxThreshold AvgLength MinThreshold function of AvgLen and how long since last drop (count) keeps track of new packets that have been queued while AvgLen has been between the two thresholds TempP = MaxP * (AvgLen - MinThreshold) / (MaxThreshold - MinThreshold) P = TempP/(1 - count * TempP) Notes P(drop) 1.0 MaxP MinThresh MaxThresh AvgLen probability of dropping a particular flow s packet(s) is roughly proportional to the share of the bandwidth that flow is currently getting MaxP is typically set to 0.02, meaning that when the average queue size is halfway between the two thresholds, the gateway drops roughly one out of 50 packets. if traffic is bursty, then MinThreshold should be sufficiently large to allow link utilization to be maintained at an acceptably high level difference between two thresholds should be larger than the typical increase in the calculated average queue length in one RTT; setting MaxThreshold to twice MinThreshold is reasonable for traffic on today s Internet CS 4/55201: Computer Networks Fall 2001 14 of?? CS 4/55201: Computer Networks Fall 2001 15 of??

TCP Vegas Idea: source watches for some sign that some router s queue is building up and congestion will happen soon; e.g., RTT is growing sending rate flattens Algorithm let BaseRTT be the minimum of all measured RTTs (commonly the RTT of the first packet) if not overflowing the connection, then ExpectedRate = CongestionWindow / BaseRTT Parameters α: 1 packet β: 3 packets Why not multiplicative decrease? Go to multiplicative if there is a timeout source calculates current sending rate (ActualRate) once per RTT (read how) source compares ActualRate with ExpectedRate Diff = ExpectedRate - ActualRate if Diff < α increase CongestionWindow linearly else if Diff > β decrease CongestionWindow linearly else leave CongestionWindow unchanged CS 4/55201: Computer Networks Fall 2001 16 of?? CS 4/55201: Computer Networks Fall 2001 17 of??