Data Communication and Networks Lecture 9 The Internet Transport Protocols: TCP, UDP November 10, 2005 Joseph Conron Computer Science Department New York.

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

2: Transport Layer 31 Transport Layer 3. 2: Transport Layer 32 TCP Flow Control receiver: explicitly informs sender of (dynamically changing) amount of.
Transportation Layer. Very similar to the data link layer. – two hosts connected by a link or two hosts connected by a network differences: – When two.
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.
3-1 TCP Protocol r point-to-point: m one sender, one receiver r reliable, in-order byte steam: m no “message boundaries” r pipelined: m TCP congestion.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
1 Transport Layer Lecture 9 Imran Ahmed University of Management & Technology.
CS 471/571 Transport Layer 5 Slides from Kurose and Ross.
CSE551: Computer Network Review r Network Layers r TCP/UDP r IP.
Transport Layer3-1 Summary of Reliable Data Transfer Checksums help us detect errors ACKs and NAKs help us deal with errors If ACK/NAK has errors sender.
Week 9 TCP9-1 Week 9 TCP 3 outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management.
Transport Layer3-1 Pipelined protocols Pipelining: sender allows multiple, “in-flight”, yet-to- be-acknowledged pkts m range of sequence numbers must be.
Transport Layer1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r reliable, in-order byte steam: m no “message boundaries” r pipelined: m TCP congestion.
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.
Chapter 3 outline 3.1 transport-layer services
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Spring 2000John Kristoff1 Transport Layer Computer Networks.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer Transport Layer: TCP. Transport Layer 3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
1 Announcement r Project 2 out m Much harder than project 1, start early! r Homework 2 due next Tuesday.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley,
Announcement Project 2 out –Much harder than project 1, start early! Homework 2 due next Tu.
Chapter 3 Transport Layer
The Future r Let’s look at the homework r The next test is coming the 19 th (just before turkey day!) r Monday will finish TCP canned slides r Wednesday.
Transport Layer3-1 Data Communication and Networks Lecture 7 Transport Protocols: TCP October 21, 2004.
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Announcement Homework 1 graded Homework 2 out –Due in a week, 1/30 Project 2 problems –Minet can only compile w/ old version of gcc (2.96). –Only tlab-login.
Transport Layer session 1 TELE3118: Network Technologies Week 9: Transport Layer Basics Some slides have been taken from: r Computer Networking:
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 point-to-point:
1 Transport Layer Computer Networks. 2 Where are we?
Transport Layer3-1 TCP sender (simplified) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) { switch(event) event: data received from.
Network LayerII-1 RSC Part III: Transport Layer 3. TCP Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part.
Transport Layer1 Reliable Transfer Ram Dantu (compiled from various text books)
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All.
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.
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.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_b Transport Protocols - TCP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
1 TCP: Reliable Transport Service. 2 Transmission Control Protocol (TCP) Major transport protocol used in Internet Heavily used Completely reliable transfer.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
1 End-to-End Protocols (UDP, TCP, Connection Management)
September 26 th, 2013 CS1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Transport Layer3-1 Transport Layer If you are going through Hell Keep going.
CIS679: TCP and Multimedia r Review of last lecture r TCP and Multimedia.
Transport Layer1 Goals: r understand principles behind transport layer services and protocols: m UDP m TCP Overview: r transport layer services r multiplexing/demultiplexing.
CSEN 404 Transport Layer II Amr El Mougy Lamia AlBadrawy.
Spring 2006 CPE : Transport Layer Overview2-1 Special Topics in Computer Engineering The Transport Layer in the Internet: Overview Some of these.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
09-Transport Layer: TCP Transport Layer.
COMP 431 Internet Services & Protocols
Chapter 3 outline 3.1 Transport-layer services
DMET 602: Networks and Media Lab
CS 1652 Jack Lange University of Pittsburgh
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 full duplex data:
Introduction to Networks
CS1652 TCP Jack Lange University of Pittsburgh
Review: UDP demultiplexing TCP demultiplexing Multiplexing?
Internet and Intranet Protocols and Applications
Transport Layer Goals: Overview:
Chapter 3 outline 3.1 Transport-layer services
Transportation Layer.
Chapter 3 Transport Layer
Presentation transcript:

Data Communication and Networks Lecture 9 The Internet Transport Protocols: TCP, UDP November 10, 2005 Joseph Conron Computer Science Department New York University

Internet Transport Protocols zTwo Transport Protocols Available yTransmission Control Protocol (TCP) xconnection oriented xmost applications use TCP xRFC 793 yUser Datagram Protocol (UDP) xConnectionless xRFC 768

Transport layer addressing zCommunications endpoint addressed by: yIP address (32 bit) in IP Header yPort number (16 bit) in TP Header 1 yTransport protocol (TCP or UDP) in IP Header 1 TP => Transport Protocol (UDP or TCP)

Standard services and port numbers

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 zfull duplex data: ybi-directional data flow in same connection yMSS: maximum segment size zconnection-oriented: yhandshaking (exchange of control msgs) init’s sender, receiver state before data exchange zflow controlled: ysender will not overwhelm receiver z point-to-point: yone sender, one receiver z reliable, in-order byte steam: yno “message boundaries” z pipelined: yTCP congestion and flow control set window size z send & receive buffers

TCP Header

TCP segment structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement number rcvr window size ptr urgent data checksum F SR PAU head len not used Options (variable length) URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) # bytes rcvr willing to accept counting by bytes of data (not segments!) Internet checksum (as in UDP)

