Transcript Slide 1

Opportunistic Network Environment Simulator (The ONE Simulator)

The ONE Simulator

The Opportunistic Network Environment simulator.

INTRODUCTION

The ONE is a simulation environment that is capable of

Generating node movement using different movement models Routing messages between nodes with various DTN routing algorithms and sender and receiver types visualizing both mobility and message passing in real time in its graphical user interface.

5/1/2020

Funtions of ONE Simulator

     Node movement Inter-node contacts Routing Message handling Result collection and analysis

 Synthetic models  Existing movement traces }

Node Movement

 Connectivity between the nodes is based on their location, communication range and the bit-rate 

Inter-node contacts

The routing function is implemented by routing modules that decide which messages to forward over existingcontacts

Routing

5/1/2020

 The messages themselves are generated through event generators. The messages are always unicast, having a single source and destination host inside the simulation world

Message Handling

Source(S) Destination(D) DTN Nodes 1 DTN Node Drop Box Wifi 1 DTN Nodes 2 Drop Box(DB) Data Mule Wifi 2 5/1/2020

Architecture

5/1/2020

Mobility Modeling

 Synthetic movement models    Random movement Map-constrained random movement Human behavior based movement 5/1/2020

Random movement

Random Walk The Random Walk chooses randomly a neighbouring point from the current location of the Node.

Random Waypoint The movement of nodes is governed in the following manner : Each node begins by pausing for a fixed number of seconds.

The node then selects a random destination in the simulation area and a random speed between 0 and some maximum speed.

The node moves to this destination and again pauses for a fixed period before selecting another random location and speed.

This behaviour is repeated for the length of the simulation 5/1/2020

5/1/2020

Map-Based Mobility

Map-based movement models constrain the node movement to paths defined in map data. The ONE simulator release includesthree map-based movement models: 1) Random Map-Based Movement (MBM), 2) Shortest Path Map-Based Movement (SPMBM), and 3) Routed Map-Based Movement (RMBM)

5/1/2020

Working Day Movement Model

The WDM model brings more reality to the node movement by modeling three major activities typically performed by humans during a working week: 1) sleeping at home, 2) working at the office, and 3) going out with friends in the evening.

These three activities are divided into corresponding sub models between which the simulated nodes transition depending on the time of the day

5/1/2020

Routing

There are six included routing protocols: 1) Direct Delivery (DD), 2) First Contact (FC), 3) Spray-and-Wait, 4) PRoPHET, 5) MaxProp, and 6) Epidemic.

Simulation Techniques

Simulation steps involved

Specify the general settings for the scenario to be simulated Specify the network interface(s) of the nodes Create a group of nodes Specify the motion patterns Specify the traffic pattern Specify a set of reports to be generated

PRE-CONDITIONS

This tutorial assumes that you have downloaded the ONE source code, and have executed the compile.bat file to generate all the related Java classes successfully. The version that we would be using is e-one. Instructions regarding how to do this can be found in the official site of the ONE listed above.

THE SCENARIO

Simulating a network of 4 clusters and 2 groups.

Setting 2 WiFi towers , 2 Carrier Devices (or Data Mules) , 40 DTN nodes and 4 DB’s.

Example

CONFIGURATION FILE

Configuration file define various settings for our simulation.

• No. of Nodes.

• No. of Carrier Devices.

• How long the simulation runs.

• Dimension of the bounded region.

• So on.

To run a configuration file we use the following command .

For Linux :   sh compile.bat

./sh one.sh default_settings.txt For Windows :   compile.bat

one.bat default_settings.txt Default setting is the default configuration file of the one simulator.

Specify scenario settings

The first step of a simulation is to setup the scenario. For example, How long would the simulation run, How many groups of nodes would it consist of, A name for the current scenario, and so on.

Note:

In this tutorial all the configuration would be written in the default_settings.txt file. The contents of the entire file would be shown at the end.

## Scenario settings # A name to identify the present scenario Scenario.name = Scenario_1 # Whether to create connections among nodes Scenario.simulateConnections = true # How frequently to sample the simulation Scenario.updateInterval = 1.0 # 43200s == 12h # How long the simulation will run (in seconds) Scenario.endTime = 3600 # How many groups of nodes to be created (atleast one) Scenario.nrofHostGroups = 9

Specify Network Interfaces for Nodes

We have to instruct the simulator about how the different nodes will communicate. For example, two computers can communicate over, say, Ethernet or P2P links. In our case, all the nodes would exchange messages using WiFi or Carrier Devices or Bluetooth as shown below.

For Bluetooth Interface

# "Bluetooth" interface for all nodes btInterface.type = SimpleBroadcastInterface # Transmit speed = 256kBps btInterface.transmitSpeed = 256k # Range of transmission (in meter) btInterface.transmitRange = 10

For Carrier Node Interface

# “Carrier Node" interface for all nodes CNInterface.type = SimpleBroadcastInterface # Transmit speed = 2560kBps CNInterface.transmitSpeed = 2560k # Range of transmission (in meter) CNInterface.transmitRange = 10

For Wi-Fi Interface

# “Wi-Fi" interface for all nodes wifiInterface.type = SimpleBroadcastInterface # Transmit speed = 1024kBps wifiInterface.transmitSpeed = 1024k # Range of transmission (in meter) wifiInterface.transmitRange =9000

For Actual Dropbox Interface

