The ONE v1.2 - Readme
=====================
The ONE is a Opportunistic Network Environment simulator which provides a
powerful tool for generating mobility traces, running DTN messaging
simulations with different routing protocols, and visualizing both
simulations interactively in real-time and results after their completion.
Quick start
===========
Compiling
---------
You can compile ONE from the source code using the included compile.bat
script. That should work both in Windows and Unix/Linux environment with
Java 6 JDK or later.
If you want to use Eclipse for compiling the ONE, since version 1.1.0 you need
to include some jar libraries in the project's build path. The libraries are
located in the lib folder. To include them in Eclipse, assuming that you have
an Eclipse Java project whose root folder is the folder where you extracted
the ONE, do the following:
select from menus: Project -> Properties -> Java Build Path
Go to "Libraries" tab
Click "Add JARs..."
Select "DTNConsoleConnection.jar" under the "lib" folder
Add the "ECLA.jar" the same way
Press "OK".
Now Eclipse should be able to compile the ONE without warnings.
Running
-------
ONE can be started using the included one.bat (for Windows) or one.sh (for
Linux/Unix) script. Following examples assume you're using the Linux/Unix
script (just replace .sh by .bat for Windows).
Synopsis:
one.sh [-b] [conf-file] [run-index (count)]
Options:
-b Run simulation in batch mode. Doesn't start GUI but prints
information about the progress to terminal.
Parameters:
conf-file: The configuration file where simulation parameters
are read from.
run-index: If running in GUI mode (without -b option), you can give which
run index to use in the given run. In batch mode, the last parameter is
the run index count, i.e., how many runs with different run index are done.
Configuring
===========
All simulation parameters are given using configuration files. These files
are normal text files that contain key-value pairs. Syntax for most of the
variables is:
Namespace.key = value
I.e., the key is (usually) prefixed by a namespace, followed by a dot, and
then key name. Key and value are separated by equals-sign. Namespaces
start with capital letter and both namespace and keys are written in
CamelCase (and are case sensitive). Namespace defines (loosely) the part
of the simulation environment where the setting has effect on. Many, but
not all, namespaces are equal to the class name where they are read.
Especially movement models, report modules and routing modules follow this
convention.
Numeric values use '.' as the decimal separator and can be suffixed with
kilo (k) mega (M) or giga (G) suffix. Boolean settings accept "true",
"false", "0", and "1" as values.
Many settings define paths to external data files. The paths can be relative
or absolute but the directory separator must be '/' in both Unix and Windows
environment.
Some variables contain comma-separated values, and for them the syntax is:
Namespace.key = value1, value2, value3, etc.
For run-indexed values the syntax is:
Namespace.key = [run1value; run2value; run3value; etc]
I.e., all values are given in brackets and values for different run are
separated by semicolon. Each value can also be a comma-separated value.
For more information about run indexing, go to section "Run indexing".
Setting files can contain comments too. A comment line must start with "#"
character. Rest of the line is skipped when the settings are read. This can
be also useful for disabling settings easily.
Some values (scenario and report names at the moment) support "value
filling". With this feature, you can construct e.g., scenario name
dynamically from the setting values. This is especially useful when using
run indexing. Just put setting key names in the value part prefixed and
suffixed by two percent (%) signs. These placeholders are replaces by the
current setting value from the configuration file. See the included
snw_comparison_settings.txt for an example.
File "default_settings.txt" is always read and the (optional)
configuration file given as parameter can define more settings or override
some (or even all) settings in the default settings file. The idea is that
you can define in the default file all the settings that are common for
all the simulations and run different, specific, simulations using
different configuration files. If your simulations don't have any common
parameters (which is highly unlikely) just provide an empty default
settings file. If you want to use more than one default configuration set, just
create separate folders for all configuration sets and provide one default
settings file for each folder.
Run indexing
------------
Run indexing is a feature that allows you to run large amounts of
different configurations using only single configuration file. The idea is
that you provide an array of settings (using the syntax described above)
for the variables that should be changed between runs. For example, if you
want to run the simulation using five different random number generator
seeds for movement models, you can define in the settings file the
following:
MovementModel.rngSeed = [1; 2; 3; 4; 5]
Now, if you run the simulation using command:
one.sh -b my_config.txt 5
you would run first using seed 1 (run index 0), then another run using
seed 2 etc. Note that you have to run it using batch mode (-b option) if
you want to use different values. Without the batch mode flag the last
parameter is the run index to use when running in GUI mode.
Run indexes wrap around: used value is the value at index (runIndex %
arrayLength). Because of wrapping, you can easily run large amount of
permutations easily. For example, if you define two key-value pairs:
key1 = [1; 2]
key2 = [a; b; c]
and run simulation using run-index count 6, you would get all permutations
of the two values (1,a; 2,b; 1,c; 2,a; 1,b; 2,c). This naturally works
with any amount of arrays. Just make sure that the smallest common
nominator of all array sizes is 1 (e.g., use arrays whose sizes are primes)
-- unless you don't want all permutations but some values should be
paired.
Movement models
---------------
Movement models govern the way nodes move in the simulation. They provide
coordinates, speeds and pause times for the nodes. The basic installation
contains 5 movement models: random waypoint, map based movement, shortest
path map based movement, map route movement and external movement. All
models, except external movement, have configurable speed and pause time
distributions. A minimum and maximum values can be given and the movement
model draws uniformly distributed random values that are within the given
range. Same applies for pause times. In external movement model the speeds
and pause times are interpreted from the given data.
When a node uses the random waypoint movement model (RandomWaypoint), it is
given a random coordinate in the simulation area. Node moves directly to the
given destination at constant speed, pauses for a while, and then gets a new
destination. This continues throughout the simulations and nodes move along
these zig-zag paths.
Map-based movement models constrain the node movement to predefined paths.
Different types of paths can be defined and one can define valid paths for
all node groups. This way e.g., cars can be prevented from driving indoors or
on pedestrian paths.
The basic map-based movement model (MapBasedMovement) initially distributes
the nodes between any two adjacent (i.e., connected by a path) map nodes and
then nodes start moving from adjacent map node to another. When node reaches
the next map node, it randomly selects the next adjacent map node but chooses
the map node where it came from only if that is the only option (i.e., avoids
going back to where it came from). Once node has moved trough 10-100 map
nodes, it pauses for a while and then starts moving again.
The more sophist
没有合适的资源?快使用搜索试试~ 我知道了~
the ONE无线网络模拟器(Opportunistic Network Environment simulator )
共288个文件
java:148个
txt:58个
wkt:44个
5星 · 超过95%的资源 需积分: 43 176 下载量 39 浏览量
2009-09-14
15:25:10
上传
评论 6
收藏 888KB ZIP 举报
温馨提示
芬兰人开发的一个专门用于DTN网络仿真的软件,用Java语言写的,该模拟器本身能支持First Contact, Epidemic, Spray and Wait, Direct delivery, PRoPHET and MaxProp这几种路由。 具体的安装方法里面有一个README.txt,很有用,不仅介绍了the ONE的一些性能,还有具体的安装以及示例。由于本身只是一些源代码,所以需要用户重新编译。具体的方法是: 1、安装Java5,配置好路径等; 2、点击文件夹下的compile.bat进行编译; 3、运行one.bat,就可以看见GUI了,此时模拟的是default。txt配置的DTN网络,如果要自己配置的DTN网络,则输入one My*.txt即可。 希望能对大家有用,另外还有一个用于DTN网络模拟的软件叫DTNsim2,是加拿大的waterloo 大学开发的
资源详情
资源评论
资源推荐
收起资源包目录
the ONE无线网络模拟器(Opportunistic Network Environment simulator ) (288个子文件)
compile.bat 201B
one.bat 83B
EpidemicKnowledgeHandler.java.diff 489B
DummyEpidemicHandler.java.diff 238B
Zoom24.gif 485B
Zoom16.gif 303B
FastForward24.gif 279B
StepForward24.gif 279B
Pause24.gif 272B
Play24.gif 247B
StepForward16.gif 200B
FastForward16.gif 200B
Pause16.gif 192B
Play16.gif 186B
package.html 647B
package.html 597B
package.html 539B
package.html 377B
package.html 254B
package.html 200B
package.html 188B
package.html 186B
package.html 168B
package.html 160B
package.html 160B
ECLA.jar 106KB
DTNConsoleConnection.jar 9KB
Settings.java 22KB
EpidemicRouterTest.java 18KB
ActiveRouter.java 18KB
MaxPropRouter.java 17KB
MessageRouter.java 16KB
MapBasedMovement.java 12KB
DTNHost.java 11KB
Report.java 11KB
World.java 11KB
GUIControls.java 11KB
BusTravellerMovement.java 9KB
MaxPropRouterTest.java 9KB
EventLogPanel.java 9KB
Message.java 9KB
SimScenario.java 9KB
DTNSimGUI.java 9KB
ProphetRouter.java 9KB
WKTReader.java 8KB
DTN2Events.java 8KB
EveningActivityMovement.java 8KB
OfficeActivityMovement.java 8KB
ExternalMovement.java 7KB
MapBasedMovementTest.java 7KB
PointsOfInterest.java 7KB
ConnectivityGrid.java 7KB
NetworkLayer.java 7KB
MovementModel.java 7KB
WKTReaderTest.java 7KB
PlayField.java 7KB
Connection.java 6KB
MaxPropDijkstra.java 6KB
HomeActivityMovement.java 6KB
PointsOfInterestTest.java 6KB
DijkstraPathFinder.java 6KB
DTN2Manager.java 6KB
StandardEventsReader.java 6KB
SimMenuBar.java 6KB
SettingsTest.java 6KB
ContactTimesReport.java 6KB
ConnectionTest.java 5KB
WorkingDayMovement.java 5KB
ExternalMovementReader.java 5KB
DTNSim.java 5KB
MessageEventGenerator.java 5KB
SprayAndWaitRouter.java 5KB
MessageStatsReport.java 5KB
ContactTimesReportTest.java 4KB
ProphetRouterTest.java 4KB
MapRoute.java 4KB
AbstractRouterTest.java 4KB
MaxPropDijkstraTest.java 4KB
EventLogControlPanel.java 4KB
NodeGraphic.java 4KB
WKTMapReader.java 4KB
ExternalEventsQueue.java 4KB
SimMap.java 4KB
EveningActivityControlSystem.java 4KB
BusControlSystem.java 4KB
TotalContactTimeReportTest.java 4KB
MapRouteMovement.java 4KB
MapNode.java 4KB
DTNSimUI.java 4KB
MessageChecker.java 4KB
DistanceDelayReport.java 4KB
MeetingProbabilitySet.java 3KB
BinaryEventsReader.java 3KB
ActivenessHandler.java 3KB
ExternalMovementTest.java 3KB
InfoPanel.java 3KB
Coord.java 3KB
TestUtils.java 3KB
Path.java 3KB
EventQueueHandler.java 3KB
共 288 条
- 1
- 2
- 3
hewei_sky
- 粉丝: 2
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- json的合法基色来自红包东i请各位
- 项目采用YOLO V4算法模型进行目标检测,使用Deep SORT目标跟踪算法 .zip
- 针对实时视频流和静态图像实现的对象检测和跟踪算法 .zip
- 部署 yolox 算法使用 deepstream.zip
- 基于webmagic、springboot和mybatis的MagicToe Java爬虫设计源码
- 通过实时流协议 (RTSP) 使用 Yolo、OpenCV 和 Python 进行深度学习的对象检测.zip
- 基于Python和HTML的tb商品列表查询分析设计源码
- 基于国民技术RT-THREAD的MULTInstrument多功能电子测量仪器设计源码
- 基于Java技术的网络报修平台后端设计源码
- 基于Python的美食杰中华菜系数据挖掘与分析设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论14