How to Simulate Temporally Ordered Routing Using OMNeT++

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.

  1. Download OMNeT++: OMNeT++
  2. 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:

  1. Build and compile the project in OMNeT++.
  2. Run the simulation using the OMNeT++ GUI or from the command line.
  3. 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:

  1. Install OMNeT++ and INET Framework.
  2. Define Network Topology: Utilize a NED file to generate a MANET.
  3. Enable TORA: Set up TORA as the routing protocol and configure mobility.
  4. Simulate Traffic: create UDP traffic among nodes.
  5. Run the Simulation: Monitor TORA’s routing characteristics in dynamic scenarios.
  6. Analyze Results: Validate routing performance, latency, packet delivery, and more.
  7. Extend the Simulation: Test with node mobility, network failures, larger networks, etc.
  8. 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.

Opening Time

9:00am

Lunch Time

12:30pm

Break Time

4:00pm

Closing Time

6:30pm

  • award1
  • award2