TCP Variants.

Slides:



Advertisements
Similar presentations
TCP Variations: Tahoe, Reno, New Reno, Vegas, Sack
Advertisements

Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
1 TCP Vegas: New Techniques for Congestion Detection and Avoidance Lawrence S. Brakmo Sean W. O’Malley Larry L. Peterson Department of Computer Science.
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.
Cs/ee 143 Communication Networks Chapter 7 Transport Text: Walrand & Parakh, 2010 Steven Low CMS, EE, Caltech.
By Arjuna Sathiaseelan Tomasz Radzik Department of Computer Science King’s College London EPDN: Explicit Packet Drop Notification and its uses.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
1 End to End Bandwidth Estimation in TCP to improve Wireless Link Utilization S. Mascolo, A.Grieco, G.Pau, M.Gerla, C.Casetti Presented by Abhijit Pandey.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
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.
TCP Variations Naveen Manicka CISC 856 – Fall 2005 Computer & Information Sciences University of Delaware Nov 10, 2005 Most slides are borrowed from J.
Transport Layer 3-1 Outline r TCP m Congestion control m Flow control.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #7 TCP New Reno Vs. Reno.
1 Internet Networking Spring 2002 Tutorial 10 TCP NewReno.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
1 TCP Transport Control Protocol Reliable In-order delivery Flow control Responds to congestion “Nice” Protocol.
Transport: TCP Manpreet Singh (Slides borrowed from various sources on the web)
1 Internet Networking Spring 2004 Tutorial 10 TCP NewReno.
TCP in Heterogeneous Network Md. Ehtesamul Haque # P.
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
1 EE 122: Advanced TCP Ion Stoica TAs: Junda Liu, DK Moon, David Zats (Materials with thanks to Vern Paxson,
Transport Layer 4 2: Transport Layer 4.
COMT 4291 Communications Protocols and TCP/IP COMT 429.
Much better than the old TCP Flavours 1Rajon Bhuiyan.
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.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
EE 122: Congestion Control and Avoidance Kevin Lai October 23, 2002.
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
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Computer Networking Lecture 18 – More TCP & Congestion Control.
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
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
1 TCP - Part II. 2 What is Flow/Congestion/Error Control ? Flow Control: Algorithms to prevent that the sender overruns the receiver with information.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
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 Westwood: Efficient Transport for High-speed wired/wireless Networks 2008.
TCP Congestion Control 컴퓨터공학과 인공지능 연구실 서 영우. TCP congestion control2 Contents 1. Introduction 2. Slow-start 3. Congestion avoidance 4. Fast retransmit.
Fall 2004FSU CIS 5930 Internet Protocols1 TCP – Data Exchange Reading: Section 24.4.
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
Other Methods of Dealing with Congestion
Window Control Adjust transmission rate by changing Window Size
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
CUBIC Marcos Vieira.
COMP 431 Internet Services & Protocols
Introduction to Congestion Control
Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP)
TCP.
TCP Westwood(+) Protocol Implementation in ns-3
Hojun Lee TCP enhancements Hojun Lee 11/8/2018.
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
TCP.
Lecture 19 – TCP Performance
Other Methods of Dealing with Congestion
Other Methods of Dealing with Congestion
CS640: Introduction to Computer Networks
Lecture 18 – More TCP & Congestion Control
CS4470 Computer Networking Protocols
Project 3 Flow and congestion control
Transport Layer: Congestion Control
TCP flow and congestion control
Presentation transcript:

TCP Variants

TCP Algorithms: Four intertwined algorithms used commonly in TCP implementations Slow Start - Every ack increases the sender’s window (cwnd) size by 1 Congestion Avoidance - Reducing sender’s window size by half at experience of loss, and increase the sender’s window at the rate of about one packet per RTT (NOTE: not per ack) Fast Retransmit - Don’t wait for retransmit timer to go off, retransmit packet if 3 duplicate acks received Fast Recovery - Since duplicate ack came through, one packet has left the wire. Perform congestion avoidance, don’t jump down to slow start

TCP Variants : TCP-Tahoe: implements the slow start, congestion avoidance, and fast retransmit algorithms TCP-Reno: implements the slow start, congestion avoidance, fast retransmit, and fast recovery algorithms

