RFC 1323: TCP Extensions for High Performance

Slides:



Advertisements
Similar presentations
Introduction to TCP A first look at the sockets API for ‘connection-oriented’ client/server application programs.
Advertisements

TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
NET0183 Networks and Communications Lecture 28 TCP: a transport layer protocol... the story continues... Sagan halda áfram 8/25/20091 NET0183 Networks.
Make Protocol Ready for Gigabit. Scopes In this presentation, we will present various protocol design and implementation techniques that can allow a protocol.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) User Datagram Protocol.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
CSE Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010.
1 Transport Control Protocol. 2 Header Identifies the port number of a source application program. Used by the receiver to reply. (16-bit). Identifies.
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.
Fundamentals of Computer Networks ECE 478/578 Lecture #21: TCP Window Mechanism Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #11 TCP Eiffel (RFC 3522)
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
Internet Networking Spring 2002 Tutorial 11 T/TCP (TCP extension for Transactions)
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
Shivkumar Kalyanaraman Rensselaer Polytechnic Institute 1 TCP (Part III: Miscl) Shivkumar Kalyanaraman Rensselaer Polytechnic Institute
1 Internet Networking Spring 2006 Tutorial 10 The Eifel Detection Algorithm for TCP RFC 3522.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
1 K. Salah Module 6.1: TCP Flow and Congestion Control Connection establishment & Termination Flow Control Congestion Control QoS.
Spring 2002CS 4611 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
Gursharan Singh Tatla Transport Layer 16-May
COMT 4291 Communications Protocols and TCP/IP COMT 429.
TCP Timers Chia-tai Tsai Introduction The 7 Timers for each Connection Connection-Establishment Timer Establish a new connection.
Copyright © Lopamudra Roychoudhuri
Computer & Information Sciences University of Delaware
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
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)
1 M. Atiquzzaman, SCTP over satellite networks IEEE Computer Communications Workshop, Oct 20, SCTP over Satellite Networks Mohammed Atiquzzaman School.
2000 년 11 월 20 일 전북대학교 분산처리실험실 TCP Flow Control (nagle’s algorithm) 오 남 호 분산 처리 실험실
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:
TCP/IP Over Satellites SJSU, CMPE 206, Spring 1998 Kofi Weusi-Puryear Sridhar Dhulipala Sanjay Jain Tejaswi Redkar.
Internet Networking recitation #11
ECE 4110 – Internetwork Programming
© Jörg Liebeherr (modified by Malathi Veeraraghavan) 1 Overview Formats, Data Transfer, etc. Connection Management.
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
IP Configuration API. Network Interface Configuration NAIfconfigIsDeviceUp() NAIfconfigDeviceFromInterface() NAIfconfigBringDeviceUp() NAIfconfigSetIpAddress()
Richard Scheffenegger (Editor) David Borman Bob Braden Van Jacobson RFC1323bis – TCP Extensions for High Performance 1 84 th IETF, Vancouver, Canada.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
Transmission Control Protocol (TCP) connection-oriented stream data transfer data sent as an unstructured stream of bytes reliability acknowledgements.
1 End-to-End Protocols UDP TCP –Connection Establishment/Termination –Sliding Window Revisited –Flow Control –Congestion Control –Adaptive Timeout.
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).
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
Chapter 5 Peer-to-Peer Protocols and Data Link Layer Timing Recovery.
1 Transmission Control Protocol (TCP) RFC: Introduction The TCP is intended to provide a reliable process-to-process communication service in a.
Two Transport Protocols Available Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Provides unreliable transfer Requires minimal – Overhead.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
TCP Selective Acknowledgement Options
TCP - Part II.
Transmission Control Protocol (TCP) Retransmission and Time-Out
5. End-to-end protocols (part 1)
ECE 4605 Edgar Duskin Ifiok Udowana
TCP.
Instructor Mazhar Hussain
CS 5565 Network Architecture and Protocols
Introduction of Transport Protocols
Chapter 5 TCP Sliding Window
Flow Control.
Hojun Lee TCP enhancements Hojun Lee 11/8/2018.
Transport Layer Unit 5.
Flow and Error Control.
CS 5565 Network Architecture and Protocols
CS4470 Computer Networking Protocols
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Presentation transcript:

