Marc Greis’ ns Tutorial Contents: I. Introduction II. Finding Documentation II For ns&nam II.2 For Tcl II.3 For C++ III. The Basics III.1 Downloading/ Installing. Only the first 94 pages are relevant for Tcl, the rest of the book is about Tk and more complicated aspects of Tcl. I also found a short OTcl Tutorial. Another good . Marc Greis’ Tutorial for the UCB/LBNL/VINT Network Simulator “ns”. I. Introduction [Next section] [Back to the index] Disclaimer: This tutorial was originally.
|Published (Last):||21 November 2006|
|PDF File Size:||16.4 Mb|
|ePub File Size:||2.70 Mb|
|Price:||Free* [*Free Regsitration Required]|
In this section, you are going to learn to use the mobile wireless simulation model available in ns. The section consists of two parts. In the first subsection, we discuss how to create and run a simple 2-node wireless network simulation. In second subsection, we will extend our example in subsection 1 to create a relatively titorial complex wireless scenario. This tutorial chapter uses new node APIs which are not available in the ns2.
IX. Running Wireless Simulations in ns
So please download the daily snapshot unless a release is made for version ns2. The current snapshot version is updated daily, so please check the validation results for that day before downloading, as these snapshots can sometimes be unstable due to ongoing changes made by ns-developers. We are going to simulate a very simple 2-node wireless scenario. The mobilenodes move about within an area whose boundary is defined in this example as mXm.
The nodes start out initially tuhorial two opposite ends of the boundary.
Then they move towards each other in the first half of the simulation and again move away for the second tutoriql. A TCP connection is setup between the two mobilenodes.
IV. The first Tcl script
Packets are exchanged between the nodes as they come within hearing range of one another. As they move away, packets start getting dropped. Just as with any other tutorail simulation, we begin by creating a tcl script for the grwis simulation. We will call this file simple-wireless. If you want to turorial a copy of simple-wireless. At the beginning of a wireless simulation, we need to define the type for each of these network components.
Additionally, we need to define other parameters like the type of antenna, the radio-propagation model, the type of ad-hoc routing protocol used by mobilenodes etc.
See comments in the code below for a brief description of each variable defined. The array used to define these variables, val is not global as it used to be in the earlier wireless scripts.
For details and available optional values of these variables, see chapter 15 mobile networking in ns of ns documentation. We begin our script simple-wireless.
The topography is broken up into grids and the default value of grid resolution is 1. Next we gries the object God, as follows: The next hop information is normally loaded into god object from movement pattern files, before simulation begins, since calculating this on the fly during simulation runs can be quite time consuming. However, in order to keep this example simple we avoid using movement pattern files and thus do not provide God with next hop information.
The usage of movement pattern files and feeding of next hop info to God shall be shown in the example in the next sub-section. In addition to the evaluation functionalities, treis God object is called internally by MAC objects in mobilenodes.
So even though we may not tutodial God for evaluation purposes, as in this example we still need to create God.
MARC GREIS TUTORIAL PDF
Next, we create mobilenodes. The new APIs are not available with ns2. Download the daily snapshot version if the next release 2. First, we tutorjal to configure nodes before we can create them.
The configuration API can be defined as follows: We are going to use the default value of flat addressing; Also lets turn on only AgentTrace and RouterTrace; You can experiment with the traces by turning all of them on.
MovementTrace, when turned on, shows the movement of the mobilenodes and the trace is marked with M in their 2nd field.
The configuration API for creating mobilenodes looks as follows: Next we create the 2 mobilenodes as follows: This API is used to change direction and speed of movement of the mobilenodes. Next setup traffic flow between the two nodes as follows: And finally the command to start the simulation, puts “Starting Simulation Save the greid simple-wireless.
tutirial In order to download a copy of the file click here. Next run the simulation in the usual way type at tuttorial At the end of the ggeis run, trace-output file simple.
Note that all wireless traces starts with WL in their first field. See Chapter 15 of ns documentation for details on wireless trace. We see TCP flow starting at Initially both the nodes are far apart and thus TCP pkts are dropped by node0 as it cannot hear from node1. However as node1 starts to move away from node0, the connection breaks down again around time Pkts start getting dropped as the nodes move away from one another.
As an extension to the previous sub-sectionwe are going to simulate a simple multihop wireless scenario consisting of 3 mobilenodes here. As before, the mobilenodes move within the boundaries of a defined topology. However the node gres for this example shall be read from a node-movement file called scentest. Random node movement files like scentest can be generated using CMU’s node-movement generator “setdest”.
Details on generation of node movement files are covered in section XI. In addition to node-movements, traffic flows that are setup between the mobilenodes, are also read from a traffic-pattern file called cbrtest.
Random CBR and Tuhorial flows are setup between the 3 mobilenodes and data packets are sent, forwarded or received by nodes within hearing range of one another. See cbrtest to find out more about the traffic flows that are setup. More about this is discussed in section XI. We shall make changes to the script, simple-wireless.
For a copy of wireless1. In addition to the variables LL, MAC, antenna etc that were declared at the beginning of the script, we now define some more parameters like the connection-pattern and node-movement file, x and y values for the topology boundary, a seed tutorlal for the random-number generator, time for the simulation to stop, for convinience.
Marc Greis’ Tutorial for the UCB/LBNL/VINT Network Simulator “ns”
They are listed as follows: Also we are going to set up nam traces. Next after creation of mobilenodes source greus and connection pattern files that were defined earlier as val sc and val cp respectively. Define node movement model puts “Loading connection pattern It means the shortest path between node 1 and 2 is 2 hops. By providing this information, the calculation of shortest distance between nodes by the god object during simulation runs, which can be quite time-consuming, is prevented.
The setdest program see section XI. The node-movement files generated using setdest like scentest already include lines like above to load the god object with the appropriate information at the appropriate time.
If calcdest rejects a movement pattern file you have created, the easiest way to format it properly is often to load it into ad-hockey and then save it out again. If ad-hockey tutorila read your input correctly, its output will be properly formatted for calcdest. Both setdest and calcdest calculate the shortest number of hops between nodes based on the nominal radio range, ignoring any effects that might be introduced by the propagation model in an actual simulation.
The nominal range is either provided as an argument to the programs, or extracted from the header in node-movement pattern files.
The path length information provided to god was used by CMU’s Monarch Project to analyze the path length optimality of ad hoc network routing protocols, and so was printed out as part of the CMUTrace output for each packet.
Other uses that CMU has found for the information are: Characterizing the rate of topology change in a movement pattern. Identifying the frequency and size of partitions. Next yreis the following lines for providing initial position of nodes in nam.
However note that only node movements can currently be seen in nam. Dumping of traffic data and thus tutorixl of data pkt movements in nam for wireless scenarios is still not supported future work. Save the file wireless1. Make sure the connection-pattern and node-movement files exist under the directories as declared above. Run the script by typing at the prompt: However as mentioned earlier no traffic flow can be seen not supported as yet. From the CMUTrace output we find nodes 0 and 2 are out of range and so cannot hear one another.
Node1 is in range with nodes 0 and 2 and can communicate with both of them. Thus all pkts destined for nodes 0 and 2 are routed through node 1. For details on CMUTraces see chapter 15 of ns documentation.