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:  40 points

   In reliable mode             --   15 points (if milestone A submitted, we will test this using that submission)
   In unreliable mode         --   25 points (40 points if milestone A not submitted)

   We will test both your sender as well as receiver. So, each of the above is equally divided across sender/receiver. That is
   7.5 points will be awarded if the data is correctly sent with our receiver and 7.5 correctly received with our sender.

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

   Multiple connections will be tested as well in both modes. One third of the points belongs to multiple connections. For
   example, under reliable mode, it will be 1/3 rd of 15 points which is 5 points.

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 40 points to correctness in unreliable mode.

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

Test
Points
   3-way handshake for network initiation 
10
   4-way handshake for network termination 10
   Biggest packets sent are 536 bytes  
5
   Receiver always ACKs the last in order byte 5
   Receiver does not ACK bytes outside of the receive window 5
   Packets straddling end of receive window will correctly be split 5
   Sender does not wait for ACK to send next packet in sliding window 3
   Receiver will buffer out-of-order data in receiver window
3
   Random initial sequence #
2
   SYN consumes 1 sequence # 
2
   ACKs do not consume sequence # 
2
   Duplicate packets are acked correctly 2
   Sender will go-back-n when necessary  2
   Sliding window size is negotiated correctly 
1
   Data is retransmitted if timeout should occur 
1
   If data has been sent 6 times, connection should terminate 1
   TCP options are discarded correctly 
1