You can run your sender, receiver and the link emulator either on one, two or three machines. The receiver process sends its acknowledgements directly to the data sender. Host 1 will be sending packets to the machine which is running the udpl program. The udpl program will forward the packets to Host 2. For testing, the following will be used.
Sequence numbers start at zero.
You do not have to worry about congestion or flow control, so the sender window size should be a commandline-setable fixed parameter. Your sender application should read data from a file and your receive application should write data to a file, both specified as command-line parameters. The window size is measured in bytes and you can use any default value. You can assume that the TAs will specify all arguments when testing your client and server. You need to implement the 20-byte TCP header format, without options.