CS 6401 Transport Control Protocol Outline TCP objectives revisited TCP basics New algorithms for RTO calculation.

Slides:



Advertisements
Similar presentations
CSCI-1680 Transport Layer II Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Rodrigo Fonseca.
Advertisements

1 Computer Networks: A Systems Approach, 5e Larry L. Peterson and Bruce S. Davie Chapter 5 End-to-End Protocols Copyright © 2010, Elsevier Inc. All rights.
COT 4600 Operating Systems Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:00-4:00 PM.
Slide Set 13: TCP. In this set.... TCP Connection Termination TCP State Transition Diagram Flow Control How does TCP control its sliding window ?
Computer Networks Chapter 5: End-to-End Protocols
1 Chapter 5 End-to-End Protocols Outline 5.1 UDP 5.2 TCP 5.3 Remote Procedure Call.
1 Computer Networks: A Systems Approach, 5e Larry L. Peterson and Bruce S. Davie Chapter 5 End-to-End Protocols Copyright © 2010, Elsevier Inc. All rights.
8. Transport Protocol and UDP 8.1 Transport protocol : End-to-end protocol –IP: Host to host packet delivery –Transport: Process to process communication.
CSS432: End-to-End Protocols 1 CSS432 End-to-End Protocols Textbook Ch5.1 – 5.2 Professor: Munehiro Fukuda.
Reliable Byte-Stream (TCP)
Provides a reliable unicast end-to-end byte stream over an unreliable internetwork.
1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
End-to-End Protocols Outline Reliable Byte-Stream Simple Demultiplexer
6-May-154/598N: Computer Networks End-to-End Protocols Underlying best-effort network –drop messages –re-orders messages –delivers duplicate copies of.
CSE Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010.
TCP 4/15/2017.
Fundamentals of Computer Networks ECE 478/578 Lecture #21: TCP Window Mechanism Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
ECE544: Communication Networks-II Spring 2011 D. Raychaudhuri Includes teaching materials from, L. Peterson, Sumathi Gopal and Sumit Rangwala.
CSE 124 Networked Services Fall 2009 B. S. Manoj, Ph.D 10/20/20091CSE 124 Networked Services Fall 2009 Some.
TDC561 Network Programming Camelia Zlatea, PhD Week 10: Performance Aspects of End-to-End (Transport)
Spring 2003CS 4611 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Spring 2002CS 4611 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
1 #6 in Mid-Term  Most answered:  many users thru the same bottleneck -> increased queueing delay -> increased e2e latency  Possible reasons behind.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
1 Internet Engineering University of ilam Dr. Mozafar Bag-Mohammadi Transport Layer.
SMUCSE 4344 transport layer. SMUCSE 4344 transport layer end-to-end protocols –transport code runs only on endpoint hosts encapsulates network communications.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
1Spring 2003, COM1337/3501 Lecture 5: End-to-End Protocols Textbook: Computer Networks: A Systems Approach, L. Peterson, B. Davie, Morgan Kaufmann Chapter.
1 Introduction to Computer Networks University of ilam Dr. Mozafar Bag-Mohammadi Transport Layer.
CSE Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 14 – February 23, 2010.
Spring 2010CS 3321 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
Spring 2008CPE Computer Networks1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control.
1 End-to-End Protocols User Datagram Protocol (UDP) Transmission Control Protocol(TCP)
1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
Ilam University Dr. Mozafar Bag-Mohammadi 1 Transport Layer.
CSE/EE 461 Sliding Windows and ARQ. 2 Last Time We finished up the Network layer –Internetworks (IP) –Routing (DV/RIP, LS/OSPF) It was all about routing:
EE 122: Transport Protocols Kevin Lai October 16, 2002.
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.
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 Transmission Control Protocol (TCP) RFC: Introduction The TCP is intended to provide a reliable process-to-process communication service in a.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Univ. of TehranIntroduction to Computer Network1 An Introduction Computer Networks An Introduction to Computer Networks University of Tehran Dept. of EE.
Advanced Computer Networks
3. END-TO-END PROTOCOLS (PART 2) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Chapter 5 TCP Sequence Numbers & TCP Transmission Control
Transport Control Protocol
5. End-to-end protocols (part 1)
Chapter 5 TCP Sliding Window
ECE544: Communication Networks-II Spring 2010
Internet routing Problem: Route from any node to any other node
The University of Adelaide, School of Computer Science
The University of Adelaide, School of Computer Science
TCP Overview Connection-oriented Byte-stream Full duplex
Transport Control Protocol
5. End-to-end protocols (part 2)
Reliable Byte-Stream (TCP)
Ilam University Dr. Mozafar Bag-Mohammadi
Transmission Control Protocol (TCP) Part II Neil Tang 11/21/2008
State Transition Diagram
Advanced Computer Networks
CSS432 End-to-End Protocols Textbook Ch5.1 – 5.2
The University of Adelaide, School of Computer Science
CSS432 UDP and TCP Textbook Ch5.1 – 5.2
Introduction to Computer Networks
Introduction to Computer Networks
Chapter 5 TCP Sliding Window
Introduction to Computer Networks
Presentation transcript:

