欢迎来到天天文库
浏览记录
ID:34442447
大小:232.33 KB
页数:4页
时间:2019-03-06
《ns2中蚁群算法路由协议的实现new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、广西通信技术2010年第4期GuangxiCommunicationTechnology专论综述NS2中蚁群算法路由协议的实现田克纯,农秀凤,王方(桂林电子科技大学信息与通信学院,广西桂林541004)摘要:网络模拟是当前网络通信研究中的重要手段之一,在网络通信的建设开发过程中起着不可替代的作用。NS2由于其扩展性强、执行效率高,已被广泛应用于各种网络的仿真。首先介绍NS2的原理,然后结合蚁群算法介绍如何添加新协议到NS环境下并实现,最后给出新协议AntSense的仿真结果。关键词:网络模拟;NS2;蚁群算法;新协议中图分
2、类号:TP319文献标识码:A文章编号:1008-3545(2010)04-0043-04事件,并提供函数产生新事件,指定事件发生的一、引言时间。在一个网络模拟器中,典型的时间包括分组到达,时钟超时等,模拟时钟的推进由事件发目前,最广泛使用的验证网络协议的正确性和生的时间量决定。模拟处理过程的速率不直接对测试相关性能的方法是通过虚拟环境进行模拟仿应着实际时间。一个事件的处理可能又会产生后真。NS2是最流行的进行网络模拟的软件之一,是继的时间。模拟器所做的就是不停地处理一个个由美国加州大学的LNBL网络研究组于1989年开事
3、件,直到所有的事件都被处理完或者某一特定发的一个开放源代码的网络仿真软件[1],已广泛被事件发生为止。科研院所和各大高校用于网络分析、研究和教学。NS2还有一个丰富的构件库,有了这个构件蚁群算法是M.Dorigo提出的一种基于生物习性库,用户可以完成自己所要研究的系统的建模工的启发式算法,用于解决复杂组合优化问题。它能作。NS2的构件库所支持的网络类型包括广域网、在一个合理的时间内对复杂问题有一个较优的结局域网、移动通信网、卫星通信网等,所支持的路果,在网络路由方面,该算法也体现出了很好的路由方式包括层次路由、动态路由、多
4、播路由等。由性能。虽然NS2集成了大量典型的有线和无线NS2还提供了跟踪和检测的对象,可以把网络系统网络下各个层的协议,但还没有提供蚁群算法协议中的状态和事件记录下来以便分析。NS2构件库的功能,因此以下主要论述把蚁群算法集成到NS2部分类层次结构如图1所示。中,并能在Otcl脚本中使用的实现方法。NS2中的网络构件一般由相互关联的两个类来实现,一个在C++中,一个在Otcl中,这种方式称二、NS2原理[2]为分裂对象模型。构件的主要功能是在C++中实现的,Otcl中的类则主要提供C++对象面向用户的接NS2是一个离散事件
5、模拟器,其核心部分是一口。C++对象和Otcl对象之间的这种连接机制就是个离散事件模拟引擎。NS2中有一个“调度器”TclCL。这种分裂对象模型增强了可扩展性和可组类,负责记录当前时间,调度网络时间队列中的合性。43广西通信技术2010年第4期GuangxiCommunicationTechnology专论综述TclObjectNsObjecOtherObjectsConnectorClassifierSnoopQueueQueueDelayAgentTraceAddrClassifierMcastClassifierIn
6、OutDrpEdrpDropTailREDTCPUDPEnqDecDropRecvRenoSACK图1NS2构件库的部分类层次结构common/packet.h枚举类型值列表中,并在p_info三、蚁群算法新协议扩展实现类中为新的分组类型定义一个名称name_[PT_ANTSENSE]=“antsense”。要实现研究者提出的网络协议,就要对你NS2(2)跟踪支持,要记录分组信息,需要在进行扩展。下面对蚁群算法在NS2中的实现进行CMUTrace类中实现format_antsense()函数,为了说明。能够调用该函数,还需
7、要修改trace/cmu-trace.cc文首先,将下载好的AntSense包放在NS安装文件中的format()函数添加casePT_ANTSENSE:件根目录下,AntSense包括了7个文件:format_antsense(p,offset);antsense.h:定义所有必要的的定时器和路由代break;理,用来实现协议功能的头文件。(3)通过编辑queue/priqueue.cc里的recv()antsense.cc:实现所有定时器、路由代理和Tcl函数声明蚁群包的队列优先级。链接的文件。(4)修改OTcl库文件
8、,包括添加分组类型,antsense_pkt.h:声明了在网络中节点间相互交在tcl/lib/ns-packet.tcl文件列表中添加相应的协议名换路由协议分组格式的头文件。AntSense;绑定属性的默认值,在tcl/lib/ns-default.neighbour_table.h:这个头文件中声明路
此文档下载收益归作者所有