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

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

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

Chapter 3 Transport Layer

CSCI Topics: Internet Programming Fall 2008

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

Flow and Congestion Control (Hosts)

CSC 8560 Computer Networks: TCP

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

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

Computer Networking Introduction

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

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

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

CSCD 330 Network Programming Winter 2015

Chapter 3 Transport Layer

Principles of congestion control

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

Application. Transport. Network. Link. Physical

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

CS321: Computer Networks Congestion Control in TCP

TCP congestion control:

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

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

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

Lecture 15: Transport Layer Congestion Control

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

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: Overview RFCs: 793,1122,1323, 2018, 2581

CS 268: Lecture 7 (Beyond TCP Congestion Control)

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

Reliable Data Transfer

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

ECE 333: Introduction to Communication Networks Fall 2001

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

Congestion control in TCP

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

15-744: Computer Networking TCP

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

Chapter 3- parte B outline

Chapter 3 Transport Layer

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

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

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

Chapter III: Transport Layer

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

CS3600 SYSTEMS AND NETWORKS

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

Congestion Control in TCP

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

The Transport Layer: TCP & Congestion Control

of-service Support on the Internet

Congestion Control in TCP

Transport Protocols and TCP

CSCE 463/612 Networks and Distributed Processing Spring 2017

The Transport Layer Congestion control in TCP

Transport protocols. Transport Layer 3-1

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

ADVANCED COMPUTER NETWORKS

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

Advanced Congestion Control (Hosts)

Chapter 3 Transport Layer

TCP conges+on control

Flow and Congestion Control

Fall 2012: FCM 708 Bridge Foundation I

Computer Networking

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

Foundations of Telematics

cs/ee 143 Communication Networks

image 3.8 KB Figure 1.6: Example Web Page

Go-Back-N. Pipelining: increased utilization. Pipelined protocols. GBN: sender extended FSM

LAN Interconnection and Other Link Layer Protocols

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

Master Course Computer Networks IN2097

Reliable Transport II: TCP and Congestion Control

rdt3.0: channels with errors and loss

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

Multiple unconnected networks

Congestion Control in TCP

Outline. CS5984 Mobile Computing

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

Bandwidth Allocation & TCP

COMP/ELEC 429/556 Introduction to Computer Networks

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/21/2009 CSC 257/457 - Fall 2009 1 10/21/2009 CSC 257/457 - Fall 2009 2 Congestion Control Network-assisted Congestion Control: ATM Congestion threatens the growth of the Internet tragedy of commons Two broad approaches towards congestion control: Network-assisted congestion control: routers provide feedback to end systems mark bit indicating congestion explicit rate sender should send at End-end congestion control: no explicit feedback from network congestion inferred from end-system 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/21/2009 CSC 257/457 - Fall 2009 3 10/21/2009 CSC 257/457 - Fall 2009 4 CSC 257/457 - Fall 2009 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) 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 good rate is) steady state phase (being quite close to the good rate) 10/21/2009 CSC 257/457 - Fall 2009 5 10/21/2009 CSC 257/457 - Fall 2009 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 msec 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/21/2009 CSC 257/457 - Fall 2009 7 10/21/2009 CSC 257/457 - Fall 2009 8 CSC 257/457 - Fall 2009 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 Philosophy: timeout before 3 dup ACKs is more alarming because 3 dup ACKs indicates network capable of delivering some segments Long-term stability 10/21/2009 CSC 257/457 - Fall 2009 9 time 10/21/2009 CSC 257/457 - Fall 2009 10 Summary: TCP Congestion Control 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 0 3d dup ACKs timeout threshold threshold 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Transmission round 10/21/2009 CSC 257/457 - Fall 2009 11 10/21/2009 CSC 257/457 - Fall 2009 12 CSC 257/457 - Fall 2009 3

Congestion Control Algorithms Outline Reno is what we described. Tahoe (a predecessor) does not consider three duplicate ACKs as a loss event. New Reno (an enhancement) TCP send window limits the number of unacked segments, many of which are not in-flight; congestion is most related to the number of in-flight segments; send one more segment when receiving a duplicate ACK. Vegas principles of congestion control congestion control in TCP impact of congestion control on fairness impact of congestion control on TCP efficiency 10/21/2009 CSC 257/457 - Fall 2009 13 10/21/2009 CSC 257/457 - Fall 2009 14 TCP Fairness Fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K 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 TCP connection 1 R equal bandwidth share TCP connection 2 bottleneck router capacity R loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase 10/21/2009 CSC 257/457 - Fall 2009 15 Connection 1 throughput R 10/21/2009 CSC 257/457 - Fall 2009 16 CSC 257/457 - Fall 2009 4

Fairness with UDP Fairness with Parallel TCP Connections 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 Nothing prevents app from opening parallel connections between 2 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! 10/21/2009 CSC 257/457 - Fall 2009 17 10/21/2009 CSC 257/457 - Fall 2009 18 TCP Efficiency 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 Fixed Congestion Window (1) 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 10/21/2009 CSC 257/457 - Fall 2009 19 10/21/2009 CSC 257/457 - Fall 2009 20 CSC 257/457 - Fall 2009 5

Fixed Congestion Window (2) TCP Efficiency with Slow Start 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 small window size in the slow start process inefficiency inefficiency is amortized over long-running connections persistent connection in HTTP/1.1 delay = 2RTT + O/R + (K-1)[S/R + RTT - WS/R] where K = O/WS 10/21/2009 CSC 257/457 - Fall 2009 21 10/21/2009 CSC 257/457 - Fall 2009 22 Disclaimer 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/21/2009 CSC 257/457 - Fall 2009 23 CSC 257/457 - Fall 2009 6