College of Computer Science

Northeastern University

COM1337: Internetworking

 

Fall 2001

April 1st, 2002

 

Assignment 1 (Due April 22nd, 2002)

 

 

 

 

 

 

The goal is to develop a file transfer application that can recover from crashes.

1.      (20 points) Write the client and server programs that allows the transfer of files. Use the socket interface to make the client communicate with the server. This application has to implement only the basic mechanisms of file transfer: one connection at a time and download of local files from the server to the client. There is no need to implement the upload mechanism.

2.      (20 points) Assuming that the client program could crash during the transfer of “big files”. Propose and implement a recovery mechanism that allows the client to resume the file transfer from the crash point.

3.      (10 points) One potential problem of the crash-recovery mechanism is inconsistent transfer of files. A file could change between the crash instant and when the transfer resumes. Propose and implement a mechanism that avoids such inconsistencies.

 

Provide a zipped archive with the source files and design document (to be sent to the TA). Your files should compile on CCS Solaris environment. Describe how the different functionalities were implemented. Finally, document how to:

·        Run the server,

·        Run the client to download a file (e.g., “download filename”).

 

Your design should be flexible enough to allow extension to add new commands (e.g., upload), and services (e.g., security).