Introduction to Data Communication Fall 2011

Exercises 4

  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 acknowledgment 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 conclusion that no more numbers are needed to distinguish 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 acknowledgments 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 acknowledgment 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 acknowledgment 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. TCP connection Establishment, segment numbering and TCP flow control
    1. Show the connection establishment segments sent, when host A chooses to start segment numbering from 56 and B from the number 182.
    2. Show the contents of the TCP segment fields "Sequence number" and "Acknowledge number" in the situation where A first sends to B a segment of 1000 bytes. B acknowledges this and sends to A a segment of 800 bytes, that A acknowledges.
    3. Hosts A and B are directly connected with a 200 Mbps link. There is one TCP connection between the two hosts, and host A is sending to host B an enormous file over this connection. Host A can send application data into the link at 100 Mbps, but host B can read out of its TCP receive buffer at a maximum rat of 50 Mbps. Describe the effect of TCP flow control.

  5. TCP congestion control
    1. Why is slow start used? What are the advantages? Can it have disadvantages? If yes, then in what situations? What is meant by congestion avoidance?
    2. Consider the effect of using slow start on a line with 200-msec round-trip time and no congestion, so the acknowledgments 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 receiver window of segments, the sender does not receive the acknowledgment 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?
    4. 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 on 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.