Main aim of this testing routing protocol project is to develop a simulator which works on virtual environment with in a user location and it is easy to analyse different protocols and algorithms running on different systems and test.

Overview of Modules/Components:

This subsection introduces the modules and components. The modules of the product are


  • Topology Management
  • Router Management

Virtual Router

  • Router Initialization
  • Distance Vector Routing



FRAMEWORK                                           Allows generating, modifying, testing and emulating real Networks.

        VIRTUAL ROUTER                     These are routers running in user space that  emulates the real routers running in kernel   space.

Major Design Decisions and Justification

This section of the report outlines the main requirements of the proposed system that must be met when implemented.


The major concern of the project is centred on the framework or the ‘virtual network topology’. It is important to design a simple router object class that can be used along side the implementation of the framework as a test utility. However once the Framework is operating adequately, the Virtual Routers will be developed to emulate real routing protocols.

The functions of the ‘virtual network topology generator’:

  • Read Topology information from user as a file.
  • Communicate the desired topology information to the Routers (This function relies on the routers either being already set up prior to communication or the virtual Routers must be created before this function is carried out by the network topology generator).
  • Validate the Router Objects and make sure the topology has been correctly constructed. This is needed as virtual router running on machine x who is not part of the topology, but is/has been created/running.
  • Destroy Routers objects which have been constructed in error as they are not needed.  This function is linked into the above functionality.

Read Topology information from user as a file.

The Topology File must not be overloaded with information, as the generation on new network topologies will be a regular process. As the user construct the topology file, if it requires abundance of information this process may become extremely time consuming and even error prone.

A suggested format below, which may be re-considered at implementation:
<IP address of Router>< : > <Router port>< = > <IP address of neighbour>< : > <neighbour port>


This one line with valid fields would represent a Router with a single connected neighbour.

Communicate the desired topology information to the Routers 

This function will be carried out with the use of packets. Once the topology file has been read, understood by the topology server;

  • An instance of a data structure will be created representing the exact topology of each Router. This will be a list of directly connected neighbours for each node. This is required not only for the validation stage but also by the Router themselves.
  • A packet will be sent to the Router informing it of its Topology (i.e. its neighbours). The information that is needed to inform a Router of its new Neighbour may roughly consist of the following:

Sender – an identification mechanism, e.g. neighbouring Router name.

Senders IP address – IP address if neighbouring Router.

Target IP address – IP address of Target Router.

Target Port – The Port the receiving Router is listening on.

With this information, each router will be able to build its own network topology and will have all the required information to emulate a real life Router depending on the Routing protocols employed. Once the transfer this information is complete for each Router, this core function is completed.

 Download Simulator for Testing Routing Protocol Project source code with project report