V22.0480-002 Special Topics: Networks
Homework 4: Create a networking application using the socket interface to implement a "remote file viewer" service over UDP.
The protocol contains two parts:
1. The client sends the name of the file to the server, and the server returns the size in bytes of the file.
2. The client sends the name of the file, an integer offset into the file, and the number of bytes to return. The server opens the file, seeks to the requested offset, reads the requested number of bytes, and returns the bytes to the client. The client may not ask for more than 50 bytes at a time.
The client application takes a file name as command line arguments. For example, you can invoke the client as follows:
$ remcat i5 file1
This is the contents of file1.
Be sure to handle error conditions correctly! For example:
$ remcat i5 file2
remcat: cannot access file2 on i5.
And, as with all connectionless applications, make sure you handle timeouts, retransmissions, and duplicate responses!
The address of your service should have a port number that corresponds to the last 5 digits of your student ID.
What you must turn in:
1. A short description of your application-layer protocol.
2. A short description of your session layer-protocol.
3. A short description of your presentation-layer protocol.
4. The C code that implements the client-side of the application.
5. The C code that implements the server-side of the application.
Due date: Tuesday, November 13