Programming assignment 2 grading guidelines.

We will try to honor these guidelines as much as possible in assigning your grade. But, there is a small possibility that we may revisit these guidelines and change them according to what we see across the class.


Correctness of data sent:  70 points

   We will test both your sender and receiver together for 50 points. If you submitted milestone A we will split the points with 30 for unreliable and 20 for reliable mode.

   If Milestone A is submitted, Milestone A will be tested in the reliable mode. If Milestone A is not submitted, we will not
   test for the reliable mode at all for your Milestone B submission. Instead we will test your Milestone B submission for
   unreliable mode and allocate the full 50 points to correctness in unreliable mode.

   Multiple connections will be tested in unreliable mode. This will be worth 10 points.

   We will also test for interoperability in unreliable mode. Your receiver will be tested with our sender and vice-versa for a total of 10 points.

   Full corruption   -- 0%
   Some corruption-- 50%
   No corruption     -- 100%

Adherence to the protocol specification: Total 30 points (distributed as follows)

Test
Points
   3-way handshake for network initiation 
6
   4-way handshake for network termination 6
   Biggest packets sent are 536 bytes  
3
   Receiver always ACKs the last in order byte 3
   Receiver does not ACK bytes outside of the receive window 3
   Packets straddling end of receive window will correctly be split 2
   Receiver will buffer out-of-order data in receiver window
2
   Random initial sequence #
1
   SYN consumes 1 sequence # 
1
   ACKs do not consume sequence # 
1
   Duplicate packets are acked correctly 1
   Sliding window size is negotiated correctly 
1