Tutorial TCP 101 The Transmission Control Protocol TCP

  • Slides: 36
Download presentation
Tutorial: TCP 101 • The Transmission Control Protocol (TCP) is the protocol that sends

Tutorial: TCP 101 • The Transmission Control Protocol (TCP) is the protocol that sends your data reliably • Used for email, Web, ftp, telnet, p 2 p, … • 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 441 Copyright © 2005 Department of Computer Science 1

TCP 101 (Cont’d) • TCP is a connection-oriented protocol SYN/ACK GET URL Web Client

TCP 101 (Cont’d) • TCP is a connection-oriented protocol SYN/ACK GET URL Web Client ACK YOUR DATA HERE FIN ACK Web Server FIN/ACK CPSC 441 Copyright © 2005 Department of Computer Science 2

TCP 101 (Cont’d) • TCP slow-start and congestion avoidance ACK CPSC 441 Copyright ©

TCP 101 (Cont’d) • TCP slow-start and congestion avoidance ACK CPSC 441 Copyright © 2005 Department of Computer Science 3

TCP 101 (Cont’d) • TCP slow-start and congestion avoidance ACK CPSC 441 Copyright ©

TCP 101 (Cont’d) • TCP slow-start and congestion avoidance ACK CPSC 441 Copyright © 2005 Department of Computer Science 4

TCP 101 (Cont’d) • TCP slow-start and congestion avoidance ACK CPSC 441 Copyright ©

TCP 101 (Cont’d) • TCP slow-start and congestion avoidance ACK CPSC 441 Copyright © 2005 Department of Computer Science 5

TCP 101 (Cont’d) • This (exponential growth) “slow start” process continues until either: –

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 441 Copyright © 2005 Department of Computer Science 6

Tutorial: TCP 201 • There is a beautiful way to plot and visualize the

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 441 Copyright © 2005 Department of Computer Science 7

Seq. Num + X + X Key: X Data Packet + Ack Packet X

Seq. Num + X + X Key: X Data Packet + Ack Packet X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science Time 8

So What? • What can it tell you? • Everything!!! CPSC 441 Copyright ©

So What? • What can it tell you? • Everything!!! CPSC 441 Copyright © 2005 Department of Computer Science 9

Seq. Num + X + X Key: X Data Packet + Ack Packet RTT

Seq. Num + X + X Key: X Data Packet + Ack Packet RTT X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science 10

Seq. Num TCP Seg. Size + X + X Key: X Data Packet +

Seq. Num TCP Seg. Size + X + X Key: X Data Packet + Ack Packet X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science 11

Seq. Num + X + X Key: X Data Packet + Ack Packet X

Seq. Num + X + X Key: X Data Packet + Ack Packet X X X + + + TCP Connection Duration CPSC 441 Copyright © 2005 Department of Computer Science 12

Seq. Num + X + X Key: X Data Packet + Ack Packet Num

Seq. Num + X + X Key: X Data Packet + Ack Packet Num Bytes Sent X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science 13

Seq. Num + X + X ) X + c e + X /S

