Computer & Information Sciences University of Delaware

Slides:



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

Different TCP Flavors CSCI 780, Fall TCP Congestion Control Slow-start Congestion Avoidance Congestion Recovery Tahoe, Reno, New-Reno SACK.
Prentice HallHigh Performance TCP/IP Networking, Hassan-Jain Chapter 2 TCP/IP Fundamentals.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transmission Control Protocol (TCP)
TCP & UDP - Protocol Details Yen-Cheng Chen
Configuring a Router with RIP Basic Configuration and Show Commands.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
Transmission Control Protocol (TCP) Basics
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Chapter 7 – Transport Layer Protocols
Copyright 1999, S.D. Personick. All Rights Reserved. Telecommunications Networking II Lecture 32 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.
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.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
Module A Panko and Panko Business Data Networks and Security, 9 th Edition © 2013 Pearson.
Data Transfer Case Study: TCP  Go-back N ARQ  32-bit sequence # indicates byte number in stream  transfers a byte stream, not fixed size user blocks.
COMT 4291 Communications Protocols and TCP/IP COMT 429.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
3: Transport Layer3b-1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection m MSS: maximum.
TCP Transport Control Protocol Information management 2 Groep T Leuven – Information department 2/35 Introduction UDP provides the connection.
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.
Copyright 2002, S.D. Personick. All Rights Reserved.1 Telecommunications Networking II Topic 20 Transmission Control Protocol (TCP) Ref: Tanenbaum pp:
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Transmission Control Protocol
More on TCP Acknowledgements Sequence Number Field Initial Sequence Number Acknowledgement Number Field.
SELECTIVE ACKNOWLEDGEMENT (SACK) DUPLICATE SELECTIVE ACKNOWLEDGMENT
Chapter 12 Transmission Control Protocol (TCP)
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
Copyright © Lopamudra Roychoudhuri
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Internet Networking recitation #11
Explicit Congestion Notification (ECN) RFC 3168
Data Transfer Case Study: TCP  Go-back N ARQ  32-bit sequence # indicates byte number in stream  transfers a byte stream, not fixed size user blocks.
Transport Layer: Sliding Window Reliability
Fall 2004FSU CIS 5930 Internet Protocols1 TCP – Data Exchange Reading: Section 24.4.
NUS.SOC.CS2105 Ooi Wei Tsang Application Transport Network Link Physical you are still here.
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
CIS679: TCP and Multimedia r Review of last lecture r TCP and Multimedia.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
Computer Networking Lecture 16 – Reliable Transport.
Ch 3. Transport Layer Myungchul Kim
1 Transmission Control Protocol (TCP) RFC: Introduction The TCP is intended to provide a reliable process-to-process communication service in a.
Advanced Computer Networks
TCP Selective Acknowledgement Options
Chapter 3 Transport Layer
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.
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 full duplex data:
ECE 4605 Edgar Duskin Ifiok Udowana
Introduction of Transport Protocols
NR-SACKs (Non-Renegable Selective Acknowledgments )‏
TCP - Part I Karim El Defrawy
Hojun Lee TCP enhancements Hojun Lee 11/8/2018.
CS4470 Computer Networking Protocols
Dr. John P. Abraham Professor UTPA
Fast Retransmit Sender Receiver
CS4470 Computer Networking Protocols
Dr. John P. Abraham Professor UTPA
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Presentation transcript:

Computer & Information Sciences University of Delaware TCP EXTENSION SELECTIVE ACKNOWLEDGEMENT (SACK) RFC 2018 DUPLICATE SACK (D-SACK) RFC 2883 Pallavi Mahajan CIS 856 Computer & Information Sciences University of Delaware TCP SACK/DSACK

TCP without SACK Cumulative acks are used. Out of Order PDU’s are not ACKed. Receiver sends duplicate acknowledgement. Sender learns about a single lost packet per RTT. TCP SACK/DSACK

SACK Advantages Receiver informs the sender about all the PDUs that have been received successfully. Sender retransmits only the PDUs that have not been Acked. Implemented using two TCP options. TCP SACK/DSACK

SACK –Permitted Option First option: enabling option(2 bytes) sent in a SYN Indicates SACK option can be used once connection established Receiver may return SACK’s Sender can process SACK’s TCP Header Source Port Address Destination Port Address Sequence Number Header Length Cumulative Acknowledgement Number Window Size 6 1 Checksum Urgent Pointer SYN Kind = 4 Length = 2 Kind = 1 Kind = 1 SACK-Permitted NOP NOP TCP SACK/DSACK

SACK – Permitted and SACK SENDER RECEIVER KIND = 4 SYN = 1 KIND = 4 ACK = 1 SYN = 1 TCP Connection Establishment Phase ACK = 1 Data Transfer Phase ACK containing Cumulative Ack (CumAck) and Selective Ack (SACK) TCP SACK/DSACK

SACK Option Source Port Address Destination Port Address Sequence Number Length of SACK with n blocks ? Cumulative Acknowledgement Number HLEN Window Size Checksum Urgent Pointer Kind = 1 Kind = 1 Kind = 5 Length ? Left Edge of First Block Possible maximum number of Sack's block ? Right Edge of First Block Left Edge of last Block Right Edge of last Block TCP SACK/DSACK

SACK example Receiver informs sender of contiguous and isolated blocks of data that have been successfully received and queued. Sender Receiver Receiver’s Buffer SEQ 100, 200 bytes 100-300 ACK 300 SEQ 300, 200 bytes SEQ 500, 200 bytes 100-300 500-700 SEQ 700, 200 bytes ACK 300,SACK 500-700 ACK 300, SACK 500-900 100-300 500--900 TCP SACK/DSACK

