The University of Alberta, June 17th, 2004

Slides:



Advertisements
Similar presentations
TCP Variants.
Advertisements

TCP/IP Over Lossy Links - TCP SACK without Congestion Control.
1 TCP Vegas: New Techniques for Congestion Detection and Avoidance Lawrence S. Brakmo Sean W. O’Malley Larry L. Peterson Department of Computer Science.
Different TCP Flavors CSCI 780, Fall TCP Congestion Control Slow-start Congestion Avoidance Congestion Recovery Tahoe, Reno, New-Reno SACK.
1 TCP Congestion Control. 2 TCP Segment Structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
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
18 Nov 2009 TCP VEGAS Mohammad AlKurbi CMPT – 771: Internet Architecture and Protocols.
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 12.
Transport Layer 3-1 outline r TCP m segment structure m reliable data transfer m flow control m congestion control.
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.
Transport Layer 3-1 Outline r TCP m Congestion control m Flow control.
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.
High-performance bulk data transfers with TCP Matei Ripeanu University of Chicago.
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.
Data Communication and Networks
1 Internet Networking Spring 2004 Tutorial 10 TCP NewReno.
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.
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
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.
A Simulation of Adaptive Packet Size in TCP Congestion Control Zohreh Jabbari.
Qian Zhang Department of Computer Science HKUST Advanced Topics in Next- Generation Wireless Networks Transport Protocols in Ad hoc Networks.
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 (
Wireless TCP. References r Hari Balakrishnan, Venkat Padmanabhan, Srinivasan Seshan and Randy H. Katz, " A Comparison of Mechanisms for Improving TCP.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
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.
Janey C. Hoe Laboratory for Computer Science at MIT 노상훈, Pllab.
Advance Computer Networks Lecture#09 & 10 Instructor: Engr. Muhammad Mateen Yaqoob.
TCP OVER ADHOC NETWORK. TCP Basics TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks.
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.
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
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.
@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.
Mobile Transport Layer  Motivation  TCP-mechanisms  Indirect TCP  Snooping TCP  Mobile TCP  Fast retransmit/recovery  Transmission freezing  Selective.
TCP Lecture 4.
CS450 – Introduction to Networking Lecture 19 – Congestion Control (2)
Approaches towards congestion control
Chapter 3 outline 3.1 transport-layer services
COMP 431 Internet Services & Protocols
Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP)
TCP.
Chapter 3 outline 3.1 Transport-layer services
TCP.
Lecture 16 – Transport Protocols
CS4470 Computer Networking Protocols
TCP Overview.
Computer Science Division
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
TCP flow and congestion control
Chapter 3 Transport Layer
Presentation transcript:

The University of Alberta, June 17th, 2004 Wireless Random Packet Networking, Part II: TCP/IP Over Lossy Links - TCP SACK without Congestion Control Roland Kempter The University of Alberta, June 17th, 2004 Department of Electrical And Computer Engineering University of Utah Salt Lake City, UT, USA Email: rolke@gmx.net

Organization 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

1. The History of TCP (incomplete) Old Tahoe slow start and congestion avoidance. After packet loss, timeout followed by slowstart Tahoe added fast recovery. Duplicate ACKs initiate fast retransmit, then slowstart [Jaco88] Reno fast retransmit extended by fast recovery [Jaco90] New Reno small optimization of TCP Reno, immediately retransmit the packet following a partial ACK without leaving fast recovery [Hoe96] TCP SACK specify the range of packets that were received out of order. More than one packet per RTT during fast recovery is send [MatmahFlRo96] Old Tahoe New Reno ‘94 TCP FACK ‘96 Vegas ‘90 SACK ‘95 ‘88

2. Congestion Control: slow start Slow Start: with every received ACK, double the number of packets that are sent. Slow start adds a window to the sender's TCP: the congestion window, called cwnd as well as a variable called ssthres exponential growth of the Congestion Window up to ssthres, then linear growth Figure taken from [Jaco88] 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.

Fast retransmission/fast recovery 2. Congestion Control: congestion avoidance in TCP Reno window Fast retransmission/fast recovery time SS CA SS: Slow Start CA: Congestion Avoidance [unfortunately, I it slipped my mind where I found this animation: I hope you don‘t mind!]

win=min(snd_cwnd,snd_wnd,snd_bwnd) 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

2. Congestion Control: congestion avoidance Congestion Control assumes that packets are only lost due to overfull queues Again: When do we need the snd_cwnd ? only if we assume that the queues in the network are the bottlenecks. In real world, is there more to infer from a lost packet than it has to be retransmitted? SACK optimizes the „Retransmission Business“ Also:

3. Design Idea Perform well in lossy (wireless) environments TCP offers: Flow Control Bandwidth Control Congestion Control In-order-delivery Error Control (retransmissions) ...and a lot more TCP does not: offer timely delivery avoid unnecessary overhead under certain conditions (e.g short connections) Perform well in lossy (wireless) environments Why? Because of the way TCP handles congestion control

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

4. Measurements: the emulation environment 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. Emulation has been set up in the emulab environment [emu]. [emu] www.emulab.net

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 Traces have been analyzed off-line with ethereal [eth]. [eth] www.etheral.com, packet sniffer and analyzer

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

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

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

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

5. Future TCP Congestion Control? ECN bit Another way to do congestion control: the ECN bit 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 [RamFloyd99] Ramakrishnan, K.K., and Floyd, S., A Proposal to add Explicit Congestion Notification (ECN) to IP. RFC 2481, January 1999

6. Conclusion Due to ambiguity in packet loss, current TCP congestion control leads to low throughput over lossy links TCP without any congestion control and without SACK is very inefficient At p=0.1%, SACKEXP achieves 91% of the goodput of a lossless link, whereas TCP SACK only achieves 65% (at identical efficiencies of 91%) As the loss rate increases to 20%, SACKEXP achieves goodputs in the order of 700% at similar efficiencies compared to TCP SACK In the future, we plan to investigate the 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.

Questions are welcome! THE END [Jaco88] Van Jacobson, “Congestion Avoidance and Control”, ACM SIGCOMM '88 [Jaco90] Van Jacobson, “Modified TCP Congestion Avoidance Algorithm”, email to end2end-interest@ISI.EDU, 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.