Seq. Num + X + X ) X + c e + X /S s te + X y + (B X Bytes t u p X h + g + X ou r + X Th + X vg A X + X + Sec Key: X Data Packet + Ack Packet CPSC 441 Copyright © 2005 Department of Computer Science 14

Seq. Num + X + X Key: X Data Packet + Ack Packet Access

Seq. Num + X + X Key: X Data Packet + Ack Packet Access Network Bandwidth (Bytes/Sec) X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science 15

Seq. Num + X + X Key: X Data Packet + Ack Packet X

Seq. Num + X + X Key: X Data Packet + Ack Packet X + X X + + Sender’s Flow Control Window Size CPSC 441 Copyright © 2005 Department of Computer Science 16

Seq. Num + X + X Key: X Data Packet + Ack Packet TCP

Seq. Num + X + X Key: X Data Packet + Ack Packet TCP Slow Start X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science 17

Seq. Num + X X Key: X Data Packet + Ack Packet X +

Seq. Num + X X Key: X Data Packet + Ack Packet X + X X X X + + CPSC 441 Copyright © 2005 Department of Computer Science Delayed ACK 18

Seq. Num Key: X Data Packet + Ack Packet X Packet Loss X X

Seq. Num Key: X Data Packet + Ack Packet X Packet Loss X X X + + X X ++ + + + CPSC 441 Copyright © 2005 Department of Computer Science Duplicate ACK 19

Seq. Num Cumulative ACK Key: X Data Packet + Ack Packet X X X

Seq. Num Cumulative ACK Key: X Data Packet + Ack Packet X X X + + X X + X ++ + X Retransmit + + CPSC 441 Copyright © 2005 Department of Computer Science 20

Seq. Num Key: X Data Packet + Ack Packet X X X + +

Seq. Num Key: X Data Packet + Ack Packet X X X + + X X + X ++ + X + + RTO CPSC 441 Copyright © 2005 Department of Computer Science 21

TCP 201 (Cont’d) • What happens when a packet loss occurs? • Quiz Time.

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 441 Copyright © 2005 Department of Computer Science 22

Seq. Num + X + X Key: X Data Packet + Ack Packet X

Seq. Num + X + X Key: X Data Packet + Ack Packet X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science 23

Seq. Num ? Key: X Data Packet + Ack Packet X + X X

Seq. Num ? Key: X Data Packet + Ack Packet X + X X + X + X + X + + CPSC 441 Copyright © 2005 Department of Computer Science 24

Seq. Num Key: X Data Packet + Ack Packet X + X X +

Seq. Num Key: X Data Packet + Ack Packet X + X X + X + X + X X + + + CPSC 441 Copyright © 2005 Department of Computer Science 25

Seq. Num + X + X Key: X Data Packet + Ack Packet X

Seq. Num + X + X Key: X Data Packet + Ack Packet X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science 26

Seq. Num Key: X Data Packet + Ack Packet X + X X +

Seq. Num Key: X Data Packet + Ack Packet X + X X + + X X X ? + X + X + X + + CPSC 441 Copyright © 2005 Department of Computer Science 27

Seq. Num Key: X Data Packet + Ack Packet X + X X +

Seq. Num Key: X Data Packet + Ack Packet X + X X + + X X X ++ X + X + X X + + + CPSC 441 Copyright © 2005 Department of Computer Science 28

Seq. Num + X + X Key: X Data Packet + Ack Packet X

Seq. Num + X + X Key: X Data Packet + Ack Packet X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science 29

Seq. Num Key: X Data Packet + Ack Packet X X X ? X

Seq. Num Key: X Data Packet + Ack Packet X X X ? X X + + X X + + + + CPSC 441 Copyright © 2005 Department of Computer Science 30

Seq. Num Key: X Data Packet + Ack Packet X X X X +

Seq. Num Key: X Data Packet + Ack Packet X X X X + + X X + X +++ + + + CPSC 441 Copyright © 2005 Department of Computer Science 31

Seq. Num + X + X Key: X Data Packet + Ack Packet X

Seq. Num + X + X Key: X Data Packet + Ack Packet X + X X + + CPSC 441 Copyright © 2005 Department of Computer Science 32

Seq. Num Key: X Data Packet + Ack Packet ? X + CPSC 441

Seq. Num Key: X Data Packet + Ack Packet ? X + CPSC 441 Copyright © 2005 Department of Computer Science 33

Seq. Num Key: X Data Packet + Ack Packet X X X + X

Seq. Num Key: X Data Packet + Ack Packet X X X + X + ++ X X + + + X CPSC 441 Copyright © 2005 Department of Computer Science 34

TCP 201 (Cont’d) • Main observation: – “Not all packet losses are created equal”

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 441 Copyright © 2005 Department of Computer Science 35

Congratulations! • You are now a TCP expert! CPSC 441 Copyright © 2005 Department

Congratulations! • You are now a TCP expert! CPSC 441 Copyright © 2005 Department of Computer Science 36