![Page 1: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/1.jpg)
Spring 2000 John Kristoff 1
Transport Layer
Computer Networks
![Page 2: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/2.jpg)
Spring 2000 John Kristoff 2
Where are we?
![Page 3: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/3.jpg)
Spring 2000 John Kristoff 3
Recall
Network Layer Provides host-to-host communication Source and destination addresses are
computers Machine-to-machine networking
![Page 4: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/4.jpg)
Spring 2000 John Kristoff 4
Transport Protocols
Provide application-to-application communication
Need extended addressing mechanism to identify applications
Called end-to-endOptionally provide:
ReliabilityFlow ControlCongestion Control
![Page 5: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/5.jpg)
Spring 2000 John Kristoff 5
Example Transport Layer:Transmission Control Protocol (TCP)
Standardized by IETF as RFC 793Most popular layer 4 protocolConnection-oriented protocolConceptually between applications and IPFull-duplex operationByte-stream interfaceOf utmost importance for this class!
The book: TCP/IP Illustrated, Volume I - W.R. Stevens
![Page 6: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/6.jpg)
Spring 2000 John Kristoff 6
TCP Feature Summary
Provides a completely reliable (no data duplication or loss), connection-
oriented, full-duplex stream transport service that allows two application programs to form a connection, send data in either
direction and then terminate the connection.
![Page 7: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/7.jpg)
Spring 2000 John Kristoff 7
Relationship Between TCP and Other Protocols
TCP on one computer uses IP to communicate with TCP on another computer
![Page 8: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/8.jpg)
Spring 2000 John Kristoff 8
Apparent Contradiction
IP offers best-effort (unreliable) delivery
TCP uses IPTCP provides completely reliable
transferHow is this possible?
![Page 9: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/9.jpg)
Spring 2000 John Kristoff 9
Achieving Reliability
Reliable connection setupReliable data transmissionReliable connection shutdown
![Page 10: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/10.jpg)
Spring 2000 John Kristoff 10
Reliable Data Transmission
Positive Acknowledgement Receiver returns short message when data
arrives Call an acknowledgement
Retransmission Sender starts timer whenever message is
transmitted If timer expires before acknowledgement
arrives, sender retransmits message
![Page 11: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/11.jpg)
Spring 2000 John Kristoff 11
Retransmission Illustrated
![Page 12: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/12.jpg)
Spring 2000 John Kristoff 12
How Long Should TCP Wait Before Retransmitting?
Time for acknowledgement to arrive depends on Distance to destination Current traffic conditions
Multiple connections can be open simultaneously
Traffic conditions change rapidly
![Page 13: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/13.jpg)
Spring 2000 John Kristoff 13
Important Point
The delay required for data to reach a destination and an acknowledgement to return depends on traffic in the internet as well as the distance to
the destination. Since it allows multiple application programs to communicate with
multiple destinations concurrently, TCP must handle a variety of delays that can change
rapidly.
![Page 14: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/14.jpg)
Spring 2000 John Kristoff 14
Solving the Retransmission Problem
Keep estimate of round trip time on each connection
Use current estimate to set retransmission timer
Known as adaptive retransmissionKey to TCP’s success
![Page 15: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/15.jpg)
Spring 2000 John Kristoff 15
Adaptive Retransmission Illustrated
Timeout depends on current round-trip estimate
![Page 16: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/16.jpg)
Spring 2000 John Kristoff 16
TCP Flow Control
Receiver Advertises available buffer space Called the window
Sender Can send up to entire window before
ACK arrives
Also called a sliding window protocol
![Page 17: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/17.jpg)
Spring 2000 John Kristoff 17
Window Advertisement
Each acknowledgement carries new window information Call window advertisement Can be zero (called closed window)
Interpretation: I have received up through X and can take Y more octets
![Page 18: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/18.jpg)
Spring 2000 John Kristoff 18
Window Advertisement Illustrated
![Page 19: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/19.jpg)
Spring 2000 John Kristoff 19
Another View: Sliding Window Illustrated
![Page 20: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/20.jpg)
Spring 2000 John Kristoff 20
Startup and Shutdown
Connection Startup Must be reliable
Connection Shutdown Must be graceful
Difficult
![Page 21: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/21.jpg)
Spring 2000 John Kristoff 21
Why Startup/Shutdown is Difficult
Segments can be lost duplicated delayed delivered out of order either side can crash either side can reboot
Need to avoid duplicate shutdown “message” from affecting later connection
![Page 22: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/22.jpg)
Spring 2000 John Kristoff 22
TCP’s Startup Solution
Use three-message exchangeKnown as the 3-way handshakeNecessary and sufficient for
unambiguous, reliable startupSYN messages used for connection
establishment
![Page 23: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/23.jpg)
Spring 2000 John Kristoff 23
3-Way Handshake Illustrated
![Page 24: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/24.jpg)
Spring 2000 John Kristoff 24
TCP’s Shutdown Illustrated
![Page 25: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/25.jpg)
Spring 2000 John Kristoff 25
Byte Stream Sequencing
Segments are labeled with a sequence number
Protects from out-of-order delivery32-bit numberLimited size of byte stream? Initial Sequence Numbers (ISNs) must be
exchanged at TCP connection establishment
![Page 26: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/26.jpg)
Spring 2000 John Kristoff 26
More Complete Illustration of the 3-Way Handshake
![Page 27: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/27.jpg)
Spring 2000 John Kristoff 27
Application Multiplexing
Cannot extend IP address No unused bits
Cannot use OS dependent quantity Process ID Task number Job name
Must work on all computer systems
![Page 28: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/28.jpg)
Spring 2000 John Kristoff 28
Application Multiplexing Illustrated
![Page 29: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/29.jpg)
Spring 2000 John Kristoff 29
Protocol Ports
Each application assigned a unique integer
Server Follows standard Always uses same port number Usually uses lower port numbers
Client Obtains unused port from protocol software Usually uses higher port numbers
![Page 30: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/30.jpg)
Spring 2000 John Kristoff 30
Protocol Port Example
Web server application is assigned port 80Web client application obtains port 32938TCP segment sent from client to server has
source port number 32938 destination port number 80
When web server responds, TCP segment has source port number 80 destination port number 32938
![Page 31: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/31.jpg)
Spring 2000 John Kristoff 31
Standard Protocol Ports
See http://www.iana.org for standard protocol port assignments See /etc/services in UNIX systems and \winnt\system32\drivers\etc\services in Windows NT
![Page 32: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/32.jpg)
Spring 2000 John Kristoff 32
TCP Segment Format
![Page 33: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/33.jpg)
Spring 2000 John Kristoff 33
Example Transport Layer: User Datagram Protocol (UDP)
Unreliable message deliveryConnectionless protocolNo flow control (no window)No error recovery (no ACKs)Provides application multiplexingError detection optional (checksum
field)
![Page 34: Spring 2000John Kristoff1 Transport Layer Computer Networks](https://reader030.vdocuments.net/reader030/viewer/2022033107/56649d405503460f94a1a280/html5/thumbnails/34.jpg)
Spring 2000 John Kristoff 34
UDP Message Format