To simulate Temporally Ordered Routing Algorithm (TORA) in OMNeT++ has includes to set up a mobile ad hoc network and permits the TORA protocol to enthusiastically adapt routes by way of nodes move or topology changes happen.
Temporally Ordered Routing Algorithm (TORA) is a reactive and adaptive routing protocol intended for mobile ad hoc networks (MANETs). It is enhanced for environment in which the network topology fluctuations frequently. TORA concentrates on minimizing the control message overhead by sustaining multiple routes and quickly adjust to network changes.
Here’s a step-by-step guide to simulate TORA-based routing projects using OMNeT++:
Steps to Simulate Temporally Ordered Routing Projects in OMNeT++
Step 1: Install OMNeT++ and INET Framework
Make sure that OMNeT++ and the INET framework are installed. INET deliver the essential modules for mobile ad hoc networks (MANETs) and contain implementations for routing protocols such as TORA.
- Download OMNeT++: OMNeT++
- Download INET Framework: INET Framework
Step 2: Define the Network Topology in the NED File
Generate a network topology with mobile nodes that can interact using TORA. While TORA is intended for MANETs, we will also require setting up node mobility in the network.
Here’s an instance NED file for a mobile ad hoc network:
network ToraNetwork
{
submodules:
host1: StandardHost {
@display(“p=100,200”);
}
host2: StandardHost {
@display(“p=500,300”);
}
host3: StandardHost {
@display(“p=300,400”);
}
connections:
host1.ethg++ <–> AdhocWirelessInterface <–> host2.ethg++;
host2.ethg++ <–> AdhocWirelessInterface <–> host3.ethg++;
}
In this topology:
- host1, host2, and host3 are mobile hosts (nodes) in the ad hoc network.
- The AdhocWirelessInterface replicates a wireless connection among the nodes.
Step 3: Enable TORA in the INET Framework
TORA is a part of the INET framework, and permit it needs to set up TORA as the routing protocol for the nodes. Moreover, we will set up the mobility model to replicate node movement.
Step 3.1: Assign IP Addresses to the Hosts
In the omnetpp.ini file, manually allocates IP addresses to each node in the network.
[Config ToraNetworkSimulation]
network = ToraNetwork
sim-time-limit = 200s
# Assign IP addresses to the nodes
*.host1.ipv4.config = “manual”
*.host1.ipv4.addresses = “10.0.0.1/24”
*.host2.ipv4.config = “manual”
*.host2.ipv4.addresses = “10.0.0.2/24”
*.host3.ipv4.config = “manual”
*.host3.ipv4.addresses = “10.0.0.3/24”
Step 3.2: Enable TORA as the Routing Protocol
Set up TORA as the routing protocol for each host in the network. This will make sure that routes are enthusiastically introduced in terms of network changes.
# Enable TORA as the routing protocol
*.host1.hasTora = true
*.host2.hasTora = true
*.host3.hasTora = true
# Configure additional TORA parameters (optional)
*.host*.routingTable.toraDebug = true # Enable TORA debugging for logs
Step 3.3: Configure Node Mobility
While TORA is intended for mobile ad hoc networks, set up node mobility using a mobility model such as the RandomWaypointMobility model.
# Configure mobility for the hosts
*.host*.mobility.typename = “RandomWaypointMobility”
*.host*.mobility.initialX = uniform(0, 500) # Initial random position
*.host*.mobility.initialY = uniform(0, 500)
*.host*.mobility.speed = uniform(5mps, 10mps) # Speed range
*.host*.mobility.updateInterval = 1s # Update node positions every second
This set up makes each node move randomly inside a 500×500 area at speeds among 5 and 10 meters per second.
Step 4: Simulate Traffic between Hosts
Once TORA and mobility are set up, replicate interaction among the hosts by creating UDP traffic among them.
# Simulate UDP traffic from host1 to host3
*.host1.numApps = 1
*.host1.app[0].typename = “UdpBasicApp”
*.host1.app[0].localAddress = “10.0.0.1”
*.host1.app[0].connectAddress = “10.0.0.3” # Send to host3
*.host1.app[0].sendInterval = 1s
*.host1.app[0].messageLength = 512B
*.host1.app[0].startTime = 10s
# Configure host3 to receive UDP traffic
*.host3.numApps = 1
*.host3.app[0].typename = “UdpSinkApp”
In this setup:
- host1 creates an UDP traffic and transmit it to host3 at regular intervals.
- host3 performs as a sink and receives the UDP traffic.
Step 5: Run the Simulation
Once everything is configured:
- Build and compile the project in OMNeT++.
- Run the simulation using the OMNeT++ GUI or from the command line.
- Observe TORA behavior: Utilize the OMNeT++ GUI to envision on how TORA enthusiastically builds and maintains routes as nodes move and topology varied.
Step 6: Analyse Simulation Results
OMNeT++ creates .sca and .vec files containing simulation outcomes. We can measure several parameters related to TORA and MANET performance:
- Route Discovery Time: Evaluate how long it takes for TORA to discover routes among nodes when they move.
- Route Maintenance: Measure how TORA maintains routes as nodes move and links break or recover.
- Packet Delivery Ratio: Evaluate how many packets successfully reach their destination relate to how many were sent.
- End-to-End Delay: Evaluate the latency experienced by packets as they travel from source to destination via dynamically introduced routes.
We can utilize OMNeT++’s built-in evaluation tools to generate and measure these parameters.
Step 7: Experiment with Different Scenarios
We can expand the simulation by experimenting with different configurations and environment:
7.1: Vary Node Mobility
Vary the speed and mobility model of the nodes to monitor how TORA reacts to faster or more frequent topology changes.
*.host*.mobility.speed = uniform(10mps, 20mps) # Increase speed range
7.2: Introduce Network Failures
Replicate network link failures by disabling specific interfaces at certain times and monitor how TORA reroutes traffic.
# Disable an interface on host2 at 60 seconds
*.host2.interfaceTable[0].downAt = 60s
7.3: Increase the Network Size
Prolong the network by adding more hosts and see how TORA performs in larger ad hoc networks. This can support you to measure its scalability.
submodules:
host1: StandardHost;
host2: StandardHost;
host3: StandardHost;
host4: StandardHost; # Add more nodes
host5: StandardHost;
connections:
host1.ethg++ <–> AdhocWirelessInterface <–> host2.ethg++;
host2.ethg++ <–> AdhocWirelessInterface <–> host3.ethg++;
host3.ethg++ <–> AdhocWirelessInterface <–> host4.ethg++;
host4.ethg++ <–> AdhocWirelessInterface <–> host5.ethg++;
7.4: Analyse Network Performance
To Measure network parameters such as throughput, route overhead, and network convergence time to learn the effectiveness of TORA in different environment.
Step 8: Visualize the Routing Process
OMNeT++ delivers built-in envision tools to animate the packet flow and routing updates. This is especially support for monitoring on how TORA adjust to changes in the network as nodes move, links break, and new routes are introduced.
Summary of Steps:
- Install OMNeT++ and INET Framework.
- Define Network Topology: Utilize a NED file to generate a MANET.
- Enable TORA: Set up TORA as the routing protocol and configure mobility.
- Simulate Traffic: create UDP traffic among nodes.
- Run the Simulation: Monitor TORA’s routing characteristics in dynamic scenarios.
- Analyze Results: Validate routing performance, latency, packet delivery, and more.
- Extend the Simulation: Test with node mobility, network failures, larger networks, etc.
- Visualize Routing: Utilize OMNeT++’s envision characteristics to monitor TORA routing updates.
In this manual, we explore the complete guide on get started the Temporally Ordered Routing Algorithm in OMNeT++ tool and it adapts the routes according to their conditions. More information will be shared in another manual.
For the best results in Temporally Ordered Routing Projects using the OMNeT++ tool, you can trust our experts to offer excellent simulation support. We also focus on the Temporally Ordered Routing Algorithm (TORA) tailored to your project requirements.