RFC 1323: TCP Extensions for High Performance V. Jacobson, et al., RFC 1323: TCP Extensions for High Performance, 1992. Mar. 17, 2010 RFC 1323: TCP Extensions for High Performance V. Jacobson, et al., RFC 1323: TCP Extensions for High Performance, 1992. The department of Information & Communications Engineering Soohyun Park parksh@hufs.ac.kr 1

Contents Introduction Main issues TCP Window Scale Option (WSopt) TCP Timstamps Options (TSopt) RTTM – Round-Trip Time measurement PAWS – Product Against Wrapped Sequence Numbers

Introduction RFC 1323 RFC 1072 + RFC 1185 To improve performance over large bandwidth * delay product paths To provide reliable operation over very high-speed paths RFC 1323 (New TCP options) Window scale option Timestamps option are used for Performance, reliability의 두가지 이슈를 다루기 위해 RFC 1323에서는 새로운 TCP option 2가지를 제공하며, 이 것이 scaled window, timestamp 이다. RFC 1072 - TCP Extensions for Long-Delay Paths - window scale option RFC 1185 - TCP Extension for High-Speed Paths RTTM (Round Trip Time Measurement) PAWS (Protect Against Wrapped Sequences)

Main issues To solve TCP performance TCP reliability Fundamental performance problems Window size limit Round-trip time measurement Duplication problems of sequence numbers Sequence number wrap-around on the current connection Earlier incarnation of the connection To solve 1. TCP window scale option (WSopt) TCP performance problems 발생이유 – Because BW * delay product is large “Bandwidth * delay product” measures the amount of data that would “fill the pipe”. An Internet path operating in this region – “long, fat pipe” A network containing this(long, fat pipe) path : Long-Fat Networks – “LFN” wrap-around : 몸에 두르게 되어있는, 끝부분이 굽은, old-fashioned incarnation : 생애 PAWS (Protect Against Wrapped Sequences) 2. RTTM (Round Trip Time Measurement)

TCP Window Scale Option (WSopt) Introductions The scale factor is carried in a new TCP option, Window Scale This option is sent only in a SYN segment The window scale is fixed in each direction when a connection is opened The advantage : lower overhead The disadvantage : the scale factor cannot be changed during the connection The three-byte Window Scale option may be sent in a SYN segment by a TCP Indicate that the TCP is prepared to do both send and receive window scaling Communicate a scale factor to be applied to its receive window Common features This option is an offer, not a promise This option may be sent in an initial <SYN> segment

TCP Window Scale Option (WSopt) Using the window scale option All windows are treated as 32-bit quantities for storage in the connection control block and for local calculations The connection state is augmented by two window shift counts Snd.Wind.Scale Rcv.Wind.Scale If a TCP receives a <SYN> segment containing a Window Scale option, it sends its own Window Scale option in the <SYN,ACK> segment The Window Scale option is sent with shift.cnt = R Upon receiving a SYN segment with a Window Scale option containing shift.cnt = S A TCP sets Snd.Wind.Scale to S and sets Rcv.Wind.Scale to R Otherwise, it sets both Snd.Wind.Scale and Rcv.Wind.Scale to zero where R is the value that the TCP would like to use for its receive window. TCP determines if a data segment is "old" or "new" by testing whether its sequence number is within 2**31 bytes of the left edge of the window, and if it is not, discarding the data as "old". Similarly with the sender's right edge and receiver's left edge.

TCP Window Scale Option (WSopt) Using the window scale option (Cont.) The window field (SEG.WND) in the header of every incoming segment, with the exception of SYN segments, is left-shifted by Snd.Wind.Scale bits before updating SND.WND The window field (SEG.WND) of every outgoing segment, with the exception of SYN segments, is right-shifted by Rcv.Wind.Scale bits

