TCP on High-Speed Networks

Similar documents
TCP on High-Speed Networks

The dark side of TCP. understanding TCP on very high-speed networks. ACOMP 2008 HCMC, Bach Khoa University March 11th, 2008 LIUPPA. C.

The dark side of TCP

Congestion Control & Transport protocols

Reasons not to Parallelize TCP Connections for Fast Long-Distance Networks

TCP on current network technologies

ADVANCED TOPICS FOR CONGESTION CONTROL

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

Advanced Congestion Control (Hosts)

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

Congestion Control for High Bandwidth-delay Product Networks

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

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

Congestion Control for High-Bandwidth-Delay-Product Networks: XCP vs. HighSpeed TCP and QuickStart

Congestion Control for High Bandwidth-delay Product Networks. Dina Katabi, Mark Handley, Charlie Rohrs

15-744: Computer Networking TCP

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

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

COMP/ELEC 429/556 Introduction to Computer Networks

TCP. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli)

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

CS644 Advanced Networks

Flow and Congestion Control (Hosts)

CS268: Beyond TCP Congestion Control

Reliable Transport II: TCP and Congestion Control

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

TCP congestion control:

Enabling Large Data Transfers on Dynamic, Very High-Speed Network Infrastructures

Principles of congestion control

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

cs/ee 143 Communication Networks

Computer Networking

Chapter II. Protocols for High Speed Networks. 2.1 Need for alternative Protocols

CS321: Computer Networks Congestion Control in TCP

Evaluation of Advanced TCP Stacks on Fast Long-Distance Production Networks p. 1

CUBIC. Qian HE (Steve) CS 577 Prof. Bob Kinicki

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

ECE 333: Introduction to Communication Networks Fall 2001

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

Chapter III: Transport Layer

CS 268: Lecture 7 (Beyond TCP Congestion Control)

Lecture 4: Congestion Control

Congestion / Flow Control in TCP

Computer Networking Introduction

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

Lecture 14: Congestion Control"

Congestion Control. Brighten Godfrey CS 538 January Based in part on slides by Ion Stoica

Lecture 14: Congestion Control"

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

CS4700/CS5700 Fundamentals of Computer Networks

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

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

CS Networks and Distributed Systems. Lecture 10: Congestion Control

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

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

TCP Congestion Control

TCP Review. Carey Williamson Department of Computer Science University of Calgary Winter 2018

Tuning, Tweaking and TCP

CS3600 SYSTEMS AND NETWORKS

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

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

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

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

Part1: Lecture 2! TCP congestion control!

TCP over Wireless PROF. MICHAEL TSAI 2016/6/3

Hybrid Control and Switched Systems. Lecture #17 Hybrid Systems Modeling of Communication Networks

6.033 Spring 2015 Lecture #11: Transport Layer Congestion Control Hari Balakrishnan Scribed by Qian Long

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

TCP based Receiver Assistant Congestion Control

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections

Experimental Study of TCP Congestion Control Algorithms

Chapter 3 Transport Layer

CSC 4900 Computer Networks: TCP

CE693 Advanced Computer Networks

Reliable Transport II: TCP and Congestion Control

Networked Systems and Services, Fall 2018 Chapter 3

The Present and Future of Congestion Control. Mark Handley

8. TCP Congestion Control

Congestion Control In the Network

Lecture 8. TCP/IP Transport Layer (2)

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

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

Chapter 3- parte B outline

Implementation Experiments on HighSpeed and Parallel TCP

Chapter III. congestion situation in Highspeed Networks

bitcoin allnet exam review: transport layer TCP basics congestion control project 2 Computer Networks ICS 651

image 3.8 KB Figure 1.6: Example Web Page

The effect of reverse traffic on the performance of new TCP congestion control algorithms

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

Detecting half-open connections. Observed TCP problems

COMPARISON OF HIGH SPEED CONGESTION CONTROL PROTOCOLS

CSCI Topics: Internet Programming Fall 2008

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

TCP Tuning Domenico Vicinanza DANTE, Cambridge, UK

