计算机网络代写 | Programming Assignment 3: Routing Algorithm Implementation Assignment
Learn about routing protocols and route propagation.
Implement a routing protocol.
n this assignment, you will be writing code to simulate a network of routers performing route
dvertisement using a Distance Vector routing protocol.
ou will need to implement the algorithm in its basic form, and then with poisoned reverse/route
oisoning to improve the performance of the protocol. Your implementation will need to ensure
hat the simulated routers in the network correctly and consistently converge their distance and
outing tables to the correct state.
ou will find a more detailed description of the Distance Vector algorithm in the course notes and
n section 5.2.2 of Kurose and Ross, Computer Networking, 7th Edition.
art 1 (DV algorithm)
ou are to produce a program that:
1. Reads information about a topology/updates to the topology from the standard input.
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.
2. Uses DV algorithm or DV with PR algorithm, as appropriate, to bring the simulated routers to
Output the distance tables in the required format for each router at each step/round.
Output the final routing tables in the required format once convergence is reached.
3. 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 reverse/route
The DV with PR algorithm program you are to provide should be named PoisonedReverse .
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.