How the work should be submitted?

SOFT COPY ONLY!
You must submit your work through ICE so that markers can run your codes during marking.

Make sure your name (Last name SURNAME, eg. San ZHANG) and your student ID on the cover page of your report.

Project requirements

The goal of this project is to implement distance vector routing algorithms. To make this simpler, it is broken up into several parts. This algorithm works on weighted graphs, so as input to your project, you will be given a file describing the graph with the following json format:

s the right graph.
1. (10 points) Read in the graph configuration file.
2. (50 points) Implement the Bellman-Ford distance vector algorithm. Because this algorithm is distributed, you need to do the following:

a) For each node in the graph, you need to spawn a separate process. (programmatically)

b) Each process needs to use UDP to exchange information with the neighbors specified in the graph file.

c) Each process should start with *only* local information, meaning the costs to send to each neighbor node. It’s OK to read in the whole file, but you can’t use information from the file that isn’t for your node.

d) You should create a protocol to exchange distance vector information, as required by Bellman-Ford.

e) Nodes should asynchronously exchange distance vector information as needed until the algorithm converges.

f) Since costs are fixed, you don’t have to worry about poison reverse or anything other than the basic algorithm.

g) After convergence, each node should output their local DV table to a file (once file per node). Again, this can have any format, but you should document this in your report.

3. (40 points) A development report:

a) Introduction: project requirement (in your own language), background, literature review (try to find some papers or development reports of similar apps), what’s your contribution…

b) Methodology: proposed ideas, program flow chats…

c) Implementation: steps of implementation, what difficulties you met and how to solve them.

d) Testing and results: testing plan and testing results (screenshot, curves…)

e) Conclusion: what you did and why you did it. Future plan and so on.

f) Reference [IEEE format]

What should be submitted?

A development report (no more than 8 pages, single column, PDF format) including:
Python codes;
Please compress the report and codes to a ZIP file (not rar, not Kuaiya and not any other formats please), the file name should be: CSE205_P3_Last name_SURNAME.zip (eg. CSE205_P3_San_ZHANG.zip).
You are encouraged to use LaTeX to finish your report. The template is https://github.com/feimax/latex_template_for_xjtlu_eee . If you are still using MS word, please refer to the PDF file in the LaTeX template. (Font: 12 pt, Line space <=1.2 lines, margins are round 2.54cm)