EECS 489 Homework #4

Due December 7th @ 1:30


Please include the last 4 digits of your SS number to assist in grade posting

Short answer section

  1. (12 points) Consider an ARQ algorithm running over a 20-km point to point fiber optic link. ((ARQ) Automatic Repeat reQuest a.k.a (PAR) Positive Acknowledgment with Retransmission)
    1. Compute the propagation delay for this link, assuming that the propagation speed is 2 * 10^8 m/s.

    2. Suggest a suitable time-out value for the ARQ scheme to use.

    3. Why might it still be possible for the ARQ algorithm to time out and retransmit a frame, given this time-out value?

  2. (18 points) Suppose that we want to design a reliable data transfer protocol that only uses negative acknowledgments. The sender operates in a selective repeat fashion with an infinite window size (you may assume an infinitely large sequence number space), and only retransmits a packet when it receives a NACK from the receiver. The channel may lose or corrupt messages, and the delays are variable and unknown.
    1. Would sequence numbers be necessary in this protocol? Why or why not?

    2. Would a timer be necessary or advisable in this protocol? Why or why not? If so, would it be preferable to have the timer at the sender or receiver? Why?

    3. Describe (in words or in pseudocode) the operation of a NACK-only receiver that would operate with this sender. If there are scenarios (no matter how unlikely) that your receiver would fail to operate reliably, identify these scenarios.

    4. What would be the most important advantage of a NACK-based protocol?

  3. (10 points) Draw a timeline diagram for the sliding window algorithm using go-back-N-with-NACK discussed in lecture. Set both the sending and receiving window sizes equal to 3 frames for the following two situations. Use a time-out interval of about 2 * RRT. Assume a total of 8 frames are being sent and continue the time line until all 8 frames are received.
    1. The 4th frame is lost.
    2. The 4th, 5th and 6th frames.

  4. (5 points) Why does UDP exist? Would it not have been enough to just let the user process send raw IP packets?

  5. (5 points) A CPU executes instructions at the rate of 100 MIPS (million instructions per second). Data can be copied 64 bits at a time at a cost of six instructions. If an incoming packet has to be copied twice, can this system handle a 1-Gbps line? For simplicity, assume that all instructions, even those instructions that read or write memory, run at the full 100-MIPS rate.

  6. (5 points) If the data link layer is providing reliable service why does the transport layer also provide reliable service? (This is a bit of a trick question and a variety of reasonable arguments will be accepted.)

  7. .

    (10 points) Examine the figure to the right. Here both a CONNECTION REQUEST and an acknowledgment to a CONNECTION ACCEPTED which where floating around in the network arrive at host B. Both arrive before host A gets a chance to reject the connection. This is unfortunate because host B has accepted the stale DATA packet with sequence number X causing unknown havoc. However the TCP handshake protocol does not have this problem and there is something wrong with this picture. How does TCP deal with this double duplicate delayed packet delivery scenario and what is wrong with this picture?



  8. (7 points) Give an example of what could go wrong if a packet is sent with a sequence number assigned to it from the "forbidden zone".

  9. (5 points) (Comer 13.8 p.~228) What are the arguments for and against automatically closing idle connections?

  10. (10 points) (Comer 13.16, p.~229) Assume TCP is sending segments using a maximum window size (64 Kbytes) on a channel that has infinite bandwidth and an average round-trip time of 20 milliseconds. What is the maximum throughput? How does throughput change if the round-trip time increases to 40 milliseconds (while bandwidth remains infinite)?