CS 3251 - Computer Networks I

Written Homework Assignment 3 -
Assigned: March 8, 2007
Due: Thursday, March 15, 2007 -- 11:59pm


Submission Instructions Please submit your homework solutions by EMAIL to me at Russ.Clark@gatech.edu. Make sure to include [CS3251] in subject line. Please submit your homework as either Plain Text or PDF format. Do NOT send Word Documents!

Late Policy: You have a total of 3-days for a late budget which you may use for any assignment in a minimum of day increments.


  1. Question 1

    A stop and wait ARQ protocol operates on a 30Mbps channel (each way). Data packets are 2,000 bytes each, acknowledgement packets are 100 bytes each (including headers) and propagation delays are 50 milliseconds each way.

    i) Assuming that processing delays are negligible, what is the utilization of the channel from the data transmitter to the data receiver. Note: Utilization is the percentage of time the sender's transmitter is busy.
    ii) Repeat with a data rate at 100 Kbps

  2. Question 2: TCP State Diagrams

    Refer to the TCP Connection State Diagram we went over in class. (If you were not in class you can find the diagram in the TCP RFC.) Give a packet flow diagram that shows the exchange of packets between the client and server that causes the client to go from ESTABLISHED to FIN-WAIT-1 to CLOSING to TIMED-WAIT to CLOSED. Be sure to include the messages sent as well as the complete state transitions for both the client and the server.

  3. Question 3: NAK Based Protocol Design

    Design a pipelined ARQ protocol that uses NAK's but no ACK's. You can use timers but you may not use positive acknowledgement. Only negative acknowledgement is allowed. Give both the sender and receiver algorithms. Assume bit-errors, lost packets and reordering. Show, using timing diagrams, that your protocol correctly overcomes these errors.

  4. Question 4: NAK Based Protocol Performance

    For your protocol in the previous question, how does the performance of this approach compare to the ACK based protocols we discussed in class? You should consider both the effective data throughput of your protocol as well as the overhead from control messages. For what applications and network environments might a NAK based protocol be best suited?