%Before you begin
Although this prac!cal is marked automa!cally, all marks will be moderated by a marker using the following informa!on.
You must complete a logbook as you develop your code (this process should be familiar to those that have or are doing
the Computer Systems course). You can ﬁnd details on how to do that and what that should look like in this guide.
During manual marking and plagiarism checks, we will look look at your development process. If we do not see a
clear path to a solu!on (i.e. code changes and regular commits and logbook entries reﬂec!ng your learning to
develop your implementa!on you may forfeit up to 200 marks.
An example case of forfei!ng all 200 marks would be the sudden appearance of working code with no prior evidence of
your development process.
It is up to you to provide evidence of your development through regular submissions and logbook entries.
This prac!cal requires thought and planning. You need to start early to allow yourself !me to think of what and how to
test before modifying any code. Failing to do this is likely to make the prac!cal take far more !me than it should.
Star!ng the prac!cal in the ﬁnal week or days is likely to be an unsuccessful strategy with this prac!cal; further your
logbook entries are likely to be overlapped in close succession and, depending on the quality of the entries, is likely to
lead to a mark that will be scaled lower (due to possibly poor documenta!on in the logbook).
& Expand All ‘ Collapse All
Learn about rou!ng protocols and route propaga!on.
Implement a rou!ng protocol.
In this assignment, you will be wri!ng code to simulate a network of routers performing route adver!sement using a
Distance Vector rou!ng 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 implementa!on will need to ensure that the simulated routers in the
network correctly and consistently converge their distance and rou!ng tables to the correct state.
You will ﬁnd a more detailed descrip!on of the Distance Vector algorithm in the course notes and in sec!on 5.2.2 of
Kurose and Ross, Computer Networking, 7th Edi!on.
Part 1 (DV algorithm)
You are to produce a program that:
1. Reads informa!on about a topology/updates to the topology from the standard input.
Handle bad input:
Prin!ng a reasonable error message and
Termina!ng 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 convergence.
Output the distance tables in the required format for each router at each step/round.
Output the ﬁnal rou!ng tables in the required format once convergence is reached.
3. Repeats the above steps un!l 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 poisoning.
The DV with PR algorithm program you are to provide should be named PoisonedReverse .
In Your Task
You will need to cra” any internal data structures and design your program in such a way that it will reliably and
correctly converge to the correct rou!ng 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’
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: email@example.com 微信:itcsdx