《网络仿真和模拟设计》 - 洪泛路由协议的移植.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:12 大小:1.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

《网络仿真和模拟设计》 - 洪泛路由协议的移植.pdf

《网络仿真和模拟设计》-洪泛路由协议的移植.pdf

预览

免费试读已结束,剩余 2 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1NS2网络模拟和协议仿真实验报告NS2洪泛路由协议的移植摘要:本文详细介绍了在Linux环境下编译,安装NS2软件的方法。并将通过在NS中添加洪泛路由协议,进行了拓展性研究与实验,最后通过使用相关工具对输出结果进行处理。关键词:NS2;仿真;洪泛路由协议1.引言网络操作要求的不断变化刺激了新协议和新算法的产生和发展,网络模拟仿真是研究新协议,分析新算法的一种重要方法。网络仿真平台NS2是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,它是目前学术界广泛使用的一种网络模拟软件,它也可作为一种辅助教学的工具,已被广泛应用在了网络技术的教学方面。NS2具有仿真灵活、结果分析全面、易扩展、源代码共享等优点。而在NS2上移植新协议又是拓展NS2的基础,对初学者来说其过程是非常难于掌握的,本文以洪泛路由协议为例,详细探讨了NS2协议移植的基本方法。2.协议实现原理洪泛路由算法是一个简单有效的路由算法,其基本思想是每个节点都使用广播转发收到的数据分组,若收到重复的分组则进行丢弃处理。洪泛路由协议会导致数据分组以源节点为中心进行扩散,为了不造成大面积的扩散占用过多的网络资源以及使扩散收敛,需要设定一个合适的TTL值,保证数据分组只经过有限跳路由;此外为了进行分组重复检测,每个节点需要维护一个数据分组的序号SEQ和一张路由表,源节点每发送一个数据分组,则将SEQ增加1,并将该SEQ添加到数据分组的IP头部,其余节点收到数据分组之后会将该SEQ记录到路由表并根据该SEQ进行重复分组检测。数据分组以源节点为中心进行扩散洪泛路由协议最大的问题是会产生大量的重复分组,占用网络资源,是路由协议和链路资源过于浪费,以致使效率很低。但是洪泛路由算法是一个最简单最可靠的路由算法,在节2NS2网络模拟和协议仿真实验报告点剧烈抖动,进出网络频繁变化的场景下,全网洪泛是有效的方式,其具有极好的健壮性,可用于军事应用,也可以作为衡量标准评价其他路由算法。洪泛路由协议具有三个基本属性:1)在源节点与信宿节点之间所有可能的路由都被尝试过;2)分组中至少有一个副本使用的是最小跳数路由到达信宿;3)所有直接或间接与源节点项链的节点全部被访问到。3.协议移植2.1环境配置NS2必须在UNIX/Linux平台下运行,因此一般需要安装UINX/Linux操作系统。若要在Windows下使用Linux可以采用虚拟机或者cygwin的方式,但其操作过程都较为复杂,容易发生一些难以预测的问题。在本文中,我们直接采用Ubuntu12.04系统编译安装NS2。1)首先,我们需要下载Ubuntu12.04并安装,此步骤不做具体描述。2)至官方网站下载ns-allinone-2.35.tar.gz软件包,该压缩包包含了NS2核心组件以及所有依赖组件的源代码,需要进行编译安装。3)将ns-allinone-2.35.tar.gz解压至任意目录下,执行./install命令进行ns以及相关依赖的编译,如下图所示:4)进入ns-2.35文件夹,执行./ns命令进行测试,出现下图(%符号)表示ns成功运行至此,NS2基础环境搭建成功。3NS2网络模拟和协议仿真实验报告2.2NS2架构简介NS2是由Berkeley大学研究开发的面向对象、离散事件驱动的网络模拟器,能够支持很多网络协议的模拟与仿真,并且有良好的可扩展性。它采用分裂对象模型OTcl和C++两种语言进行设计开发,用C++语言来编写和实现,用OTcl作为一个解释器来执行用户的脚本命令。ns2架构图基于分裂对象的模型,NS2采用两级体系结构。NS2的后台描述事件调度器和大部分基本的网络组件对象使用C++实现和编译,称为编译层次;NS2的前端主要功能是对模拟环境的建立和配置,用一个OTcl解释器对脚本进行解释,执行相应的操作,称为解释层次。NS2中编译类对象通过OTcl连接建立了与之对应的解释类对象,这样用户就能够方便地对C++对象的函数进行修改与配置,从而对NS2实现拓展。ns2中的分裂对象模型利用NS2进行网络模拟的基本过程如下图所示。首先,分析现有的协议模块是否满足仿真和研究要求,如果可以就直接编写OTcl脚本进行仿真分析。如果NS2中现有的协议模块尚不能满足要求,那么就需要对NS2进行扩展,或者是对现有协议进行修改。对NS2扩展后编写相应的OTcl脚本进行测试,完成之后做运行仿真,分析结果,进一步修改直到获得满意的结果。本文中即对NS2拓展了一个新的协议:洪泛路由协议。4NS2网络模拟和协议仿真实验报告