- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
基于OMNET++的tictoc仿真实验报告
一、实验原理简介
1.1OMNET++简介
OMNET++是面向对象的离散事件仿真工具,它是由布达佩斯大学通信工程
系开发的一个开源的、基于组件的、模块化的开放仿真平台,具有强大的图形用
户界面接口和嵌入式仿真内核。OMNeT++可以用来仿真任何离散事件的系统,
包括仿真通信协议、计算机网络、并行系统、多处理器系统和分布式系统。它能
够建立目前几乎所有网络对象的基本模型之间的互联,并且使复杂的网信通信和
拓扑结构得到容易而正确的仿真。
1.2OMNeT++特性
OMNeT++在描述模型、定义网络拓扑、实现模型、跟踪支持、调试、性能等多
方面都显示出强大的优势。与同属于非商业软件的NS-2[61相比,OMNET++具
有更加突出的特性。①编程仿真能力和可移植性。OMNeT++和NS-2在编程能力
方面的功能都很强大。OMNeT++可以在Windows系统和Linux系统等多种操作系
统上运行,它生成的仿真程序是可携带的,可以独立运行于多种操作平台之上。
OMNeT++提供NED(NetworkDescription)和C++两种语言来建模仿真。其中,
OMNeT++用NED来描述仿真模型的拓扑结构,它非常简单,但是具有非常强大
的拓扑定义功能,可以定义模块、链路和网络。NED还可以实现动态加载,便于
更新仿真模型的拓扑结构;C++用来实现模型的仿真和消息的处理等功能。而且
NED文件可以编译为C++代码,连接到仿真程序中。可以说,OMNeT++仿真环
境是用C++实现的。NS-2只能运行在Linux环境中,它使用OTcl和C++两种建模
仿真语言,它生成的仿真程序不具备可携带性。②可仿真模型的范围。OMNeT++
可以支持TCP/IP、SCSI和FDDI等多种协议模型,而NS-2只能支持基于TCP/IP
的协议模型。③仿真效率。OMNeT++支持模块化仿真模型,模块可以灵活地组
合,还可以多次使用。它还支持使用参量,可以在不修改源代码和不重新编译的
情况下。直接设置参量,对不同条件下的网络模型进行仿真,因此比NS-2具有
更好的仿真效率。④仿真结果输出的性能。OMNeT++提供强大完善
的图形用户界面,具有模块输出窗口、监测器和自动生成动画3个输出工具,可
以动态地观察仿真程序的运行情况,而且内存消耗小、速度快。也具有自动生成
动画效果的功能,但没有模块输出窗口和监测器。可以看出,MNET++具有更强
大的计算机网络模型仿真能力,OMNET++更适用于各种计算机网络模型的仿真。
2、TICTOC仿真步骤
首先,让我们来考虑一个包含两个节点的“网络”,节点所做的事非常简单
就是:一个节点创建数据包,然后这两个节点将该数据包来回传送,(就像打乒
乓球一样),我们把这两个节点分别称之为“tic”和“toc”。
从零开始——实现你的第一个仿真的步骤:
1.创建一个工作目录,取名tictoc,并切换到该目录。(译者注:路径名不能
含空格和中文字符)。
2.创建一个拓扑文件来描述该样例网络。拓扑文件是标识网络节点及其链
路的文本文件,有两种编辑方式,可视化以及代码方式。我们对它取名为
tictoc1.ned:、
3.现在我们需要实现简单模块Txc1的功能,通过写一个C++文件(txc1.cc)
来完成。
在初始化函数中我们创建了一个消息对象(cMessage)并通过输出门out对外
发送。因为该门连接到其他模块的输入门,所以仿真内核将会把handleMessage()
函数参数中携带的这个消息传递给其他模块。该消息将会在NED文件中指派给
链路的100ms传播延迟后到达。其他模块收到后同样将该消息送回(仍然经过
100ms的延迟),所以整个过程就像一个永不停歇的乒乓球一样。
在OMNeT++中,所有的消息(数据包、帧、任务等)和事件(定时、超时)都
通过cMessage对象(或它的子类)描述。一旦它们被送出或者被调度,就会被仿真
内核放在”已调度事件”和”未来事件”列表中,直到时钟来临,再通过
handleMessage()传递到相关模块。
要注意到在本仿真样例中,并没有内建停止条件,也就是说,仿真会一直进
行下去。你可以从GUI
您可能关注的文档
最近下载
- 读书分享课件《美丽新世界》-奥尔德斯·赫胥黎.pptx
- 2024年秋新外研版英语三年级上册课件 Unit 5 第3课时(Speed up).pptx
- (精华版)国家开放大学电大《商法》机考第五套真题题库及答案.pdf VIP
- 全国劳模大国工匠潘从明的事迹党课课件.pptx VIP
- 纪检监察科技信息中心(办案点)建设工程项目可行性研究报告.doc VIP
- 人教版六年级数学上册第五单元圆的面积专项卷附答案 .pdf
- 13套题,必过,阿坝州拟任科级领导干部任职资格政治理论考试题汇总.pdf
- 银行重大市场风险应急管理办法(试行)模版.pdf VIP
- 2022年高考真题——语文(北京卷) .pdf VIP
- 养生养老行业新媒体营销策划方案.pptx
文档评论(0)