Reliability in an Unreliable World zIP offers best-effort (unreliable) delivery zTCP uses IP zTCP provides completely reliable transfer zHow is this possible? How can TCP realize: yReliable connection startup? yReliable data transmission? yGraceful connection shutdown?

Reliable Data Transmission zPositive acknowledgment yReceiver returns short message when data arrives yCalled acknowledgment zRetransmission ySender starts timer whenever message is transmitted yIf timer expires before acknowledgment arrives, sender retransmits message yTHIS IS NOT A TRIVIAL PROBLEM! – more on this later.

TCP Flow Control zReceiver yAdvertises available buffer space yCalled window yThis is a known as a CREDIT policy zSender yCan send up to entire window before ACK arrives zEach acknowledgment carries new window information yCalled window advertisement yCan be zero (called closed window) zInterpretation: I have received up through X, and can take Y more octets

Credit Scheme zDecouples flow control from ACK yMay ACK without granting credit and vice versa zEach octet has sequence number zEach transport segment has seq number, ack number and window size in header

Use of Header Fields zWhen sending, seq number is that of first octet in segment zACK includes AN=i, W=j zAll octets through SN=i-1 acknowledged yNext expected octet is i zPermission to send additional window of W=j octets yi.e. octets through i+j-1

Credit Allocation

TCP Flow Control receiver: explicitly informs sender of (dynamically changing) amount of free buffer space  RcvWindow field in TCP segment sender: keeps the amount of transmitted, unACKed data less than most recently received RcvWindow sender won’t overrun receiver’s buffers by transmitting too much, too fast flow control receiver buffering RcvBuffer = size of TCP Receive Buffer RcvWindow = amount of spare room in Buffer

TCP seq. #’s and ACKs Seq. #’s: ybyte stream “number” of first byte in segment’s data ACKs: yseq # of next byte expected from other side ycumulative ACK Q: how receiver handles out-of-order segments yA: TCP spec doesn’t say, - up to implementor Host A Host B Seq=42, ACK=79, data = ‘C’ Seq=79, ACK=43, data = ‘C’ Seq=43, ACK=80 User types ‘C’ host ACKs receipt of echoed ‘C’ host ACKs receipt of ‘C’, echoes back ‘C’ time simple telnet scenario

TCP ACK generation [RFC 1122, RFC 2581] Event in-order segment arrival, no gaps, everything else already ACKed in-order segment arrival, no gaps, one delayed ACK pending out-of-order segment arrival higher-than-expect seq. # gap detected arrival of segment that partially or completely fills gap TCP Receiver action delayed ACK. Wait up to 500ms for next segment. If no next segment, send ACK immediately send single cumulative ACK send duplicate ACK, indicating seq. # of next expected byte immediate ACK if segment starts at lower end of gap

TCP: retransmission scenarios Host A Seq=92, 8 bytes data ACK=100 loss timeout time lost ACK scenario Host B X Seq=92, 8 bytes data ACK=100 Host A Seq=100, 20 bytes data ACK=100 Seq=92 timeout time premature timeout, cumulative ACKs Host B Seq=92, 8 bytes data ACK=120 Seq=92, 8 bytes data Seq=100 timeout ACK=120

Why Startup/ Shutdown Difficult? zSegments can be yLost yDuplicated yDelayed yDelivered out of order yEither side can crash yEither side can reboot zNeed to avoid duplicate ‘‘shutdown’’ message from affecting later connection

