无线网络仿真软件使用文档格式.docx
《无线网络仿真软件使用文档格式.docx》由会员分享,可在线阅读,更多相关《无线网络仿真软件使用文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
然后在系统变量中找到path变量,把JAVA_BIN添加到path中,并在后面加上“;
(注意是英文输入法下的)”,添加完成如图2所示。
点击确定即可。
图1
图2
(3)测试JDK安装成功,打开DOS命令窗口,输入javac,如果在窗口中能够出来一些提示,如图4所示,就说明环境变量注册成功。
如果提示命令不存在,如图3所示,则表示注册不成功。
图3
图4
3.程序的运行
(1)编译源代码。
我的one程序文件夹的路径为E:
\one_1.5.1,在DOS窗口中用cd命令进入one_1.5.1所在的目录,如图5所示。
图5
(2)输入命令编译程序,命令为compile.bat,如图6所示。
图6
(3)执行程序。
输入命令执行程序,命令为one.bat,如图7所示。
将会出现程序图形界面,如图8所示。
此时程序运行成功,并且运行成功地是默认程序。
图7
图8
4.One的进一步学习
首先,从整体上把握ONE的基本框架,如图1-9所示。
从图上可以看出,在ONE中,一个模拟环境包含节点的移动模拟,路由模拟,可视化的界面以与消息报告模块。
移动模型可以通过整合的移动模块产生,也可以通过外部的接口人工导入,模拟产生的消息事件可以导出到报告模块做进一步分析。
节点移动行为通过movementmodels实现,软件已经整合了六种移动模型。
当然也可以自定义自己的移动模型,定义的方法有两种,一种方法通过外部收集的trace集进行导入,trace集有严格的数据格式(比如节点位置(GPS),buffersize,速度等)。
另外一种方法通过一个外部模块接口实现。
路由功能通过routingmodular实现,同样,ONE已经定义了六种路由模型,这六种路由模型皆为activerouting,为了与外部的其他DTN路由模拟器的路由模型(如dtnsim)交互,或是方便自定义自己的路由算法,ONE特意设定了一个passiverouting接口,如此,方便了ONE路由模型的扩展。
路由模块主要负责消息的传送,包括消息的copy,relay,receive,abort等事件。
消息事件的产生则由eventgenerator负责。
模拟的结果作为输出事件通过simulationengine输入到reportmodular中做进一步分析处理,处理结果再进一步被外部的post-processingtools处理,产生关于本次模拟的统计信息,这些信息可以通过作图工具(如Graphviz和gnuplot)直观地显示出来。
另外,GUI可以显示出整个模拟的场景和节点的状态信息,如:
位置,相遇时间,信息携带者,信息传送的量等。
各个模块详细记录了当前操作的状态,模块之间通过bus进行通信,共享各模块相互操作的结果。
如节点移动模块可以根据路由模块的状态改变它的移动行为,反过来,路由模块可以基于节点移动模块中的相遇时间调整通信的参数。
4.1Softwarearchitecture
首先,软件各个模块的package,以与它们之间的交互显示如图10所示。
每个模块分别对应上面的体系结构,其实现都是继承至一个基类,然后进行自身模块的扩展,corepackage实现了DTN主机以与它们之间的连接关系;
guipackage实现和GUI相关的类,playfieldpackage是它的一个子类,负责整个界面的中央部分,ui实现了与用户交互的接口类和基于文本的console接口(传说中的黑框,ONE中也作为模拟界面,名为patch)。
routing实现路由功能,movement实现节点的移动行为,将routing和movement模块产生的结果导入到reportpackage中进行处理,最后,testpackage没有直接和核心模块相连,它主要包含系统测试的相关类,以此来检验模拟的结果是否达到真实的场景需求。
4.2Movementmodels
如图11所示,节点的移动实现都是继承自MovementModel,软件实现了六种基本的移动模型,每种模型的运作机理详见,ExternalMovement模块可以对导入的trace进行操作,trace数据的移动模型一般是基于map的,其数据格式是WKT,换句话说,只有WKT格式,ONE才能识别,有一个工具可以将获取的trace数据格式转化成WKT进行模拟,即一个GIS的开源项目OpenJUMP。
4.3Routingmodels
同样,各路由模块的实现也是继承自MessageRouter,主要实现了六种activerouting,
FirstContact,DirectDelivery,SprayandWait(normalandbinary),Epidemic,PRoPHETandMaxPropandwithinreference。
PassiveRouter模块定义了加载其他路由协议的接口。
4.4MobilityModel
从大的方面,可以分为三种:
1)随机移动;
2)基于Map的随机移动;
3)基于用户行为的移动
进一步细分:
1)RandomWalk(RW)
2)RandomWaypoint(RWP)
3)RandomMap-Based
Movement(MBM)
4)ShortestPathMap-BasedMovement(SPMBM)
5)RoutedMap-BasedMovement(RMBM).
6)WorkingDayMovementModel(WDM)
所有的移动模型都封装成一个类,继承于MovementModel,提供节点选择新路径的接口,SimMap类中描述了Map数据,DijkstraPathFinder类可以使用这些数据来找到一条最短路径,PointOfInterest类可以从Map数据中选择合理的POI数据点。
模型见初识theONE。
下面分别描述几种模型。
(1)RW:
节点从当前位置随机选择一个方向和速度移动到一个新的位置,方向和速度从一个预先定义的围里面选择,如:
[speedmin,speedmax],[0,2π].通过一个固定的时间间隔t或固定的距离d之后,节点的方向和速度在重新计算。
如图13所示。
图9
(2)RWP:
该模型类似RW,只不过节点在选择下一个方向和速度时有一段自定义的暂停时间(Pausetime),节点需要在这个节点待一段时间,如图14所示。
图10
(3)MBM:
依托于Map数据,选择一个节点随机地放置在maparea,使其在该路段上行驶,直到到达一个路段终点,然后选择返回或结束,如果节点到达一个十字路口,再随机选择一个方向行驶,如果达到预先配置的距离或时间,停止一段时间,在继续行驶,如果达到目的地,则停止行驶。
(4)SPMBM:
该模型为MBM的升级版,节点从map数据过Dijkstra算法找出一条最短的路径,然后沿着这条路径进行行驶。
(5)RBMB:
该模型适用于一些有着预定义的路径的节点,如Bus,train等节点。
其包含了一条路径中所有可能遇到的stop和在stop停止的时间间隔。
(6)WDM:
该模型考虑了用户的行为,包括用户可能sleepingathome,workingatoffice,以与goingoutwithfriendsintheevening等活动。
此外,WDM中引入社交关系和社区(community)的概念。
4.5RoutingModel:
ONE实现了六种路由协议,涵盖了DTN路由协议的所有类型,包括single-copy,n-copy,unlimited-copy以与基于估计的协议。
1)DirectDelivery(DD),
2)FirstContact(FC)
3)Spray-and-Wait,
4)PRoPHET
5)Max-Prop,and
6)Epidemic.
所有的路由协议都封装成一个类,继承于MessageRouter类,该类有两个兄弟类,ActiveRouter和PassiveRouter类,所有实现的六种路由协议皆继承自ActiveRouter类,而PassiveRouter类提供用户自定义的路由协议类的上层接口。
(1)DD:
是一种single-copy的路由协议,只有当携带信息的节点遇到目的节点的时候,才进行数据转发。
(2)FC:
也是一种single-copy的路由协议,携带信息的节点只要遇到一个节点,就进行转发,直到到达目的节点。
这两种方法保证了整个网络中只有一个信息的copy,只要信息转发成功,就将原信息删除,是简单的store-and-forward.虽然节省了网络带宽,但不能提高网络息的传送率。
(3)Epidemic:
是一种n-copy的路由协议,泛洪式的信息传播方式,携带信息的节点将自己所有的信息进行泛洪,直到到达目的节点,或TTL时间到进行删除。
(4)Spray-and-Wait:
和Epidemic比较相像,只不过限制信息copy的数量。
这两种方法虽然能提高网络息的传送率,但大量消耗网络的资源,如网络带宽和节点的存储能力。
所以,为了权衡上面几种协议之间的利弊,提出了下面基于估计的两种协议。
基于估计的协议的本质的原理是:
通过节点之间维护着一和其他节点相遇的表,通过概率模型计算,如果两个节点相遇,那么根据他们估计的相遇概率,可以估计它们下次再次相遇的概率,选择相遇概率大的节点进行转发。
(5)PRoPHET:
该协议模型选择和目的节点相遇概率大的节点进行转发。
(6)Max-Prop:
该协议进一步优化,使用相遇概率通过Dijskra算出从一个节点到目的节点的最短路径,选择在最短路径上的节点进行转发。
5.案例演示
5.1案例要求:
模拟无线网络:
100个节点,每个节点随机移动,速度1~2m/s;
节点的无线通信设备的覆盖半径10m,传输速率1Mb/s;
网络区域:
长5000m,宽5000m;
仿真时间:
10000s。
5.2修改参数
(1)如图15所示,设置节点数为100个节点。
如图16所示为前3组中每一组的节点个数;
如图17所示为第4组节点个数;
如图18所示为第5组节点个数;
如图19所示为第6组节点个数。
六组节点个数相加一共是100个。
图15
图16
图17
图18
图19
(2)如图20所示,设置每个节点移动速度为1~2m/s。
图20
(3)如图21所示,设置每个节点的无线通信设备的覆盖半径10m,传输速率1Mb/s。
图21
(4)如图22所示,设置网络区域:
长5000m,宽5000m。
图22
(5)如图23所示,设置仿真时间:
图23
(6)配置完成之后在DOS窗口中运行程序,显示结果如图24所示。
放大图片如图25所示。
图24
图25
(7)运行结束后如图26所示。
图26