基于NS2的无线网络仿真研究.doc_第1页
基于NS2的无线网络仿真研究.doc_第2页
基于NS2的无线网络仿真研究.doc_第3页
基于NS2的无线网络仿真研究.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

总第 225期2008年第 7期计算机与数字工程C om p u te r & D ig ita l Eng inee ringV o l. 36 N o. 7573基于 N S 2的无线网络仿真研究钟辉王鹏(沈阳建筑大学信息与控制工程学院 沈阳110168)摘 要 在仿真坏境下对网络协议进行性能评价 , 必须对仿真结果进行有效分析和处理 。通过介绍免费网络仿真软件 N S 2的基本体系结构 , 分析 N S 2的工作原理和仿真机制 , 并针对移动无线网络链路的特殊性 , 着重讨论 N S 2在无线网络 仿真中的运用 , 分析与此相关的类 , 介绍仿真结果的输出格式 , 在此基础上对仿真结果做出定性分析并且分析整个网络的 性能 。关键词N S 2 线网络 网络仿真中图分类号TP393S tudy of W ire less N e tw o rk S im u la tion B ased on N S2Zhong H u i W ang Peng( Info rm a tion and C on tro l Eng inee ring Facu lty, S henyang J ianzhu U n ive rs ity, S henyang 110168 )A b s t ra c t In o rde r to eva lua te the p e rfo rm ance of ne tw o rk p ro toco ls in s im u la ting env ironm en t, m us t ana lyze and p rocess ca refu lly the s im u la ting resu lts. The p ap e r in troduces the h ie ra rch ica l a rch itec tu re, ana lyzes the w o rk ing p rinc ip le and s im u la tion m echan ism of N S 2, in the ligh t of sp ec if ic cha rac te ris tics of w ire less ne tw o rk, d iscusses its app lica tion in the p rocess of m ob ile ne tw o rk s im u la tion, ana lyzes the co rre la tion c lass, in troduces the ou tp u t fo rm of s im u la tion resu lt, p roduces ana lys is of s im u la tion resu lt and en tire w ire less func tion.Ke y w o rd s N S 2, w ire less ne tw o rk, ne tw o rk s im u la tionC la s s N um b e r TP393拟器 , 主要用于解决网络研究方面的问题 。N S 2使用 O Tc l和 C +两种程序语言 。选择这两种语言 有两方面原因 , 一方面具体协议的模拟和实现 , 需 要一种能够高效处理字节 、报头等信息的程序设计语言 。这种情况下 C +是非常合适的 ; 另一方面 网络中的研究工作都是围绕着网络组件和具体参 数的改变而进行的 , 需要在短时间内模拟出网络环1 引言移动通讯 、无线网络等技术的深入发展使其在 军事战场 、灾难救助 、临时通信等场合等方面得到广 泛的应用 ,网络协议的设计成为其研究的重点 。在 研究和设计网络协议时通常需要利用仿真软件对其性能 进 行 测 试 和 评 价 。N S 2 ( N e tw o rk S im u la to r, ve rs ion 2)是一款免费的 、开放源代码的网络仿真软 件 ,最初由 U C B e rke ley 开发而成 。N S 2 最初为了 研究大规模网络以及当前和未来的网络协议交互行 为而开发的 ,它为有线和无线网络上的 TC P、路由和多播等协议的仿真提供了强有力的支持 。基于以上 优点 , N S 2成为众多网络仿真软件的首选 。境 。在这样的 情 况下 脚本 语 言就 有了 很 的优 势 。O Tc l面向对 象 的 脚 本 语 言 可 以 充 分 满 足 以 上 要求 。N S 2体系结构如图 1 所示 。2. 2Tc l和 O Tc lTc l ( Too l C om m and L anguage )是解释执行的脚 本语 言 。它 的 实 现 依 赖 于N S 2 体系结构2Tc l内部 的 C 函数 库 , 添加图 1 N S 2体系结构2. 1 N S 2 简介N S 2是面向对象的 、离散式驱动的网络环境模新的 C 函数就可以扩充 Tc l的命令和功能 , 是扩展3 收稿日期 : 2008年 3月 13日 ,修回日期 : 2008年 4月 21日作者简介 :钟辉 ,男 ,硕士 ,副教授 ,研究方向 :无线网路 、数字图书馆等 。王鹏 ,男 ,硕士研究生 ,研究方向 :无线网络 。性非常强的脚本程序设 计语 言 。 Tc l 解 释器 把用户输入的命令和程序语句进行初步分析 , 然后调用 C 函数库的响应函数执行 , Tc l是无强制类型转换 的脚本语言 , 一切变量 , 不论整型 , 浮点等都以字符 串的形式 存 储 。O Tc l是 Tc l的面 向 对象 的扩 展 , 在 O Tc l中加入了类和对象的概念 , 对象是类的实 例 , 它有自己的属性和自己的内部操作 。对象具有 继承 、封装 、多态和动态绑定的性质 。面向对象机 制的加入使得原始的 Tc l变得更强大 。虽然和 C+中对象和类以及其他面向对象程序设计语言中 的概念相同 , 但是具体实现和语法存在很大差别 。2. 3 tc lc ltc lc l是在 O Tc l基础上的封装 。 tc lc l实际上搭 建了 N S 2的框架 , N S 2 的类库都是建立在 tc lc l基 础上 的 。 tc lc l 中 包 含 了 六 个 类 : Tc l, Tc lO b jec t, Tc lC lass, Tc lC om m and, Em beddedTc l, Ins tV a r。其中 Tc l类可以看成是一个 Tc l的 C +接口类 , 它提 供 C +访问 Tc l库的接口 。 Tc lO b jec t是 Tc l / C +两个面向对象语言的类库的基类 , 在最新的 tc lc l 中 , 采用了 Sp litO b jec t的术语 。 T c lC lass 注册编译 分级 , 保持了编译分级的层次结构 , 同时给 O Tc l对象提供了创建 C +对象的方法 。 Tc lC om m and 用 于定义简单的全局解释命令 , Em beddedTc l是定制 的 Tc l命令 。 Ins tV a r类包含了从 Tc l访问 C +类 成员变量的方法 。2. 4 网络组件网络组件分为简单网络组件和复合网络组件 。 N sO b jec t是所有基本网络组件的父类 , 而他本身的 父类是 Tc lO b jec t类 。这个类的对象的基本功能是 处理数据包 ( Packe t) 。所有的基本网络组件可以 划分为两类 , 分类器 ( C lass if ie r)和连接类 ( C onnec2to r) 。他们都是 N sO b jec t的直接子类 , 也是所有基 本网络组件的父类 。分类器 ( C lass if ie r) 的派生类 组件对象包括地址分类器 ( A dd rC lass if ie r) 和多播 分类器 (M as tC lass if ie r) 等 。连接器 ( C onnec to r) 的 派生类组件对象包括队列 (Q ueue ) , 延迟 ( D e lay ) ,各种代理 (A gen t)和追踪对象类 ( T race ) 。2. 5 事件调度器N S 2是离散事件驱动的网络仿真器 。它使用 事件调度器对所有组件希望完成的工作和计划该 工作发生的事件进行列表和维护如图 2 所示 , 事件调度器是一个具有优先级的队列 , 它按照事件发生 的事件对其中的工作安排 , 并循环这样的顺序执行 工作 , 而各个组件之间的通信是依靠传递数据包的 方式来实现的 。图 2 事件调度器3 无线网络仿真过程分析3. 1 无线网络模型无线网络模型本质上是由移动节点 (M ob ile2N ode )做为核心 , 并附加各种支持特性而构成 , 以实现对多跳 ad - hoc 网 络 和 无 线 局 域 网 的 模 拟 。M ob ileN ode是由 N ode 类派生出来的 , 因此一个基本的 N ode 对象附加上无线和移动节点的功能就 构成了 M ob ileN ode。其移动特征包括 : 节点移动 ,周期性位置更新 , 维护拓扑边缘等 , 是在 C + m o2 b ilenode cc. h 中实现的 。而设定 M ob ileN ode 的 各个网络构件包括链路层 ( LL ) 、连接到 LL 上的 A R P 模 块 、接 口 队 列 ( IFq ) 、M A C , C hanne l 是 在tc l 实现 的 。无 线网 络 模型O Tc l ns - m ob ilenode.如图 3所示 。图 3 无线模型示意图1 ) add ress c lass if ie r: 按 照分 组 的 目 的 地 址 进 行匹配 , 对分组的 目 的地 址做 位 运算 来产 生 一个 s lo t num be r。2) p o rt c lass if ie r:按照分组的目的端口进行匹配 , 将分组传递给相应的 A gen t对象 。 dm ux _是节第 36卷 ( 2008 )第 7期计算机与数字工程59点的 Po rtC lass if ie r对象 。3 ) L ink L aye r: 对于所有发出的分组 , 路由 A 2 gen t会把分组传递给 LL , LL 把分组传递给接口队 列 ( IFQ ) 。对于所有接收到的分组 , M A C 层将分组传递给 LL , LL 再 将 分 组 传 递 给 node _ en try _。 移动节点的 LL 还连接了一个 A R P 模块 , 用来把IP地址解析成物理 (M A C )地址 。4 ) A R P: 如果 A R P 已经知道目标节点的 M A C 地址 , 直接写入分组的 M A C 头中 ; 否则 , 存放到分 组缓冲区 , 并广播 A R P请求 。5 ) In te rfaceQ ueue: 由 P riQ ueue 类 实 现 。是 一个优先级队列 , 优先处理路由协议分组 , 并可以对 分组进行过虑 。6 ) M A C 层 : 实现了 IEEE802. 11 的 D C F M A C协议 。7 ) N e tw o rk In te rface: 网络接口是移 动节 点访 问信道的接口 , 通过碰撞和无线传输模块来接收其他节点发送到信道上的分组 。将波长 、传输功率等信息写入分组头 。8 ) A n tenna:使用单一增益的全向天线 。9 ) R ad io P rop aga tion M ode l: 用来 计 算每 个分 组在到达接收节点时的信号强度 , 小于阈值时标记为 e rro r并被 M A C 层丢弃 。包含 3 种模型 : F ree -sp ace、Tw o - ray g round ref lec tion 和 S hadow ing。10 ) C hanne l:无线信道的功能是将分组复制给 所有连接到本信道上的移动节点 。3. 2 无线仿真实现( y )1000se t top o new Top og rap hy top o load_f la tg rid va l ( x ) va l ( y)se t god c rea te - god va l ( nn) 3 )设置节点属性 , 将最初 的 设定 的模 拟 属性赋给节点 。代码如下 :ns node - conf ig - adhocR ou ting- llTyp e va l ( ll) - m acTyp e va l ( m ac ) va l ( rp ) - ifqTyp e va l( ifq)- ifqL en va l ( ifq len) - an tTyp e va l ( an t) - p rop Typ e va l ( p rop ) - p hyTyp e va l ( ne tif) - channe l new va l ( chan) - top o Ins tance top o - agen tT race ON - rou te rT race ON - m acT race O FF - m ovem en tT race O FF4 )设定节点的初始位置以及节点的随即运动 功能 。代码如下 :fo r se t i 0 i va l ( nn ) inc r i se t node ( i) ns node node ( i) random - m o tion 1node ( i) se t X _ exp r i 3 100. 0 node ( i) se t Y _ exp r 500. 0 + ( ( ( i 393)% 21) - 10 ) 3 10. 0 node ( i) se t Z _ 0. 0ns in itia l_node _p os node ( i) 20 node ( i) se t ragen t_ se t - conf ig “ nodeC onf ig ; log - f ile - nam e d irN am e /假设在一个区域为1100m 1000m 范围内有十个移动的节点 , 分别为 node _ ( 0 ) - - - - node _( 9 ) , 节点之间建立的是 UD P 连接 , 并在其上建立cb r数据流 。仿真实现步骤如下 :1 )设定模型的一些必要 属性 , 如 移 动节 点的C hanne l类型 、M A C 层协议 、队列类型及场景大小 、 节点数目 。主要代码如下 :oo ls r - node - i. log”5 )建立节点之间的 U D P 连接 , 并在其上建立cb r数据流 。代码如下 :se t sende r new A gen t /UD P ns a ttach - agen t node ( 0) sende r se t cb r new A pp lica tion / T raff ic / CB R cb r se t p acke tS ize _ 128cb r se t in te rva l_ 0. 1cb r a ttach - agen t sende r se t rece ive r new A gen t /N u ll ns a ttach - agen t node ( exp r va l ( nn ) - 1 )rece ive rns connec t sende r rece ive rns a t 0. 0“ cb r s ta rt”6 )建立 f in ishS im u la tion 过程用来关闭 trace 文 件 , 并且调用 nam 。代码如下 : p roc f in ishS im u la tion se t va l ( chan )se t va l ( p rop )se t va l ( ne tif)C hanne l /W ire lessC hanne lP rop aga tion / Tw oR ayG roundPhy /W ire lessPhyse t va l (m ac) M ac / 802 _11se t va l ( ifq ) Q ueue /D rop Ta il / P riQ ueue se t va l ( ll) LLse t va l ( an t) A n tenna /Om n iA n tenna se t va l ( ifq len ) 50se t va l ( nn) 102 )创建一个 Top og rap hy 对象 , 保证所有节点 都在拓扑边界范围内运动 。代码如下 :se t va l ( x) exp r va l ( nn) 3 100. 0 + 100. 0 se t va l理我们可以对整个网络做出性能分析 , 计算出整个网络的数据传输延迟 , 丢包率 , 延时抖动 , 和吞吐 量 。下面分析整个网络的吞吐量 , 网络的吞吐量是 网络性能的一个重要参数 , 是指在不丢包的情况下 单位时间内通过数据包的数量 。通过编写完成的th roughp u. aw k 文件对 un icas t. tr文件处理得到需 要的数据 。得到的数据再通过 gnup lo t绘图工具绘 出整个网络的吞吐量 (如图 5所示 ) 。g loba l ns node va l d irN am e# L og the f ina l s ta te of a ll the nodesfo r se t i 0 i va l ( nn ) inc r i node ( i) se t ragen t_ s ta te“ d irN am e / oo ls r- node - i. f ina l - s ta te ”ns ha lt3. 3 实验结果及nam 动画演示在模拟 结 束 后 会 产 生 un icas t.tr 文 件 和 un i2cas t. nam 文件 , un icas t. tr是跟踪文件里面记 录着每一个数据报的发送 、到达 、丢弃等所有的信息 。 下面以一部分跟踪文件为例介绍一下 trace 文件的格式以及代表的含义 。s - t 0. 000000000 - H s 0 - H d - 2 - N i 0 -N x 0. 00 - N y 400. 00 - N z 0.000000 - N l A G T - N w - - - M s 0 - M t 0 - Is 0. 0 - Id 9. 000 - N e - 1.- M a 0 - M d 0- It cb r - Il 128- If 0 - Ii 0 - Iv 32 - Pn cb r - P i 0 - Pf 0 - Po 0 第一个域描述了在节点处发生的事件的类型 , 可能的类型有 s (发送数据包 ) 、r (接受数据包 ) 、d (丢弃数据包 ) 、f (转发数据包 ) 。第二个域代表事 件发生的时间 。第三域和第四个域分别代表发送 节点以及目的节点 。第五个域到第十一个域是节 点的标签属性 , 分别 代 表节 点的 ID 号 , 节点 的坐 标 , 节点的能量 , 跟踪哪一层和丢包的原因 。第十 二个 域 到 第 十 五 个 域 是 M A C 层 的 分 组 说 明 , - M a 代表持续时间 , - M d 代表目的节点的地址 , -M s代表源节点的地址 , - M t代表以太网的类型 。 第十六个域到第二十二个域是 IP 层的分组信息 ,- Is代表源地址 , - Id 代表目的地址 , - It代表信 息包类 型 , - Il 代 表 信 息 包 大 小 , - If 代 表 溢 出图 5 吞吐量图4 结语网络仿真是分析 、研究 、设计和改善网络性能 必不可少的工具 , 它能帮助人们更确切更详细地分 析网络模型的性能 。文章主要介绍了 N S 2 的体系 结构和无线网络模型 , 并且利用 N S 2 仿真器对 10 节点结构的网络进行了网络仿真 , 得到网络参数的 动态显示结果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论