TCP Connection Management Recall: TCP sender, receiver establish “connection” before exchanging data segments zinitialize TCP variables: yseq. #s  buffers, flow control info (e.g. RcvWindow ) zclient: connection initiator Socket clientSocket = new Socket("hostname","port number"); zserver: contacted by client Socket connectionSocket = welcomeSocket.accept(); Three way handshake: Step 1: client end system sends TCP SYN control segment to server yspecifies initial seq # Step 2: server end system receives SYN, replies with SYNACK control segment yACKs received SYN yallocates buffers yspecifies server-> receiver initial seq. #

TCP Connection Management (OPEN) client SYN server SYNACK ACK opening closed established

TCP Connection Management (cont.) Closing a connection: client closes socket: clientSocket.close(); Step 1: client end system sends TCP FIN control segment to server Step 2: server receives FIN, replies with ACK. Closes connection, sends FIN. client FIN server ACK FIN close closed timed wait

TCP Connection Management (cont.) Step 3: client receives FIN, replies with ACK. yEnters “timed wait” - will respond with ACK to received FINs Step 4: server, receives ACK. Connection closed. Note: with small modification, can handle simultaneous FINs. client FIN server ACK FIN closing closed timed wait closed

TCP Connection Management (cont) TCP client lifecycle TCP server lifecycle

Timing Problem! The delay required for data to reach a destination and an acknowledgment to return depends on traffic in the internet as well as the distance to the destination. Because it allows multiple application programs to communicate with multiple destinations concurrently, TCP must handle a variety of delays that can change rapidly. How does TCP handle this.....

Solving Timing Problem zKeep estimate of round trip time on each connection zUse current estimate to set retransmission timer zKnown as adaptive retransmission zKey to TCP’s success

TCP Round Trip Time and Timeout Q: how to set TCP timeout value? zlonger than RTT ynote: RTT will vary ztoo short: premature timeout yunnecessary retransmissions ztoo long: slow reaction to segment loss Q: how to estimate RTT?  SampleRTT : measured time from segment transmission until ACK receipt yignore retransmissions, cumulatively ACKed segments  SampleRTT will vary, want estimated RTT “smoother”  use several recent measurements, not just current SampleRTT

TCP Round Trip Time and Timeout EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT zExponential weighted moving average zinfluence of given sample decreases exponentially fast ztypical value of x: 0.1 Setting the timeout  EstimtedRTT plus “safety margin”  large variation in EstimatedRTT -> larger safety margin Timeout = EstimatedRTT + 4*Deviation Deviation = (1-x)*Deviation + x*|SampleRTT-EstimatedRTT|

Implementation Policy Options zSend zDeliver zAccept zRetransmit zAcknowledge

Send zIf no push or close TCP entity transmits at its own convenience (IFF send window allows!) zData buffered at transmit buffer zMay construct segment per data batch zMay wait for certain amount of data

Deliver (to application) zIn absence of push, deliver data at own convenience zMay deliver as each in-order segment received zMay buffer data from more than one segment

Accept zSegments may arrive out of order zIn order yOnly accept segments in order yDiscard out of order segments zIn windows yAccept all segments within receive window

Retransmit zTCP maintains queue of segments transmitted but not acknowledged zTCP will retransmit if not ACKed in given time yFirst only yBatch yIndividual

Acknowledgement zImmediate yas soon as segment arrives. ywill introduce extra network traffic yKeeps sender’s pipe open zCumulative yWait a bit before sending ACK (called “delayed ACK”) yMust use timer to insure ACK is sent yLess network traffic yMay let sender’s pipe fill if not timely!

UDP: User Datagram Protocol [RFC 768] z“no frills,” “bare bones” Internet transport protocol z“best effort” service, UDP segments may be: ylost ydelivered out of order to app zconnectionless: yno handshaking between UDP sender, receiver yeach UDP segment handled independently of others Why is there a UDP? z no connection establishment (which can add delay) z simple: no connection state at sender, receiver z small segment header z no congestion control: UDP can blast away as fast as desired

UDP: more zoften used for streaming multimedia apps yloss tolerant yrate sensitive zother UDP uses yDNS ySNMP zreliable transfer over UDP: add reliability at application layer yapplication-specific error recover! source port #dest port # 32 bits Application data (message) UDP segment format length checksum Length, in bytes of UDP segment, including header

UDP Uses zInward data collection zOutward data dissemination zRequest-Response zReal time application