Adyton: A Network Simulator for Opportunistic Networks
Clone or download
Latest commit db5f20f Dec 20, 2015
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Initial commit Dec 21, 2015
ext Initial commit Dec 21, 2015
res Initial commit Dec 21, 2015
src Initial commit Dec 21, 2015
trc Initial commit Dec 21, 2015
utils Initial commit Dec 21, 2015
.gitignore Initial commit Dec 21, 2015
AUTHORS Initial commit Dec 21, 2015
CHANGELOG.md Initial commit Dec 21, 2015
COPYING Initial commit Dec 21, 2015
README.md Initial commit Dec 21, 2015

README.md

Adyton

Adyton is an event-driven network simulator, written in C++, for Opportunistic Networks (a.k.a. Delay-Tolerant Networks) that is capable of processing contact traces. The Adyton simulator supports a plethora of routing protocols and real-world contact traces, while also providing several congestion control mechanisms and buffer management policies.

Adyton was developed by Nikolaos Papanikos and Dimitrios-Georgios Akestoridis during their graduate studies in the Department of Computer Science and Engineering at University of Ioannina, Greece under the supervision of Prof. Evangelos Papapetrou.

Adyton was a restricted area within Ancient Greek temples, where oracles and priests gave their oracular responses.

Features

Supported Contact Traces1

Supported Routing Protocols

Supported Congestion Control Mechanisms2

Supported Scheduling Policies2

Supported Dropping Policies

  • Drop Front
  • Drop Tail
  • Drop Oldest
  • Drop Youngest
  • Drop Front - Avoid Source Packets
  • Drop Tail - Avoid Source Packets
  • Drop Oldest - Avoid Source Packets
  • Drop Youngest - Avoid Source Packets

Supported Deletion Mechanisms3

  • Just TTL
  • No Duplicates - Delete Replicas
  • No Duplicates - Keep Replicating
  • Vaccine
  • Cataclysm

1: Note that the original traces are not directly supported by Adyton. Further processing is required for each trace in order to be compatible with Adyton. More instructions about trace processing can be found in the utils/trace-processing directory. For any questions or special requests please contact us.

2: Currently all congestion control mechanisms and some scheduling policies are supported only by single-copy routing protocols. Their use in multi-copy protocols is still experimental.

3: Deletion mechanisms are used only in the case of multi-copy routing protocols where multiple packet replicas exist throughout the network.

Installation

Requirements

Adyton currently supports only Linux-based systems with a proper C++ compiler. All the required third-party libraries are included in the ext/ directory.

Compiling

To compile Adyton from source code, just execute the following command inside the src/ directory:

$ make

Execution

After compiling Adyton from source code, you can use the executable file to run a simulation with the default settings with the following command:

$ ./Adyton

Configuration

Syntax

$ ./Adyton -TRACE <contact trace> -RT <routing protocol> -CC <congestion control mechanism> -SP <scheduling policy> -DP <dropping policy> -DM <deletion mechanism> -OUTPUT <output type> -TRAFFIC_TYPE <traffic type> -TRAFFIC_LOAD <number of packets> -TTL <time to live> -BUFFER <buffer size> -REP <replication number> -SPLIT <number of pieces> -SEED <seed number> -PROFILE <text file> -RES_DIR <results directory> -TRC_DIR <trace directory> -BATCH <batch mode>

Options

<contact trace> options:

Contact Trace Arithmetic Value String Value
Milan PMTR 1 MILAN
MIT Reality Mining 2 REALITY
Intel 3 INTEL
Haggle-Cam 4 HAGGLE-CAM
INFOCOM 2005 5 INFOCOM-2005
INFOCOM 2006 6 INFOCOM-2006
INFOCOM 2006 (Short Range) 7 INFOCOM-2006-SR
SASSY 8 SASSY
SIGCOMM 2009 9 SIGCOMM-2009
Cambridge 10 CAMBRIDGE
Cambridge Students 11 CAMBRIDGE-STUDENTS
RollerNet 12 ROLLERNET
Nodobo 13 NODOBO
UCSD 14 UCSD
UCSD (3 Weeks) 15 UCSD-3-WEEKS
Cabspotting 16 CABS
Cabspotting (2 Days) 17 CABS-2-DAYS
Lyon Primary School 18 LYON
Stanford High School 19 STANFORD
DieselNet 20 DIESELNET
Dartmouth 21 DARTMOUTH
Dartmouth (2 Weeks) 22 DARTMOUTH-2-WEEKS
Debugging 23 DEBUG

<routing protocol> options:

Routing Protocol Arithmetic Value String Value
Direct Delivery 1 DIRECT
Epidemic Routing 2 EPIDEMIC
PRoPHET 3 PROPHET
SimBet 4 SIMBET
SimBetTS 5 SIMBETTS
Bubble Rap 6 BUBBLE
Spray and Wait 7 SNW
LSF Spray and Wait 8 LSF-SNW
MSF Spray and Wait 9 MSF-SNW
PRoPHET Spray and Wait 10 PROPHET-SNW
LSF Spray and Focus 11 LSF-SNF
Compare and Replicate 12 CNR
Encounter-Based Routing 13 EBR
Delegation Forwarding 14 DF
Coordinated Delegation Forwarding 15 COORD
Optimal Routing 16 OPTIMAL

