TCP/IP Over Lossy Links - TCP SACK without Congestion Control.

Slides:



Advertisements
Similar presentations
TCP Variants.
Advertisements

Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
TCP Vegas: New Techniques for Congestion Detection and Control.
Different TCP Flavors CSCI 780, Fall TCP Congestion Control Slow-start Congestion Avoidance Congestion Recovery Tahoe, Reno, New-Reno SACK.
24-1 Chapter 24. Congestion Control and Quality of Service (part 1) 23.1 Data Traffic 23.2 Congestion 23.3 Congestion Control 23.4 Two Examples.
TCP Congestion Control
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth Edition,Peterson.
Introduction 1 Lecture 14 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
1 Computer Networks Transport Layer (Part 4). 2 Transport layer So far… –Transport layer functions –Specific transport layers UDP TCP –In the middle of.
Introduction to Congestion Control
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 12.
Transport Layer 3-1 Fast Retransmit r time-out period often relatively long: m long delay before resending lost packet r detect lost segments via duplicate.
Congestion Control Tanenbaum 5.3, /12/2015Congestion Control (A Loss Based Technique: TCP)2 What? Why? Congestion occurs when –there is no reservation.
Transport Layer3-1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Third Ed.,Peterson.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #7 TCP New Reno Vs. Reno.
Week 9 TCP9-1 Week 9 TCP 3 outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management.
Computer Networks : TCP Congestion Control1 TCP Congestion Control.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
Transport: TCP Manpreet Singh (Slides borrowed from various sources on the web)
Data Communication and Networks
Networks : TCP Congestion Control1 TCP Congestion Control.
Advanced Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth.
TCP Congestion Control
Introduction 1 Lecture 14 Transport Layer (Congestion Control) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
3: Transport Layer3b-1 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for network to handle”
Transport Layer 4 2: Transport Layer 4.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
CS/EE 145A Congestion Control Netlab.caltech.edu/course.
Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control!
1 Transport Protocols (continued) Relates to Lab 5. UDP and TCP.
CSE 461 University of Washington1 Topic How TCP implements AIMD, part 1 – “Slow start” is a component of the AI portion of AIMD Slow-start.
TCP Tutorial - Part III - It is licensed under a Creative Commons Attribution 2.5 License Laboratory of Intelligent KUT (
The University of Alberta, June 17th, 2004
1 TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in.
Lecture 9 – More TCP & Congestion Control
What is TCP? Connection-oriented reliable transfer Stream paradigm
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
TCP: Transmission Control Protocol Part II : Protocol Mechanisms Computer Network System Sirak Kaewjamnong Semester 1st, 2004.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
TCP Congestion Control Computer Networks TCP Congestion Control 1.
CS-1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Jack Lange.
Janey C. Hoe Laboratory for Computer Science at MIT 노상훈, Pllab.
TCP Congestion Control
TCP OVER ADHOC NETWORK. TCP Basics TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks.
Internet Networking recitation #11
TCP. TCP ACK generation [RFC 1122, RFC 2581] Event at Receiver Arrival of in-order segment with expected seq #. All data up to expected seq # already.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
Transport Layer session 1 TELE3118: Network Technologies Week 11: Transport Layer TCP Some slides have been taken from: r Computer Networking:
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
Approaches towards congestion control
Chapter 3 outline 3.1 transport-layer services
COMP 431 Internet Services & Protocols
Transmission Control Protocol (TCP)
Chapter 3 outline 3.1 Transport-layer services
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced.
If both sources send full windows, we may get congestion collapse
TCP Overview.
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
TCP flow and congestion control
Chapter 3 Transport Layer
Presentation transcript:

TCP/IP Over Lossy Links - TCP SACK without Congestion Control

1.The History of TCP 2.Current TCP Congestion Control 3.Design Ideas: no congestion control at all 4.Measurement Results 5.Future TCP Congestion Control? 6.Conclusion Organization

„Old Tahoe“: slow start and congestion avoidance after a lost packet, wait for a timeout, then perform slowstart to recover „Tahoe“ (`88): also contains fast recovery. After the reception of a triple duplicate ACKs, performs fast retransmit followed by a slowstart [Jaco88]. „Reno“ (`90): fast retransmit extended by fast recovery. 1. The History of TCP (incomplete) [Jaco88] Van Jacobson, “Congestion Avoidance and Control”, ACM SIGCOMM '88 [Jaco90] Van Jacobson, “Modified TCP Congestion Avoidance Algorithm”, to end2end- April 1990 in case multiple packets are lost from a window of data, very likely, TCP „Reno“ has to wait for a timeout followed by slow start to recover [Jaco90]. But

Vegas (`94, never actually implemented): modified congestion behavior. By measuring the output queue size, equilibrium is detemined (Little‘s Law of queuing theory) [BraMalPet94]. „New Reno“ (~`94): small optimization of TCP Reno, uses partial ACKs as an indication that the following packet got lost and immediately retransmits it without leaving fast recovery. [Hoe96]. TCP SACK(~`95): added the SACK option within ACKs. Allows receiver to specify the range of packets that were received out of order. [MatmahFlRo96]. [BraMalPet94] Lawrence S. Brakmo, Sean W. O'Malley, Larry L. Peterson, „TCP Vegas: New Techniques for Congestion Detection and Avoidance“, Sigcomm 1994 [MatMahFlRo96] M. Mathis, J. Mahdavi, S. Floyd, A. Romanow, „TCP Selective Acknowledgement Options“, RFC 2018, April 1996 [Hoe96] Janey C. Hoe, “Improving the start-up behavior of a Congestion Control Scheme for TCP, Sigcomm The History of TCP (incomplete) In contrast to all previous flavors, more than one packet per RTT during fast recovery can be send

FACK (`96): In fast recovery, congestion window is fixed. TCP FACK uses „pipe“ variable to estimate the data in the network by taking the transmitted out-of-order segments into account, thus preventing premature timeouts [MatMah96]. [MatMah96] M. Mathis and J. Mahdavi, "Forward acknowledgement: Refining TCP congestion control“, ACM Computer Communication Review, Oct The History of TCP (incomplete)

Slow Start: with every received ACK, double the number of packets sent. Slow start adds a window to the sender's TCP: the congestion window, called cwnd as well as a variable called ssthres 2. Congestion Control: slow start The congestion window is flow control imposed by the sender. It is based on the sender's educated guess of perceived network congestion. Congestion Control assumes that packets are only lost due to overfull queues. Figure taken from [Jaco88] exponential growth of the Congestion Window up to ssthres, then linear growth

2. Congestion Control: congestion avoidance in TCP Reno SS time window CA SS: Slow Start CA: Congestion Avoidance Fast retransmission/fast recovery

2. TCP Congestion Control TCP send rate is determined by three windows: win=min(snd_cwnd,snd_wnd,snd_bwnd) Congestion window assumed bottlenecks: queue sizes in the network Advertised window assumed bottleneck: receiver’s buffer Bandwidth window, “ACK clock” assumed bottleneck: link capacity

3. Design Idea: no congestion control at all In contrast to UDP, the protocol will still guarantee for in-order delivery and will adopt to the link capacity. UDP? Without SACK, this flavor of TCP will perform poorly (waste of bandwidth on duplicate ACKs that can lead to timeouts) The sending rate is given by: win=min(snd_cwnd,snd_wnd,snd_bwnd) Now: win=min(snd_bwnd,snd_wnd) SACK gives us control over the now “static” window

4. Measurements: the emulation environment [emu] Node 1 Node 0, „base“ Node 3, „base“ Node 2 On all links, delay=10ms. Loss rates varied from p=0, p=0.001, p=0.01, p=0.1 to p=0.2 Packt loss events are uniformly distributed. Experiment has been set up in the emulab environment [emu].

4. Measurements: collection of Data 1. Initialize tcpdump on the to-be-observed node: sudo tcpdump -c num -w file -i if & 2. Start ttcp on the receiving node ttcp -r -s src 3. Start ttcp on the sending node ttcp -t -s -n num dst num-number of packets to be captured file-name of the dump file if-interface to be listened to src-IP address of the sending node dst-IP address of the receiving node [eth] packet sniffer and analyzer Traces have been analyzed off-line with ethereal [eth].

4. Measurements: SACKBASE, lossless link tcpdump started on the sender, zoomed into connection „set up“ phase advertised receiver Window+Seq # of last ACK seq # ACKs received size of the send window in case of a link bottleneck: bandwidth-delay product

4. Measurements: SACKEXP, lossless link tcpdump started on the sender, zoomed into connection „set up“ phase

4. Definitions: Throughput and Goodput Goodput: The number of packets per unit of time forwarded from sender to receiver, minus any packets lost or retransmitted, minus ACKs. Throughput: The number of packets per unit of time transmitted between sender and receiver.

4. Measurements: summary of results, competing flows [KemXinKas04] R. Kempter, B. Xin, S. Kumar Kasera, “Towards a Composable Transport Protocol: TCP without Congestion Control”, SIGCOMM 2004 poster presentation

4. Measurements: summary of results, competing flows [KemXinKas04] R. Kempter, B. Xin, S. Kumar Kasera, “Towards a Composable Transport Protocol: TCP without Congestion Control”, SIGCOMM 2004 poster presentation

5. Future TCP Congestion Control? ECN bit Another way to do congestion control: the ECN bit [RamFloyd99] Ramakrishnan, K.K., and Floyd, S., A Proposal to add Explicit Congestion Notification (ECN) to IP. RFC 2481, January 1999 Instead of dropping packets, a router sends a TCP an explicit message stating that the network is becoming congested. The network determines an explicit rate for a sender [RamFloyd99]. Hop-by-Hop vs. End-to-end congestion control

6. Conclusion Ambiguity in packet loss  current TCP congestion control  low throughput over lossy links TCP w/o congestion control and without SACK is inefficient p=0.1%, SACKEXP = 91% of goodput of lossless link, TCP SACK = 65% (at identical efficiencies of 91%) As losses increase to 20%, SACKEXP = goodputs ~ 700% at similar efficiencies compared to TCP SACK Plan: investigate performance of SACKEXP with Congestion Control based on the ECN bit/ICMP Source Quench Performance of SACKEXP has to be compared to a TCP that can resort to a Link Layer retransmission scheme. What about TCP fairness????

Questions are welcome! THE END [Jaco88] Van Jacobson, “Congestion Avoidance and Control”, ACM SIGCOMM '88 [Jaco90] Van Jacobson, “Modified TCP Congestion Avoidance Algorithm”, to end2end- April 1990 [BraMalPet94] Lawrence S. Brakmo, Sean W. O'Malley, Larry L. Peterson, „TCP Vegas: New Techniques for Congestion Detection and Avoidance“, Sigcomm 1994 [MatMahFlRo96] M. Mathis, J. Mahdavi, S. Floyd, A. Romanow, „TCP Selective Acknowledgement Options“, RFC 2018, April 1996 [Hoe96] Janey C. Hoe, “Improving the start-up behavior of a Congestion Control Scheme for TCP, Sigcomm 1996 [MatMah96] M. Mathis and J. Mahdavi, "Forward acknowledgement: Refining TCP congestion control“, ACM Computer Communication Review, Oct 1996.