CS 6401 Transport Control Protocol Outline TCP objectives revisited TCP basics New algorithms for RTO calculation

CS 6402 TCP Overview TCP is the most widely used Internet protocol –Web, Peer-to-peer, FTP, telnet, … A two way, reliable, byte stream oriented end-to-end protocol –Includes flow and congestion control Closely tied to the Internet Protocol (IP) A focus of intense study for many years –Our goal is to understand the RENO version of TCP RENO is most widely used TCP today RFC 2001 (now expired) RENO mainly specifies mechanisms for dealing with congestion

CS 6403 TCP Features Connection-oriented Byte-stream –app writes bytes –TCP sends segments –app reads bytes Reliable data transfer Application process Write bytes TCP Send buffer Segment Transmit segments Application process Read bytes TCP Receive buffer … …… Full duplex Flow control: keep sender from overrunning receiver Congestion control: keep sender from overrunning network

CS 6404 Segment Format

CS 6405 Segment Format (cont) Each connection identified with 4-tuple: –(SrcPort, SrcIPAddr, DsrPort, DstIPAddr) Sliding window + flow control –acknowledgment, SequenceNum, AdvertisedWinow Flags –SYN, FIN, RESET, PUSH, URG, ACK Checksum is the same as UDP –pseudo header + TCP header + data Sender Data(SequenceNum) Acknowledgment + AdvertisedWindow Receiver

CS 6406 Sequence Numbers 32 bit sequence numbers –Wrap around supported TCP breaks byte stream from application into packets (limited by Max. Segment Size) Each byte in the data stream is considered Each packet has a sequence number –Initial number selected at connection time –Subsequent numbers indicate first data byte number in packet ACK’s indicate next byte expected

CS 6407 Sequence Number Wrap Around BandwidthTime Until Wrap Around T1 (1.5 Mbps)6.4 hours Ethernet (10 Mbps)57 minutes T3 (45 Mbps)13 minutes FDDI (100 Mbps)6 minutes STS-3 (155 Mbps)4 minutes STS-12 (622 Mbps)55 seconds STS-24 (1.2 Gbps)28 seconds Protect against this by adding a 32-bit timestamp to TCP header

CS 6408 Connection Establishment Active participant (client) Passive participant (server) SYN, SequenceNum = x SYN + ACK, SequenceNum = y, ACK, Acknowledgment = y + 1 Acknowledgment = x + 1

CS 6409 Connection Termination Active participant (server) Passive participant (client) FIN, SequenceNum = x Acknowledgment = y + 1 x + 1 FIN, SequenceNum= y

CS State Transition Diagram CLOSED LISTEN SYN_RCVDSYN_SENT ESTABLISHED CLOSE_WAIT LAST_ACKCLOSING TIME_WAIT FIN_WAIT_2 FIN_WAIT_1 Passive openClose Send/SYN SYN/SYN + ACK SYN + ACK/ACK SYN/SYN + ACK ACK Close/FIN FIN/ACKClose/FIN FIN/ACK ACK + FIN/ACK Timeout after two segment lifetimes FIN/ACK ACK Close/FIN Close CLOSED Active open/SYN

