CPE 400/600 Computer Communication Networks
Programming Assignment 2
Due on Monday, Nov 21 at 1:00 pm
Carry out the programming assignment "Distributed, Asynchronous Distance Vector Routing Algorithm" from the Kurose & Ross textbook. You will be developing a distributed distance-vector routing algorithm over a four nodes network. Details of the assignment are on page 436-437 of the textbook as well as the textbook's website.
- There will be a zipped directory (named as "prog-2-files.zip") being posted on WebCT regarding this programming assignment. In that directory, you will find (i) a sample executable (named as "prog2") which can be run on computeX.cse.unr.edu machines, (ii) partial C codes (named as "prog2.c", "node0.c", "node1.c", "node2.c", "node3.c") where you will fill in your code, (iii) a sample makefile that will compile all the codes at once, and (iv) instructions from textbook's website regarding this programming assignment.
- The assignment instructions indicate "Advanced Assignment" for implementing the code that can handle link cost changes. This "Advanced Assignment" part is not required for the undergrad students, but it is required for graduate students.
- You should NOT modify prog2.c file in any way.
- The textbook's instructions suggest you to submit a manual and a design document. You are not required to do so, but submitting such documents will help.
- This is an individual assignment and you are expected to turn in your own work. Discussion with other students is allowed, but sharing your work is strictly not allowed.
- You can develop your code either in C/C++ or in Java.
- Sample templates/snippets are available at textbook website.But the templates are available in C.
- You are supposed to do this assignment in UNIX environment. You should use the CSE Department's UNIX servers: computeX.cse.unr.edu for developing as well as testing your code.
- Your source code will be tested on computeX.cse.unr.edu machines and if your source code does not work on these machines, you will lose points.
- Your source code will be assessed and marked. Commenting is definitely required in your source code.
- A makefile is required. All files in your submission will be copied to the same directory, therefore do not include any paths in your makefile. The makefile should include all dependencies that build your executable(s). If a library is necessary, your makefile should also build the library.
- Do not hand in any binary or object code files. All that is required is your source code, a makefile, and other necessary files as stated in the assignment description.
- Test your code by copying the source code only into an empty directory and then compile it by entering the command make. Your code must compile without any errors and run properly under computeX.cse.unr.edu machines. You may develop and test your programs on your own UNIX machine, but it is your responsibility to ensure that they also work properly on the computeX.cse.unr.edu, under the default UNIX shell on those machines. There will be a heavy penalty if they don't.
What to turn in:
A tar file of source codes and a makefile to compile your code to be uploaded to WebCampus.