Changes between Version 6 and Version 7 of Old/Mobility/MobilityModels
- Timestamp:
- Apr 8, 2008, 3:00:28 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Old/Mobility/MobilityModels
v6 v7 5 5 == Goal == 6 6 7 In order to emulate mobility at stationary nodes, like ORBIT nodes, there are three different main techniques used. First one is; by changing the injected noise power between two neighbor nodes, adjusting SNR value, so, increasing and decreasing packet loss ratios. Second approach is, MAC filtering the incoming packets and dropping them by a determined ratio, so to adjust packet loss probability. The last approach is switching to different stationary nodes in a predetermined order. In other words, sending packets from the stationary nodes on the predetermined mobility path at predetermined time intervals. This approach is called Spatial Switching. In this tutorial, you will learn how to use Spatial Switching for mobility emulationon ORBIT.7 In order to emulate mobility at stationary nodes, like ORBIT nodes, there are three different main techniques used. First one is; by changing the injected noise power between two neighbor nodes, adjusting SNR value, so, increasing and decreasing packet loss ratios. Second approach is, MAC filtering the incoming packets and dropping them by a determined ratio, so to adjust packet loss probability. The last approach is switching to different stationary nodes in a predetermined order. In other words, sending packets from the stationary nodes on the predetermined mobility path at predetermined time intervals. This approach is called Spatial Switching. In this tutorial, you will learn how to code and use different mobility models by the help of Spatial Switching approach in order to emulate mobility on ORBIT. 8 8 9 9 == Architecture of Spatial Switching and Previous Works == … … 11 11 Before going into details of different mobility models and the framework for implementing new ones, it is crucial to read and understand [wiki:HowTo/virtualMobilitySS Mobility Emulation using Spatial Switching] tutorial and the corresponding [http://www.winlab.rutgers.edu/~kishore/papers/ewind-2005.pdf publication] for figuring out the basics of spatial switching. 12 12 13 Additional to Mobility Emulation using Spatial Switching tutorial, below you can find some more information and which part of Spatial Switching this tutorial concentrates on. Since, this mobility emulation technique is implemented modularly, it is easy to understand, develop and update each step after learning layers. The module that we concentrate on here isthe orange box in the below hierarchy;13 Additional to ''Mobility Emulation using Spatial Switching'' tutorial, below you can find some more brief information about Spatial Switching and the parts of Spatial Switching that this tutorial concentrates on. Since, this mobility emulation technique is implemented modularly, it is easy to understand, develop and update each step after learning modules. The module that we concentrate on this tutorial is ''Mobility Model Script'', the orange box in the below hierarchy; 14 14 15 15 [[Image(SSArchitectureBasic.jpg, align=top)]] 16 16 17 As seen at the above figure, the emulation process is triggered by a Mobility Model Script. Then its output files which are called Virtual Mobile (VM) Paths -sequence of nodes for on the path-, are fed to Create Mobility Setup script as input files. Create Mobility Setup Script fetches the used grid nodes' the MAC addresses from Database and combines them and makes them ready for the Click Router.17 As seen at the above figure, the emulation process is triggered by a Mobility Model Script. Then its output files which are called Virtual Mobile (VM) Paths -sequence of ORBIT grid nodes on a mobile's path-, are fed to Create Mobility Setup script as input files. Create Mobility Setup Script fetches the used grid nodes' the MAC addresses from Database and combines them and makes them ready for the Click Router scripts. 18 18 19 19 == Framework for a new Model Implementation == … … 23 23 '''Structure of the output VM*.txt files''' 24 24 25 The example mobility model scripts are implemented with perl scripting language. For your easiness you can implement your own model in every language you want. The important point not to be missed is, every implementation must prepare mobile nodes' movement sequenceon ORBIT grid when it terminates. Each Virtual Mobile (VM) node's movement sequence must be written to a separate text file, named as VM1.txt, VM2.txt and so on. Numbering of the output text files must start from 1.25 The example mobility model scripts are implemented with perl scripting language. For your easiness you can implement your own model in any language you want. The important point not to be missed is, every implementation must prepare mobile nodes' movement sequence as text files on ORBIT grid when it terminates. Each Virtual Mobile (VM) node's movement sequence must be written to a separate text file, named as VM1.txt, VM2.txt and so on. Numbering of the output text files must start from 1. 26 26 27 The numbers at the beginning of the each line of the VM*.txt files indicate the time starting time of the nodes in seconds. One node stays active till to the next nodes starting time. The difference between each number is the node's activation duration. Therefore, one node becomes active at an instance. Next to the duration number at each line, the “node**-**” indicates the active node with its coordinates on the grid.27 At the content of the VM*.txt files, there are several lines indicating the starting time of the nodes and their coordinates at the grid. The structure of each line is as follows; the numbers at the beginning of the each line indicate the operational starting time of the nodes in seconds. One node stays active till to the next nodes starting time. The difference between each number is the node's activation duration. Next to the starting time at each line, on the right, the “node**-**” indicates the active node with its coordinates on the grid. For more detail, please refer to [wiki:HowTo/virtualMobilitySS Mobility Emulation using Spatial Switching] tutorial. 28 28 29 Since randomness is involved at the models and so at the scripts, every time you run the script you get different paths andVM*.txt files. If you want to resume with your previous path, save the VM*.txt files carefully.29 Since randomness is involved to the models and so to the scripts, every time you run the script you get different paths and so, VM*.txt files. If you want to resume with your previous path, save the VM*.txt files carefully. 30 30 31 31 '''Important Points should be Considered while Coding''' … … 33 33 Here are the significance parts of the implementation;[[BR]][[BR]] 34 34 35 * One ORBIT node at any given time can only be active for one mobile device emulation. In other words, one node can not emulate two or more mobile nodes movement at the same time. Therefore, Virtual Mobile (VM) nodes' collisions must be considered carefully during mobility implementations. (see !IsUnique() function at example scripts).35 * One ORBIT node at any given time can only emulate one mobile device's movement. In other words, one node can not be active for two or more mobile nodes' movement at the same time. Therefore, Virtual Mobile (VM) nodes' collisions must be considered carefully during mobility implementations. (see !IsUnique() function at example scripts provided at this tutorial). 36 36 37 * The nodes at the grid are numbered between 1 to 20. Avoid getting 0 or 21 as node coordinates. Otherwise your mobility model may stuck unexpectedly.37 * The nodes at the grid are numbered between 1 to 20. Avoid getting 0 or 21 as node coordinates. Otherwise your mobility model may stuck on the run, unexpectedly. 38 38 39 39 == Usage of Existing Mobility Model Scripts == … … 45 45 A mobile node moves a specified time from it current position to a new location by randomly choosing a direction and speed from particular speed and direction distributions. [1] In fact this model is not bounded, but by putting destination limits, some artificial bound added to the model. 46 46 47 IMPORTANT point to be noted here is, this model can not be run for multiple nodes , since if two or more nodes collide at some time at some node, there is no way to recover from it. The reason is; the direction and duration of the mobility do not change during the movement, but determined at the beginning of the movement. Therefore, this mobility model implemented for 1 VM.47 IMPORTANT point to be noted here is, this model can not be run for multiple nodes. The reason is; the direction and the duration of the mobility do not change during the movement, but determined at the beginning of the movement. Therefore, if two or more nodes collide at some time at some grid node, there is no way to change the route and recover from it. Hence, this mobility model implemented for 1 VM. 48 48 49 49 Click [http://www.orbit-lab.org/attachment/wiki/Mobility/MobilityModels/RandomWalkwithReflection.pl here] to download Random Walk with Reflection Mobility Model; … … 65 65 This mobility model is very similar to the Random Walk with Reflection. When the mobile nodes hit the boundaries they are wrapped to the other side of the simulation area from where they continue their trip. [1] In fact this model is not bounded, but by putting destination limits, some artificial bound added to the model. 66 66 67 IMPORTANT point to be noted here is, this model can not be run for multiple nodes , since if two or more nodes collide at some time at some node, there is no way to recover from it. The reason is; the direction and duration of the mobility do not change during the movement, but determined at the beginning of the movement. Therefore, this mobility model implemented for 1 VM.67 IMPORTANT point to be noted here is, this model can not be run for multiple nodes. The reason is; the direction and the duration of the mobility do not change during the movement, but determined at the beginning of the movement. Therefore, if two or more nodes collide at some time at some grid node, there is no way to change the route and recover from it. Hence, this mobility model implemented for 1 VM. 68 68 69 69 Click [http://www.orbit-lab.org/attachment/wiki/Mobility/MobilityModels/RandomWalkwithWrap.pl here] to download Random Walk with Wrap Mobility Model; … … 86 86 This model is slightly similar to the Random Walk with Wrap model. The mobile nodes move until they reach a randomly chosen distance from the simulation boundary. The difference is this model is bounded by its nature. [1] The model may terminate in two different ways; running time of the model may elapse or all destinations may be visited. 87 87 88 IMPORTANT point to be noted here is, this model can not be run for multiple nodes , since if two or more nodes collide at some time at some node, there is no way to recover from it. The reason is; the direction and duration of the mobility do not change during the movement, but determined at the beginning of the movement. Therefore, this mobility model implemented for 1 VM.88 IMPORTANT point to be noted here is, this model can not be run for multiple nodes. The reason is; the direction and the duration of the mobility do not change during the movement, but determined at the beginning of the movement. Therefore, if two or more nodes collide at some time at some grid node, there is no way to change the route and recover from it. Hence, this mobility model implemented for 1 VM. 89 89 90 90 Click [http://www.orbit-lab.org/attachment/wiki/Mobility/MobilityModels/RandomDistance.pl here] to download Random Distance Mobility Model; … … 107 107 '''Reference Point''' 108 108 109 This mobility model forms the basis of Random Waypoint and Weighted Waypoint models .109 This mobility model forms the basis of Random Waypoint and Weighted Waypoint models and can be run for several VM's. 110 110 111 111 Click [http://www.orbit-lab.org/attachment/wiki/Mobility/MobilityModels/ReferencePointMoveManyDestinationsMultiNodeIsUniqueAdded.pl here] to download Reference Point Mobility Model;