Congestion Control. Principles of Congestion Control. Network assisted congestion. Asynchronous Transfer Mode. Computer Networks 10/23/2013

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

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

Chapter 3 Transport Layer

CSC 4900 Computer Networks: TCP

CSCI Topics: Internet Programming Fall 2008

CSCI Topics: Internet Programming Fall 2008

Chapter 3 Transport Layer

Chapter III: Transport Layer

Chapter 3 Transport Layer

Lecture 8. TCP/IP Transport Layer (2)

Mid Term Exam Results

CNT 6885 Network Review on Transport Layer

Lecture 11. Transport Layer (cont d) Transport Layer 1

CSC 8560 Computer Networks: TCP

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

Flow and Congestion Control (Hosts)

CC451 Computer Networks

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

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

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

Principles of congestion control

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

Computer Networking Introduction

CS 43: Computer Networks. 19: TCP Flow and Congestion Control October 31, Nov 2, 2018

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

CSCD 330 Network Programming Winter 2015

CS321: Computer Networks Congestion Control in TCP

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, Development of reliable protocol Sliding window protocols

Chapter 3 Transport Layer

Application. Transport. Network. Link. Physical

TCP congestion control:

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, steam: r Development of reliable protocol r Sliding window protocols

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

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

Detecting half-open connections. Observed TCP problems

Transport Layer Overview

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri

Lecture 15: Transport Layer Congestion Control

CSC 401 Data and Computer Communications Networks

Transport Layer Congestion Control

CS4700/CS5700 Fundamentals of Computer Networks

CSCD 330 Network Programming Spring 2018 Lecture 11a Transport Layer

Master Course Computer Networks IN2097

TCP reliable data transfer. Chapter 3 outline. TCP sender events: TCP sender (simplified) TCP: retransmission scenarios. TCP: retransmission scenarios

15-744: Computer Networking TCP

Reliable Data Transfer

ECE 333: Introduction to Communication Networks Fall 2001

Congestion control in TCP

TCP. TCP: Overview. TCP Segment Structure. Maximum Segment Size (MSS) Computer Networks 10/19/2009. CSC 257/457 - Fall

TCP: Overview RFCs: 793,1122,1323, 2018, 2581

Data Communications & Networks. Session 9 Main Theme Network Congestion Causes, Effects, Controls, and TCP Applications. Dr. Jean-Claude Franchitti

CS 268: Lecture 7 (Beyond TCP Congestion Control)

Page 1. Review: Internet Protocol Stack. Transport Layer Services. Design Issue EEC173B/ECS152C. Review: TCP

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

Page 1. Review: Internet Protocol Stack. Transport Layer Services EEC173B/ECS152C. Review: TCP. Transport Layer: Connectionless Service

Advanced Congestion Control (Hosts)

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

Chapter 3 Transport Layer

Chapter 3- parte B outline

CS3600 SYSTEMS AND NETWORKS

Fall 2012: FCM 708 Bridge Foundation I

TCP conges+on control

Congestion Control in TCP

CSE/EE 461 Lecture 16 TCP Congestion Control. TCP Congestion Control

Good Ideas So Far Computer Networking. Outline. Sequence Numbers (reminder) TCP flow control. Congestion sources and collapse

The Transport Layer: TCP & Congestion Control

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

Chapter III: Transport Layer

Congestion Control in TCP

Transport Protocols and TCP

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

CSCE 463/612 Networks and Distributed Processing Spring 2017

Computer Networking

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

Congestion Control End Hosts. CSE 561 Lecture 7, Spring David Wetherall. How fast should the sender transmit data?

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

cs/ee 143 Communication Networks

of-service Support on the Internet

Transport protocols. Transport Layer 3-1

The Transport Layer Congestion control in TCP

ADVANCED COMPUTER NETWORKS

LAN Interconnection and Other Link Layer Protocols

Chapter 3 Transport Layer

COMP/ELEC 429/556 Introduction to Computer Networks

Foundations of Telematics

Flow and Congestion Control

image 3.8 KB Figure 1.6: Example Web Page

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

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

Reliable Transport II: TCP and Congestion Control

