Programming Project
A Policy-Based Routing (PBR) Router
based on Distance-Vector Algorithm
1, Objective
Design a DV-based router which simulates a RIP router on the Internet. The router can determine the shortest route based on the policy and transport packets.
2, Requirements
Design a program called router.
The router can be launched many times in one machine. Each launch will start up a new router process or thread, meaning that you deploy a new router. Killing a router process or thread means you shut down or remove a router.
Fill and update the routing table of the router process by using Distance Vector algorithm and specified policy.
Exchange routing table among router processes by UDP socket, just like RIP do.
3, Lunch-up
To point routers and their neighbors, when you run the program, it must receive the following parameters:
router ID, myport , port1, port2, port3
Among them
IDthe number of routers, digital 09
myport: The UDP port the router use, to send and receive packet
port1, port2, port 3, : The UDP ports that routers neighbors use
For example, for a given topology like below:
3
4
5
6
7
3
4
5
6
7
You run the program like this:
router 3, 3003, 3004, 3006
router 4, 3004, 3003, 3006, 3005
router 5, 3005, 3004, 3007
router 6, 3006, 3003, 3004, 3007
router 7, 3007, 3006, 3005
4, Supported commands
The program should dispose the following commands:
N – Print activitys adjacent list.
T – Display routing table.
D n – send a data packet the destination that the number n represents.
P K n1 n2 nk – Specified priority route
K: the count of nodes in the route.
n1 n2 nk : IDs of all K nodes and nk is the ID of destination node.
Replace possible shortest route with possible priority route after the node receives the command. In routing update, replace original route with the shortest route and the new route is in accordance with the priority route.
R n – Refused to pass the node n.
After the node receives the commandthe node ignores all of the updates that contains node n in routing update.
5, About the time control
Each router sends out their routing table every 6 seconds (the time value can be adjusted)
Each router updates its own routing table according to the received routing table
Routers must have the ability to detect whether a neighbor is active. If the router does not receive the update from the neighbor in 18 seconds (the time value can be adjusted), it is considered that the neighbor is not reachable.
6, About topological structure
Routers must have the ability to cope with failure and recovery. We assume that the link does not appear to be faulty, and the packet is not lost and dont occur errors.
If the router is not running at the given time, there is a routing fault. If it restarts the operation, it is considered that the router fault recovery.
Of course, we assume that communication is bidirectional.
7, About routing loop
Reasonable maximum value should be set in order to avoid infinite route loop.
Measures should be taken to reduce the survival time of the loop. Measures include
Split Horizon
Poison reversion
8, Programming
Language: any (C, C++, Java, platform independent)
User InterfaceDesign by yourself
Windows and Graphics (Better)
Console by input characters
It is best to real-timely display the resultsuch as the process of routing update, the information of routing packet forwarding, etc.
9, Project Report
Cover
Project name
Student Number
Name
Date
Content
Purpose of experiment
Description of Distance Vector Algorithm
Requirement of experiment
Programing language/Developing platform and tools
Design ideas
Data structures
Processing flows
The result, screenshot with explanation
Attachments
The source of the program (Must have a program comment
After compiling the program can run in Windows system
Reviews
There are no reviews yet.