tcp sequence number plots
play

TCP Sequence Number Plots Carey Williamson Department of Computer - PowerPoint PPT Presentation

TCP Sequence Number Plots Carey Williamson Department of Computer Science University of Calgary Tutorial: TCP 101 The Transmission Control Protocol (TCP) is the protocol that sends your data reliably Used for email, Web, ftp, telnet,


  1. TCP Sequence Number Plots Carey Williamson Department of Computer Science University of Calgary

  2. 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... “TCP is the four -wheel drive of transport-layer protocols. It can go anywhere, but sometimes it is a pretty bumpy ride!”

  3. TCP 101 (Cont’d) ▪ TCP is a connection-oriented protocol SYN SYN/ACK ACK GET URL Web Client Web Server YOUR DATA HERE FIN FIN/ACK ACK

  4. TCP 101 (Cont’d) ▪ TCP slow-start and congestion avoidance ACK

  5. TCP 101 (Cont’d) ▪ TCP slow-start and congestion avoidance ACK

  6. TCP 101 (Cont’d) ▪ TCP slow-start and congestion avoidance ACK

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

  8. 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)…

  9. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X + X + X + X + X + X + X + X Time

  10. So What? ▪ What can it tell you? ▪ Everything!!!

  11. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X X + + X + X RTT + X + X + X + X

  12. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X X + + X + X + X TCP + X Seg. + X + Size X

  13. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X X + + X + X + X + X + X + X TCP Connection Duration

  14. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X X + Num + X + Bytes X + X Sent + X + X + X

  15. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X Bytes X + + X + X + X + X + X + X Sec

  16. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X Access + X Network + X Bandwidth X + + (Bytes/Sec) X + X + X + X + X + X

  17. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X X + + X Sender’s + X Flow Control + X Window Size + X + X + X

  18. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X TCP X + Slow + X + Start X + X + X + X + X

  19. + Key: X Data Packet X + X + Ack Packet X SeqNum + X X + X X X + X Delayed ACK + X X + X X + X

  20. Key: X Data Packet X + Ack Packet SeqNum + + X + Packet X + X Loss + X X + + Duplicate X + X ACK + X + X + X + X

  21. Cumulative ACK Key: X Data Packet + X + Ack Packet X SeqNum + + X + X + X + Retransmit X X + + X + X + X + X + X + X

  22. Key: X Data Packet + X + Ack Packet X SeqNum + + X + X + X + X X + + X + X + X + X + RTO X + X

  23. 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

  24. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X X + + X + X + X + X + X + X

  25. ? Key: X Data Packet + X + Ack Packet + X SeqNum + X + X + X + X X + + X + X + X + X + X + X

  26. + X Key: X Data Packet + X + Ack Packet + X SeqNum + X + X + X + X X + + X + X + X + X + X + X

  27. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X X + + X + X + X + X + X + X

  28. Key: X Data Packet X ? + Ack Packet + X SeqNum + X + X + X + X X + + X + X + X + X + X + X

  29. + Key: X Data Packet X X + Ack Packet + + X SeqNum + X + X + X + X X + + X + X + X + X + X + X

  30. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X X + + X + X + X + X + X + X

  31. Key: X Data Packet X X + Ack Packet X SeqNum ? + X + X + X X + + X + X + X + X + X + X

  32. + Key: X Data Packet X X + Ack Packet X SeqNum X + ++ + X + X + X X + + X + X + X + X + X + X

  33. + Key: X Data Packet X + X + Ack Packet + X SeqNum + X + X + X + X X + + X + X + X + X + X + X

  34. Key: X Data Packet + Ack Packet SeqNum ? + X + X

  35. Key: X Data Packet + Ack Packet SeqNum X + X + + X X + + X + X X X + + + X + X

  36. 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

  37. Congratulations! ▪ You are now a TCP expert!

Recommend


More recommend