Congestion Control in TCP

Course on Computer Communication and Networks. Lecture 5 Chapter 3; Transport Layer, Part B

Multiple unconnected networks

Outline. CS5984 Mobile Computing

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

Internet Applications and the Application Layer Material from Kurose and Ross, Chapter 2: The Application Layer

Student ID: CS457: Computer Networking Date: 3/20/2007 Name:

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

Bandwidth Allocation & TCP

Transcription:

Congestion Control Kai Shen Principles of Congestion Control Congestion: Informally: too many sources sending too much data too fast for the network to handle Results of congestion: long delays (e.g. queueing in router buffers) lost packets (e.g. buffer overflow at routers) limited link capacity limited link buffers 10/23/2013 CSC 257/457 - Fall 2013 1 10/23/2013 CSC 257/457 - Fall 2013 2 Congestion Control Network assisted Congestion Control: Asynchronous Transfer Mode Congestion threatens the growth of the Internet tragedy of commons Two broad approaches towards congestion control: Network assisted congestion control: routers participate in congestion control routers provide feedback to end systems that slow down when necessary End end congestion control: no explicit help/information from network congestion inferred from endsystem observed loss, delay RM (resource management) cells: sent by sender, interspersed with data cells Bits in RM cell set by switches ( network assisted ) NI bit: no increase in rate (mild congestion) CI bit: congestion indication ER (explicit rate) field: congested switch may lower ER value in cell RM cells returned to sender by receiver, with bits intact sender control its rate based on information received in RM cells 10/23/2013 CSC 257/457 - Fall 2013 3 10/23/2013 CSC 257/457 - Fall 2013 4 CSC 257/457 - Fall 2013 1

TCP Congestion Control TCP Congestion Control CongWin is maximum allowed inflight or un ACKed bytes Roughly: throughput = CongWin/RTT dynamically control CongWin, based on perceived network congestion Goal: maintain a high rate that does not cause congestion How does sender perceive congestion? loss event = timeout or triple duplicate ACKs timeout before 3 dup ACKs is more alarming 3 dup ACKs indicates network capable of delivering some segments Mechanism: sender controls the sending rate by adjusting the number of packets allowed in flight simultaneously (size of the sliding window) Policy objective: figure out the highest rate that does not cause network congestion Two phases for TCP congestion control: start phase (having little idea of where the proper rate is) steady state phase (being quite close to the proper rate) 10/23/2013 CSC 257/457 - Fall 2013 5 10/23/2013 CSC 257/457 - Fall 2013 6 Slow Start Phase When does Slow Start become Steady State? At the beginning, CongWin = 1 MSS Available bandwidth may be >> MSS/RTT Example: MSS = 500 bytes & RTT = 200 msecs initial rate = 20 kbps desirable to quickly ramp up to respectable rate Exponential increase: double CongWin after every RTT in the absence of loss events In this phase, the CongWin starts at a slow rate, but it grows fast When should we stop exponential growth? RTT Host A Host B time Stop exponential growth: when there is a loss event or when CongWin reaches a Threshold. Threshold divides between two states: when you are far away from causing congestion, so you do not need to worry about congestion when you are very close to causing congestion, do need to be very careful Threshold is maintained based on past history: set to half of CongWin at a loss event initially set to a large value so it has no effect 10/23/2013 CSC 257/457 - Fall 2013 7 10/23/2013 CSC 257/457 - Fall 2013 8 CSC 257/457 - Fall 2013 2

Steady State Phase: AIMD Handling Loss Events Additive increase: increase CongWin by 1 MSS every RTT in the absence of loss events 24 Kbytes 16 Kbytes 8 Kbytes congestion window Multiplicative decrease: cut CongWin in half after 3 duplicate ACKs After 3 dup ACKs: CongWin is cut in half, it then grows linearly But after timeout event: CongWin instead set to 1 MSS, fall back to slow start the very beginning of the connection Rationale: timeout before 3 dup ACKs is more alarming because 3 dup ACKs indicates network capable of delivering some segments Long-term stability time 10/23/2013 CSC 257/457 - Fall 2013 9 10/23/2013 CSC 257/457 - Fall 2013 10 Summary Congestion Control in Action At start phase, window starts at 1 MSS and grows exponentially. When CongWin is above Threshold, sender is in steady state phase, window grows linearly. When a triple duplicate ACK occurs, CongWin is cut in half. When timeout occurs, Threshold set to CongWin/2 and CongWin is set to 1 MSS (start again). congestion window size (segments) 14 12 10 8 6 4 2 threshold 3 dup ACKs timeout threshold 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Transmission round 10/23/2013 CSC 257/457 - Fall 2013 11 10/23/2013 CSC 257/457 - Fall 2013 12 CSC 257/457 - Fall 2013 3

