In order for the receiver to successfully receive the file, it will need to get some information (header) before the transmission begins. The first packets transmitted should then indicate the details of the file to transmit (size, checksum?, etc.) You can assume that a lost connection will never occur in the first seconds of transmission (you don't need to handle the fact that the header may not be correctly transmitted)
Interface can be console or graphical.
* The client application must be able to transmit a large binary file (~40MB) over to the server.
* The application must use UDP protocol.
* Communication must support short interruptions (cable unplugged and such)
* Communication implementation must follow either a Go-Back N or Selective Repeat windowing system.
* The window size to the sender must be of 4 packets or more.
* The packets size must be adjusted so it is optimized in the context of packet retransmission.
* A dashboard on each side (client and server) must be implemented in order to follow the progression of the transmission, and must indicate any difficulty in transmission.
* The file transmission time must be comparable to that of a standard FTP application.