6. Transport Layer

Transport Layer
Computer Networks
1
Where are we?
2
Recall
Network Layer
Provides host-to-host communication
Source and destination addresses identify host
interfaces
Machine-to-machine networking
3
Transport Protocols
Provide application-to-application communication
Need extended addressing mechanism to identify
applications
Called end-to-end
Optionally provide:
Reliability
Flow Control
Congestion Control
4
Example Transport Layer:
Transmission Control Protocol (TCP)
Standardized by IETF as RFC 793
Most popular layer 4 protocol
Connection-oriented protocol
Conceptually between applications and IP
Full-duplex operation
Byte-stream interface
Of utmost importance for this class!
The book: TCP/IP Illustrated, Volume I - W.R. Stevens
Also see: http://condor.depaul.edu/~jkristof/tcp.html
5
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.
6
Relationship Between TCP and
Other Protocols
TCP on one computer uses IP to communicate
with TCP on another computer
7
Apparent Contradiction
IP offers best-effort (unreliable) delivery
TCP uses IP
TCP provides completely reliable transfer
How is this possible?
8
Achieving Reliability
Reliable connection setup
Reliable data transmission
Reliable connection shutdown
9
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
10
Retransmission Illustrated
11
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
12
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.
13
Solving the Retransmission
Problem
Keep estimate of round trip time on each
connection
Use current estimate to set retransmission
timer
Known as adaptive retransmission
Key to TCP’s success
14
Adaptive Retransmission
Illustrated
Timeout depends on current round-trip estimate
15
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
16
Window Advertisement
Each acknowledgement carries new window
information
Called window advertisement
Can be zero (called closed window)
Interpretation: I have received up through X
and can take Y more octets
17
Window Advertisement Illustrated
18
Another View: Sliding Window
Illustrated
19
Startup and Shutdown
Connection Startup
Must be reliable
Connection Shutdown
Must be graceful
Difficult
20
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
21
TCP’s Startup Solution
Use three-message exchange
Known as the 3-way handshake
Necessary and sufficient for unambiguous,
reliable startup
SYN messages used for connection
establishment
22
3-Way Handshake Illustrated
23
TCP’s Shutdown Illustrated
24
Byte Stream Sequencing
Segments are labeled with a sequence number
Protects from out-of-order delivery
32-bit number
Limited size of byte stream?
Initial Sequence Numbers (ISNs) must be
exchanged at TCP connection establishment
25
More Complete Illustration of the
3-Way Handshake
26
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
27
Application Multiplexing
Illustrated
28
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
29
Protocol Port Example
Web server application is assigned port 80
Web client application obtains port 32938
TCP 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
30
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
31
TCP Segment Format
32
Example Transport Layer: User
Datagram Protocol (UDP)
Unreliable message delivery
Connectionless protocol
No flow control (no window)
No error recovery (no ACKs)
Provides application multiplexing
Error detection optional (checksum field)
33
UDP Message Format
34