Introduction to Mobility & Network Simulator 2 (NS-2) Mahmood Hasanlou m_hasanlou@ce.sharif.edu Department of Computer Engineering Sharif University of Technology
Sharif university of Technology Outline Random Walk Mobility Model Random Waypoint Mobility Model Network Simulator Mobile Networking in ns Simulation Scenario Home Work 2 Sharif university of Technology
Random Walk Mobility Model Since many entities in nature move in extremely unpredictable ways, the Random Walk Mobility Model was developed to mimic this erratic movement In this mobility model, an MN moves from its current location to a new location by randomly choosing a direction and speed in which to travel The new speed and direction are both chosen from pre-defined ranges, [speedmin; speedmax] and [0;2p] respectively Sharif university of Technology
Random Walk Mobility Model Each movement in the Random Walk Mobility Model occurs in either a constant time interval t or a constant distance traveled d, at the end of which a new direction and speed are calculated If an MN which moves according to this model reaches a simulation boundary, it “bounces” off the simulation border with an angle determined by the incoming direction The MN then continues along this new path Sharif university of Technology
Sharif university of Technology Outline Random Walk Mobility Model Random Waypoint Mobility Model Network Simulator Mobile Networking in ns Simulation Scenario Home Work 2 Sharif university of Technology
Random Waypoint Mobility Model (RWPM) The Random Waypoint Mobility Model includes pause times between changes in direction and/or speed An MN begins by staying in one location for a certain period of time (i.e., a pause time) Once this time expires, the MN chooses a random destination in the simulation area and a speed that is uniformly distributed between [minspeed, maxspeed] Sharif university of Technology
Random Waypoint Mobility Model (RWPM) The MN then travels toward the newly chosen destination at the selected speed Upon arrival, the MN pauses for a specified time period before starting the process again We note that the movement pattern of an MN using the Random Waypoint Mobility Model is similar to the Random Walk Mobility Model if pause time is zero and [minspeed, maxspeed] = [speedmin, speedmax] Sharif university of Technology
Sharif university of Technology Outline Random Walk Mobility Model Random Waypoint Mobility Model Network Simulator Mobile Networking in ns Simulation Scenario Home Work 2 Sharif university of Technology
Network Simulator (NS) ns is an object oriented simulator, written in C++, with an OTcl interpreter as a frontend The simulator supports a class hierarchy in C++ (also called the compiled hierarchy in this document), and a similar class hierarchy within the OTcl interpreter (also called the interpreted hierarchy in this document) The two hierarchies are closely related to each other; from the user’s perspective, there is a one-to-one correspondence between a class in the interpreted hierarchy and one in the compiled hierarchy The root of this hierarchy is the class TclObject Sharif university of Technology
Network Simulator (NS) Users create new simulator objects through the interpreter; these objects are instantiated within the interpreter, and are closely mirrored by a corresponding object in the compiled hierarchy The interpreted class hierarchy is automatically established through methods defined in the class TclClass user instantiated objects are mirrored through methods defined in the class TclObject Sharif university of Technology
Sharif university of Technology Why two languages? ns uses two languages because simulator has two different kinds of things it needs to do On one hand, detailed simulations of protocols requires a systems programming language which can efficiently manipulate bytes, packet headers, and implement algorithms that run over large data sets For these tasks run-time speed is important and turn-aroundtime (run simulation, find bug, fix bug, recompile, re-run) is less important Sharif university of Technology
Sharif university of Technology Why two languages? On the other hand, a large part of network research involves slightly varying parameters or configurations, or quickly exploring a number of scenarios In these cases, iteration time (change the model and re-run) is more important Since configuration runs once (at the beginning of the simulation), run-time of this part of the task is less important Sharif university of Technology
Sharif university of Technology Why two languages? ns meets both of these needs with two languages, C++ and OTcl C++ is fast to run but slower to change, making it suitable for detailed protocol implementation OTcl runs much slower but can be changed very quickly (and interactively), making it ideal for simulation configuration Sharif university of Technology
Which language for what? Having two languages raises the question of which language should be used for what purpose Our basic advice is to use OTcl: for configuration, setup, and “one-time” stuff if you can do what you want by manipulating existing C++ objects and use C++: if you are doing anything that requires processing each packet of a flow if you have to change the behavior of an existing C++ class in ways that weren’t anticipated Sharif university of Technology
Sharif university of Technology Outline Random Walk Mobility Model Random Waypoint Mobility Model Network Simulator Mobile Networking in ns Simulation Scenario Home Work 2 Sharif university of Technology
Mobile Networking in ns The functions and procedures described in this subsection can be found in ~ns/mobilenode.{cc,h}, ~ns/tcl/lib/ns-mobilenode.tcl, ~ns/tcl/mobility/dsdv.tcl, ~ns/tcl/mobility/dsr.tcl, ~ns/tcl/mobility/tora.tcl Example scripts can be found in ~ns/tcl/ex/wireless-test.tcl and ~ns/tcl/ex/wireless.tcl Sharif university of Technology
Sharif university of Technology Outline Random Walk Mobility Model Random Waypoint Mobility Model Network Simulator Mobile Networking in ns Simulation Scenario Home Work 2 Sharif university of Technology
Sharif university of Technology Simulation Scenario We start by presenting simple script that run single TCP connection over 3-nodes over an area of size 500m over 400m The location process is as follow : The initial locations of nodes 0, 1 and 2 are respectively (5,5), (490,285) and (150,240) At time 10, node 0 starts moving towards point (250,250) at a speed of 3m/s At time 15, node 1 starts moving towards point (45,285) at a speed of 5m/s At time 20, node 0 starts moving towards point (480,300) at a speed of 5m/s Node 2 is still throughout the simulation The simulation lasts 150s. At time 10 a TCP connection is initiated between node 0 and node 1 Sharif university of Technology
Sharif university of Technology Writing the TCL script We begin by specifying some basic parameters for the simulation : set val(chan) Channel/WirelessChannel set val(prop) Propagation/TwoRayGround set val(netif) Phy/WirelessPhy set val(mac) Mac/802_11 set val(ifq) Queue/DropTail/PriQueue set val(ll) LL set val(ant) Antenna/OmniAntenna set val(ifqlen) 50 ;# max packet in ifq set val(x) 800;# X dimension of the topography set val(y) 800;# Y dimension of the topography set val(nn) 30 ;# number of nodes set val(rp) DSDV set val(stop) 150 ;# simulation time These parameters are used in configuring of the nodes Sharif university of Technology
Configures of a mobile node $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 For {set $i 0} {$i < $val(nn)} {incr $i} { set node_($i) [$ns node] } Sharif university of Technology
Initial location and movement of nodes The initial location of node 0 given as follows : $node_(0) set X_ 5.0 $node_(0) set Y_ 5.0 $node_(0) set Z_ 5.0 A linear movement of a node is generated by specifying the time in which it start, the x and y values of the target point and the speed: $ns at 15.0 “$node_(1) setdest 45.0 285.0 5.0” Sharif university of Technology
Sharif university of Technology Ending the simulation We need to create the initial node position for nam using For {set $i 0} {$i < $val(nn)} {incr $i} { $ns initial_node_pos $node_($i) 30 } We tell nodes when the simulation ends with : $ns at $val(stop) “node_($i) reset” Sharif university of Technology
Sharif university of Technology Outline Random Walk Mobility Model Random Waypoint Mobility Model Network Simulator Mobile Networking in ns Simulation Scenario Home Work 2 Sharif university of Technology
Sharif university of Technology Home Work 2 You must look at the mobile node source code and determine which of the mobility models support in it ? You simulate a scenario and obtain it’s result with mobility model that exist Then you must change that mobility model to another You simulate your scenario again with this new mobility model and compare the result of this by previous results Scenario is the same scenario of the HW1 Sharif university of Technology
Sharif university of Technology Refrence A collaboration between researchers at UC Berkeley, LBL, USC/ISI, and Xerox PARC, “The NS Manual”, 2005 Lecture Notes 2003-2004 Univ. de Los andes, Merida, Venezuela, and ESSI, “NS simulator for beginners” Tracy Camp, Jeff Boleng, Vanessa Davies, “A Survey of Mobility Models for Ad Hoc Network Research” , 2002 Sharif university of Technology