How to Implement Irregular Topology in NS2

To implement the irregular topology in network simulator 2 (ns2), we have to manually state a topology with nodes are linked in non-uniform structure, refers to the connections amongst nodes which don’t track a customary design include mesh, tree or star topologies. This topology is typical in realistic environment like sensor networks, ad-hoc networks and wireless communication with node locations and connectivity can be unsystematic or depends on the particular environment conditions.

Follow the given structure that will help you create an irregular topology in NS2:

Steps to Implement Irregular Topology in NS2

  1. Set Up NS2

Make certain to install the ns2 on your computer. You can install it using the given command on Ubuntu:

sudo apt-get update

sudo apt-get install ns2

  1. Define an Irregular Topology

An irregular topology means that nodes are linked in a non-uniform fashion. You can state an irregular topology by clearly connecting nodes in a non-standard pattern in the ns2.

  1. Create a TCL Script for Irregular Topology

The following TCL script shows how to generate an irregular topology with a random set of connections amongst nodes.

Example TCL Script for Irregular Topology:

# Define the simulator

set ns [new Simulator]

# Open trace files

set tracefile [open irregular_out.tr w]

set namfile [open irregular_out.nam w]

$ns trace-all $tracefile

$ns namtrace-all $namfile

# Create a topography object

set topo [new Topography]

$topo load_flatgrid 500 500

# Create a channel for wired or wireless links

set chan [new Channel/WiredChannel]

# Define the nodes (irregular topology with arbitrary node connections)

set node_0 [$ns node]

set node_1 [$ns node]

set node_2 [$ns node]

set node_3 [$ns node]

set node_4 [$ns node]

# Set random positions for the nodes

$node_0 set X_ 100.0

$node_0 set Y_ 150.0

$node_1 set X_ 200.0

$node_1 set Y_ 250.0

$node_2 set X_ 150.0

$node_2 set Y_ 300.0

$node_3 set X_ 250.0

$node_3 set Y_ 100.0

$node_4 set X_ 350.0

$node_4 set Y_ 200.0

# Define arbitrary links between the nodes to form an irregular topology

# Node 0 connects to Node 1, Node 2

$ns duplex-link $node_0 $node_1 100Mb 10ms DropTail

$ns duplex-link $node_0 $node_2 100Mb 15ms DropTail

# Node 1 connects to Node 3

$ns duplex-link $node_1 $node_3 100Mb 20ms DropTail

# Node 2 connects to Node 4

$ns duplex-link $node_2 $node_4 50Mb 25ms DropTail

# Node 3 connects to Node 4

$ns duplex-link $node_3 $node_4 200Mb 5ms DropTail

# Setup traffic flow between nodes

# Traffic from node_0 to node_4

set udp0 [new Agent/UDP]

set null0 [new Agent/Null]

$ns attach-agent $node_0 $udp0

$ns attach-agent $node_4 $null0

$ns connect $udp0 $null0

# Create CBR (Constant Bit Rate) traffic

set cbr0 [new Application/Traffic/CBR]

$cbr0 set packetSize_ 512

$cbr0 set interval_ 0.05

$cbr0 attach-agent $udp0

# Start traffic at time 1.0 second

$ns at 1.0 “$cbr0 start”

# Schedule simulation end

$ns at 10.0 “finish”

# Finish procedure to close the simulation

proc finish {} {

global ns tracefile namfile

$ns flush-trace

close $tracefile

close $namfile

exec nam irregular_out.nam &

exit 0

}

# Run the simulation

$ns run

Key Elements of the Script:

  1. Node Creation:
    • Five nodes (node_0 to node_4) are developed. Each node has an arbitrary position in the 500×500 grid stated by the X_ and Y_ coordinates.
  2. Link Definition:
    • Nodes are linked in an unsystematic pattern, which is what makes this topology irregular. For example, node_0 is connected to node_1 and node_2, while node_1 is connected to node_3.
    • The link bandwidth and delay can change among connections (like 100Mb, 50Mb, or 200Mb bandwidth with changing delays).
  3. Traffic Flow:
    • UDP traffic is designed between node_0 and node_4. You can attach extra flows amidst other node pairs as required.
    • Use CBR (Constant Bit Rate) application to produce traffic between the nodes.
  4. Trace and NAM Visualization:
    • The script generates a trace file (irregular_out.tr) and use NAM file (irregular_out.nam) to visualize the simulation using NAM (Network Animator).
  1. Run the Simulation

Log the script as irregular_topology.tcl and execute it using NS2:

ns irregular_topology.tcl

To visualize the network using NAM, use:

nam irregular_out.nam

Customization:

  1. Node Placement:
    • Generate a more realistic irregular layout depends on particular environment by adjusting the locations of the nodes (X_ and Y_ coordinates).
  2. Link Configuration:
    • You can randomly allocate bandwidths, delays, and variants of links (wired/wireless) among nodes to replicate an irregular network.
  3. Traffic Patterns:
    • Configure additional agents and applications amongst various node pairs to attach more advanced traffic flows.
  4. Topology Size:
    • Expand the number of nodes by including more nodes (set node_N [$ns node]) and building arbitrary links amongst them.
  5. Wireless Irregular Topology:
    • If you want to execute an irregular wireless topology, you’ll need to use the WirelessChannel and state radio propagation models and transmission ranges for the wireless nodes.

For instance:

set chan [new Channel/WirelessChannel]

Phy/WirelessPhy set CPThresh_ 10.0

Phy/WirelessPhy set CSThresh_ 1.0e-10

Phy/WirelessPhy set RXThresh_ 1.0e-10

  1. Routing Algorithms:
    • In ad-hoc or sensor networks, you can simulate various routing protocols (like AODV, DSR, or DSDV) in the irregular topology by adding these protocols to the nodes.

Throughout this given demonstration, you can get to know more about the simplified network simulation, defining the nodes and establishing links amongst them for the implementation of Irregular topology using ns2 tool. We also provide some instructions for the customization purpose.

Get complete support for the implementation of irregular topology in NS2 tool. We offer exceptional topic assistance and focus on developing topologies with nodes pertinent to your projects. For best guidance, please reach out to ns2project.com.