Project 4 Test Cases

Last updated 1 May 01 KDP

I. Basic Connection Establishment and Termination

101: connect/accept
102: connect/accept, then close
103: connect blocks until connected
104: can make multiple connections to same remote host/port
105: can make multiple simultaneous connections to same remote host/port
106: can reconnect to same remote host/port many times
107: try to connect to invalid host
108: connect to port on local host
109: accept does not block
110: close does not block

II. Basic User Data Transfer

201: read/write work
202: read returns -1 once connection closed by remote host
203: read returns queued data even after connection closed by remote host
204: read does not block
205: small write does not block
If the write is small enough to fit entirely in buffers, it should return immediately.
206: read treats queued data as byte stream
207: write returns -1 once connection closed by remote host
208: write flushes data after close

III. Error Handling During Connection Establishment

301-303: dropping packets during connection establishment
Can you still make a connection if packets are dropped during and shortly after making the calls to connect() and accept()?

IV. Advanced User Data Transfer

401: one-way bulk data transfer
If we write a significant amount of data in one end of the connection, can we read it back out on the other end? That is, does the network actually allow me to transfer data.
402: two-way bulk data transfer
403: one-way bulk data transfer with dropped packets
404: two-way bulk data transfer with dropped packets
405-407: make sure send window size is 16 packets per connection
Window size means how many packets can be transmitted without having to get an ACK. The spec requires this to be exactly 16.
408: transfer one byte at very low network reliability
Your protocol is required to work well at moderate levels of reliability, but it is still required to work (though poorly) at very low levels of reliability.

V. Advanced Connection Termination

501-502: dropping packets during connection termination
Does a connection close properly when packets are dropped during termination.