TCP Timestamps option (TSopt) Common features Combine the timestamp and timestamp reply fields into a single TCP Timestamps Option A TCP may send the Timestamps option (TSopt) in an initial <SYN> segment A TCP may send a TSopt in other segments only if it received a TSopt in the initial <SYN> segment for the connection. Contains the current value of the timestamp clock of the TCP sending the option Only valid if the ACK bit is set in the TCP header The Timestamps option carries two four-byte timestamp fields. The Timestamp Value field (TSval) contains the current value of the timestamp clock of the TCP sending the option. The Timestamp Echo Reply field (TSecr) is only valid if the ACK bit is set in the TCP header; if it is valid, it echos a times- tamp value that was sent by the remote TCP in the TSval field of a Timestamps option. When TSecr is not valid, its value must be zero. The TSecr value will generally be from the most recent Timestamp option that was received; however, there are exceptions that are explained below. A TCP may send the Timestamps option (TSopt) in an initial <SYN> segment (i.e., segment containing a SYN bit and no ACK bit), and may send a TSopt in other segments only if it re- ceived a TSopt in the initial <SYN> segment for the connection.

RTTM – Round-Trip Time Measurement Basic RTTM mechanism Using TCP options, the sender places a timestamp in each data segment, and the receiver reflects these timestamps back in ACK segments A single subtract gives the sender an accurate RTT measurement for every ACK segment Which timestamp to echo (If more than one Timestamps option is received before a reply segment is sent) Delayed ACKs A hole in the sequence space (segment(s) have been lost) A filled hole in the sequence space An algorithm that covers all three cases The connection state is augmented with two 32-bit slots If Last.ACK.sent falls within the range of sequence numbers of an incoming segment When a TSopt is sent, its TSecr field is set to the current TS.Recent value To minimize the state kept in the receiver (i.e., the number of unprocessed TSvals), the receiver should be required to retain at most one timestamp in the connection control block.

RTTM – Round-Trip Time Measurement Example 1 Packets arrive in sequence, and some of the ACKs are delayed CASE (A) the timestamp from the oldest unacknowledged segment is echoed Example 2 Packets arrive out of order, and every packet is acknowledged CASE (B) the timestamp from the last segment that advanced the left window edge is echoed, until the missing segment arrives it is echoed according to CASE (C)

PAWS – Product Against Wrapped Sequence Numbers PAWS mechanism A simple mechanism to reject old duplicate segments that might corrupt an open TCP connection Uses the same TCP Timestamps option as the RTTM mechanism described Basic PAWS algorithm If there is a Timestamps option in the arriving segment and SEG.TSval < TS.Recent and if TS.Recent is valid Then treat the arriving segment as not acceptable If the segment is outside the window, reject it (normal TCP processing) If an arriving segment satisfies: SEG.SEQ <= Last.ACK.sent Then record its timestamp in TS.Recent If an arriving segment is in-sequence (i.e., at the left window edge) Then accept it normally Otherwise, treat the segment as a normal in-window, out-of-sequence TCP segment

PAWS – Product Against Wrapped Sequence Numbers Timestamp clock Does not require clock synchronization between sender and receiver Puts a strong monotonicity requirement on the sender's timestamp clock Header Prediction Can be answered in fewer machine instructions Adding header prediction to our timestamp procedure Check timestamp Do header prediction If segment is next in sequence If there are no special conditions requiring additional processing Accept the segment, record its timestamp Process the segment normally Dropping segments that are outside the window Possibly sending acknowledgments, Queueing in-window, out-of-sequence segments Monotonicity : 단조성 Outdate : 시대에 뒤지게 하다 Subsequent : 그 다음의 1,3번은 header prediction이 실패했을 때만 동작함.(RFC 1185) – performance improvement 그러나, 1번을 먼저 하도록 권고함(RFC 1323) However, putting H2 first would create a hazard. It is therefore recommended that H2 follow H1.