Copyright © 2005 Department of Computer Science CPSC 641 Winter 20111 Tutorial: TCP 101 The...

36
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...
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    1

Transcript of Copyright © 2005 Department of Computer Science CPSC 641 Winter 20111 Tutorial: TCP 101 The...

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

CPSC 641 Winter 2011 36

Copyright © 2005 Department of Computer Science

Congratulations!

• You are now a TCP expert!