Part I: Introduction

Download Report

Transcript Part I: Introduction

TCP Plots
r Slides originally from Williamson at Calgary
r Minor modifications are made
CPSC 601.38
1
Tutorial: TCP 101
r The Transmission Control Protocol (TCP) is
r
r
r
r
the protocol that sends your data reliably
Used for email, Web, ftp, telnet, p2p,…
Makes sure that data is received correctly:
right data, right order, exactly once
Detects and recovers from any problems
that occur at the IP network layer
Mechanisms for reliable data transfer:
sequence numbers, acknowledgements,
timers, retransmissions, flow control...
CPSC 601.38
2
TCP 101 (Cont’d)
r TCP is a connection-oriented protocol
SYN
SYN/ACK
GET URL
ACK
Web Client
Web Server
YOUR DATA HERE
FIN
ACK
FIN/ACK
CPSC 601.38
3
TCP 101 (Cont’d)
r TCP slow-start and congestion avoidance
ACK
CPSC 601.38
4
TCP 101 (Cont’d)
r TCP slow-start and congestion avoidance
ACK
CPSC 601.38
5
TCP 101 (Cont’d)
r TCP slow-start and congestion avoidance
ACK
CPSC 601.38
6
TCP 101 (Cont’d)
r This (exponential growth) “slow start”
process continues until either:
m
m
m
packet loss: after a brief recovery phase, you
enter a (linear growth) “congestion avoidance”
phase based on slow-start threshold found
limit reached: slow-start threshold, or
maximum advertised receive window size
all done: terminate connection and go home
CPSC 601.38
7
Tutorial: TCP 201
r There is a beautiful way to plot and
visualize the dynamics of TCP behaviour
r Called a “TCP Sequence Number Plot”
r Plot packet events (data and acks) as
points in 2-D space, with time on the
horizontal axis, and sequence number on
the vertical axis
r Example: Consider a 14-packet transfer
CPSC 601.38
8
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
+
+
+
+
Time
CPSC 601.38
9
So What?
r What can it tell you?
r Everything!!!
CPSC 601.38
10
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
RTT
X
X
+
+
+
+
+
+
Time
CPSC 601.38
11
SeqNum
TCP
Seg.
Size
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
+
+
+
+
Time
CPSC 601.38
12
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
+
+
+
+
Time
TCP Connection Duration
CPSC 601.38
13
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
Num
Bytes
Sent
X
+
X
X
+
+
+
+
+
+
Time
CPSC 601.38
14
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Bytes
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
+
+
+
+
Sec
Time
CPSC 601.38
15
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
Access
Network
Bandwidth
(Bytes/Sec)
X
+
X
X
X
X
X
X
+
+
+
+
+
+
Time
CPSC 601.38
16
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
+
+
+
+
Sender’s
Flow Control
Window Size
Time
CPSC 601.38
17
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
TCP
Slow
Start
X
+
X
X
X
X
X
X
+
+
+
+
+
+
Time
CPSC 601.38
18
SeqNum
+
X
+
X
X
+
X
X
+
X
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
Delayed ACK
+
Time
CPSC 601.38
19
SeqNum
Key: X Data Packet
+ Ack Packet
X
Packet
Loss
X
X
X
X
X
X
X
X
X
+
X
X
+
+
+
+
++
+
+
+
Duplicate
ACK
+
+
Time
CPSC 601.38
20
SeqNum
Cumulative ACK
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
X
X
X
X
+
X
X
+
X
++
+
+
+
X
Retransmit
+
+
+
+
+
+
Time
CPSC 601.38
21
SeqNum
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
X
X
X
X
+
X
X
+
X
++
+
+
+
X
+
+
+
+
+
+
Time
RTO
(Retranmission Timeout)
CPSC 601.38
22
TCP 201 (Cont’d)
r What happens when a packet loss occurs?
r Quiz Time...
m Consider a 14-packet Web document
m For simplicity, consider only a single packet loss
CPSC 601.38
23
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
+
+
+
+
Time
CPSC 601.38
24
SeqNum
?
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
X
+
X
+
X
+
X
+
X
+
X
+
+
+
+
+
+
Time
CPSC 601.38
25
SeqNum
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
X
+
X
+
X
+
X
+
X
+
X
X
+
+
+
+
+
+
+
Time
CPSC 601.38
26
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
+
+
+
+
Time
CPSC 601.38
27
SeqNum
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
X
?
+
X
+
X
+
X
+
X
+
X
+
+
+
+
+
+
Time
CPSC 601.38
28
SeqNum
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
X
++
X
+
X
+
X
+
X
+
X
+
X
+
+
+
+
+
+
Time
CPSC 601.38
29
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
+
+
+
+
Time
CPSC 601.38
30
SeqNum
Key: X Data Packet
+ Ack Packet
X
X
X
?
X
X
X
X
X
X
X
X
+
X
X
+
+
+
+
+
+
+
+
+
Time
CPSC 601.38
31
SeqNum
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
X
X
X
X
X
X
+
X
X
+
X
+++
+
+
+
+
+
+
+
+
+
Time
CPSC 601.38
32
SeqNum
+
X
+
X
+
X
+
X
+
X
+
X
+
X
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
+
X
X
+
+
+
+
+
+
Time
CPSC 601.38
33
SeqNum
Key: X Data Packet
+ Ack Packet
?
X
+
X
+
Time
CPSC 601.38
34
SeqNum
Key: X Data Packet
+ Ack Packet
X
X
X
X
X
X
+
+
+
+
+
X
X
X
+
+
+
++
X
Time
CPSC 601.38
35
TCP 201 (Cont’d)
r Main observation:
m
“Not all packet losses are created equal”
r Losses early in the transfer have a huge
adverse impact on the transfer latency
r Losses near the end of the transfer always
cost at least a retransmit timeout
r Losses in the middle may or may not hurt,
depending on congestion window size at the
time of the loss
CPSC 601.38
36
Congratulations!
r You are now a TCP expert!
r Or you are so confused now that you will
finally take my advice and buy the TCP
book and read through some chapters
CPSC 601.38
37