To simulate non-adaptive routing in OMNeT++ has needs to set up a routing scheme in which the routing paths are pre-determined and do not change according to network conditions such as traffic load, congestion, or link failures. In such routing protocols, once the routes are defined, they remain static throughout the simulation. This can be completed by using static routing tables in OMNeT++ with the INET framework.
Here’s how to simulate non-adaptive routing in OMNeT++:
Steps to Simulate Non Adaptive Routing Projects in OMNeT++
- Set up OMNeT++ and INET Framework
- Install OMNeT++: Download and install OMNeT++ from here.
- Install the INET Framework: The INET framework deliver a comprehensive set of networking protocols, has static routing. We can download it from the INET GitHub page or install it using the OMNeT++ package manager.
- Create a New OMNeT++ Project
- Generate a new project in OMNeT++ and link it to the INET framework.
- In this project, describe the network topology using the NED (Network Description) language.
- Define Network Topology with Static Routes
In the NED file, describe a simple network topology with routers and hosts. Each router will have a static, pre-configured routing table that describes the fixed paths among hosts, emulating non-adaptive routing.
Here is an example of a basic topology in NED format:
network NonAdaptiveRoutingNetwork
{
submodules:
routerA: Router {
@display(“i=abstract/router”);
}
routerB: Router {
@display(“i=abstract/router”);
}
routerC: Router {
@display(“i=abstract/router”);
}
hostA: StandardHost {
@display(“i=device/pc”);
}
hostB: StandardHost {
@display(“i=device/pc”);
}
connections:
routerA.pppg++ <–> PointToPointLink <–> routerB.pppg++;
routerB.pppg++ <–> PointToPointLink <–> routerC.pppg++;
hostA.ethg++ <–> EthernetLink <–> routerA.ethg++;
hostB.ethg++ <–> EthernetLink <–> routerC.ethg++;
}
- Configure Static (Non-Adaptive) Routing
Non-adaptive routing is executed using static routing tables. We will describe these static routes in the .ini configuration file. This make sure that routing paths are fixed and do not change in terms of network conditions.
Here’s an example of an omnetpp.ini configuration for non-adaptive routing:
network = NonAdaptiveRoutingNetwork
sim-time-limit = 100s
# Static routing for router A
*.routerA.ipv4.routingTable.staticRoutes = (
{ destination = “192.168.2.0”, netmask = “255.255.255.0”, gateway = “192.168.1.1” }
)
# Static routing for router B
*.routerB.ipv4.routingTable.staticRoutes = (
{ destination = “192.168.1.0”, netmask = “255.255.255.0”, gateway = “192.168.2.1” },
{ destination = “192.168.3.0”, netmask = “255.255.255.0”, gateway = “192.168.3.1” }
)
# Static routing for router C
*.routerC.ipv4.routingTable.staticRoutes = (
{ destination = “192.168.1.0”, netmask = “255.255.255.0”, gateway = “192.168.2.1” }
)
# IP address assignments
*.routerA.networkLayer.configurator.address = “192.168.1.1”
*.routerB.networkLayer.configurator.address = “192.168.2.1”
*.routerC.networkLayer.configurator.address = “192.168.3.1”
*.hostA.networkLayer.configurator.address = “192.168.1.2”
*.hostB.networkLayer.configurator.address = “192.168.3.2”
- Static Routing: The routing tables in each router are defined statically and do not adjust to network changes. For example, if a link among routers fails, the routing table will not be updated dynamically.
- Static Routes: Each router has a static routing entry that describes the path to diverse destinations. These routes will remain fixed throughout the simulation.
- Run the Simulation
Once the network topology and static routing are configured, execute the simulation in OMNeT++.
- OMNeT++ support tools such as Qtenv or Tkenv that permit you to learn on how packets flow via the network according to the pre-configured routes.
- While the routing is non-adaptive, the paths utilized by packets will not change even if network conditions change, like increased traffic or node failures.
- Testing Non-Adaptive Behavior
- Link Failures: Establish a link failure in the network and track on how the routing remains fixed. While the routing is non-adaptive, packets might be dropped if their pre-configured path is impacted by the failure.
- Traffic Load: Increase the traffic load among hosts and track whether the routing tables adapt. Since they are static, the routing will remain unchanged.
For instance, to simulate a link failure among routerA and routerB, we need to utilize a command in the .ini file to disable a connection after a specific time:
**.routerA.pppg[0].disableAfter = 50s
- Analyse Results
After processing the simulation, evaluate the following parameters to learn the effects of non-adaptive routing:
- Packet Loss: Validate for packet loss if routes become unavailable (e.g., due to link failure).
- Throughput: Assess on throughput to see how the fixed routes manage traffic loads.
- Latency: evaluate the latency triggered by taking fixed, possibly suboptimal, paths.
- Extend the Project
we can further prolong the non-adaptive routing simulation by:
- Adding More Routers: Increase the number of routers and hosts in the topology to replicate more complex static routing behaviour.
- Multiple Routes: Predefine multiple static routes for redundancy and measure on how packets are delivered if the primary static route fails.
- Custom Static Routing Algorithms: Execute different static routing technique to monitor their impacts on the network.
Example Project Structure:
NonAdaptiveRoutingSimulation/
├── src/
│ └── NonAdaptiveRoutingNetwork.ned # Network topology
├── omnetpp.ini # Simulation configuration
└── Makefile # Build file
- Simulating Non-Adaptive Routing vs Adaptive Routing
- Non-Adaptive Routing: This approach is appropriate for replicating networks in which routing is fixed (e.g., a manually configured static route in real-world routers).
- Adaptive Routing: In contrast, adaptive routing protocols such as OSPF, BGP would dynamically update routes according to network conditions like congestion or failures.
In this simulation setup, we have been clearly understood the concepts and learn the essential procedures to simulate the non-adaptive routing project that has contain the installation procedures and generating the network topology and then visualized the outcomes through OMNeT++ analysis too. Further details will be provided later.
Receive expert guidance on comparative analysis from our team. Please communicate all your requirements related to Non-Adaptive Routing Projects, and we will provide you with the most effective simulation support from the PhDPrime.com team. We specialize in a variety of routing protocols tailored to your project needs.