<congestion control mechanism> options:

Congestion Control Mechanism Arithmetic Value String Value
None 1 NONE
Avoid Overflow 2 AVOID-OVERFLOW
ACC 3 ACC
FairRoute 4 FR
BSA 5 BSA
CACC 6 CACC
CCAF 7 CCAF

<scheduling policy> options:

Scheduling Policy Arithmetic Value String Value
FIFO 1 FIFO
LIFO 2 LIFO
GRTRMax 3 GRTRMAX
GRTRSort 4 GRTRSORT
HNUV 5 HNUV

<dropping policy> options:

Dropping Policy Arithmetic Value String Value
Drop Front 1 DF
Drop Tail 2 DT
Drop Oldest 3 DO
Drop Youngest 4 DY
Drop Front - Avoid Source Packets 5 DF-ASP
Drop Tail - Avoid Source Packets 6 DT-ASP
Drop Oldest - Avoid Source Packets 7 SO-ASP
Drop Youngest - Avoid Source Packets 8 DY-ASP

<deletion mechanism> options:

Deletion Mechanism Arithmetic Value String Value
Just TTL 1 JUST-TTL
No Duplicates - Delete Replicas 2 NO-DUPS
No Duplicates - Keep Replicating 3 KEEP-REP
Vaccine 4 VACCINE
Cataclysm 5 CATACLYSM

<output type> options:

Output Type Arithmetic Value String Value
Type 1 1 T1
Type 2 2 T2
Type 3 3 T3
Type 4 4 T4
Type 5 5 T5

<traffic type> options:

Traffic Type Arithmetic Value String Value
Uniform 1 UNIFORM
Burst 2 BURST
Sample 3 SAMPLE
Predefined 4 PREDEFINED

<number of packets> is the number of packets that will be created.

<time to live> is defined as a timeout value, which specifies when a packet is no longer useful and should be deleted (if is equal to 0, the TTL value will be infinite).

<buffer size> is defined as the maximum number of packets that each node can store (if is equal to 0, infinite buffers will be used).

<replication number> is the replicas of each original packet (used only for multi-copy protocols).

<number of pieces> is the number of pieces to split the contact trace file, before uploading to memory.

<seed number> is used by the pseudo-random number generator algorithm.

<text file> is the name of a text file with additional parameter arguments.

<results directory> is the name of the directory that will store the results of the simulation.

<trace directory> is the name of the directory that stores the contact trace files.

<batch mode> options:

  • ON = the results will not be printed
  • OFF = all the results will be printed

Default Settings

  • <contact trace> = MILAN
  • <routing protocol> = DIRECT
  • <congestion control mechanism> = NONE
  • <scheduling policy> = FIFO
  • <dropping policy> = DF
  • <deletion mechanism> = JUST-TTL
  • <output type> = Τ1
  • <traffic type> = UNIFORM
  • <number of packets> = 10000
  • <time to live> = 0
  • <buffer size> = 0
  • <replication number> = 1
  • <number of pieces> = 100
  • <seed number> = time(NULL)
  • <text file> = ""
  • <results directory> = "../res/"
  • <trace directory> = "../trc/"
  • <batch mode> = OFF

How to cite Adyton

When you write a paper that involves the use of Adyton, we would appreciate it if you can cite our tool using the following entry.

  • N. Papanikos, D.-G. Akestoridis, E. Papapetrou, "Adyton: A network simulator for opportunistic networks", 2015. [Online]. Available: https://github.com/npapanik/Adyton.

  • BibTeX entry:

@misc{Adyton,
author = {Papanikos, Nikolaos and Akestoridis, Dimitrios-Georgios and Papapetrou, Evangelos},
title = {Adyton: A Network Simulator for Opportunistic Networks},
howpublished = {[Online]. Available: https://github.com/npapanik/Adyton},
year = {2015}
}

Publications

Adyton has been used in the following publications:

  • D.-G. Akestoridis, N. Papanikos, and E. Papapetrou, "Exploiting Social Preferences for Congestion Control in Opportunistic Networks", in Proceedings of the 10th IEEE International Conference on Wireless and Mobile Computing, Networking and Communications (WiMob), 2014, pp. 413-418. DOI: 10.1109/WiMOB.2014.6962204.
  • N. Papanikos, and E. Papapetrou, "Coordinating Replication Decisions in Multi-copy Routing for Opportunistic Networks", in Proceedings of the 10th IEEE International Conference on Wireless and Mobile Computing, Networking and Communications (WiMob), 2014, pp. 8-13. DOI: 10.1109/WiMOB.2014.6962142.

License

Copyright (C) 2015 Nikolaos Papanikos, Dimitrios-Georgios Akestoridis, and Evangelos Papapetrou

Adyton is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Adyton is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Adyton. If not, see http://www.gnu.org/licenses/.