CS244a: An Introduction to Computer Networks - PowerPoint PPT Presentation

About This Presentation
Title:

CS244a: An Introduction to Computer Networks

Description:

CS244a: An Introduction to Computer Networks Handout 6: The Transport Layer, Transmission Control Protocol (TCP), and User Datagram Protocol (UDP) – PowerPoint PPT presentation

Number of Views:118
Avg rating:3.0/5.0
Slides: 25
Provided by: NickMc9
Learn more at: http://web.stanford.edu
Category:

less

Transcript and Presenter's Notes

Title: CS244a: An Introduction to Computer Networks


1
CS244a 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
2
Outline
  • 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

3
The Transport Layer
  • What is the transport layer for?
  • What characteristics might it have?
  • Reliable delivery
  • Flow control

4
Review of the transport layer
Athena.MIT.edu
Leland.Stanford.edu
Nick
Dave
5
Layering 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
6
Layering Our FTP Example
Application
Application
Presentation
Transport
Session
Transport
Network
Network
Link
Link
Physical
The 4-layer Internet model
The 7-layer OSI Model
7
TCP 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.

8
TCP 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
9
TCP 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
10
which 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
11
The 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
12
Sequence 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
13
Initial Sequence Numbers
(Active) Client
(Passive) Server
Syn ISNA
Syn Ack ISNB
Ack
Connection Setup 3-way handshake
14
TCP 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?

15
TCP 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.

16
TCP Sliding Window
Round-trip time
Window Size
Host A
Host B
ACK
ACK
(1) RTT gt Window size
17
TCP 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
18
TCP 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
19
TCP 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
20
TCP 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
21
TCP 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).
22
User 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.

23
User-Datagram Protocol (UDP)
A1
A2
B1
B2
App
App
App
App
OS
UDP
Like TCP, UDP uses port number to demultiplex
packets
IP
24
User-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.
Write a Comment
User Comments (0)
About PowerShow.com