Data Communications II Autumn 2004

Problem set 1. (21.9.)

  1. A TCP connection has the line transmit rate of 100 Mbps and the round-trip time (RTT) of 200 ms.
    1. What is the maximun transmission rate of the connection without using the options of the TCP protocol?
    2. What window scale option gives the full line speed (transmission rate) for this connection?
    3. How is the window scale option used?

  2. How is the speed of a TCP connection affected by the fact that the maximum time-to-live for a TCP segment is 2 minutes? Is it possible to achieve the speed of 200 Mbps for a TCP connection at all? What different solutions there are for the problem of sequence numbers wrapping around too fast? Can time stamp option be a solution?

  3. Show as a diagram how the 'basic' TCP (TCP with slow start, retransmission timer, fast retransmit and fast recovery) handles the following situations. MSS is the default MSS = 536 bytes (RFC 879) and transmission rate is 100 kbps.
    1. In the very beginning of the transmit the very first packet arrives corrupted to the receiver. The size of the congestion window is 2 MSS.
    2. The size of the congestion window is 8 MSS. At first the sender succeeds to send one segment correctly, but after that an error burst corrups the following 3 packets.
    3. The size of the congestion window is 8 MSS. The second segment is routed to a congested router and it arrives to the receiver first after the fourth segment sent. Other segments arrive in order.
    In all these cases the round-trip-time RTT is 200 ms and value of the retransmission timer is set to 2 * RTT. The transmission is constrained only by the congestion window.

  1. Show with a diagram how the different cases of the former problem will be handled with a TCP using limited transmit. In what situations limited transmit seems to be usefull?
  1. Suppose the SACK-option (Selective ACK) is in use. Show with a diagram how the segments are sent in the following situations.
    1. The size of the congestion window is 8 MSS. At first the sender succeeds to send one segment correctly, but after that an error burst corrups the following 3 packets.
    2. The size of the congestion window is 8 MSS. The second segment is routed to a congested router and it arrives to the receiver first after the fourth segment sent. Other segments arrive in order.
  1. The sending TCP follows the Nagle algorithm.
    1. An application sends data byte by byte. How is it possible to force the TCP to send the data, even one byte, immediately after it has arrived? Are there situations, when this kind of fast but unefficient data transfer is needed and necessary?
    2. Could the Nagle algorithm be useful in avoiding the silly window syndrome?