SACK Rules SACK does not change the meaning of ACK field. SACK cannot be sent unless SACK permitted option has been received. If SACKs are sent, they should be included in all TCP-PDUs when out-of-order data has been buffered. First SACK must ack most recently received out-of-order PDU. TCP SACK/DSACK

SACK Rules Receiver Receiver returns as many distinct SACKs as possible. SACK option is filled out by repeating most recently reported SACK blocks. There may be some data in receiver’s queue which should be SACKed but is not. TCP SACK/DSACK

RULES FOR SACK Sender Records the SACK for future reference. Maintains a retransmission queue containing unacknowledged PDUs. Turns SACK bit on when sender receives a SACK. Skips SACK PDUs during retransmission. Retransmits the PDUs not SACKed so far and less than the highest SACKed PDU. Turns off SACK bit after retransmission time out. TCP SACK/DSACK

SACK Example Receiver’s Buffer Sender Receiver SEQ 100, 200 bytes 100-300 ACK 300 SEQ 300, 200 bytes SEQ 500, 200 bytes 100-300 500-700 ACK 300,SACK 500-700 SEQ 700, 200 bytes SEQ 900, 200 bytes 100-300 500-700 900-1100 ACK 300, SACK 900-1100, 500-700 SEQ 1100, 200 bytes TCP SACK/DSACK

Example ….cont Sender Receiver SEQ 1100, 100 bytes 100-300 500-700 900-1100 SEQ 300, 200 bytes ACK 700, SACK 900-1100 100-300 300-500 500-700 900-1100 SEQ 700, 200 bytes ACK 1100 100-300 300-500 500-700 700-900 900-1100 TCP SACK/DSACK

Reneging If Reneging occurs Reneging is a case when the receiver SACK some data and later discards that data. Such discarding is discouraged, but permitted if the receiver runs out of the buffer space. If Reneging occurs The first SACK should reflect the newest PDU even if the PDU is going to be discarded. Except for the newest PDU, all SACK blocks must not Ack any data which is no longer held by receiver. TCP SACK/DSACK

Reneging Example Sender Receiver SEQ 200, 200 bytes Receiver’s Buffer 200-400 SEQ 400, 200 bytes ACK 400 SEQ 600, 200 bytes SEQ 800, 200 bytes 200-600 800-1000 ACK 600, SACK 800-1000 200-600 TCP SACK/DSACK

Consequences of Reneging Sender must maintain normal TCP timeouts. A PDU cannot be considered acknowledged until its ACK by cumulative acknowledgement. PDU’s cannot be removed from the transmit buffer until ACK by the cumulative acknowledgement. TCP SACK/DSACK

SACK TCP Implementations Current Implementations : Windows XP/2000/ME/98 Solaris 7 and later Free BSD & NetBSD have optional modules TCP SACK/DSACK

Duplicate SACK (DSACK) Extension to SACK When D-SACK is used, the first block of the SACK option should specify the duplicate PDU. D-SACK block is used to report duplicate contiguous sequence of data received by the receiver in the most recent packet. Each duplicate is reported at most once. Allows the sender TCP to determine when a retransmission is not necessary. TCP SACK/DSACK

Example : Packet replicated by network Sender Receiver SEQ 200, 200 bytes Receiver’s Buffer ACK 400 200-400 SEQ 400, 200 bytes SEQ 600, 200 bytes 200-400 600-800 ACK 400, SACK 600-800 SEQ 800, 200 bytes 200-400 600-800 800-1000 ACK 400, SACK 600-1000 200-400 600-800 800-1000 ACK 400, SACK 800-1000, 600-1000 TCP SACK/DSACK

Example : Losses and sender changes PDU size Receiver SEQ 500, 100 bytes Receiver's Buffer 500-600 SEQ 600, 100 bytes ACK 600 SEQ 700, 100 bytes SEQ 800, 100 bytes SEQ 900, 100 bytes SEQ 1000, 100 bytes SEQ 1100, 100 bytes 500-600 1100-1200 ACK 600, SACK 1100-1200 SEQ 700, 200 bytes 500-600 600-700 1100-1200 ACK 700, SACK 1100-1200 ACK 700, SACK 800-900,1100-1200 500--700 800-900 1100-1200 ACK 900, SACK 800-900,1100-1200 500--900 1100-1200 TCP SACK/DSACK

D-SACK TCP Rules If D-SACK block reports duplicate PDU from (possibly larger) block of data in the receiver buffer above the cumulative acknowledgement, the second SACK block (the first non D-SACK block) should specify this block. As only, the first SACK block is considered as D-SACK block, if multiple sequences are duplicated, only the first is contained in the D-SACK block. TCP SACK/DSACK

D-SACK TCP & Retransmissions D-SACK allows TCP to determine when retransmission is not necessary and thereby undo congestion control measures. D-SACK allows TCP to determine if the network is duplicating packets. D-SACK does not allow a sender to determine if both the original and retransmitted PDU are received, or the original is lost and the retransmitted PDU is duplicated by the network. TCP SACK/DSACK

SACK & D-SACK Interaction No difference between SACK & D-SACK, except that first SACK block is used to report a duplicate PDU in D-SACK. No separate negotiation/options for D-SACK. D-SACK is compatible with current implementations of SACK option in TCP. TCP SACK/DSACK

References ftp://ftp.rfc-editor.org/in-notes/rfc2018.txt Professor Amer’s Slide http://www.cse.nd.edu/~surendar/teach/spr03/cse598N/Lectures/Lecture13.pdf TCP SACK/DSACK