TCP conges+on control

Similar documents
Mid Term Exam Results

Chapter III: Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

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

Introduc)on to Transport Protocols

Lecture 15: Transport Layer Congestion Control

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

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

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

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

CSC 4900 Computer Networks: TCP

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

CS321: Computer Networks Congestion Control in TCP

Computer Networking Introduction

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

Introduc)on to Computer Networks

TCP congestion control:

CSCI Topics: Internet Programming Fall 2008

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

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

Part1: Lecture 2! TCP congestion control!

Conges'on Control Reading: Sec'ons

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 401 Data and Computer Communications Networks

CS Networks and Distributed Systems. Lecture 10: Congestion Control

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

Transport Layer (Congestion Control)

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

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

TCP Congestion Control

TCP Congestion Control

Advanced Congestion Control (Hosts)

Introduc)on to Computer Networks

8. TCP Congestion Control

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

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

Congestion Collapse in the 1980s

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

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

cs/ee 143 Communication Networks

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

User Datagram Protocol (UDP) Transmission Control Protocol (TCP)

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

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

CSCI Topics: Internet Programming Fall 2008

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

Advanced Computer Networks

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

Communication Networks

Advanced Computer Networks

Flow and Congestion Control (Hosts)

Outline. User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Transport layer (cont.) Transport layer. Background UDP.

Operating Systems and Networks. Network Lecture 10: Congestion Control. Adrian Perrig Network Security Group ETH Zürich

Where we are in the Course. Topic. Nature of Congestion. Nature of Congestion (3) Nature of Congestion (2) Operating Systems and Networks

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

CS3600 SYSTEMS AND NETWORKS

Section #6 Handout. B has processed this packet and updated its position of its sliding window. Everything is in terms of bytes.

CS4700/CS5700 Fundamentals of Computer Networks

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

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

Lecture 4: Congestion Control

Flow and Congestion Control Marcos Vieira

Introduc)on to Computer Networks

Chapter 3 Transport Layer

CSCD 330 Network Programming Winter 2015

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

Computer Communication Networks Midterm Review

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

Computer Networking

CSC 8560 Computer Networks: TCP

TCP Congestion Control

Transmission Control Protocol

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

SharkFest'17 US. Understanding Throughput & TCP Windows. A Walk-Through of the Factors that can limit TCP Throughput Performance

Congestion Control 3/16/09

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

rdt3.0: channels with errors and loss

Bandwidth Allocation & TCP

Congestion Control in TCP

image 3.8 KB Figure 1.6: Example Web Page

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

Chapter III: Transport Layer

CSCD 330 Network Programming Spring 2018 Lecture 11a Transport Layer

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

ADVANCED COMPUTER NETWORKS

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

Chapter 3- parte B outline

CSE 461. TCP and network congestion

Outline. CS5984 Mobile Computing

SharkFest 17 Europe. My TCP ain t your TCP. Simon Lindermann. Stack behavior back then and today. Miele & Cie KG.

Wireless TCP Performance Issues

T Computer Networks

TCP Congestion Control

Performance Analysis of TCP Variants

CSE 123A Computer Networks

Multiple unconnected networks

Transcription:

TCP conges+on control Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley Some materials copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved

Chapter 3 outline 3.1 Transport- layer services 3.2 Mul+plexing and demul+plexing 3.3 Connec+onless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connec+on- oriented transport: TCP Segment structure Reliable data transfer Flow control Connec+on management 3.6 Principles of conges+on control 3.7 TCP conges+on control 2

TCP conges+on control TCP conges+on control Introduced by Van Jacobson in the late 80's Done without changing headers or routers Senders try and determine capacity of network Implicit conges+on signal: packet loss ACK from previous packet determines when to send more data, "self- clocking" fast link slow link ACK clock 3

TCP conges+on control Each TCP sender tracks: rwnd = Adver+sed window, for flow control cwnd = Conges+on window, for conges+on control Sender uses minimum of the two: rwnd prevents overrunning receiver's buffer cwnd prevents overloading network Situa+on is dynamic: Network changes e.g. new high bandwidth link, hosts start/stop sending Sender always searching for best sending rate 4

Basic TCP conges+on control Add one packet to window per RTT Works well if we start near capacity Otherwise could take a long +me to discover real network capacity 5

Slow start Slow start Increase conges+on window rapidly from cold start of 1 Add 1 to window for every good ACK Exponen+al increase in packets in flight On packet loss, start over at 1 Slow in comparison to original TCP Immediate sending up to adver+sed window (caused conges+on collapse) hbp://histrory.visualland.net/tcp_swnd.html 6

Slow start threshold, ssthresh Conges+on threshold (slow start threshold) Ini+ally set to large value On mul+plica+ve decrease, ssthresh = cwnd/2 When ramping back up, switch to addi+ve upon reaching ssthresh 7

Fast retransmission Problem: Timeouts take a long +me Connec+on sits idle wai+ng for a packet we are preby sure is never going to be ACK'd Fast retransmission Heuris+c to retransmit packet we suspect was lost Triggered when we observe 3 duplicate ACKs 20% increase in throughput TCP "Tahoe" 8

Fast recovery Problem: Restar+ng from 1 takes too long We spend too long below "known" network limit Fast recovery ACK clock s+ll working even though packet was lost Count up dup ACKs (including 3 that triggered fast retransmission) Once packets in- flight has reached new threshold, start sending packet on each dup ACK Once lost packet ACK'd, exit fast recovery and start linear increase 9