TCP Tahoe’s Fast Retransmit Sender receives 3 dupACKS. Sender infers that the segment is lost. Sender re-sends the segment immediately! Sender returns to slow-start. segment 1 cwnd = 1 ACK 1 cwnd = 2 segment 2 segment 3 ACK 2 ACK 3 cwnd = 4 segment 4 segment 5 segment 6 ACK 3 segment 7 3 duplicate ACKs ACK 3 ACK 3 Recall: a duplicate ACK means that an out-of sequence segment was received Notes: duplicate ACKs due packet reordering! if window is small don’t get duplicate ACKs! segment 4 fast-retransmit of segment 4

Fast Recovery Concept: After fast retransmit, reduce cwnd by half, and continue sending segments at this reduced level. Problems: Sender has too many outstanding segments. How does sender transmit packets on a dupACK? Inflate cwnd. cwnd (initial) ssthresh fast-retransmit fast-retransmit timeout new ACK new ACK Time Slow Start Congestion Avoidance “inflating” cwnd with dupACKs “deflating” cwnd with a new ACK

Fast Retransmit & Fast Recovery (TCP Reno) After receiving 3 dupACKS: Retransmit the lost segment. Set ssthresh = flight size/2. Set cwnd = ssthresh, and ndupacks = 3. N.B. In Reno: send_win = min ( rwnd, cwnd + ndupacks ). If dupACK arrives: ++ ndupacks Transmit new segment, if allowed. If new ACK arrives: ndupacks = 0 Exit fast recovery. If RTO expires: Perform slow-start - ( ssthresh = flight size/2, cwnd = 1 )

TCP Vegas Developed by Brakmo, O'Malley & Peterson [SIGCOMM,1994] Sender-side protocol Inter-operates with other TCP variants Relies on accurate timing to estimate congestion In contrast to Reno – use only packet losses

Vegas Congestion Avoidance Adjust window size even before packet loss Use fine-grained timers for accurate RTTs Use timing information to compute Expected throughput (best case throughput with minimum RTT, or baseRTT) Actual throughput (using current RTT) Adjust window based on difference between actual and expected throughput

TCP Vegas Summary Anywhere between 40%-70% better throughput than Reno Only if router buffers are not heavily utilized Under heavy congestion, Vegas behaves like Reno Vegas is less aggressive than Reno in using up router buffers Vegas throughput suffers when competing with other Reno- based data flows Path rerouting changes the baseRTT, which can result in throughput loss Fairness issues of Vegas still unresolved

TCP SACK Basic problem in TCP is that cumulative ACKS provide little information Selective acknowledgement (SACK) essentially adds a bitmask of packets received Implemented as a TCP option Use is negotiated during handshake Encoded as a set of received byte ranges in TCP header (max of 4 ranges/often max of 3) Note that ACK sequence numbers are still cumulative! 10

Selective ACKnowledgements (SACK) TCP SACK options specify the blocks of data received in terms of blocks Block = contiguous range of data received Left edge specified first sequence number Right edge specifies last sequence number + 1 Header has 40 bytes for TCP option 2 bytes for TCP options Kind and Length 38 bytes remaining – specify 4 block ranges at most 11

TCP Westwood (TCPW) Sender side only modification to TCP Reno End to end bandwidth estimation to set congestion windows (cwnd) and slow start threshold (ssthresh) Additive Increase Adaptive Decrease paradigm Instead of blindly halving the congestion window after 3 DUP ACKs, adaptively set a slow start threshold and congestion window Takes into account that duplicate ACKs arriving means a packet passed through network successfully Increase throughput significantly for wireless networks and fairness for both wired and wireless networks. Source and further readings 1) http://www-ictserv.poliba.it/mascolo/tcp%20westwood/homeW.htm 2) http://www.cs.ucla.edu/NRL/hpi/tcpw/ 3) http://c3lab.poliba.it/index.php/Westwood

TCP Reno vs. TCP Westwood

TCP Reno vs. TCP Westwood

TCP Cubic cwnd growth function : cubic function in terms of the elapsed time since the last loss event Window growth rate independent of RTT: keeps the protocol TCP friendly guarantees RTT fairness Behaves like TCP under high loss rate regions Tackles the under utililization problem in low loss rate region Ideal for high bandwidth-delay product networks

Cwnd growth pattern Steady state: Probing state: window grows very fast upon a window reduction As it gets closer to Wmax, it slows down its growth Wmax is the window size just before the last window reduction Probing state: slow growth around Wmax enhances the stability fast growth away from Wmax ensures the scalability

CUBIC cwnd curves comparison with TCP

Questions?