In this assignment, you will be writing code to simulate a network of routers
performing route advertisement using a Distance Vector routing protocol.
You will need to implement the algorithm in its basic form, and then with poisoned
reverse/route poisoning to improve the performance of the protocol. Your
implementation will need to ensure that the simulated routers in the network correctly
and consistently converge their distance and routing tables to the correct state.
You will find a more detailed description of the Distance Vector algorithm in the
course notes and in section 5.2.2 of Kurose and Ross, Computer Networking, 7th
Part 1 (DV algorithm)
You are to produce a program that:
• Reads information about a topology/updates to the topology from the
o Handle bad input:
§ Printing a reasonable error message and
§ Terminating the program with exit code 1;
§ Bad input should not cause your program to crash.
• Uses DV algorithm or DV with PR algorithm, as appropriate, to bring
the simulated routers to convergence.
o Output the distance tables in the required format for each router
at each step/round.
o Output the final routing tables in the required format once
convergence is reached.
• Repeats the above steps until no further input is provided.
The DV algorithm program you are to provide should be named DistanceVector.
Part 2 (DV with PR algorithm)
You will need to modify/write a second version of the program that uses poisoned
The DV with PR algorithm program you are to provide should be named
In Your Task
You will need to craft any internal data structures and design your program in such a
way that it will reliably and correctly converge to the correct routing tables. We have
deliberately not provided you with a code templates and this means that you will have
more freedom in your design but that you will have to think about the problem and
come up with a design.
You will need to record your progress and development cycle in a logbook as
described in the ‘Before you Begin’ section above.
In a real DV routing environment, messages are not synchronised. Routers send out
their initial messages as needed.