See attached file for complete assignment This assignment will continue to build on the rcopy and server programs. This program will use UDP and will use your CRC-32 functionality from program #3 for error detection. The major change is to implement a sliding window flow control algorithm using Go-Back-N ARQ. Refer to your book (pages 278-285) for details on how to implement this protocol. In order to induce errors you will not use the normal sendto(…) function. Instead you will use a sendtoErrB(…) function. This function will not only drop packets but will periodically flip bits in your data You may not use the normal sendto(…) in your program. In this assignment you will implement two programs in C++ (or C). The first is rcopy. This program will take two file names, a remote-file name and a local-file name. The second program is the server, which will accept a request for a file from the rcopy program and transmit the file back. The client will then write the file into the local file name. 1) rcopy: This program is responsible for taking the file names as command line arguments and communicating with the server program to request the remote-file. This program will then receive the file and store it to disk using the local-file name. The program will be run as: rcopy remote-file local-file error-percent remote-machine remote-port where: remote-file: is the file on the remote machine to be copied local-file: is the file copied into on the local machine error-percent is the percent of packets that are in error (floating point number) remote-machine: is the remote machine running the server remote-port: is the port number of the server application 2) server: This program is responsible for accepting requests for files from the rcopy program and transmitting the file back. This program should never terminate (unless you kill it with a ctrl-c). It should continually process requests from the rcopy program. The server needs to handle error conditions such as non-existing files by passing back a flag to the rcopy program and then waiting for a new file request. The server should output one port number at the beginning of its run time, to be used by the rcopy program. The server program will be run as: server error-percent window-size where:
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request.
3) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).