A Policy-Based Routing (PBR) Router


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 :
ID:the number of routers, digital 0~9
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:
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 activity’s 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 command,the 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
PBR留学生作业代写
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 don’t 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 Interface:Design by yourself
Windows and Graphics (Better)
Console by input characters
It is best to real-timely display the result,such 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

 

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:99515681@qq.com 

微信:codehelp

上一篇:ElasticSearch7.10的单机https访问


下一篇:celery 常用设置