CS Reliability in TCP Checksum used to detect bit level errors Sequence numbers used to detect sequencing errors –Duplicates are ignored –Reordered packets are reordered (or dropped) –Lost packets are retransmitted Timeouts used to detect lost packets –Requires RTO calculation –Requires sender to maintain data until it is ACKed

CS Sliding Window Revisited Sending side –LastByteAcked < = LastByteSent –LastByteSent < = LastByteWritten –buffer bytes between LastByteAcked and LastByteWritten Sending application LastByteWritten TCP LastByteSentLastByteAcked Receiving application LastByteRead TCP LastByteRcvdNextByteExpected Receiving side –LastByteRead < NextByteExpected –NextByteExpected < = LastByteRcvd +1 –buffer bytes between NextByteRead and LastByteRcvd

CS Flow Control in TCP Send buffer size: MaxSendBuffer Receive buffer size: MaxRcvBuffer Receiving side –LastByteRcvd - LastByteRead < = MaxRcvBuffer –AdvertisedWindow = MaxRcvBuffer - ( LastByteRcvd - LastByteRead ) Sending side –LastByteSent - LastByteAcked < = AdvertisedWindow –EffectiveWindow = AdvertisedWindow - ( LastByteSent - LastByteAcked ) –LastByteWritten - LastByteAcked < = MaxSendBuffer –block sender if ( LastByteWritten - LastByteAcked ) + y > MaxSenderBuffer Always send ACK in response to arriving data segment Persist sending one byte seg. when AdvertisedWindow = 0

CS Keeping the Pipe Full 16-bit AdvertisedWindow controls amount of pipelining Assume RTT of 100ms Add scaling factor extension to header to enable larger windows BandwidthDelay x Bandwidth Product T1 (1.5 Mbps)18KB Ethernet (10 Mbps)122KB T3 (45 Mbps)549KB FDDI (100 Mbps)1.2MB OC-3 (155 Mbps)1.8MB OC-12 (622 Mbps)7.4MB OC-24 (1.2 Gbps)14.8MB

CS Making TCP More Efficient Silly window syndrome –Early implementations send app data as soon as window opened up, even if by a little –Lead to plenty of small sized packets Fix 1: receiver opens window in MSS granularity Fix 2: receiver delays acknowledgements –Delay for about 200ms –Coalesces multiple small packets into one response

CS Karn/Partridge Algorithm for RTO Two degenerate cases with timeouts and RTT measurements –Solution: Do not sample RTT when retransmitting After each retransmission, set next RTO to be double the value of the last –Exponential backoff is well known control theory method –Loss is most likely caused by congestion so be careful SenderReceiver Original transmission ACK SampleR TT Retransmission SenderReceiver Original transmission ACK SampleR TT Retransmission

CS Jacobson/ Karels Algorithm In late ’80s, Internet was suffering from congestion collapse New Calculations for average RTT – Jacobson ’88 Variance is not considered when setting timeout value –If variance is small, we could set RTO = EstRTT –If variance is large, we may need to set RTO > 2 x EstRTT New algorithm calculates both variance and mean for RTT Diff = sampleRTT - EstRTT EstRTT = EstRTT + ( d x Diff) Dev = Dev + d ( |Diff| - Dev) –Initially settings for EstRTT and Dev will be given to you –where d is a factor between 0 and 1 –typical value is 0.125

CS Jacobson/ Karels contd. TimeOut =  x EstRTT +  x Dev –where  = 1 and  = 4 When variance is small, TimeOut is close to EstRTT When variance is large Dev dominates the calculation Another benefit of this mechanism is that it is very efficient to implement in code (does not require floating point) Notes –algorithm only as good as granularity of clock (500ms on Unix) –accurate timeout mechanism important to congestion control (later) These issues have been studied and dealt with in new RFC’s for RTO calculation. TCP RENO uses Jacobson/Karels