Conges'on. Last Week: Discovery and Rou'ng. Today: Conges'on Control. Distributed Resource Sharing. Conges'on Collapse. Conges'on

Similar documents
Conges'on Control Reading: Sec'ons

Flow and Congestion Control

TCP conges+on control

Context. TCP is the dominant transport protocol in today s Internet. Embodies some of Internet design principles

Introduc)on to Computer Networks

Multiple unconnected networks

Lecture 21: Congestion Control" CSE 123: Computer Networks Alex C. Snoeren

Opera&ng Systems and Networks. Network Lecture 10: Conges&on Control. Adrian Perrig Network Security Group ETH Zürich

Introduc)on to Computer Networks

Lecture 14: Congestion Control"

Where we are in the Course

Lecture 15: Transport Layer Congestion Control

Introduc)on to Computer Networks

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

Communication Networks

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

CSE 123A Computer Networks

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

Congestion Control 3/16/09

Introduc)on to Transport Protocols

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

ADVANCED COMPUTER NETWORKS

Computer Networking Introduction

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

TCP Congestion Control

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

Fall 2012: FCM 708 Bridge Foundation I

15-744: Computer Networking TCP

CS321: Computer Networks Congestion Control in TCP

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

Introduc)on to Computer Networks

6.033 Computer System Engineering

CS4700/CS5700 Fundamentals of Computer Networks

Congestion Control. Tom Anderson

image 3.8 KB Figure 1.6: Example Web Page

Lecture 4: Congestion Control

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

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

Computer Networking

6.033 Computer System Engineering

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

Principles of congestion control

Chapter III: Transport Layer

Lecture 14: Congestion Control"

CS457 Transport Protocols. CS 457 Fall 2014

Goals of Today s Lecture! Congestion Control! Course So Far.! Congestion Control Overview! It s Not Just The Sender & Receiver! Congestion is Natural!

Bandwidth Allocation & TCP

TCP Congestion Control

Congestion Control in TCP

Network Management & Monitoring

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

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2. Goals for Todayʼs Lecture. Role of Transport Layer

Congestion control in TCP

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

Lecture 2: Layering & End-to-End

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

Flow and Congestion Control Marcos Vieira

Advanced Computer Networks

CSCD 330 Network Programming Winter 2015

UNIT IV -- TRANSPORT LAYER

CSCI Topics: Internet Programming Fall 2008

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

Lecture 8. TCP/IP Transport Layer (2)

8. TCP Congestion Control

Chapter 3 Transport Layer

The Transport Layer Congestion control in TCP

Computer Networks Spring 2017 Homework 2 Due by 3/2/2017, 10:30am

CSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca

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

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

CSC 4900 Computer Networks: TCP

Transport Protocols Reading: Sections 2.5, 5.1, and 5.2

Randomization. Randomization used in many protocols We ll study examples:

Randomization used in many protocols We ll study examples: Ethernet multiple access protocol Router (de)synchronization Switch scheduling

Chapter 3- parte B outline

TCP Congestion Control

TCP Congestion Control

Congestion Control in TCP

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

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

Problem 7. Problem 8. Problem 9

Goals for Today s Lecture

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

CSE 461. TCP and network congestion

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

Distributed Systems. Communica3on and models. Rik Sarkar Spring University of Edinburgh

Mid Term Exam Results

CS Networks and Distributed Systems. Lecture 10: Congestion Control

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

CNT 6885 Network Review on Transport Layer

ECE 435 Network Engineering Lecture 10

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

Chapter 3 Transport Layer

COMP/ELEC 429/556 Introduction to Computer Networks

CS 349/449 Internet Protocols Final Exam Winter /15/2003. Name: Course:

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

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

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

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

Communications Software. CSE 123b. CSE 123b. Spring Lecture 3: Reliable Communications. Stefan Savage. Some slides couresty David Wetherall

Transcription:

Last Week: Discovery and Rou'ng Provides end-to-end connectivity, but not necessarily good performance Conges'on logical link name Michael Freedman COS 461: Computer Networks Lectures: MW 10-10:50am in Architecture N101 hep://www.cs.princeton.edu/courses/archive/spr13/cos461/ physical path address 2 Today: Conges'on Control What can the end-points do to collectively to make good use of shared underlying resources? logical link name Distributed Resource Sharing physical path address 3 4 Conges'on Best- effort network does not block calls So, they can easily become overloaded Conges'on == Load higher than capacity Examples of conges'on Link layer: Ethernet frame collisions Network layer: full IP packet buffers Excess packets are simply dropped And the sender can simply retransmit queue Conges'on Collapse Easily leads to conges'on collapse Senders retransmit the lost packets Leading to even greater load and even more packet loss Goodput Load conges(on collapse Increase in load that results in a decrease in useful work done. 5 6 1

Detect and Respond to Conges'on? What does the end host see? What can the end host change? Detec'ng Conges'on Link layer Carrier sense mul'ple access Seeing your own frame collide with others Network layer Observing end- to- end performance Packet delay or loss over the path 7 8 Responding to Conges'on Upon detec'ng conges'on Decrease the sending rate But, what if condi'ons change? If more bandwidth becomes available, unfortunate to keep sending at a low rate Upon not detec'ng conges'on Increase sending rate, a liele at a 'me See if packets get through Ethernet Back- off Mechanism Carrier sense: Wait for link to be idle If idle, start sending If not, wait un'l idle Collision detec(on: listen while transmi]ng If collision: abort transmission, and send jam signal Exponen(al back- off: wait before retransmi]ng Wait random 'me, exponen'ally larger per retry 9 10 TCP Conges'on Control Addi've increase, mul'plica've decrease On packet loss, divide conges'on window in half On success for last window, increase window linearly Why Exponen'al? Respond aggressively to bad news Conges'on is (very) bad for everyone Need to react aggressively Examples: Ethernet: double retransmission 'mer TCP: divide sending rate in half Nice theore'cal proper'es Makes efficient use of network resources 11 12 2

