SIMPLE WIRELESS PROGRAM IN NS2

    Simple Wireless Program in NS2 is the best way to learn about how to code in NS2. NS-2 is one of the best simulation tool. It is used by majority of scholars today due to its highlighted features like support for OOPs concept, C++ programming fundamentals, real time emulation support etc. NS2 is used to simulate both wired and wireless networks; here we have focused on wireless network simulation in NS-2 due to its wide applicability. Regarding wired simulation in NS-2, refer our other articles available in this site.

Here, we have taken a simple wireless program in NS-2 to explain the students about how to work with wireless networks in NS-2. For further guidance and tutoring service on NS-2, approach us anytime, we are there for you at 24/7.

SIMPLE-WIRELESS-PROGRAM IN NS-2

 Let’s take a simple example to explain you regarding wireless simulation in NS2. Here, we have considered DSDV Ad hoc Routing protocol with 50 wireless nodes. Now, let’s see the overall step used to create a simple wireless program in NS2.

First, we have to create a TCL script [For ex. Filename.tcl].

Define the following options in TCL script.

set val(chan)   Channel/WirelessChannel

setval(prop)   Propagation/TwoRayGround

set val(ant)    Antenna/OmniAntenna

setval(ll)     LL

set val(ifq)    Queue/DropTail/PriQueue

setval(ifqlen) 50

set val(netif)  Phy/WirelessPhy

setval(mac)    Mac/802_11

set val(rp)     DSDV

setval(nn)     50

set val(x)      2000

setval(y)      1000

set val(stop)   10

setval(traffic)        cbr

set val(traffic)        tcp

Next, we need to create an instance of Simulator using

set ns    [new Simulator]

Then creating the trace file and nam file

set     tracefd       [open out.tr w]

$ns    trace-all   $tracefd

set   namtrace       [open out.nam w]

$ns   namtrace-all-wireless   $namtrace  $val(x)  $val(y)

Set up topology object and create object god

set topo [new Topography]

$topo load_flatgrid $val(x) $val(y)

set god_ [create-god $val(nn)]//to create god object

Create Nodes:

First, we need to configure nodes, before creating it.

 //To configure the nodes

$ns node-config –adhocRouting  $val(rp) \

-llType  $val(ll) \

-macType  $val(mac) \

-ifqType  $val(ifq) \

-ifqLen  $val(ifqlen) \

-antType  $val(ant) \

-propType  $val(prop) \

-phyType  $val(netif) \

-channelType  $val(chan) \

-topoInstance  $topo \

-agentTrace  ON \

-routerTrace  ON \

-macTrace  OFF \

-movementTrace  ON

//To create Wireless nodes[50 nodes]:

//Creating node objects

for {set i 0} {$i < $val(nn) } { incr i } {

set node_($i) [$ns node]

}

//To define node initial position in nam

for {set i 0} {$i < $val(nn)} { incr i } {

# 30 defines the node size for nam

$ns initial_node_pos $node_($i) 30

}

//use of random mobility positions

proc destination {} {

global ns val node_

set time 1.0

set now [$ns now]

for {set i 0} {$i<$val(nn)} {incr i} {

set xx [expr rand()*1600]

set yy [expr rand()*800]

$ns at $now “$node_($i) setdest $xx $yy 1000.0”

}

$ns at [expr $now+$time] “destination”

}

//To change node colors at the time of 1.0 , 2.0 , 3.0

for {set i 0} {$i < $val(nn) } {incr i } {

$node_($i) color yellow

$ns at 1.0 “$node_($i) color red”

}

for {set i 0} {$i < $val(nn) } {incr i } {

$node_($i) color yellow

$ns at 2.0 “$node_($i) color lightgreen”

}

for {set i 0} {$i < $val(nn) } {incr i } {

$node_($i) color yellow

$ns at 3.0 “$node_($i) color orange”

}

//To end nam and the simulation

$ns at $val(stop) “$ns nam-end-wireless $val(stop)”

$ ns at $val(stop) “stop”

$ns at 10.5 “puts \”end simulation\” ; $ns halt”

// Execute the nam file

proc stop {} {

global ns tracefd namtrace

$ns flush-trace

close $tracefd

close $namtrace

exec nam out.nam &

}

$ns run

 //To run program

$ns filename.tcl

       Hope you would get an idea about how to create a simple wireless program in NS2. For further guidance on more complex programs or on a particular topic, approach our experts, waiting to serve you at 24/7. If You can feel free to approach us for any kind of help regarding NS-2 based projects, assignments or lab cycles. You will be surely benefit with our work, as we offer project/concept based learning approach. So You will get complete knowledge about NS2 along with our implementation support for your project/particular concept. Approach us, if you want to experience our work and standard.

EVERY ACCOMPLISHMENT STARTS WITH THE DECISION TO TRY………….

TRY HARD TO ACHIEVE YOUR SUCCESS ………………………….

WITH THE HELP OF OUR GUIDANCE…………………..