Transport Protocols and TCP

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

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

Lecture 9 Congestion Control: Part II. EECS 122 University of California Berkeley

Performance of high-speed TCP Protocols over NS-2 TCP Linux

Bandwidth Allocation & TCP

Transcription:

TCP on High-Speed Networks from New Internet and Networking Technologies for Grids and High-Performance Computing, tutorial given at HiPC 04, Bangalore, India December 22nd, 2004 C. Pham University Lyon, France LIP (CNRS-INRIA-ENS-UCBL)

TCP & High-speed networks N E W C H A P T E R Optical fiber 40 Gbps 200000km/s, delay of 5ms every 1000km Today s backbone links are optical, DWDM-based, and offer gigabit rates Transmission time <<< propagation time Duplicating a 10GB database should not be a problem anymore

The reality check: TCP on a 200Mbps link Huge capacity in network links does not mean end-to-end performances! TCP is not adapted to exploit Long Fat Networks! Packet losses

The things about TCP your mother never told you! Standard TCP 0.3Gbps TCP 40 Gbps If you want to transfer a 1Go file with a standard TCP stack, you will need minutes even with a 40Gbps (how much in $?) link!

Let s go back to the origin! Flow control is for receivers Congestion control is for the network From Computer Networks, A. Tanenbaum Congestion collapse was first observed in 1986 by V. Jacobson. Congestion control was added to TCP (TCP Reno) in 1988.

Flow control prevents receiver s buffer overfow Packet Sent Source Port Dest. Port Sequence Number Acknowledgment HL/Flags Window D. Checksum Urgent Pointer Options.. Packet Received Source Port Dest. Port Sequence Number Acknowledgment HL/Flags Window D. Checksum Urgent Pointer Options.. App write acknowledged sent to be sent outside window

TCP congestion control: the big picture Congestion window doubles every round-trip time Sequence No From Computer Networks, A. Tanenbaum packet ack Time cwnd grows exponentially (slow start), then linearly (congestion avoidance) with 1 more segment per RTT If loss, divides threshold by 2 (multiplicative decrease) and restart with cwnd=1 packet

From the control theory point of view ƒ feedback Closed-loop control Feedback should be frequent, but not too much otherwise there will be oscillations Can not control the behavior with a time granularity less than the feedback period

The TCP saw-tooth curve TCP behavior in steady state N Isolated packet losses trigger the fast recovery procedure instead of the slow-start. N/2 3N/4.N/2 Packets/cycle Throughput = W RTT = 3 2 MTU RTT p The TCP steady-state behavior is referred to as the Additive Increase- Multiplicative Decrease process N/2.RTT no loss: cwnd = cwnd + 1 loss: cwnd = cwnd*0.5

AIMD Phase plot User 2 s Allocation x 2 t 0 Convergence point Fairness Line x 1 =x 2 Efficiency Line x 1 +x 2 =C Multiplicative Decrease preserves the fairness because the user s allocation ratio remains the same Ex: x 2 = x.b 2 x 1 x 1.b User 1 s Allocation x 1 Assumption: decrease policy must (at minimum) reverse the load increase over-and-above efficiency line Implication: decrease factor should be conservatively set to account for any congestion detection lags etc

Tuning stand for TCP the dark side of speed! TCP team TCP performances depend on TCP & network parameters Congestion window size, ssthresh (threshold) RTO timeout settings SACKs Packet size System parameters NEED A SPECIALIST! TCP and OS buffer size (in comm. subsys., drivers )

First problem: window size The default maximum window size is 64Kbytes. Then the sender has to wait for acks. Sender Receiver TIME RTT Time to transmit 3 packets Packet #1 Packet #2 Packet #3 Packet #1 Ack. Packet #2 Ack. Packet #3 Ack. Packet #4 Packet #5 Packet #6 Packet #4 Ack. Packet #5 Ack. Packet #6 Ack.

First problem: window size The default maximum window size is 64Kbytes. Then the sender has to wait for acks. RTT=200ms Link is 0C-48 = 2.5 Gbps Waiting time

