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.