当前位置:
文档之家› 使用OPNET仿真MANET路由协议的实现方法
使用OPNET仿真MANET路由协议的实现方法
us ing O PN ET. Ke yw o rd s M AN ET, O PN ET, rou ting , s im u lation C la s s N um b e r TP393. 04
1 引言
移动自组网 (M ob ile A d - hoc N ETw o rk, M A 2 N ET) ,在近十几年一直是研究的热点 。单是路由 协议 ,就已发表 4大类数十种研究成果 [ 1 ] , 应用中 的各种衍生变化更是花样繁多 。
23
3 O PN ET中的 IP模块
O PN ET的 IP模块是一个设计完善的常用模 块 , 对上既有与 TC P、UD P 以及标准业务模块接 口 ,对下亦适配各种标准 M A C 协议的界面 , 同时 为 M AN ET 路由协议的嵌入留有接口 。因此 , 在 O PN ET中进行 M AN ET 路由协议仿真 , 必须借助 IP模块的能力 ,通过利用 IP模块的接口 ,将被仿真 的协议模型嵌入到协议栈中去 。
虽然 IP模块的根进程 ip _d isp a th 在初始化活 动中起了重要的启动作用 ,但是在数据处理活动中 并站起主导地位 。原因是 ip _ rte _cen tra l_cp u 被激 活后 ,就立即将自己注册为数据流中断的响应进 程 ,夺取了 IP模块的数据处理者身份 。所以在正 常的数据处理活动中 , ip _ rte _cen tra l_cp u成为形式 上的根节点 。实际上 , ip _d isp a tch进程一般只参与 将数据包传递给 ip _encap 模块的活动 。
在设计和评估 M AN ET路由协议的过程中 ,仿 真是普遍采用并受到倚重的方法 , 但在实际工作 中 ,仿真工具数量繁多 , 各种工具的仿真致信度不 近相同 ,对同一条件的实现手段也不一致 , 从文献 [ 2 ]的结果可以看出 , 不同工具在相同配置条件分 析相同协议也会得出不同结果 ,可见不同仿真工具 间缺少横向对比的基础 。因此 , 在仿真评估前 , 选 择一个合适的工具非常重要 。
A b s t ra c t The comm on issues of im p lem en tation and eva lua tion of M A EN T rou ting p ro toco l us ing O PN ET is summ a rized, and a co rresp ond ing so lu tions have been p rop osed. It’s a lso valuab le fo r resea rche rs do ing s im u la tion of o ther ne tw o rk - p ro toco l
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第 36卷 (2008)第 4期 计算机与数字工程
图 2 添加自定义 M AN ET协议名
添加完成后的协议名可以出现在节点的相应 属性中 。图 3显示出新添加的协议名称“FSR ”出 现在节点属性的下拉框中 。
图 3 在节点属性中观察新添协议名
( 2)声明子进程 声明子进程的目的是为了保证 M ane t_m g r创 建自定义 M AN ET 路由协议进程的合法性 。图 4 中进程 fsr被声明为子进程 。
ip _d isp atch进程函数 块第 91、106、545行
增加当节点选用 FSR 路由协议 时 ,设置路由协议进程标志为 IpC _R te_FSR 的代码
m anet_m g r进程函数 块第 42、50行
增加当路由协议进程标志为 IpC _R te _ FSR 时 , 创 建 并 激 活 FSR 进程的代码
由于 M AN ET路由协议进程自己发起数据包 发送与普通进程一样 ,不再细述 。下面分两个情况 描述数据处理活动 ,一个是处理由直接上层 ip _en2 cap 模块来的数据包 , 另一个是处理由直接下层 A R P模块来的数据包 。
( 1)处理由直接上层来的数据包 这一活动相对简单 ,就是一个逐级传递的单向 流动过程 ,由 ip _encap 模块传来的数据包 IP_Pck在 MAN ET路由协议进程处理前是原封不动的 , 在 M AN ET路由协议处理后会将加上路由信息的数据 包成为 IP_Pck’,如果没有合适的路由 ,会根据路由 协议的要求发送路由请求包发送给 ARP模块 。 ( 2)处理由直接下层来的数据包 在这个活动中 , 数据包不再是完全单向流动 , 有可能出现回环 。 首先 ,数据包经由 ip _ rte _cen tra l_cp u 和 m ane t _m g r的传递到达 M AN ET路由协议进程 。 M AN ET路由协议进程收到数据后 , 将根据数 据包的内容 ,决定是否转发 、交给上层或者更新自 己的路由表 。要转发的包在更新了路由信息后交 给 A R P模块 ; 要上传的数据需要经由 m ane t_m g r 和 ip _d isp a tch进程转交给 ip _encap 模块 。
刘小利 1, 2)
(广州华立科技职业学院计算机系 1) 广州 511325) (广东工业大学计算机学院 2) 广州 510090)
摘 要 总结使用 O PN ET仿真实现以及评估 M AN ET路由协议的共性问题 ,提出解决方法 ,该方法对使用 O PN ET进 行其他网络协议仿真的研究人员也有借鉴价值 。
因此 ,选用 O PN ET 作为评估 M AN ET 路由协 议的工具是一种合理选择 。
2 M AN ET协议栈
M AN ET是由分组无线网发展而来。为了克服 分组无线网与固定异构网络相连接的困难 , M AN ET 协议栈在设计的初期就参考了 TC P / IP协议栈 。由 于已有的固定网络路由协议不能满足 M AN ET的高 动态、不对称 、资源受限等特点 , M AN ET 工作组一 直将路由协议作为工作重点 ,同时以支持传统 IP服 务 ,提供改进的 IP协议为工作目标之一 [ 4] 。
关键词 M AN ET O PN ET 路由 仿真 中图分类号 TP393. 04
Imp lem entaion of S im ulating MAN ET Routing Protocol U sing O PN ET
L iu X iao li1, 2)
( G uangzhou H ua li S c ience and Techno logy voca tional co llege1) , G uangzhou 511325) (D ep a rtm en t of C om p u te r S c ience, G uangdong U n ive rs ity of Techno logy2) , G uangzhou 510090)
在这样的设计思路下 , M AN ET 协议栈逐步成 为以与 ຫໍສະໝຸດ BaiduC P / IP协议栈相似的四层结构 , 所不同的 是网络层 IP协议中添加了 M AN ET路由协议 。
3 收稿日期 : 2007年 11月 22日 ,修回日期 : 2008年 1月 7日 作者简介 :刘小利 ,女 ,助教 ,硕士研究生 ,研究方向 :计算机网络 。
O PN ET是当前网络仿真领域最著名的主流产 品 , 全 称 是 O p tim ized Pe rfo rm ance N e tw o rk Eng i2 nee ring Too l。目前世界上最先进的网络仿真开发 和应用平台 ,近几年被第三方权威机构评选为“世
界级网络仿真软件 ”第一名 [ 3 ] 。今天已经有超过 1000个组织正在使用 O PN ET, 广泛应用于通信 、 国防及计算机网络领域 。国内已经有 20 余家企 业 、研究机构 , 30多所高校成为它的注册用户 。
4 M AN ET路由协议的仿真实现
自定义 MAN ET路由协议的仿真实现 ,除了要将 协议算法制作成有限状态机外 ,还需要针对前述的两 个关键活动编制代码 ,编制代码的过程是可重用的。 4. 1 M AN ET路由协议进程的初始化
正确初始化自定义 MAN ET路由协议进程 ,需要 进行 3方面的工作 ,首先在 MAN ET路由协议备选名 单中增添该进程的名称 ,其次需要明确声明该进程为
激活它 , 在 IP 模块所在节点使用了 M AN ET 路由 协议的情况下 ,调入并激活 m ane t_m g r进程 。
m ane t_m g r进程被激活的时候 ,会根据 A d hoc p a ram e te rs 的 设 置 创 建 M AN ET 路 由 进 程 , 比 如 D SR、TO RA。 3. 2 数据处理活动
m anet_m gr的子进程 ,最后需要修改有关的代码。 (1)在 M AN ET路由协议备选名单中增添名称 增添名称的位置在 A d - hoc R ou ting Pa ram e2
te rs属性的子属性 A d - hoc R ou ting P ro toco l中 。 图 2显示了在名单中添加新协议名“FSR ”的过程 。
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
24
刘小利 :使用 OPNET仿真 MANET路由协议的实现方法 总第 222期
IP模块是由 32个进程组成的进程树 , 可以用 对象结构图描述为图 1。从图中的进程树组成关 系上 ,可以看出 M AN ET路由协议处于进程树的孙 节点一级 。当前进程树中有 to ra 和 dsr两种 M A 2 N ET路由协议 , 其他的 M AN ET 路由协议都被视 为自定义类型 。自定义 M AN ET 路由协议嵌入 IP 模块 , 需要处理好自己与 m ane t_m g r进程的关系 , 也就是要正确参与两个关键活动 ,初始化活动与数 据处理活动 。
总2 0第0 8年 22第 2期 4期 C om p计u te算 r 机& D与 ig数 ita字 l 工E n程g in ee r ing V o l. 3 6 N 22o . 4
使用 O PN ET仿真 MAN ET路由协议的实现方法3
图 1 IP模块的组成
3. 1 初始化活动 进程树的初始化活动由 ip _ d isp a tch 发起 , 包
括调入正确的子进程 、根据用户配置设置子进程参 数以及登记注册全模块共享的关键信息 。而孙子 进程的调入和配置 , 由子进程负责 , 同理曾孙进程 的调入与配置由孙子进程负责 。
仿真一开始 , 仿真核心会调入 IP 模块的根进 程 ip _d isp a tch, 并向它发送 S IM B EG IN 中断 。 ip _ d isp a tch响应中断后 , 先对 IP 模块关键信息 m od2 u le_da ta 进行初始化 , 这一数据为 Ip TR teM odu le2 D a ta3 类型 ,包含 Ip 地址等重要信息 , 将为整个模 块共享的 。继而调入 ip _ rte _cen tra l_cp u 子进程并
与进程树增加相适应 。表 1列出了新增 FSR 协议 进程后要对初始化代码做的改动 。
表 1 初始化代码更改列表
更改位置
更改内容
ip _rte_v4. h中的 Ip T _ R te _ P ro toco l 枚 举 类型定义
增添一 个 全 模 块 范 围 的 的 路 由 协议进程标志枚举值 , IpC _R te _ FSR