Rule of thumb on LFNs capacity High-speed network 01001011 Transmission time is small Propagation time is large 0010100101010101001010100101101 01010101010100100111110100110111 01010010010010111010101010001010 01010101010101010001110111010 1011010001010011110101011 RTT Need lots of memory for buffers! The optimal window size should be set to the bandwidthxrtt product to avoid blocking at the sender side

Side effect of large windows TCP becomes very sensitive to packet losses on LFN Congestion window size Large congestion window create burst/congestion Packet losses

Pushing the limits of TCP Standard configuration (vanilla TCP) is not adequate on many OS, everything is under-sized Receiver buffer System buffer Default block size Will manage to get near 1Gbps if well-tuned

Pushing the limits of TCP Standard configuration (vanilla TCP) is not adequate on many OS, everything is under-sized Receiver buffer System buffer Default block size Large congestion window Socket buffer=64mo Will manage to get near 1Gbps if well-tuned Source: M. Goutelle, GEANT test campaign

Some TCP tuning guides http://www.psc.edu/networking/projects/tcptune / http://www.web100.org/ http://rdweb.cns.vt.edu/public/notes/win2ktcpip.htm http://www.sean.de/solaris/soltune.html http://datatag.web.cern.ch/datatag/howto/tcp.ht ml

The problem on high capacity link? Additive increase is still too slow! Take ages to get to full speed With 100ms of round trip time, a connection needs 203 minutes (3h23) to get 1Gbps starting from 1Mbps! Once you get high throughput, maintaining it is difficult too! From S. Floyd

Going faster (cheating?) n flows is better than 1 The CC limits the throughput of a TCP connection: so why not use more than 1 connection for the same file? Very big file Seg 1 Seg 2 Seg 3 Seg n-1 Seg n TCP connection TCP connection 10 Gbps link

Some results from IEPM/SLAC More streams is better than larger congestion windows http://www-iepm.slac.stanford.edu/monitoring/bulk/window-vs-streams.html

