TCP Control

Overview

The description of TCP in the previous unit was limited to the basics of the end-to-end reliable stream service that TCP provides. It is worthwhile to know something about the internal workings of TCP with regard to the way it controls channels and the traffic that crosses them. This is a practical discussion of the real-world problems that plague all protocols and the attempts that have been made to resolve them.

Things to Think About

If you were going to create a practical sliding window protocol for end-to-end service, how would you deal with:

Preparation

Read 5.2.5 - 5.2.8 and 6.3 in the text and the notes.

Knowledge, Comprehension and Problem Solving

Terms

Questions

  1. A TCP sender sees and AWS of 30,000 bytes and has a CWS of 35,000 bytes; LAR is 23,000 and LBS is 26,500. What is the effective window size?
  2. Assume that you have a TCP channel that is tranferring a 1 MB file and that all segments are 1 KB in length and each segment is acknowledged. How long does it take for the congestion window to reach 64 KB in size assuming that round-trip times average 100 ms and there are no losses or congestion using additive increase? Using slow start?
  3. A TCP channel suffers a course-grained timeout when the congestion window size is 40 segments and the threshold is 45 segments? What is the new CWS if the current operational mode is slow start? Collision avoidance? What is the new threshold for each?
  4. A TCP channel has an AWS of 32,000 bytes and all segments sent are 1000 bytes. Numbering segments starting with 1 and numbering each segment, including duplicates, graph the CWS in segments for the first 40 sends where the segments 6 and 27 have course-grained timeouts and segments 17 and 36 have fine-grained timeouts. Ignore fast retransmit and fast recovery.
  5. Assume that fast retransmit and fast recovery avoid the course-grained timeout at segment 27. What are the new conditions for the remaining segments?

Analysis, Synthesis and Evaluation

  1. Why might an increment of 1/CWS * MSS for every ACK not provide the correct rate of increase for the additive increase?
  2. Give a scenario for a course-grained or deal-channel timeout and for a fine-grained or live-channel timeout.
  3. Under what conditions would a course-grained timeout occur even using fast retransmit?