# “Actual DropBox" interface for all nodes ADBInterface.type = SimpleBroadcastInterface # Transmit speed = 2560kBps ADBInterface.transmitSpeed = 2560k # Range of transmission (in meter) ADBInterface.transmitRange = 100

For Dropbox Interface

# “DropBox" interface for all nodes DBInterface.type = SimpleBroadcastInterface # Transmit speed = 1024kBps DBInterface.transmitSpeed = 256k # Range of transmission (in meter) DBInterface.transmitRange = 20000

For Satellite Interface

# “Satellite" interface for all nodes SATInterface.type = SimpleBroadcastInterface # Transmit speed = 1024kBps SATInterface.transmitSpeed = 110k # Range of transmission (in meter) SATInterface.transmitRange = 20000

NOTE: ONE does not implement link or physical layer features.

Scenario where interfaces to be used.

GROUP1 DB MCS SP GROUP2 DB WT DM DM Trajectory DB DTN Node

Defining common setting for all group of nodes

As mentioned earlier, we can have multiple logical groups of nodes in ONE. # Common settings for all groups Group.nrofApplications = 0 # Mobility model for all the nodes Group.movementModel = RandomWaypoint Group.router = EpidemicRouter # Buffer size of any node Group.bufferSize = 2048M Group.scanInterval = 0

# Walking speeds Group.speed = 1.1,1.39

# Message TTL of 200 minutes (3:30 hours) Group.msgTtl = 200 Group.waitTime = 240,241 # All nodes have the bluetooth interface Group.nrofInterfaces = 1 Group.interface1 = btInterface Group.clusterStops = 3,5 #Range of the cluster Group.clusterRange = 2000

Defining Group of clusters

Define the tags for every type of node (or interfaces).

Define the starting no. of every interface.

Define clusterWifi .i.e. which cluster belong to which Wi-Fi.

Define no. of Data Mules and there paths.

Define node per cluster.

Define Group Centers.

Defining Tags

#For DTN nodes Group.bt_tag = p #For Data Mules Group.cd_tag = CD #For DropBox Group.adb_tag = ADB #For Satellite Group.sat_tag = SAT_ #For Wi-Fi Group.wifi_tag = WIFI_

Define the starting no. of every interface.

Group.mcs_address=10 Group.firstBT = 12 Group.firstCD = 8 Group.firstADB = 4 #Group.firstSAT = 20 Group.firstWIFI = 10

Define clusterWifi

Group.clusterWifi = 10,11,10,11

Define Group Centers

Group.group_centers = 4,5,6,7

Define node per cluster

Group.nodespc = 10

Define no. of Data Mules and there paths

#total data mules Group.DMS=2 # non GCs visited by each dm Group.CD1= 1 Group.CD2= 3

Defining the Clusters

 We have to define where we are going to place an Wi-Fi or DB or DTN nodes.  What type of interface will it be using .  How many no. of hosts will it contain.  What type of movement model will be used.

##Cluster Group10.clusterCenter = 275, 850 Group10.dblocation = 240, 830 Group10.groupID = p1_ Group10.nrofHosts = 10 Group10.movementModel = RandomWaypoint Group10.interface1 = btInterface Group10.activeTimes = 0,133200

##ActualDropBox Group2.groupID = ADB Group2.nrofHosts = 19 Group2.movementModel = ExternalMovement Group2.nrofInterfaces = 3 Group2.interface1 = ADBInterface Group2.interface2 = btInterface Group2.interface3 = CNInterface ##Wi-Fi Group5.groupID = WIFI_ Group5.nrofHosts = 1 Group5.movementModel = ExternalMovement Group5.nrofInterfaces = 2 Group5.interface1 = wifiInterface Group5.interface2 = ADBInterface Group5.activeTimes = 0,133200

Events

Events deals with where does the packet to be send. Either from MCS to DTN node or vice-versa.

• • There are two types events : M packet(Re): Packets from DTN nodes goes to MCS N packet (Rs): Packets from MCS goes to DTN nodes

Message creation parameters

#Total no. of events Events.nrof = 2 Events1.class = MessageEventGenerator #Speed of packet transfer Events1.interval = 2,3 #Size of the packet Events1.size = 1M,1M #Source of the packet Events1.hosts = 53,243 #Destination of the packet Events1.tohosts = 23,24 #Name of the packet Events1.prefix = M

## Message creation parameters Events.nrof = 2 Events1.class = MessageEventGenerator Events1.interval = 2,3 Events1.size = 1M,1M Events1.hosts = 53,243 Events1.tohosts = 23,24 Events1.prefix = M Events2.class = MessageEventGenerator Events2.interval = 20,21 Events2.size = 1M,1M Events2.hosts = 23,24 Events2.tohosts = 53,243 Events2.prefix = N

Reports

Required report from the Simulation

Defining total no of reports to be generated

Report.nrofReports = 1

Defining where the reports are to be generated

Report.reportDir = reports/Scenario_1

## Reports Report.nrofReports = 3 Report.warmup = 0 Report.reportDir = reports/Scenario_1/ Report.report1 = MessageStatsReport Report.report2 = EventLogReport Report.report3 = DeliveryProbReport

External Movement

Setting the location for every timestamp.

nodes according to the 0 133200 0 650 0 1350 0 0 275 850 0 1 200 680 0 2 165 800 0 3 80 680 0 4 240 560 0 5 300 740 ..

..

..

0 50 200 220 0 51 245 370 0 52 480 615 240 38 259 357 240 39 236 537 240 40 202 550 ..