Multiple streams No/few modifications to transport protocols (i.e. TCP) Parallel socket libraries GridFTP (http://www.globus.org/datagrid/gridftp.html) bbftp (http://doc.in2p3.fr/bbftp/)

New transport protocols New transport protocols are those that are not only optimizations of TCP New behaviors, new rules, new requirements! Everything is possible! New protocols are then not necessarily TCP compatible!

The new transport protocol strip XCP H-TCP BIC TCP FAST TCP HS-TCP S-TCP TSUNAMI

High Speed TCP [Floyd] Modifies the response function to allow for more link utilization in current high-speed networks where the loss rate is smaller than that of the networks TCP was designed for (at most 10-2 ) TCP Throughput (Mbps) RTTs Between Losses W P --------------------- ------------------- ---- ----- 1 5.5 8.3 0.02 10 55.5 83.3 0.0002 100 555.5 833.3 0.000002 1000 5555.5 8333.3 0.00000002 10000 55555.5 83333.3 0.0000000002 Table 1: RTTs Between Congestion Events for Standard TCP, for 1500-Byte Packets and a Round-Trip Time of 0.1 Seconds. From draft-ietf-tsvwg-highspeed-01.txt

Modifying the response Packet Drop Rate P Congestion Window W RTTs Between Losses ------------------ ------------------- ------------------- 10^-2 12 8 10^-3 38 25 10^-4 120 80 10^-5 379 252 10^-6 1200 800 10^-7 3795 2530 10^-8 12000 8000 10^-9 37948 25298 10^-10 120000 80000 Table 2: TCP Response Function for Standard TCP. The average congestion window W in MSS-sized segments is given as a function of the packet drop rate P. From draft-ietf-tsvwg-highspeed-01.txt To specify a modified response function for HighSpeed TCP, we use three parameters, Low_Window, High_Window, and High_P. To Ensure TCP compatibility, the HighSpeed response function uses the same response function as Standard TCP when the current congestion window is at most Low_Window, and uses the HighSpeed response function when the current congestion window is greater than Low_Window. In this document we set Low_Window to 38 MSS-sized segments, corresponding to a packet drop rate of 10^-3 for TCP. Packet Drop Rate P Congestion Window W RTTs Between Losses ------------------ ------------------- ------------------- 10^-2 12 8 10^-3 38 25 10^-4 263 38 10^-5 1795 57 10^-6 12279 83 10^-7 83981 123 10^-8 574356 180 10^-9 3928088 264 10^-10 26864653 388 Table 3: TCP Response Function for HighSpeed TCP. The average congestion window W in MSS-sized segments is given as a function of the packet drop rate P.

See it in image

Relation with AIMD TCP-AIMD Additive increase: a=1 Multiplicative decrease: b=1/2 HSTCP-AIMD Link a & b to congestion window size a = a(cwnd), b=b(cwnd) no loss: cwnd = cwnd + 1 loss: cwnd = cwnd*0.5

Quick to grab bandwidth, slow to give some back! No loss: cwnd=cwnd+a Loss: cwnd=cwnd*b

Scalable TCP [Kelly] From 1st PFLDnet Workshop, Tom Kelly

STCP in images From 1st PFLDnet Workshop, Tom Kelly

Fairness of STCP Farness is achieved by having the same AIMD parameters for small congestion window values: same solution than HS-TCP Threshold: lcwnd=16 http://www-lce.eng.cam.ac.uk/~ctk21/scalable/

STCP: some results From 1st PFLDnet Workshop, Tom Kelly

FAST TCP [Low04] Based on TCP Vegas Uses end-to-end delay and loss to dynamically adjust the congestion window AIMD reduces throughput

FAST TCP: some results capacity = 1Gbps; 180 ms round trip latency; 1 flow 1G BW utilization 19% BW utilization 27% BW utilization 95% Linux TCP Linux TCP (Optimized) FAST From Sylvain Ravot

Comparisons FAST TCP New Reno Linux HSTCP STCP From Sylvain Ravot

XCP [Katabi02] XCP is a router-assisted solution, generalized the ECN concepts (FR, TCP-ECN) XCP routers can compute the available bandwidth by monitoring the input rate and the output rate Feedback is sent back to the source in special fields of the packet header H_feedback Q source Input rate: I r EC FC Output rate: O r XCP packet header H_cwnd (set to the sender s current cwnd) H_rtt (set to sender s RTT esti mate) H_feedback (i ni ti ali zed to sender s demands) feedback=α.rtt.(o r -I r )-βq α=0.4, β=0.226 Q: persistent queue size

XCP in action Feedback value represents a window increment/decrement H_cwnd=200 H_rtt=100ms H_feedback=0 source I r =250Mbps Q O r =100Mbps cwnd=200 cwnd=194 H_cwnd=200 H_rtt=100ms H_feedback=-6 feedback=α.rtt.(o r -I r )-βq α=0.4, β=0.226 Q: persistent queue size Case without βq contribution O r -I r =100-250=-150 feedback=-6

XCP-simulation results Sticks to the bandwidth curve whenever there are changes Immediate increase of cwnd

Nothing is perfect :-( Multiple or parallel streams How many streams? Tradeoff between window size and number of streams New protocol Fairness issues? Deployment issues? Still too early to know the side effects

Where to find the new protocols? HSTCP http://www.icir.org/floyd/hstcp.html STCP on Linux 2.4.19 http://www-lce.eng.cam.ac.uk/ ctk21/scalable/ FAST XCP http://netlab.caltech.edu/fast/ http://www.ana.lcs.mit.edu/dina/xcp/ BIC TCP on Linux 2.6.7 http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/

Web100 project www.web100.org «The Web100 project will provide the software and tools necessary for endhosts to automatically and transparently achieve high bandwidth data rates (100 Mbps) over the high performance research networks» Actually it s not limited to 100Mbps! Recommended solution for end-users to deploy and test high-speed transport solutions