Assignment 4

Due: May 15, 2001

Add the sliding window algorithm and flow control to your implementation of TCP. This means adding support for the relevant socket calls: read and write. Your implementation should be able interoperate with the standard Linux implementation.

We will evaluate your solution by running a test program that opens a connection, transfers some number of bytes in both directions, and closes the connection. You should be able to support multiple simultaneous connections, and multiple incarnations of the same connection. You should continue to support the -cheat command-line option from Assignment 3.

Your implementation need not support:

Your implementation should support:

Watch the newsgroup for updates to these two lists.

Your socket interface should be identical to the Linux socket interface with a "cs461_" prefix on each of the function names. Click here for sample test programs that use the required interface.

Turn in a hardcopy report that briefly describes your design, and reports the rate at which your implementation can send/receive data. Also turn in the source code for your implementation.