Conges'on in a Drop- Tail FIFO Queue TCP Conges'on Control Access to the bandwidth: first- in first- out queue Packets transmieed in the order they arrive Access to the buffer space: drop- tail queuing If the queue is full, drop the incoming packet 13 14 How it Looks to the End Host Delay: Packet experiences high delay : Packet gets dropped along path How does TCP sender learn this? Delay: Round- trip 'me es'mate : out and/or duplicate acknowledgments TCP Conges'on Each TCP sender maintains a conges'on window Max number of bytes to have in transit (not yet ACK d) Adap'ng the conges'on window Decrease upon losing a packet: backing off Increase upon success: op'mis'cally exploring Always struggling to find right transfer rate Tradeoff Pro: avoids needing explicit network feedback Con: con'nually under- and over- shoots right rate 15 16 Addi've Increase, Mul'plica've Decrease How much to adapt? Addi've increase: On success of last window of data, increase window by 1 Max Segment Size (MSS) Mul'plica've decrease: On loss of packet, divide conges'on window in half Leads to the TCP Sawtooth Much quicker to slow than speed up! Over- sized windows (causing loss) are much worse than under- sized windows (causing lower thruput) AIMD: A necessary condi'on for stability of TCP 17 18 3

Receiver vs. Conges'on Flow control Keep a fast sender from overwhelming a slow receiver Conges'on control Keep a set of senders from overloading the network Different concepts, but similar mechanisms TCP flow control: receiver window TCP conges'on control: conges'on window Sender TCP window = min { conges'on window, receiver window } Sources of poor TCP performance The below condi'ons may primarily result in: (A) Higher pkt latency (B) Greater loss (C) Lower thruput 1. Larger buffers in routers 2. Smaller buffers in routers 3. Smaller buffers on end- hosts 4. Slow applica'on receivers 19 20 How Should a New Flow Start? Start slow (a small CWND) to avoid overloading network Star'ng a New Flow 21 But, could take a long 'me to get started! 22 Slow Start Phase Start with a small conges'on window Ini'ally, CWND is 1 MSS So, ini'al sending rate is MSS / RTT Could be preey wasteful Might be much less than actual bandwidth Linear increase takes a long 'me to accelerate Slow- start phase (really fast start ) Sender starts at a slow rate (hence the name) but increases rate exponen'ally un'l the first loss Src Dest Slow Start in Ac'on Double CWND per round-trip time 1 2 4 8 D A D D A A D D D D A A A A 23 24 4

Slow Start and the TCP Sawtooth Exponen'al slow start TCP originally had no conges'on control Source would start by sending en're receiver window Led to conges'on collapse! Slow start is, compara'vely, slower 25 Two Kinds of in TCP out Packet n is lost and detected via a 'meout Blas'ng en're CWND would cause another burst BeEer to start over with a low CWND Triple duplicate ACK Packet n is lost, but packets n+1, n+2, etc. arrive Then, sender quickly resends packet n Do a mul'plica've decrease and keep going 26 Repea'ng Slow Start Aper out 'meout Slow start un'l reaching t half of previous cwnd. Slow- start restart: Go back to CWND of 1, but take advantage of knowing the previous value of CWND. 27 Repea'ng Slow Start Aper Idle Period Suppose a TCP connec'on goes idle for a while Eventually, the network condi'ons change Maybe many more flows are traversing the link Dangerous to start transmi]ng at the old rate Previously- idle TCP sender might blast network causing excessive conges'on and packet loss So, some TCP implementa'ons repeat slow start Slow- start restart aper an idle period 28 TCP Problem 1 MSS = 1KB Max capacity of link: 200 KBps RTT = 100ms New TCP flow star'ng, no other traffic in network, assume no queues in network Fairness 1. About what is cwnd at 'me of first packet loss? (A) 8 pkts (B) 16 pkts (C) 32 KB (D) 100 KB (E) 200 KB 2. About how long un'l sender discovers first loss? (A) 200 ms (B) 400 ms (C) 600 ms (D) 1s (E) 1.6s 29 30 5

TCP Achieves a No'on of Fairness Effec've u'liza'on is not only goal We also want to be fair to various flows Simple defini'on: equal bandwidth shares N flows that each get 1/N of the bandwidth? But, what if flows traverse different paths? Result: bandwidth shared in propor'on to RTT What About Chea'ng? Some folks are more fair than others Using mul'ple TCP connec'ons in parallel (BitTorrent) Modifying the TCP implementa'on in the OS Some cloud services start TCP at > 1 MSS Use the User Datagram Protocol What is the impact Good guys slow down to make room for you You get an unfair share of the bandwidth 31 32 Preven'ng Chea'ng Possible solu'ons? Routers detect chea'ng and drop excess packets? Per user/customer failness? Peer pressure? Conclusions Conges'on is inevitable Internet does not reserve resources in advance TCP ac'vely tries to push the envelope Conges'on can be handled Addi've increase, mul'plica've decrease Slow start and slow- start restart Fundamental tensions Feedback from the network? Enforcement of TCP friendly behavior? 33 34 6