西西软件园多重安全检测下载网站、值得信赖的软件下载站!
西西首页 常用软件 软件下载 安卓软件 游戏下载 安卓游戏 MAC应用 驱动下载 安卓电视
系统工具网络工具媒体工具图形图像聊天工具应用软件编程开发手机软件安卓应用电脑安全字体素材

DTN仿真工具one

v1.5.0 免费版
  • DTN仿真工具onev1.5.0 免费版
  • 软件大小:1007KB
  • 更新时间:2013-06-19 17:43
  • 软件语言:中文
  • 软件厂商:
  • 软件类别:国产软件 / 免费软件 / 行业软件
  • 软件等级:4级
  • 应用平台:WinAll, WinXP
  • 官方网站:暂无
好评:50%
坏评:50%

软件介绍

DTN仿真工具,one_1.5.0-RC1版本。芬兰人开发的一个专门用于DTN网络仿真的软件,用Java语言写的.里面有一个README.txt,很有用,不仅介绍了the ONE的一些性能,还有具体的安装以及示例。

什么叫dtn网络?

DTN(delay-tolerant network)是从ad hoc,WSN(wireless sensor network)等自组织无线网络中抽象出来的一种网络模型.其典型特征是节点之间的链路间歇性中断且中断持续时间较长,以至于在任意时刻源节点和目的节点间可能不存在路径.

the one的结构

1 .report包:用来指定导出哪些类型的报表,具体可查阅readme.txt文档。

上图为这些类的继承关系,可在配置文件settings中配置,然后反射注入四类订阅者(由图可知为ConnectionListener,UpdateListener,MessageListener,ContactTimesReport四种接口的集合,定义在core包中)里面,然后在不同的事件发生后,对四个订阅者队列进行遍历(四个队列存放在类core.SimScenario中)

2 .routing包:用来指定消息的路由策略,按组指定。

上图为该包的继承关系,如果是研究算法 的同学,注重点就应该就是这个包了,如:DirectDeliveryRouter--只是简单地向最后接收者传递,不会传给别的结点中转,EpidemicRouter--洪范传输,还有1.3中新添的EnergyAwareRouter,就具有能源这个概念了,因为从现在DTN网络的利用来考虑,能源的消耗很关键。还有一些实现了现今比较流行的dtn路由算法的类

使用 :只需继承MessageRouter,覆盖对应的方法,然后加入自己的实现,再在settings配置文件中配置则可。

3 .movement包:用来指定结点的移动策略,亦为按组指定。

该包的继承关系,其中,大部分的移动策略(继承MapBaseMovement)都是基于给定的地图文件移动(还可以分为不同的路线类型,如人行道,汽车道等),也有部分为随机移动(RandomWaypoint和RandomWalk)和事件驱动(ExternalMovement和ExtendedMovementModel)

4 .input包:分为两个类型,一类为继承ExternalEvent的消息实体类,基本为每个消息对应一个实体

上图为各类消息实体类的继承关系

第二类为实现EventQueue接口的外部事件

其中DTN2Events为与DTNSim2的事件与The One事件的对接

5 .core包:包括一些核心的类和核心的接口等

具体执行流程应该是这样的:

a.读取配置文件。

b.初始化模拟环境,把report,routing等都配置好,并把host生成。

c.初始化模拟时间

d.检验当前时间是否小于模拟时间:是,则跳到e,否,则跳到f

e.模拟环境update,回到d

f.end

其中主要的流程在world.update方法里面,包括:触发事件(消息传输,丢包等),移动host等。

发现的问题

举个例子:如EpidemicRouter(即洪范路由算法),覆盖了父类的update方法

public void update() {

//super.update做了三件事:传输完成的终止传输,连接断开的终端传输,ttl小于零的丢包处理
super.update();

//检查
if (isTransferring() || !canStartTransfer()) {
return; // transferring, don't try other connections yet
}
//检查
// Try first the messages that can be delivered to final recipient
if (exchangeDeliverableMessages() != null) {
return; // started a transfer, don't try others (yet)
}
//问题在此
// then try any/all message to any/all connection
this.tryAllMessagesToAllConnections();
}

protected Connection tryAllMessagesToAllConnections(){

//检查
List<Connection> connections = getConnections();
if (connections.size() == 0 || this.getNrofMessages() == 0) {
return null;
}
//消息按优先级排序
List<Message> messages =
new ArrayList<Message>(this.getMessageCollection());
this.sortByQueueMode(messages);
//问题在此
return tryMessagesToConnections(messages, connections);
}

protected Connection tryMessagesToConnections(List<Message> messages,
List<Connection> connections) {
for (int i=0, n=connections.size(); i<n; i++) {
Connection con = connections.get(i);

//如果可以传输,就传输该消息,并返回传输的消息。
Message started = tryAllMessages(con, messages);

//如果传输了,则返回了
if (started != null) {
return con;
}
}

return null;
}

由上面的代码可看出,每次传输,只会向一个连接传输,但大家都知道,无线网络结点与结点的数据传输,应该是广播的(只是说应该),导师也是这样说的,但从代码可以看出,该软件是特意这样做的。所以就有矛盾了,所以也就怀疑其自己的结论了,但自己只是学软件的,对dtn网络只是有一点了解,所以也无从下手,只能是从代码角度去推断了。

软件标签: 仿真

软件截图

DTN仿真工具one v1.5.0 免费版

    其他版本下载

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)

    下载帮助下载帮助西西破解版软件均来自互联网, 如有侵犯您的版权, 请与我们联系。

    TOP
    软件下载