Data Communications II Autumn 2001

Problem set 1. (Tuesday 30.10.2001)

  1. The TCP layer gets data to send from an application. Suppose the amount of data is 15 Kbytes and in the net it is possible to send segments of 1500 databytes. Explain alltogether what kind of segments and in which order are transmitted between the sender and the receiver in order to get the data transmission carried out. Explain also the content of the relevant fields in these segments. You can assume that the data transmission is not constrained by the receiver window neither by the congestion window.

  2. A TCP connection has the line transmit rate of 100 Mbps and the round-trip time (RTT) of 100 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?

  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 3 * RTT. The transmission is constrained only by the congestion window.

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

  5. Show with a diagram how the different cases of the problem 3 will be handled with a TCP using the SACK option (Selective ACK). In what situations the SACK option seems to be usefull?

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