Congestion Control Algorithms Heuristics based Approaches Reno is what we described. Tahoe (a predecessor) does not consider three duplicate ACKs as a loss event. New Reno (an enhancement) Congestion is most related to the number of in flight segments. But Reno send window limits the number of unacked segments, many of which are not in flight. send one more segment when receiving a duplicate ACK. Vegas CUBIC (Linux) More sophisticated slow start, steady state management Window growth based on time, not ACKs (fair for long links) Many heuristics based parameters, little understanding on how good it is compared to alternatives, or how far it is from optimal. 10/23/2013 CSC 257/457 - Fall 2013 13 10/23/2013 CSC 257/457 - Fall 2013 14 Outline Fairness of TCP Congestion Control Principles of congestion control Congestion control in TCP Impact of congestion control on fairness Impact of congestion control on TCP efficiency Fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K TCP connection 1 TCP connection 2 bottleneck router capacity R 10/23/2013 CSC 257/457 - Fall 2013 15 10/23/2013 CSC 257/457 - Fall 2013 16 CSC 257/457 - Fall 2013 4

AIMD is Fair Two competing sessions: Additive increase gives slope of 45º, as throughputs of both sessions increase at the same speed Multiplicative decrease decreases throughput proportionally R equal bandwidth share loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase Fairness with UDP UDP is not congestion controlled UDP apps can send data as fast as they want, despite losses (its own losses as well as others) Multimedia applications TCP is network friendly while UDP is not Regulate UDP traffic within the network Connection 1 throughput R 10/23/2013 CSC 257/457 - Fall 2013 17 10/23/2013 CSC 257/457 - Fall 2013 18 Fairness with Parallel TCP Connections TCP Efficiency Nothing prevents an app from opening parallel connections between two hosts. Example: link of rate R currently supporting 9 connections. new app uses 1 TCP connection, gets rate R/10 new app asks for 9 TCP connections, gets R/2! Q: How long does it take to receive an object from a Web server after sending a request? data transmission delay TCP connection establishment congestion control (slow start) Case study: assume fixed congestion window: W segments more complicated with full TCP congestion control 10/23/2013 CSC 257/457 - Fall 2013 19 10/23/2013 CSC 257/457 - Fall 2013 20 CSC 257/457 - Fall 2013 5

Fixed Congestion Window (1) Fixed Congestion Window (2) Notation, assumptions: Link rate: R Object size: O Fixed window size: WS No loss, no corruption Case 1: congestion window is large ACK for first segment in window returns before window s worth of data sent delay = 2RTT + O/R Notation, assumptions: Link rate: R Object size: O Fixed window size: WS No loss, no corruption Case 2: congestion window is not large wait for ACK after sending window s worth of data sent delay = 2RTT + O/R + (K 1)[S/R + RTT WS/R] where K = O/WS 10/23/2013 CSC 257/457 - Fall 2013 21 10/23/2013 CSC 257/457 - Fall 2013 22 TCP Efficiency with Slow Start Disclaimer Small window size in the slow start process inefficiency Inefficiency is amortized over long running connections Persistent connection in HTTP/1.1 Parts of the lecture slides contain original work of James Kurose, Larry Peterson, and Keith Ross. The slides are intended for the sole purpose of instruction of computer networks at the University of Rochester. All copyrighted materials belong to their original owner(s). 10/23/2013 CSC 257/457 - Fall 2013 23 10/23/2013 CSC 257/457 - Fall 2013 24 CSC 257/457 - Fall 2013 6