Introduction to Data Communication 2007

Exercises 4 (12.4. due to the Easter Holiday)

  1. Stop and wait protocol rdt3.0
    1. Show with a diagram, how the rdt3.0 protocol behaves when first a packet is lost and after that the acknowledgement of the resent packet is also lost.
    2. Why is it enough to have one bit sequence number (only using numbers 0 and 1) in stop and wait protocol? Simulate the protocol and based on that reach conglusion that no more numbers are needed to distinquish the messages sent, even when the messages sent can get lost or corrupted. Can messages that are delayed for a long time cause problems?
    3. Is it also necessary to add numbers to ACK and NAK acknowledgements in the "stop-and-wait" protocol? Simulate the protocol to find out situations where unnumbered ACK or NAK can cause problems or show that it is not possible for that kind of situations to occur.
    4. Does rdt3.0 protocol work correctly in the situation where the link connection can reorder the messages sent? Give reasons to your answer by either a diagram showing that the protocol is not working correctly ie. providing reliable data transfer or by explaining why this is not possible.

  2. The window size and the amount of sequence numbers used
    1. Show that when using Go-back N with 8 sequence numbers (numbers 0,1,..., 7) the window size 8 causes problems. If the window size is 7, there are no such problems.
    2. Show that when using Selective Repeat with 8 sequence numbers (numbers 0,1,..., 7) already the window size 5 causes problems.

  3. The operation of sliding window protocols
    Suppose an error burst destroys frame D(n+1), the acknowledgement of the previous frame (D(n)) and also the next acknowlegdement sent. Simulate by showing a diagram the operation of
    1. the Go-Back -N protocol,
    2. the Selective Repeat protocol.
    3. Would, in this situation, the negative acknowledgement NAK be useful for either of these protocols? Could there be any disadvantages when using NAK?
    4. Is it necessary to have a timer in both these protocols?

  4. Slow start
    1. Why is slow start used? What are the advantages? Can it have disadvantages? If yes, then in what situations?
    2. Consider the effect of using slow start on a line with 200-msec round-trip time and no congestion, so the acknowledgements arrive in time. The receive window is 18 KB and the maximum segment size is 2 KB. The threshold value at first is 30 KB. How long does it take before the first full window can be sent? The transmission rate of the link is so high that the sending time of the segments does not matter.
    3. After having sent the full reveiver window of segments, the sender does not receive the acknowledgement in time, and the retransmission timer times out. How does the sender now continue to send after that? Does it matter if the TCP version used is TCP Tahoe or TCP Reno?

  5. More congestion control: Fast recovery, retransmission timer
    1. What is meant with Fast Recovery? When is it possible to use it and what advantages does it bring?
    2. Why, in the TCP congestion control, it is so important to adjust the retransmission timer properly? How is the proper value for the timer is achieved? What happens in the congestion control if the retransmission timer is set to a value i) too small or ii) too large?

  6. Transport layer in function
    A student is surfing the Web and clicks opens an URL link. The result is that after a short while his computer screen shows the corresponding page of this URL.
    Explain what has happened on the transport layer. What transport layer protocols have been used and for what purpose? Show using a diagram, what transport layer segments have been exchanged between different systems. Explain also the contents of those segments in principle.