Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
Transport Layer – TCP (Part2) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Transport Layer3-1 TCP. Transport Layer3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
Reliable Transport Protocols Should Forbid Reneging Nasif Ekiz Paul D. Amer, Professor Preethi Natarajan Ertugrul Yilmaz Jon Leighton Abu Rahman sponsored.
Flow and Error Control. Flow Control Flow control coordinates the amount of data that can be sent before receiving acknowledgement It is one of the most.
1 TCP CSE May TCP Services Flow control Connection establishment and termination Congestion control 2.
Explicit Congestion Notification (ECN) RFC 3168 Justin Yackoski DEGAS Networking Group CISC856 – TCP/IP Thanks to Namratha Hundigopal.
Explicit Congestion Notification (ECN) Qi (Gill) Wang CISC 856 – TCP/IP, Fall 2012 Special thanks to: Dr. Paul Amer Guna Ranjan, Justin.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #7 TCP New Reno Vs. Reno.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
Process-to-Process Delivery:
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
1 Transport Layer Computer Networks. 2 Where are we?
COMT 4291 Communications Protocols and TCP/IP COMT 429.
Transport Layer3-1 TCP sender (simplified) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) { switch(event) event: data received from.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Chapter 11 Data Link Control Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction.
Computer & Information Sciences University of Delaware
2: Transport Layer 21 Transport Layer 2. 2: Transport Layer 22 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
26-TCP Dr. John P. Abraham Professor UTPA. TCP  Transmission control protocol, another transport layer protocol.  Reliable delivery  Tcp must compensate.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, , WWW) Reliable Stream Transport (TCP) Connectionless Packet Delivery.
SELECTIVE ACKNOWLEDGEMENT (SACK) DUPLICATE SELECTIVE ACKNOWLEDGMENT
Chapter 12 Transmission Control Protocol (TCP)
Chapter 5 Peer-to-Peer Protocols and Data Link Layer PART I: Peer-to-Peer Protocols ARQ Protocols and Reliable Data Transfer Flow Control.
Copyright © Lopamudra Roychoudhuri
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.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
Chapter 3: Channel Coding (part 3). Automatic repeat request (ARQ) protocols ▫Used in combination with error detection/correction ▫Block of data with.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Computer Networks23-1 PART 5 Transport Layer. Computer Networks23-2 Position of Transport Layer Responsible for the delivery of a message from one process.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
Internet Networking recitation #11
Fall 2004FSU CIS 5930 Internet Protocols1 TCP – Data Exchange Reading: Section 24.4.
TCP Transmission Control Protocol Part 2 CH 23 Aseel Alturki.
Data Link Layer Flow and Error Control. Flow Control Flow Control Flow Control Specifies the amount of data can be transmitted by sender before receiving.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Principles of reliable data transfer 0.
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
Transport Layer3-1 Transport Layer If you are going through Hell Keep going.
Chi-Cheng Lin, Winona State University CS412 Introduction to Computer Networking & Telecommunication Data Link Layer Part II – Sliding Window Protocols.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS ( NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS (PRACTICAL PART) Tutorial 4 : Chapter 7 Data & computer.
Data Link Layer.
TCP Selective Acknowledgement Options
2.10 Flow and Error Control Before that ...
Fast Retransmit For sliding windows flow control we waited for a timer to expire before beginning retransmission of a packet TCP uses an additional mechanism.
Reliable Transmission
Data Link Layer Flow Control.
Introduction to Congestion Control
NR-SACKs for SCTP (Non-Renegable SACKs)
ECE 4605 Edgar Duskin Ifiok Udowana
CMPT 371 Data Communications and Networking
PART 5 Transport Layer Computer Networks.
Instructor Mazhar Hussain
NR-SACKs (Non-Renegable Selective Acknowledgments )‏
Flow Control.
Hojun Lee TCP enhancements Hojun Lee 11/8/2018.
Data Link Layer: Data Link Control
Flow and Error Control.
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
Fast Retransmit Sender Receiver
The Transport Layer Reliability
Course: CISC 856: TCP/IP and Upper Layer Protocols
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
Lecture 4 Peer-to-Peer Protocols and Data Link Layer
Presentation transcript:

Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz

Outline What is a Selective ACK (SACK)? Why is SACK needed? What is reneging? How is reneging detected? What are the disadvantages of reneging? What is a Non Renegable SACK (NR-SACK)? How is NR-SACK more efficient than renegable SACK?

TCP Features Byte number TCP numbers all data bytes that are stored in the sending buffer before transmission TCP chooses an arbitrary number between 0 to Sequence number TCP assigns a sequence number to each byte in TCP-PDU The sequence number in a TCP-PDU is the number of the first byte of data carried in that TCP-PDU. Acknowledgement number TCP uses acknowledgement number which defines the number of the next byte expected to receive. The acknowldegement number is cumulative

TCP without SACK TCP uses cumulative ACKs Receiver cum-ACKs the data received by sending the number of the next byte expected Data sender is not aware of out of order TCP-PDUs Receiver can send duplicate ACKs as a result of data loss/delay TCP without SACK TCP does not report the bytes that have arrived out of order. If some TCP-PDUs are lost/dropped, the sender waits until a time- out and then send all TCP-PDUs that are not cum-ACKed. The TCP sender unnecessarily retransmits data that has already been received without any data loss at the receiver end Can result in reduced overall throughput

Example - TCP without SACK after fast retransmit Timer TCP Sender TCP Receiver sendersender receiverreceiver ACK loss ACK ACK 300 start stop restart resent ACK 700 stop ACK fast retransmit

Example - TCP with SACK after fast retransmit Timer TCP Sender TCP Receiver sendersender receiverreceiver ACK loss ACK 300 SACK ACK 300 SACK start stop restart resent ACK 700 stop ACK 300 SACK fast retransmit

TCP without SACK after timeout Timer TCP Sender TCP Receiver sendersender receiverreceiver ACK loss ACK ACK 300 start stop timeout resent ACK 600 stop timer expires

TCP with SACK after timeout Timer TCP Sender TCP Receiver sendersender receiverreceiver ACK loss ACK 300 SACK ACK 300 SACK start stop timeout resent ACK 600 stop timer expires

TCP with SACK TCP uses Selective ACK(SACK) to indicate that the data has been received out of order. SACK allows the TCP sender to know which TCP-PDUs are actually lost and which have arrived out of order. The sender can then retransmit only those TCP-PDUs which are actually lost. TCP defines SACK using the OPTION bits with two new options: SACK-permitted optionSACK option Kind: 4Length: 2 Kind: 5Length Left edge of 1 st block Right edge of 1 st block.... Left edge of Nth block Right edge of Nth block

SACK-permitted and SACK option TCP Connection establishment with SACK-permitted option TCP sender TCP receiver sendersender receiverreceiver SYN SACK-permitted SYN+ACK ACK For any TCP connection, the data receiver can generate SACK options only if the data receiver receives a SACK- permitted option on the SYN for the connection.

Generating SACK options Using SACKs does not affect the cumulative ACK of data received. The cum-ACK is maintained. If SACK options are permitted, then the receiver should include SACK option in all ACKs which do not ACK the highest sequence number of the TCP-PDU that has arrived out of order. The receiver SHOULD include as many distinct SACK blocks as possible in SACK option with the highest sequence number SACK block comes first.

Interpreting SACK option and Retransmission Strategy The sender purges only those data in the send buffer which are cumulatively ACKed. The sender uses SACK only for retransmission strategy as the sender implements SACK option to retransmit only those TCP- PDUs which are actually lost. The sender uses a flag bit “SACKed” for each TCP-PDU in the retransmission queue to indicate that the particular TCP-PDU has been reported in a SACK option.

Workout examples - SACK Assume the receiver’s left window edge is 5000 and that the data transmitter sends a burst of 4 TCP-PDUs, each containing 500 data bytes with the sequence number starting from Case 1: The first 2 TCP-PDUs are received but the last 2 are lost. Case2: The first TCP-PDU is lost and the remaining 3 TCP-PDUs are received Case 3: 2 nd and 4 th TCP-PDUs are lost

SACK Extension (D-SACK) TCP sender TCP receiver TCP sender TCP receiver sendersender receiverreceiver ACK 200 ACK 300 SACK ACK 300 sendersender receiverreceiver ACK ACK 300 SACK ACK 300 SACK

Reneging Reneging – discarding data that has previously been SACKed [RFC 2018]: “The SACK option is advisory, in that, while it notifies the data sender that the data receiver has received the indicated segments, the data receiver is permitted to later discard data which have been reported in a SACK option.” This means the receiver can discard the SACKed out of order TCP-PDUs received before they are being delivered to the application. TCP allow reneging and because of this reason the sender is forced to keep the copies of all SACKed PDUs in the send buffer unless they are cum-ACKed.

Reneging Example - TCP TCP Sender TCP Receiver sendersender receiverreceiver ACK loss ACK 300 SACK ACK 300 SACK OS needs memory and reneges Window decreases ACK 300 SACK

Reneging Example – TCP cont’d TCP Sender TCP Receiver sendersender receiverreceiver ACK 400 SACK Resent OS releases memory Window increases back ACK Reneging detected

TCP Send Buffer TCP Send Buffer consists of two kinds of data:  new application data waiting to be transmitted for the first time  data that has been transmitted atleast once and need to be cum-acked, a.k.a. the retransmission queue(RtxQ) new data + retransmission queue Send Buffer

Send buffer utilization Send buffer consists of two types of data: Necessary (renegable) - N Unnecessary (non-renegable) - U Send buffer utilization = N / (N+U)

Send buffer utilization - SACK Send buffer TCP Sender TCP Receiver Receive buffer sendersender receiverreceiver ACK ACK 2 SACK ACK 2 SACK ACK 2 SACK ACK % 75% 50% 25% 100% Send buffer blocking

NR-SACK By defintion, data that has been delivered to the application is non- renegable The current SACK mechanism does not differentiate between out of order data that “has been delivered to the application(non- renegable)” vs. data that “has not yet been delivered to the application(renegable)” We know TCP does not deliver out of order data to the application. However, TCP can be configured in such a way that the receiving system (OS and/or transport layer implementation) guarantees not to renege the allocated memory until after the data is delivered to the application. This mechanism(NR-SACK) enable a transport data receiver to explicitly convey non-renegable information to the sender on some or all out of order TCP-PDUs.

OS configured not to renege - Example Operating systems allow configuration of transport layer implementations such that out-of-order data is never reneged. For example, in FreeBSD, the net.inet.tcp.do_tcpdrain or net.inet.sctp.do_sctp_drain sysctl parameters can be configured to never renege kernel memory allocated to TCP or SCTP out-of-order data [9]. Thus, out-of-order data can also be rendered non- renegable through simple user configuration.

Send buffer utilization (NR-SACK) Send buffer TCP Sender TCP Receiver Receive buffer sendersender receiverreceiver ACK ACK 2 NR-SACK ACK 2 NR-SACK ACK 2 NR-SACK ACK % 8 No Send buffer blocking 3456ACK 2 NR-SACK ACK 2 NR-SACK ACK % 10

Send buffer utilization RtxQ_Util value Traffic load (%) NR-SACK SACK

How often reneging happens? Hypothesis: “data reneging rarely if ever occurs in practice” Suppose reneging occurs 1 in 100,000 TCP flows  Case A (current practice): reneging allowed 99,999 non-reneging connections underutilize send buffer and may achieve lower throughput 1 reneging connection continues (maybe...)  Case B (proposed change): reneging forbidden 99,999 connections have equal or better send buffer utilization and for SCTP potential greater throughput 1 reneging connection is RESET

NR-SACK Advantages All SACKs are non-renegable (NR-SACKs) Data receiver takes responsibility for all selectively acked data Data sender can remove NR-SACKed data from send buffer always improved send buffer utilization

Summary SACK SACK Extension (D-SACK) SACKs vs. NR-SACKs SACKs waste RtxQ (kernel memory) when out-of- order data is non-renegable NR-SACKs utilize RtxQ more efficiently NR-SACKs reduce send buffer blocking

References Nasif Ekiz, PEL, University of Delaware RFC 2018 – TCP SACK Options NRSACK, CIS, Udel

Thank You!!!