Skip to main content

Posts

Showing posts with the label ONE

SeeR: Simulated Annealing-based Routing in Opportunistic Mobile Networks

Conceptual architecture of SeeR Opportunistic Mobile Networks (OMNs) are characterized by intermittent connectivity among nodes. In many scenarios, the nodes attempt at local decision making based on greedy approaches, which can result in getting trapped at local optimum. Moreover, for efficient routing, the nodes often collect and exchange lot of information about others. To alleviate such issues, we present SeeR, a simulated annealing-based routing protocol for OMNs. In SeeR, each message is associated with a cost function, which is evaluated by considering its current hop-count and the average aggregated inter-contact time of the node. A node replicates a message to another node, when the latter offers a lower cost. Otherwise, the message is replicated with decreasing probability. Moreover, SeeR works based solely upon local observations. In particular, a node does not track information about other nodes, and, therefore, reduces the risk of privacy leaks unlike m...

Textbook on Opportunistic Mobile Networks

Opportunistic Mobile Networks: Advances and Applications is our forthcoming textbook to be published by Springer in 2016. This book is a result of our years of experience in research and development in this domain. #TheOMNBook, if you may say, deals with fundamental challenges in OMNs as well as contemporary research issues. These include, but not limited to, routing, mobility, cooperation, heterogeneity, and emotions. An entire chapter is dedicated to protocol development and testing using the ONE simulator. #TheOMNBook is shaped in a way to cater both beginning and advanced level readers. Contextual examples are provided to ensure better understanding of related topics. The chapters come with plenty of hands-on exercises. Several illustrations and other visual elements are used to make reading the book a pleasant experience. Whether you are a seasoned researcher looking for novel cross-dimensional ideas or a beginner to this field, give #TheOMNBook a try! Learn more about our...

IllegalArgumentException in Simulations

At times, users have reported of runtime exceptions while running a simulation that uses PRoPHET. The error signature looks like the following. Exception in thread "main" java.lang. IllegalArgumentException : Comparison method violates its general contract! at java.util. TimSort .mergeHi( Unknown Source) at java.util.TimSort.mergeAt( Unknown Source) at java.util.TimSort. mergeCollapse(Unknown Source) at java.util.TimSort.sort(Unknown Source) at java.util.Arrays.sort(Unknown Source) at java.util.ArrayList.sort( Unknown Source) at java.util.Collections.sort( Unknown Source) It may be noted that the default sorting algorithm has changed since Java 7 — rather than Merge sort, Tim sort is now used by default. However, it seems like it is possible to override the default sorting algorithm in Java using the following argument to the JVM. -Djava.util.Arrays.useLegacyMergeSort=true The execution command in the one.sh (or one.bat) file should be up...

Specifying Source and Destination of Messages

One of the frequently asked questions in the community is how to specify which particular nodes would act as source(s) and destination(s) of the messages created in the ONE simulator. The simulator, in fact, provides a pair of settings (shown below in bold face) aimed for this particular purpose. Let us consider that there are $n + 1$ nodes in an OMN.  Further, let the nodes with addresses from $x$ to $y$, both inclusive, would create messages. The nodes in the range $w$ to $z$, both inclusive, would be the destinations of those messages, where $0 \le x \le y \le n$, and $0 \le w \le z \le n$. Then, the corresponding simulation scenario can be configured as follows. ## Message creation parameters # How many event generators Events.nrof = 1 # Class of the first event generator Events1.class = MessageEventGenerator # (Following settings are specific for the MessageEventGenerator class) # Creation interval in seconds (one new message every 25 to 35 seconds) Events1.interval ...

50K Views of the DTN Blog

The DTN blog recently reached a milestone — it crossed 50,000 page views! The journey of this blog — and that of mine with the ONE simulator — started in 2011. Back in those days, old-timers would recall, there were not much resources available on the ONE simulator. After spending some time with it, I was finally able to gain some understanding about its functionality and work flow. I realized that a short how-to document might benefit others. What started as a humble effort to provide a quick tutorial on the ONE simulator soon became a popular resource in the community over the years. I'm thankful to all the users of the ONE mailing list who continuously kept me motivated to enrich this blog. I took this opportunity to prepare an infographic on the usage of the DTN blog based on the statistics provided by Blogger. It has not been possible to include all statistics in the infographic. A few interesting observations are noted below. Undoubtedly, the ONE tutorial is the mos...

Featured in Openshift Developer Spotlight

As many of you would know, a few months back I have launched the ONE Knowledge Base , which is hosted on Openshift. This week, my profile has been featured in the Openshift Developer Spotlight . Check out the mini-interview to learn why the ONE KB was developed and what problem it solves. Besides, you would also get to know about my favorite tools and development stack :) If you have not tried the ONE KB yet, go for it now. Search the archives, and you might find that your question has already been answered!

