CSE 3214 : Programming Assignment 2

This lab should be submitted using the submit command (see the instructions below).

Objective:

The objective of this assignment is to build the skeleton of a simple network resource measurement system. You are required to measure the bandwidth and roundtrip delay between two hosts periodically and implement a simple predictor for predicting the same values.
The delay measurement is the same as before. The values of bandwidth that you get will likely vary depending on the file size you use for determining bandwidth. In the report, show the variation of the measurements with the file size. Also recommend a file size to use.

For the predictor, you may use the one used by TCP to estimate RTT, or you can propose your own. Remember you do not need to be as computationally simple as TCP. You should measure the effectiveness of your predictor by recording the error (deviation) between the proposed and sample values.

The core of this assignment was implemented in the last one. In fact you need to write very little new code. You do noed to THINK about what parameter values to use and how to setup experiments and measure and present data.

So, as before, you should use a client/server application that does the following.

Compiling the server and client programs (C language only)
  1. Compile the programs with gcc instead of cc.
  2. For the server program, you need the -lsocket flag
  3. For the client program, you need the flags -lsocket -lnsl
Instructions for submitting assignment 2

Submit the programs using the following command:

  1. The programs you submit should work and be documented.
  2. Your assignment should include a separate (typed) document containing the results (You can hand this in the class). This document should contains details of
    1. the overall program design, a textual description of "how it works", and design decisions made. Mention some applications that would use a service like this one.
    2. Present your measurements of bandwidth and delay.
    3. Present your measurements of the effectiveness of your predictor.
    4. possible improvements and extensions to your program that you would do if you were designing a marketable product.
    5. situations (if any) when your program may not work correctly.
    6. how the grader can compile and run your program.
Grading

Program works correctly : 25%
quality of code and in-line documentation : 25%
report : 50%

NOTE: Late submissions get no credit.

Copying, teamwork

Copying of programs (also written homeworks and exams) or teamwork on an assignment (written or programming) is not permitted.  No form of copying is tolerated in this (or any) course, in accordance with departmental policy.