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

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

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

Chapter 6 Congestion Avoidance. Networking CS 3470, Section 1

Congestion Control 3/16/09

Congestion Control. Resource allocation and congestion control problem

Chapter 6 Congestion Control and Resource Allocation

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

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

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

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

Congestion Control in TCP

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

ADVANCED COMPUTER NETWORKS

TCP Congestion Control

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

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

514 CHAPTER 6 Congestion control and resource allocation

Congestion Avoidance

CS321: Computer Networks Congestion Control in TCP

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

6.3 TCP congestion control 499

Computer Networking Introduction

Mid Term Exam Results

Chapter III: Transport Layer

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

The Transport Layer Congestion control in TCP

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

Flow and Congestion Control (Hosts)

Lecture 14: Congestion Control"

TCP congestion control:

Introduc)on to Computer Networks

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

CSCI Topics: Internet Programming Fall 2008

8. TCP Congestion Control

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

Flow and Congestion Control Marcos Vieira

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

Congestion Control in TCP

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

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

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

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

TCP Congestion Control

TCP Congestion Control

image 3.8 KB Figure 1.6: Example Web Page

Congestion Control in TCP

TCP Congestion Control 65KB W

Chapter 3 Transport Layer

CS3600 SYSTEMS AND NETWORKS

Bandwidth Allocation & TCP

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

Lecture 14: Congestion Control"

CS4700/CS5700 Fundamentals of Computer Networks

Congestion control in TCP


Overview. TCP congestion control Computer Networking. TCP modern loss recovery. TCP modeling. TCP Congestion Control AIMD

Congestion Control & Resource Allocation

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

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

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

CSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca

UNIT IV -- TRANSPORT LAYER

Chapter 3 Transport Layer

Congestion Control in TCP

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Wireless TCP Performance Issues

Transport Protocols and TCP

Lecture 15: Transport Layer Congestion Control

A Survey on Quality of Service and Congestion Control

Computer Network Fundamentals Spring Week 10 Congestion Control Andreas Terzis

Congestion Control in TCP

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 30, 2018

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 10

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

ECE 610: Homework 4 Problems are taken from Kurose and Ross.

Fall 2012: FCM 708 Bridge Foundation I

Solutions to Select Exercises

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

CNT 6885 Network Review on Transport Layer

Congestion / Flow Control in TCP

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015

ECE 333: Introduction to Communication Networks Fall 2001

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

Lecture 8. TCP/IP Transport Layer (2)

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

The Transport Layer: TCP & Congestion Control

Transport Layer Congestion Control

Congestion Control. Principles of Congestion Control. Network-assisted Congestion Control: ATM. Congestion Control. Computer Networks 10/21/2009

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

CS 356: Introduction to Computer Networks. Lecture 16: Transmission Control Protocol (TCP) Chap. 5.2, 6.3. Xiaowei Yang

Congestion Control in TCP

TCP so far Computer Networking Outline. How Was TCP Able to Evolve

Advanced Communication Networks

CSC 4900 Computer Networks: TCP

EE122 MIDTERM EXAM: Scott Shenker, Ion Stoica

Correcting mistakes. TCP: Overview RFCs: 793, 1122, 1323, 2018, TCP seq. # s and ACKs. GBN in action. TCP segment structure

Transport Protocols and TCP: Review

TCP: Transmission Control Protocol UDP: User Datagram Protocol TCP - 1

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

Transcription:

Fall 01 CptS/EE 555 3 Fall 01 CptS/EE 555 4 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 Housekeeping Pick up folders for exam study Exam next Friday, Nov. 16 Chapt. 5, 6 (not 6.5) and 7.1 Should have Hwk 4 ready to hand back next Wed. Hwk 4 solutions will be posted prior to that Fall 01 CptS/EE 555 1 Fall 01 CptS/EE 555 2 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 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0.0 Fall 01 CptS/EE 555 5 Fall 01 CptS/EE 555 6 Slow Start Slow Start (cont) 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 Exponential growth, but slower than all at once Used when first starting connection when connection goes dead waiting for timeout Trace Fall 01 CptS/EE 555 7 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 Problem: lose up to half a CongestionWindow s worth of data Fall 01 CptS/EE 555 8

Fall 01 CptS/EE 555 11 Fall 01 CptS/EE 555 12 Fast Retransmit and Fast Recovery Results Problem: coarse-grain TCP timeouts lead to idle periods Fast retransmit: use duplicate ACKs to trigger retransmission Packet 1 Packet 2 Packet 3 Packet 4 Packet 5 Packet 6 Retransmit packet 3 Sender Receiver ACK 1 ACK 6 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) Fall 01 CptS/EE 555 9 Fall 01 CptS/EE 555 Congestion Avoidance TCP s strategy control congestion once it happens 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 reduce rate before packets start being discarded call this congestion avoidance, instead of congestion control Two possibilities router-centric: DECbit and RED Gateways host-centric: TCP Vegas DECbit Add binary congestion bit to each packet header Router monitors average queue length over last busy+idle cycle Queue length Previous cycle Averaging interval Current cycle Current time Time set congestion bit if average queue length > 1 attempts to balance throughput against delay

End Hosts Packet Pair Destination echoes bit back to source Source records how many packets resulted in set bit If less than % of last window s worth had bit set increase CongestionWindow by 1 packet If % or more of last window s worth had bit set decrease CongestionWindow by 0.875 times Send two packets back-to-back Measure how far apart the acks are Gives estimate of the available bandwidth Example: Ping www.yahoo.com with 00 byte packet First two fragments arrive 1.2 ms apart Estimated bandwidth 10 bytes/1.2ms = Fall 01 CptS/EE 555 13 Fall 01 CptS/EE 555 14 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 RED 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 MaxThreshold MinThreshold AvgLen Fall 01 CptS/EE 555 15 Fall 01 CptS/EE 555 16

RED Details (cont) Two queue length thresholds if AvgLen <= MinThreshold then enqueue the packet if MinThreshold < AvgLen < MaxThreshold then calculate probability P drop arriving packet with probability P if MaxThreshold <= AvgLen then drop arriving packet RED Details (cont) Computing probability P TempP = MaxP * (AvgLen - MinThreshold)/ (MaxThreshold - MinThreshold) P = TempP/(1 - count * TempP) Drop Probability Curve P(drop) 1.0 MaxP MinThresh MaxThresh AvgLen Fall 01 CptS/EE 555 17 Fall 01 CptS/EE 555 18 Tuning RED 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 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 Penalty Box for Offenders Fall 01 CptS/EE 555 19 TCP Vegas Idea: source watches for some sign that router s queue is building up and congestion will happen too; e.g., RTT grows sending rate flattens Queue size in router 900 0 0 0 0 Sending ps10 5 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 Fall 01 CptS/EE 555

Algorithm Let BaseRTT be the minimum of all measured RTTs (commonly the RTT of the first packet) If not overflowing the connection, then ExpectRate = CongestionWindow/BaseRTT Source calculates sending rate (ActualRate) once per RTT Source compares ActualRate with ExpectRate Diff = ExpectedRate - ActualRate if Diff < α increase CongestionWindow linearly else if Diff > β decrease CongestionWindow linearly else leave CongestionWindow unchanged Fall 01 CptS/EE 555 21 Parameters α = 1 packet β = 3 packets Algorithm (cont) CAM ps 2 0 1 1 80 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 Even faster retransmit keep fine-grained timestamps for each packet check for timeout on first duplicate ACK Fall 01 CptS/EE 555 22