Controlling Transmission Range from within the Simulation

While simulating scenarios with the ONE simulator, one typically defines one or more network interfaces, and add them to the nodes as required. This use case prevails in most of the scenarios. However, a drawback here is that different network interfaces are mutually incompatible — an interface of type 1 can't communicate with any interface not of type 1. Under certain circumstances, it might be required to control the transmission range of one or more network interfaces dynamically from within the simulation. For example, in one of my works, " On emotional aspects in Mission-Oriented Opportunistic Networks ", I have considered the case where users occasionally turn off their device radios based on their contemporary emotions. In particular, the following shows how to set the radio range to 0: ModuleCommunicationBus comBus = host.getComBus(); // Store the original radio range the first time it is reset if (this.originalRadioRange == -1) { this.originalRadioRange = ...

The ONE Knowledge Base

The Opportunistic Network Environment (ONE) simulator has become largely popular and widely used in research on DTNs and Opportunistic Networks. The simulator has an associated friendly community, where users can ask questions and get their doubts clarified. Indeed, the community is vibrant and its members are useful. However, there are two issues with this community. First, the archives of the community's mailing list are not public. This is unlike many other similar lists hosted using Mailman, which are public and, therefore, can be searched using Google. Hence, time and again people have asked the question -- how to search the email archives? The second issue is largely due to the first. Due to the lack of searching facility over the archives, often same question tend to be asked by the new users repeatedly. People here are patient enough to reply to them. But such necessity could be entirely discounted had there been a facility to search the archives. In particular, it w...

Commonly Used Metrics for Performance Evaluation

The following metrics are commonly used when evaluating scenarios related to DTN protocols. Delivery ratio of the messages, Average message delivery latency Overhead ratio (of the underlying routing mechanism) Suppose that $M$ be the set of all messages created in the network and $M_d$ be the set of all messages delivered. Then, the delivery ratio is computed as $|M_d| / |M|$. Now let the $i^{th}$ delivered message was created at time $c_i$ and delivered at time $d_i$. Then the average message delivery latency is computed as $(\sum_{i = 1}^{|M_d|} (d_i - c_i)) / |M_d|$. Note that, in Statistics, mean, median and mode are all the measures of average. But "loosely speaking", unless otherwise specified, we refer to the "mean" value when we say "average." Nevertheless, the MessageStatsReport in the ONE simulator provides a measure of both the mean and median values wherever appropriate. One may refer the above metric as "end-to-end delay....

Effects of Buffer Size on Delay Tolerant Routing

In this post, we look at how buffer size affects, if at all, the performance of the routing protocols in DTNs. For this purpose, we will consider the following five routing protocols: Epidemic PROPHET Spray-and-Wait (SnW) First Contact (FC) Direct Delivery (DD)  Detailed discussion of these protocols is scoped out here. We just note that in case of Epidemic, there is unlimited replication of the messages. In PROPHET, however, the replication is usually less than that of Epidemic. On the other hand, SnW has a fixed limit ( L ) on possible number of replications of a message. Finally, FC and DD involve message forwarding -- not replication. So, in the latter cases, there is always a single copy of any message in the DTN. We will consider the buffer sizes from 20 MB to 180 MB, both inclusive, in steps of 20 MB so that we have total 9 different buffer sizes. We will use the real-life connection traces from Infocom'06. Therefore, we will need to simulate 5 * 9 = 45 scenarios...

A Simple Epidemic Routing Scenario

Today, we will play around a bit with the ONE simulator, specifically with the Epidemic routing protocol. We will simulate two scenarios and look at the results. Detailed analysis of the results are left out for the time being. Parameters Here are few common parameters for the simulations. Group.movementModel = RandomWaypoint Group.msgTtl = 300 (5 hours) MovementModel.worldSize = 450, 340 Scenario.endTime = 14400 (4 hours) Stats are collected from MessageStatsReport from a single run.

The ONE Tutorial (Moved)

Contents Introduction Why? Target Audience Pre-conditions The Scenario General Steps Configuration File(s) Specify Scenario Settings Specify Network Interfaces for Nodes Create a Group of Nodes Specify Motion Patterns Specify Traffic Pattern Specify Reports to be Generated Running the Simulation The ONE tutorial has moved to a new page. Please click here to follow. Introduction Opportunistic Network Environment is a Java-based simulator targeted for research in Delay Tolerant Networks (DTNs)/Opportunistic Mobile Networks (OMNs). Apart from letting a user to simulate different scenarios quickly and in a flexible manner, it also provides an easy way to generate statistics from the simulation performed. ONE can be run on Linux, Windows, or any other platform supporting Java. Details about ONE, including how to download and run, can be found from the official site . A list of common questions and their answers are listed here . Read more »