TCP "Reno" Tahoe + fast recovery Fast recovery 10

TCP "Reno" Tahoe + fast recovery Fast recovery hbp://www.brunocasari.net/projects_content/2?width=1000&height=500&iframe=true 11

Λ cwnd = 1 MSS ssthresh = 64 KB dupackcount = 0 Summary: TCP conges+on control timeout ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 retransmit missing segment dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment duplicate ACK dupackcount++ slow start New ACK! new ACK cwnd = cwnd + MSS (MSS/cwnd) dupackcount = 0 cwnd = cwnd+mss transmit new segment(s), as allowed dupackcount = 0 transmit new segment(s), as allowed cwnd > ssthresh Λ timeout ssthresh = cwnd/2 cwnd = 1 MSS dupackcount = 0 retransmit missing segment timeout ssthresh = cwnd/2 cwnd = 1 dupackcount = 0 retransmit missing segment fast recovery New ACK new ACK cwnd = ssthresh dupackcount = 0 congestion avoidance New ACK!. New ACK! duplicate ACK dupackcount++ dupackcount == 3 ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment duplicate ACK cwnd = cwnd + MSS transmit new segment(s), as allowed 12

Name Tahoe Reno New Reno Vegas BIC CUBIC Some of TCP's flavors Features Slow start, conges+on avoidance, fast retransmit. Tahoe's features + fast recovery. Improves Reno to handle mul+ple packet loss within window. Changes to fast recovery, allows filling of mul+ple holes in sequence space. Monitor for signs of increasing conges+on using RTT. Supports linear increase and decrease of conges+on window. Binary Increase Conges+on control, op+mized for high speed, long latency networks (long fat networks). Default in Linux 2.6.8-2.6.18. Less aggressive that BIC, based on a cubic growth func+on. Default in Linux 2.6.19+ Compound Microsoo, op+mized for long fat networks while trying to remain fair. Default in XP and Vista, available in Windows 7.... hbp://www.speedguide.net/ar+cles/windows- 7- vista- 2008- tweaks- 2574 13

TCP throughput Avg. TCP throughput as func+on of window size, RTT? Ignore slow start, assume always data to send W: window size (measured in bytes) Avg. window size (# in- flight bytes) is ¾ W Avg. throughput is 3/4W per RTT Avg. TCP throughput = 3 4 W RTT bytes/sec W W/2 14

TCP over long, fat pipes Example: 1500 byte segments, 100ms RTT Want 10 Gbps throughput Requires W = 83,333 in- flight segments Throughput in terms of segment loss probability, L [Mathis 1997]: TCP throughput = 1.22. MSS RTT L To achieve 10 Gbps throughput, need a loss rate of L = 2 x 10-10 a very small loss rate! New versions of TCP for high- speed environments 15

Fairness goal: TCP fairness If K TCP sessions share same bobleneck link of bandwidth R, each should have average rate of R/K TCP connec+on 1 TCP connec+on 2 Bobleneck router capacity R 16

Why is TCP fair? Two compe+ng sessions: v Addi+ve increase gives slope of 1, as throughout increases v Mul+plica+ve decrease decreases throughput propor+onally R equal bandwidth share Connec+on 2 throughput loss: decrease window by factor of 2 conges+on avoidance: addi+ve increase loss: decrease window by factor of 2 conges+on avoidance: addi+ve increase Connec+on 1 throughput R 17

Chea+ng Not everybody plays fair: Run mul+ple TCP connec+ons in parallel Change the TCP implementa+on Starts your TCP connec+on off with > 1 MSS Use a protocol without conges+on control (e.g. UDP) Good guys slow down to make way so others can have unfair share of bandwidth Possible solu+ons? Routers detect chea+ng and drop excess traffic Fair queuing 18

Connec+on flows Network flows IP network is connec+onless Datagrams really not independent Stream of datagrams between two hosts Routers can infer current flows, "soo state" 19

Fair queuing Use flows to determine scheduling Prevent hosts from hogging all the router resources Important if hosts don't implement host- based conges+on control (e.g. TCP conges+on control) Each flow gets its own queue, served round- robin 20

Wireless networks TCP conges+on control uses packet loss as signal Wireless/satellite links = high error rate TCP may mistake bit errors as conges+on Possible solu+ons: Link layer acknowledgements and retransmission Forward error correc+on Split connec+on into wireless/wired segments Use other signals than packet loss: increasing RTT 21

TCP splixng Op+mize cloud- based services e.g. Web search, e- mail, social networks Give illusion of opera+ng locally (i.e. low latency) But: data center may be a long way and speed of light is a constant + new connec+on subject to TCP slow- start TCP splixng Deploy front- end servers near to users e.g. Google's "enter- deep" clusters at access ISPs Client make TCP connec+on to front- end server, small RTT Front- end maintains persistent connec+on to back- end with large conges+on window 22

hbp://research.microsoo.com/en- us/um/people/chengh/ papers/apollo10.pdf 23

Chapter 3 summary v Principles behind transport layer services: Mul+plexing, demul+plexing Reliable data transfer Flow control Conges+on control v Instan+a+on in the Internet UDP TCP Next: Leaving the network edge (applica+on, transport layers) Into the network core! 24