欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年毕业设计方案9.docx

    • 资源ID:12915014       资源大小:124.43KB        全文页数:32页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年毕业设计方案9.docx

    扬州市职业高校毕业设计< 论文)32 / 28设计<论文) 题目: 基于 NS2 的泛洪路由协议的实现与仿真的设计系别: 电子工程系专业: 通 信 技 术 班级: 09 通信<3 )班学号: 0906020306姓名: 丁威指导老师:丁晨 阳完成时间: 2021-04-29目录1 绪论52NS-2 结构与功能72.1 NS-2 的原理概述72.1.1离散大事模拟器72.2.2丰富的构件库82.1.3分裂对象模型 82.1.4开放的源代码 82.2 NS进行网络模拟的方法和一般过程92.3 分裂对象模型和 Tc1CL 92.4 NS基础102.5与 NS-2 相关几个常用工具122.6 Otcl实现模拟的一般过程143.1Ad Hoc 网络的概念 153Aod Hoc 网络的简洁介绍 153.2 Ad Hoc 网络的主要特点 153.3 Ad Hoc网络的结构 164 泛洪路由协议的设计实现174.1 泛洪路由协议174.2 添加路由协议类174.3 定义包头类型184.4添加/ 修改源文件 184.5 编译代码195 泛洪路由协议的仿真测试195.1初步测试195.2 场景测试246 总结26致谢 27参考文献28摘要网络模拟是进行网络技术争论的一种基本手段;争论过程中, 由于各种缘由,实际网络系统的实现往往是现代较高或是不现实的;在这种情形下,模拟就成了正确可供挑选的测试,评估和验证手段之一;网络模拟有着周期小,成本低等特点,而且可以是争论者更简洁理应他人的争论成果,可以是争论者更专心于自己所争论的部分而不必为系统的其他部分耗费过多精力;关键词NS ;网络模拟;Ad Hoc;无线自组网;路由协议;仿真;性能分析第一章绪论1.1 背 景网络模拟是进行网络技术争论的一种基本手段;在新技术的争论过程中,由于各种缘由,实际网络系统的实现往往是代价较高或是不现实的;在这种情形下,模拟就成了正确可供挑选的测试、评估和验证手段之一;网络模拟有着周期小、成本低等特点,而且可以使争论者更简洁利用他人的争论成果;NS2 正是这样一种针对网络技术的源代码公开的、免费的软件模拟平台;它是美国 DARPA支持的工程 VINT<Virtual InterNet Testbed)开发的通用的多协议网络模拟软件,其中集成了大量典型的有线、无线甚至卫星网络下各个层的协议,同时 NS 广泛的用户又在不断地对这个系统进行完善和修改;正是由于NS2的这种开放性,使争论者更好的进行各种算法的实现和协议的改进;Ad Hoc 网络是一组具有无线收发装置的移动节点组成的一个多跳的暂时性的自组织系统,具有以下一些主要特点:动态拓扑,即网络中的节点可以任意移动,因此,网络的拓扑结构也可能会变化;链路带宽受限、容量时变,由于拓扑动态变化导致每个节点转发的非自身作为目的地的业务量随时间而变化,因此与有线网络不同,它的链路容量表现出时变特点;动力受限,能量受限,由于网络节点的移动特点,其中大多数节点以电池作为动力,在进行系统设计时节能就成为一个特别重要的指标;物理上安全有限,移动网络比固定网络<有线和无线)更易受到安全威逼,需要克服无线链路的安全弱点及移动拓扑所带来的新的安全隐患,因此,传统的用于固定网络的路由协议不适用于Ad Hoc 网络;由于 Ad Hoc 网络的特点,它对路由协议有了一些新的要求,如何更好地应用这种自组织的网络,满意更多的应用,第一应当把握现有的一些路由算法协议的特点;美国 DARPA支持的工程 VINT 开发了通用的多协议网络模拟软件NS-2,并取得广泛使用, NS 模拟器在设计思路上满意网络争论界在网络模拟方面多种需求,即抽象,仿真,场景生成,可视化,可扩充性等设计原就,除此之外,模拟器中是否有大量的协议模块可用,模拟器包含的协议模块必需是经过验证的达到其协议成熟度要求的协议实现以及假定NS中协议模块以及它们之间交换的三个数量相当大,需要一种机制来防止对一个模块的修改会导致另一个模块的功能被破坏;为此, NS 由很多自动测试套件,来防止无意的改动被带入模拟器中;1.2 论文组织结构其次章 NS2 体系结构及功能模块:原理的概述以及NS 的基础,具体描述了 NS2 的体系结构和各项功能模块,包括使用NS2 进行网络模拟的过程,以及建立新协议或修改已有网络对象进行扩展时相关的问题;第三章对于 Aod Hoc 网络的简洁介绍:包括其概念特点,结构组成等第四章 基于 NS2的泛洪路由协议的设计实现:基于NS2平台,添加实现了泛洪路由协议,包括添加协议类,增加包头类型以及代码编译;第五章 泛洪路由协议的仿真测试:对其次章实现的泛洪路由协议进行了网络仿真测试,最终对结果进行了分析争论;第六章 总结:对本文所作工作进行总结其次章 NS-2结构及功能2.1 NS-2 的原理概述多协议网络模拟器可以为低成本的试验供应一个良好的环境,可用于完全不同的争论领会的一个通用模拟环境,可以为网络学术界供应相当大的便利! 这些便利包括已有协议的行为的论证,可用于开发新协议的丰富的构建平台, 在一个受控环境下争论大规模协议交互的可能性,以及能够更便利地比较不同方法的结果;2.1.1 离散大事模拟器NS 是一个离散大事模拟器,离散大事模拟是几种常用的系统模拟模型之一,即,大事规定了系统状态的转变,状态的修改仅在大事发生时进行;在一个网络模拟器中,典型的大事包括分组到达,时钟超时等;模拟时钟的推动有大事发生的时间量确定;模拟处理过程的速率不直接对应着实际时间,一个大事的处理可能又会产生后续的大事;模拟器所做的就是不停地处理一个个事件,知道处理完全部的大事或者某一特定大事发生为止;NS 的核心部分是一个离散大事模拟引擎;2.1.2 丰富的构件库相对于一般的离散大事模拟器来说,NS 的优势在于它有特别丰富的构件库,而且这些对象易于组合,易于扩展,用户可以充分利用这些已有的对象, 进行少量扩张,组合出所要争论的网络系统模型,然后进行模拟,这样就大大减轻了进行网络模拟争论的工作量,提高了效率;NS 构件库所支持的网络类型包括广域网,局域网,移动通信网,卫星通信网等,所支持的路由方式包括层次路由,动态路由,多播路由等;2.1.3 分裂对象模型NS 的构件库是用两种面对对象的语言编写的:C+和 Otc1;这两种方式被称为分裂对象模型,构件的主要功能通常在C+中实现, Otc1 中的类就主要供应C+对象面对用户的接口,用户可以通过Otc1 来拜访对应的C+对象的成员变量和函数; C+对象和 Otc1 对象之间是通过叫做 Tc1CL 的机制关联起来的;同时 NS使用这种分裂对象模型,是出于兼顾模型性能和敏捷性两方面的考虑;这种分裂现象模型也起到了抽象的作用,他对用户屏蔽了功能实现的细节;用户通过 Otc1 进行,模拟配置,很多情形下只需要明白构建的使用和配置接口就可以了;2.1.4 开放的源代码NS中所表达的这些先进的设计思想使得NS成为了一种有用的网络模拟器; 同时, NS 是免费的,开放源代码的;这使得利用NS 进行网络模拟的争论者可 以很便利地扩展 NS 的功能,也可以很便利地共享和沟通彼此的争论成果;NS吸纳了这些 NS开发者奉献的各方面的模块,从而使它的构件库不断地丰富,这正是一个好的网络模拟器的生命力之所在;2.2 NS 进行网络模拟的方法和一般过程在用户已经完成 NS的扩展,或者 NS所包含的构件已满意了要求,那么: 1> 开头编写 Otc1 脚本;第一配置模拟网络拓扑结构,此时可以确定链路的基本特性,如推迟、带宽和丢失策略等2> 建立协议代理,包括端设备的协议绑定和通信业务量模型的建盆3> 配置业务量模型的参数,从而确定网络上的业务量分布;4> 设置 Trace 对象; Trace 对象能够把模拟过程中发生的特定类型的大事记录在 trace文件中; NS通过 trace文件来储存整个模拟过程;仿真完成后,用户可以对 trace 文件进行分析争论;5> 编写其他的帮助过程,设定模拟终止时间,至此Owl脚本编写完成;6> 用 NS说明执行刚才编写的Ote1 脚本7> 对 trace文件进行分析,得出有用的数据;也可以用N-等工具观看网络模拟运行过程8> 调整配置拓扑结构和业务量模型,重新进行上述模拟过程;2.3 分裂对象模型和 Tc1CLTc1 和 OIL Ta 是一种说明执行的简洁的脚本语言;其说明器是用c+编写的,具有很强的可扩展性;只要用户增加相应的说明执行模块的程序,就可扩展出新的命令;为了进一步增强编程的敏捷性,提高程序的效率,我们需要把Owl 和 C+结合起来;为了能充分发挥Otc1 和 C+这两种面对对象语言的强大才能,我们需要一种机制,使得在C+中能直接调用 Owl 说明器的功能, Owl 和C+能够相互直接操作对方定义的数据,并且C+中的类可以和 Owl 中的类对应起来;这种机制就是 Tc1CL;NS正是利用了 TOCL建立起分裂对象模型,形成了其丰富的构件库;通过这种机制,NS 达到了模拟配置敏捷性和运行效率的统一;2.4 NS 基础NS 与网络模拟NS是一个大事 event> 驱动的模拟器,日前NS支持 2 种类型的大事调度器 :非实时的none real-nine>和实时的 real-time>.非实时的调度器又分为3 种:linked- list, heap, calendar;NS 只支持单线程,故在某一时刻只能有一个大事在执行,假如有多于一个大事被支配在同一时刻,那么会依据大事代码插入的先后次序执行;list scheduler Scheduler/List类>是川一个简洁的链表结构实现的; 大事依据时间次序排列,因此大事的插入和删除都需要搜寻整个链表;_heap scheduler Scheduler/Heap类>是用一个堆结构实现的,在大事很多时,这种 结构比链表结构有优势;对于n 个大事, heap scheduler插入和删除操作的时间是 Olog n>,calendar scheduler Scheduler/Calendar类>是用一种类似于年历的数据结构来实现,年份不同但日月相同的时间可以记录在同一天中: 相对于 heap scheduler来说,它的执行效率更高 . 因此是目前 Ns 中缺省的非实时大事调度器 . ;节点一个单播节点的基本结构如下列图,它主要包括两个对象 : 地址分类器address classifier> 和端口分类器 port classifier> ,它们分别用来判定分组的目标地址以及分组的目标 Agents.配置节点单播节点的结构配置节点就是在创建节点之前定义它的各种属性,函数Simulator node- comfit用来配置节点的属性;节点的属性包括节点的地址类型、移动节点的各个网络构件的类型、 ad-b.网络中移动节点的路由协议类型、是否打开各层Agent. Router. MAC>的trace功能等等;分类器 classifier>收到一个分组后,节点需要检查分组的某些区域 大多数情形下是检查目的地址,某些时候会检查源地址>,然后查找与这个区域的值相匹配的接收者;在NS中,这个下作由 Classifier对象完成, NS 中有各种不同的 Classifier对象,分别负责检查分组的不同部分,来完成不同的匹配、挑选工作 .定时器定时器 timer> 既可以在 C-中实现也可以在 Owl 中实现;在 c+中,各种定时器都是基于抽象基类的 定义于 ns/common/timer-handler,h> ,它们常常用于 agent 对象中,但也可以被其他对象使用 .分组头治理在 NS的网络模拟中,分组是对象间交互的基本单元;分组由一系列分组头和一个可选的数据空间组成 如图 5.8 所示>;分组头的结构在 Simulator对象创建时就被初始化了,同时每个分组头相对于分组的起始地址的偏移量也被记录下来;在缺省情形卜,大多数NS内建的分组头都是始能的 包括 common头、IP 头、TCP头、RTP头、trace头等>这意味着在缺省情形下无论某个分组头是 否会被使用,它都会被初始化;当然用户也可以挑选只激活全部分组头中的一部分,以节省模拟过程中的内存开销;在通常情形下,分组只含有系列分组头,而指向数据空间的指针为 null ;虽然分组可以通过安排数据空间来携带真实的数据,但很少有上层应用和 agent 支持这一特性,由于一般来说在非实时的模拟中携带真实数据是没有意义的 .应用层在 NS 中,应用层程序构建在运输层代理 transport agent>之上,它分为两 大 类 : 流 量 发 生 器 trafficgenerator>和 应 用 模 拟 器 simulated application>图 5.13说明白这 两类应用层程序与 运输 层代理 transport agent> 之间的关系 : 流量发生器一股用在UDP 代理之上,应用模拟器一般用在TCP代理之上 .Traffic generatorSimulated applicationApplication TrafficExponentiaApplication/FTPAPIAPIAgent/UDPAgent/TCP/pull应用程序与运输层之间的关系2.5 与 NS-2 相关几个常用工具<1)gawkgawk 是一种程序语言,对于资料的处理具有很强的功能,可以使用很短的代码轻易地完成对文本档案做修改、分析、提取和比较等处理;假如使用C 或Pascal 等语言编写程序完成 L 述的功能,可能需要花费较多的时间编写很长的代码;<2)gnu plotGnu plot是一个命令驱动的交互式画图软件, gnu plot的功能就是把数据资料和数学函数转换成简洁观看的平面或立体的图形,帮忙争论者进行数据分析因此 gnu plot并不是一般常见的美工绘图软件,它最适合的是在科学争论的过程中,帮忙争论人员完成数据资料绘制与理论模型比较等机械化的工作,来加速争论;<3)cbrgen该工具用来生成传输负载 traffic overload>,可以产生TCP流或者 CBR流Constant BytesRateStream> ; 它 所 在 目 录 为 ns/indep-utils/cmu-scen-gen, 只 有cbrgen.tcl一个文件口 cbrgen.<4)setdestsetdest是 CMU高校在 NS中供应无线网模拟模块时供应的一个工具,可以用来随机生成无线网所需要的节点运动场景,即肯定数量的节点在某个固定大 小的矩形区域中随机朝某个目的节点运动,在到达该日的地后做一段时间的停 留 也可以不停留 >后挑选另一个目的地随机挑选一个速度连续运动.<5)threshold在无线网络中,传输信号的强度一般随着距离而快速降低,采纳不同的传播模型就信号衰减的公式有所不同;一个数据包假如要在接收者方能正确接收,接收功率必需大于某一个接收功率阈值threshold>.Threshold工具就是用来运算在某种传播模型下,如何设定接收功率阈值来掌握无线传输的范畴;调试技术写程序的人都知道, bug 是在所难免的,通过调试程序排除程序中的 bug 是编程序的一个特别重要的步骤;在整个程序开发周期中,调试所花的时间往往 .断据了极大的比例采纳什么样的调试技术、工具和手段往往打算了整个程序开发周期的长短以及最终程序的质量;所以调试技术是特别位得重视的一个环节 .2.6 Otcl实现模拟的一般过程<1 )建立 network model: 描述模拟网络拓扑结构,确定链路的基本特性, 如推迟、带宽和丢失策略等;<2)建立 traffic model: 包括端设备的协议绑定和通信业务量模型的建立, 配置业务量模型的参数,从而确定网络上的业务量分布;<3)设置 Trace 对象; Trace 对象能够把模拟过程中发生的特定类型的大事记录在 Trace 文件中; NS 通过 Trace 文件来储存整个模拟过程;模拟完成后,用户可以对 Trace 文件进行分析争论;<4)编写其他的帮助过程,设定模拟开头 / 终止时间,运行 Otcl 脚本仿真;<5)追踪分析结果:对Trace文件进行分析,利用gawk、xgraph 、gnuplot得出有用的数据曲线 , 或者用 Nam观看网络模拟运行过程;第三章 Ad Hoc 网络的介绍3. 1 AdHoc 网络的概念1>Ad Hoc 网络是一种分布式网络;Ad Hoc 网络又称为多跳网络 multi-hop network>、无固定网络设施的网络infrastructure less network>、自组 <self organization)网,自愈网或是对等网, 它是一种规律意义上的组网方式,即强调在不依靠基础网络设施的前提下由一定范畴内的移动终端动态的建立可以互联的网络;同时它仍将现有的主要网络中广泛应用的中心掌握治理的功能进行分布式处理,由网络各个节点同步完 成,从而提高了网络抗干扰,抗故障的才能,也使其成为在很多特别场合进行网络互联应用的主要方案;Ad Hoc 网络是一种没有有线基础设施支持的移动网络,网络中的节点均由移动主机构成;在Ad Hoc 网络中,当两个移动主机在彼此的通信掩盖范畴内时,它们可以直接通信;但是由于移动主机的通信掩盖范畴有限,假如两个相距较远的主机要进行通信,就需要通过它们之间的移动主机 B 的转发才能实现;因此在 Ad Hoc 网络中,主机同时仍是路由器,担负着查找路由和转发报文的工作;在 Ad Hoc 网络中,每个主机的通信范畴有限, 因此路由一般都由多跳组成,数据通过多个主机的转发才能到达目的地;2>Ad Hoc 网络是移动通信和运算机网络的交叉;在 Ad Hoc 网络中,使用运算机网络的分组交换机制,而不是电路交换机制;通信的主机一般是便携式运算机、个人数字助理<PDA )等移动终端设备;Ad Hoc 网络不同于目前因特网环境中的移动IP 网络;在移动 IP 网络中, 移动主机可以通过固定有线网络、无线链路和拨号线路等方式接入网络,而在Ad Hoc 网络中只存在无线链路一种连接方式;在移动IP 网络中,移动主机通过相邻的基站等有线设施的支持才能通信,在基站和基站<代理和代理)之间均为有线网络,仍旧使用因特网的传统路由协议;而Ad Hoc 网络没有这些设施的支持;此外,在移动 IP 网络中移动主机不具备路由功能,只是一个一般的通信终端;当移动主机从一个区移动到另一个区时并不转变网络拓扑结构,而Ad Hoc 网络中移动主机的移动将会导致拓扑结构的转变;然而在全 IP 的趋势下,很多争论机构也在积极给出将Ad Hoc 网络无缝链接到 Internet;3.2 AdHoc 网络的主要特点1>无中心: Ad Hoc 网络没有严格的掌握中心;全部结点的位置公平,即是一个对等式网络;结点可以随时加入和离开网络;任何结点的故障不会影响 整个网络的运行,具有很强的抗毁性;2>自组织:网络的布设或绽开无需依靠于任何预设的网络设施;结点通过分层协议和分布式算法和谐各自的行为,结点开机后就可以快速、自动地组成一个独立的网络;3>多跳路由:当结点要与其掩盖范畴之外的结点进行通信时,需要中间结 点的多跳转发;与固定网络的多跳不同,Ad Hoc 网络中的多跳路由是由一般的网络结点完成的,而不是由专用的路由设备<如路由器)完成的;4>动态拓扑: Ad Hoc 网络是一个动态的网络;网络结点可以随处移动, 也可以随时开机和关机,这些都会使网络的拓扑结构随时发生变化;5>独立性: Ad Hoc 网络相对常规通信网络而言,最大的区分就是可以在任何时刻、任何地点不需要硬件基础网络设施的支持,快速构建起一个移动通 信网络;它的建立不依靠于现有的网络通信设施,具有肯定的独立性;6>有限的无线通信带宽:在Ad Hoc 网络中没有有线基础设施的支持,因此,主机之间的通信均通过无线传输来完成;由于无线信道本身的物理特性,它供应的网络带宽相对有线信道要低得多;除此以外,考虑到竞争共享无线信道产生的碰撞、信号衰减、噪音干扰等多种因素,移动终端可得到的实际带宽远远小于理论中的最大带宽值;7> 有限的主机能源:在Ad Hoc 网络中,主机均是一些移动设备,如PDA 、便携运算机或掌上电脑;由于主机可能处在不停的移动状态下,主机的能源主要由电池供应,因此 Ad Hoc 网络有能源有限的特点;8>有限的物理安全:移动网络通常比固定网络更简洁受到物理安全攻击, 易于遭受窃听、欺诈和拒绝服务等攻击;现有的链路安全技术有些已应用于无 线网络中来减小安全攻击;不过Ad Hoc 网络的分布式特性相对于集中式的网络具有肯定的抗毁性;3.3 Ad Hoc网络的结构1>结点结构: Ad Hoc 网络中的结点不仅具备一般移动终端的功能,而且具有报文转发才能,即具备路由器的功能;因此,就功能而言可以将结点分为 主机、路由器和电台三部分;其中主机部分完成一般移动终端的功能,包括人 机接口、数据处理等应用软件;而路由器部分主要负责保护网络的拓扑结构和 路由信息,完成报文的转发功能;电台部分为信息传输供应无线信道支持;从 物理结构上分,结构可以被分为以下几类:单主机单电台、单主机多电台、多 主机单电台和多主机多电台;手持机一般采纳的单主机单电台的简洁结构;作 为复杂的车载台,一个结点可能包括通信车内的多个主机;多电台不仅可以用 来构建叠加的网络,仍可用作网关结点来互联多个Ad Hoc 网络;2> 网络结构: Ad Hoc 网络的网络结构有平面结构和分级结构两种;当网络的规模较小时,可以采纳简洁的平面式结构;而当网络的规模增大时,应用 分级结构;.平面结构:在平面结构中,全部结点的位置公平,所以又可以称为对等式结构;平面结构的网络比较简洁,网络中全部结点是完全对等的,原就上不存在瓶颈,所以比较健壮;它的缺点是可扩充性差:每一个结点都需要知道到达其他全部结点的路由;保护这些动态变化的路由信息需要大量的掌握消息;.分级结构:分级结构中,网络被划分为簇;每个簇由一个簇头和多个簇成员组成;这些簇头形成了高一级的网络;在高一级网络中,又可以分簇,再次形成更高一级的网络,直至最高级;在分级结构中,簇头结点负责簇间数据的转发;簇头可以预先指定,也可以由结点使用算法自动选举产生;分级结构的网络又可以被分为单频分级和多频分级两种;单频率分级网络中,全部结点使用同一个频率通信;为了实现簇头之间的通信,要有网关结点<同时属于两个簇的结点)的支持;而在多频率分组网络中,不同级采纳不同的通信频率;低级结点的通信范畴较小,而高级结点要掩盖较大的范畴;高级的结点同时处于多个级中,有多个频率,用不同的频率实现不同级的通信;在两级网络中,簇头结点有两个频率;频率1 用于簇头与簇成员的通信;而频率2 用于簇头之间的通信;分级网络的每个结点都可以成为簇头,所以需要适当的簇头选举算法,算法要能依据网络拓扑的变化重新分簇;在分级结构的网络中,簇成员的功能比较简洁,不需要保护复杂的路由信息;这大大削减了网络中路由掌握信息的数量,因此具有很好的可扩充性;由于簇头结点可以随时选举产生,分级结构也具有很强的抗毁性;分级结构的缺点是,保护分级结构需要结点执行簇头选举算法,簇头结点可能会成为网络的瓶颈;第四章泛洪路由协议的设计实现当用户需要一个全新的算法或协议时,就需要对NS2 进行类型的扩展这种扩展的典型特点就是需要一个分组头来实现算法或协议,本章的重点是算法或协议的添加,并不是算法或协议的本身的争论;4.1 泛洪路由协议泛洪法是一种简洁的路由挑选技术;这种技术不需要任何网络信息, 一个分组由源结点发送到与其相邻的每一个结点,在各个结点上,收到的分组再次被传输到与其相邻的各个结点;泛洪法具有三个属性: A:在源结点与信宿结点之间全部可能的路由都被尝试过; B:分组中至少有一个副本使用的是最小跳数路由到达信宿; C:全部直接或间接与源结点相连的结点全部被拜访到.4.2 添加路由协议类路由协议类为MFlood,路由表类为MFlood_Rtalbe, 由一条条路由表项<MFlood_RTEntry 类)组成,其中每一条路由表项针对每个数据源记录了为它转发过的数据包情形; MFlood 协议为每个节点保护一个序列号SEQ,数据源每发送一个数据包将 SEQ增加,并把该序列号添加到数据包的包头信息中,其他节点收到一个数据包后依靠序列号来判定自己是否转发过该包;在 NS2中, 全部路由协议都是从 Agent 类继承而来的 , 和 UPD及 TCP等传输层协议以及 CBR等应用层协议一样 . 虽然如此 ,NS2 很好地实现了层的概念 , 应用层和传输层的数据回交到路由协议进行处理, 接收也是先由路由协议处理后, 再由一层层送交各上层协议 .MFlood 路由协议需要被 NS2接纳并可以在 tcl代码中使用,仍需要其它定 义;其中 AGENT/Mflood指定了 C+中的 Mflood 类和 TcL 部分的 AGENT/Mflood 绑 定 在 一 起 , 在 编 写 TcL 测 试 代 码 时 指 定 路 由 协 议 时 就 应 该 使 用AGENT/Mflood;AGENT/Mflood表示了一个继承关系,即Mflood 继承于 AGEN;T4.3 定义包头类型泛洪协议中并没有定义自己的掌握包,但是为了进行重复包检测,同样需 要定义自己的包头,将序列号存在这个包头中;虽然Mflood 的包头特别简洁, 仅仅需要储存一个序列号,可以同样需要实现NS2规定的功能;在 hdr-mflood 结构的定义中, offset和 access 都是系统所要求的,只需要作相应的修改;HDR-MFLOO宏D 的定义是为了便利以后的使用,只需要使用这个宏就可以读取到hdr-mflood结构的包头;4.4 4 添加/ 修改源文件将 mflood 文件夹拷到 ns-2.33目录下, aodv 也在这个目录下 ;mflood 文件夹包含以下 5 个文件: mflood.h, mflood.cc, mflood_packet.h, mflood- seqtable.h, mflood-seqtable.cc1. 修改ns/common/packet.h 这个文件2. 修改ns/tcl/lib/ns-packet.tcl中,在要激活的分组头的名字中加入MFLood3. 修改文件 ns/tcl/lib/ns-lib.tcl,在 Simulator类的 create- wireless-node成员函数中加入代码4. 在 makefile文件中<ns 这个目录下),的 OBJ_CC变量的定义中增加下面这行aodv/aodv_logs.o aodv/aodv.o aodv/aodv_rtable.o aodv/aodv_rqueue.o aomdv/aomdv_logs.o aomdv/aomdv.o aomdv/aomdv_rtable.o aomdv/aomdv_rqueue.o mflood/mflood.o mflood/mflood-seqtable.o common/ns-process.o 4.5 编译代码在完成了协议的定义和实现后,要对新增加的文件进行编译并接到NS中, 需要修改 ns/Makefile文件,增加对新类的编译;本次设计的文件放在 ns/flood目录下,在 Makefile中 OBJ_CC变量的定义中增加下面这行:flood/Mflood.o flood/ Mflood-seqtable.o重新编译 NS2,至此, 泛洪协议添加完毕;第五章泛洪路由协议的仿真测试5.1 初步测试测试场景中有 3 个结点 A、B 和 C构成一个两跳的拓扑, B 位于中间,连接了 A 和 B;现在 A 作为发送源, C作为接收者, B 在中间进行转发;移动节点都 处于不断的运动之中 , 所以整个网络的拓扑结构也不断变动. 泛洪协议用于无线网 络, 故其测试程 序中 要配 置与 前面 不同 的节 点 无线节点 Mobile node>;无线节点的配置较有线网络中的节点配置复杂的多, 测试的 Tcl代码如下:=# Define options=set valifqlen>50;# max packet in ifq set valnn>3;# 移动节点的数目set valrp>MFlood;# routing protocolset valchan>Channel/WirelessChannel set valprop>Propagation/TwoRayGround set valnetif>Phy/WirelessPhyset valmac>Mac/802_11set valifq>Queue/DropTail/PriQueue set valll>LLset valant>Antenna/OmniAntennaset valstop>200=# Main Program=#ns-random 0# Initialize Global Variables set ns_ new Simulatorset tracefd open mflood.tr w$ns_ trace-all $tracefdset namtraceopen mflood.nam w$ns_ namtrace-all-wireless $namtrace 1000 500# set up topographyset topo new Topography$topo load_flatgrid 1000 500 # Create Godcreate-god $valnn># Create the specified number of mobilenodes $valnn> and "attach" them # to the channel.# configure nodeset channel new Channel/WirelessChannel$channel set errorProbability_ 0.0$ns_ node-config -adhocRouting $valrp> -llType $valll> -macType $valmac> -ifqType $valifq> -ifqLen $valifqlen> -antType $valant> -propType $valprop> -phyType $valnetif> -channel $channel -topoInstance $topo -agentTrace ON -routerTrace ON-macTrace O

    注意事项

    本文(2022年毕业设计方案9.docx)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开