copyright © 2005 department of computer science cpsc 641 winter 20111 tutorial: tcp 101 the...
Post on 22-Dec-2015
216 views
TRANSCRIPT
CPSC 641 Winter 2011 1
Copyright © 2005 Department of Computer Science
Tutorial: TCP 101
• The Transmission Control Protocol (TCP) is 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 641 Winter 2011 2
Copyright © 2005 Department of Computer Science
TCP 101 (Cont’d)
• TCP is a connection-oriented protocol
SYNSYN/ACK
ACKGET URL
YOUR DATA HERE
FIN FIN/ACKACK
Web Client Web Server
CPSC 641 Winter 2011 3
Copyright © 2005 Department of Computer Science
TCP 101 (Cont’d)
• TCP slow-start and congestion avoidance
ACK
CPSC 641 Winter 2011 4
Copyright © 2005 Department of Computer Science
TCP 101 (Cont’d)
• TCP slow-start and congestion avoidance
ACK
CPSC 641 Winter 2011 5
Copyright © 2005 Department of Computer Science
TCP 101 (Cont’d)
• TCP slow-start and congestion avoidance
ACK
CPSC 641 Winter 2011 6
Copyright © 2005 Department of Computer Science
TCP 101 (Cont’d)
• This (exponential growth) “slow start” process continues until either:– 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 641 Winter 2011 7
Copyright © 2005 Department of Computer Science
Tutorial: TCP 201
• There is a beautiful way to plot and visualize the dynamics of TCP behaviour
• Called a “TCP Sequence Number Plot”• 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
• Example: 20 KB Web page (14 packets)…
CPSC 641 Winter 2011 8
Copyright © 2005 Department of Computer Science
Time
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
CPSC 641 Winter 2011 9
Copyright © 2005 Department of Computer Science
So What?
• What can it tell you?
• Everything!!!
CPSC 641 Winter 2011 10
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
RTT
CPSC 641 Winter 2011 11
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
TCPSeg.Size
CPSC 641 Winter 2011 12
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
TCP Connection Duration
CPSC 641 Winter 2011 13
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
NumBytesSent
CPSC 641 Winter 2011 14
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
Avg T
hrou
ghpu
t (Byte
s/Sec
)
Bytes
Sec
CPSC 641 Winter 2011 15
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++Access
Network Bandwidth(Bytes/Sec)
CPSC 641 Winter 2011 16
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
Sender’sFlow ControlWindow Size
CPSC 641 Winter 2011 17
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
TCP SlowStart
CPSC 641 Winter 2011 18
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
+
+
+
++
+
+
Delayed ACK
CPSC 641 Winter 2011 19
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet
XXXX
XXXX
XX
X
++
++++
+
++++
PacketLoss
DuplicateACK
CPSC 641 Winter 2011 20
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet
XXXX
XXXX
XX
X
++
++++
+
+++
X+
Retransmit
Cumulative ACK
+
CPSC 641 Winter 2011 21
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet
XXXX
XXXX
XX
X
++
++++
+
+++
X+
RTO
+
CPSC 641 Winter 2011 22
Copyright © 2005 Department of Computer Science
TCP 201 (Cont’d)
• What happens when a packet loss occurs?
• Quiz Time...– Consider a 14-packet Web document– For simplicity, consider only a single packet loss
CPSC 641 Winter 2011 23
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
CPSC 641 Winter 2011 24
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
X
++
++++
+
+++
++
?
CPSC 641 Winter 2011 25
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
X
++
++++
+
+++
++
X +
CPSC 641 Winter 2011 26
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
CPSC 641 Winter 2011 27
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
X
++
++++
+
++
++
?
CPSC 641 Winter 2011 28
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
+
+++
++
CPSC 641 Winter 2011 29
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
CPSC 641 Winter 2011 30
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXX
XXXX
XX
XX
++
++++
+
++
?
CPSC 641 Winter 2011 31
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXX
XXXX
XX
XX
++
++++
+
+++++
X
+
CPSC 641 Winter 2011 32
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet X
XXXX
XXXX
XX
XX
++
++++
+
++++
++
CPSC 641 Winter 2011 33
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet
X +?
CPSC 641 Winter 2011 34
Copyright © 2005 Department of Computer Science
Seq
Num
X +
Key: X Data Packet + Ack Packet
XX
X + ++X
XX +
+
+
X +X +X +
CPSC 641 Winter 2011 35
Copyright © 2005 Department of Computer Science
TCP 201 (Cont’d)• Main observation:
– “Not all packet losses are created equal” - CLW 2002
• Losses early in the transfer have a huge adverse impact on the transfer latency
• Losses near the end of the transfer always cost at least a retransmit timeout
• Losses in the middle may or may not hurt, depending on congestion window size at the time of the loss