A project assigned in Dr. Smith's Introduction to Computer Networks class, CPE 464.
Computer network architectures; communications protocol standards; services provided by the network; historical and current examples presented.
rcopy.c
is a remote file transfer client that communicates with the file server via UDP. rcopy.c
will create the output file and write the data packets sent from the server to disk.
The file copy client relies on a self-written "Sliding Window" data structure in the file titled window.c
.
Ref: (https://www.baeldung.com/cs/sliding-window-algorithm)
Usage: rcopy from-filename to-filename window-size buffer-size error-percent remote-machine remote-port
Where:
from-filename
: is the name of the file to download from the server (server sends this down)to-filename
: is the name of file created by rcopy (rcopy writes to this file)window-size
: is the size of the window in PACKETS (i.e. number of packets in window)buffer-size
: is the number of data bytes (from the file) transmitted in a data packet2error-percent
: is the percent of packets that are in error (floating point number)remote-machine
: is the remote machine running the serverremote-port
: is the port number of the server applicationserver.c
is a remote file server and is responsible for downloading the requested file to rcopy. This program only terminates unless killed with ctrl-c and will continually process file requests for multiple clients simultaneously.
The server takes two arguments, an error percentage and an optional port number for clients to use.
Usage:server error-percent optional-port-number
Where:
error-percent
: is the percent of packets that are in error (floating point number)optional-port-number
: allows the user to specify the port number to be used by the server (If this parameter is not present you should pass a 0 (zero) as the port number to bind().)Utilize MAKE to build the output files.
Packet Flags Used:
Please view the selective_reject_assignment... pdf for more verbose project details.