Title: CS244a: An Introduction to Computer Networks
1CS244a An Introduction to Computer Networks
- Handout 6 The Transport Layer, Transmission
Control Protocol (TCP), and User Datagram
Protocol (UDP)
Nick McKeown Professor of Electrical Engineering
and Computer Science, Stanford
University nickm_at_stanford.edu http//www.stanford.
edu/nickm
2Outline
- The Transport Layer
- The TCP Protocol
- TCP Characteristics
- TCP Connection setup
- TCP Segments
- TCP Sequence Numbers
- TCP Sliding Window
- Timeouts and Retransmission
- (Congestion Control and Avoidance)
- The UDP Protocol
3The Transport Layer
- What is the transport layer for?
- What characteristics might it have?
- Reliable delivery
- Flow control
-
4Review of the transport layer
Athena.MIT.edu
Leland.Stanford.edu
Nick
Dave
5Layering The OSI Model
layer-to-layer communication
Application
Application
7
7
Presentation
Presentation
6
6
Session
Session
5
5
Peer-layer communication
Transport
Transport
Router
Router
4
4
Network
Network
Network
Network
3
3
Link
Link
Link
Link
2
2
Physical
Physical
Physical
Physical
1
1
6Layering Our FTP Example
Application
Application
Presentation
Transport
Session
Transport
Network
Network
Link
Link
Physical
The 4-layer Internet model
The 7-layer OSI Model
7TCP Characteristics
- TCP is connection-oriented.
- 3-way handshake used for connection setup.
- TCP provides a stream-of-bytes service.
- TCP is reliable
- Acknowledgements indicate delivery of data.
- Checksums are used to detect corrupted data.
- Sequence numbers detect missing, or mis-sequenced
data. - Corrupted data is retransmitted after a timeout.
- Mis-sequenced data is re-sequenced.
- (Window-based) Flow control prevents over-run of
receiver. - TCP uses congestion control to share network
capacity among users. Well study this in the
next lecture.
8TCP is connection-oriented
(Active) Client
(Passive) Server
(Active) Client
(Passive) Server
Syn
Fin
Syn Ack
(Data ) Ack
Ack
Fin
Ack
Connection Setup 3-way handshake
Connection Close/Teardown 2 x 2-way handshake
9TCP supports a stream of bytes service
Host A
Byte 0
Byte 1
Byte 2
Byte 3
Byte 80
Host B
Byte 0
Byte 1
Byte 2
Byte 3
Byte 80
10which is emulated using TCP segments
Host A
Byte 0
Byte 1
Byte 2
Byte 3
Byte 80
- Segment sent when
- Segment full (MSS bytes),
- Not full, but times out, or
- Pushed by application.
TCP Data
TCP Data
Host B
Byte 0
Byte 1
Byte 2
Byte 3
Byte 80
11The TCP Segment Format
IP Data
IP Hdr
TCP Hdr
TCP Data
0
15
31
Src port
Dst port
Sequence
Src/dst port numbers and IP addresses uniquely
identify socket
Ack Sequence
TCP Header and Data IP Addresses
Flags
Window Size
HLEN 4
RSVD 6
URG
ACK
PSH
RST
SYN
FIN
Checksum
Urg Pointer
(TCP Options)
TCP Data
12Sequence Numbers
Host A
ISN (initial sequence number)
Sequence number 1st byte
TCP HDR
TCP Data
Ack sequence number next expected byte
TCP HDR
TCP Data
Host B
13Initial Sequence Numbers
(Active) Client
(Passive) Server
Syn ISNA
Syn Ack ISNB
Ack
Connection Setup 3-way handshake
14TCP Sliding Window
- How much data can a TCP sender have outstanding
in the network? - How much data should TCP retransmit when an error
occurs? Just selectively repeat the missing data? - How does the TCP sender avoid over-running the
receivers buffers?
15TCP Sliding Window
Window Size
Outstanding Un-ackd data
Data OK to send
Data not OK to send yet
Data ACKd
- Window is meaningful to the sender.
- Current window size is advertised by receiver
- (usually 4k 8k Bytes when connection
set-up). - TCPs Retransmission policy is Go Back N.
16TCP Sliding Window
Round-trip time
Window Size
Host A
Host B
ACK
ACK
(1) RTT gt Window size
17TCP Retransmission and Timeouts
Round-trip time (RTT)
Retransmission TimeOut (RTO)
Guard Band
Host A
Estimated RTT
Data1
Data2
ACK
ACK
Host B
TCP uses an adaptive retransmission timeout
value Congestion Changes in Routing
RTT changes frequently
18TCP Retransmission and Timeouts
- Picking the RTO is important
- Pick a values thats too big and it will wait too
long to retransmit a packet, - Pick a value too small, and it will unnecessarily
retransmit packets. - The original algorithm for picking RTO
- EstimatedRTTk ? EstimatedRTTk-1 (1 - ?)
SampleRTT - RTO 2 EstimatedRTT
- Characteristics of the original algorithm
- Variance is assumed to be fixed.
- But in practice, variance increases as congestion
increases.
Determined empirically
19TCP Retransmission and Timeouts
- Router queues grow when there is more
traffic, until they become unstable. - As load grows, variance of delay grows
rapidly.
- There will be some (unknown) distribution
of RTTs. - We are trying to estimate an RTO to
minimize the probability of a false timeout.
Probability
variance
RTT
mean
20TCP Retransmission and Timeouts
- Newer Algorithm includes estimate of variance in
RTT - Difference SampleRTT - EstimatedRTT
- EstimatedRTTk EstimatedRTTk-1
(?Difference) - Deviation Deviation ?( Difference -
Deviation ) - RTO ? EstimatedRTT ? Deviation
- ? ? 1
- ? ? 4
Same as before
21TCP Retransmission and TimeoutsKarns Algorithm
Host A
Host B
Host A
Host B
Retransmission
Retransmission
Wrong RTT Sample
Wrong RTT Sample
Problem How can we estimate RTT when packets
are retransmitted? Solution On retransmission,
dont update estimated RTT (and double RTO).
22User Datagram Protocol (UDP) Characteristics
- UDP is a connectionless datagram service.
- There is no connection establishment packets may
show up at any time. - UDP packets are self-contained.
- UDP is unreliable
- No acknowledgements to indicate delivery of data.
- Checksums cover the header, and only optionally
cover the data. - Contains no mechanism to detect missing or
mis-sequenced packets. - No mechanism for automatic retransmission.
- No mechanism for flow control, and so can
over-run the receiver.
23User-Datagram Protocol (UDP)
A1
A2
B1
B2
App
App
App
App
OS
UDP
Like TCP, UDP uses port number to demultiplex
packets
IP
24User-Datagram Protocol (UDP)Packet format
SRC port
DST port
By default, only covers the header.
checksum
length
DATA
- Why do we have UDP?
- It is used by applications that dont need
reliable delivery, or - Applications that have their own special needs,
such as streaming of real-time audio/video.