一种高速大规模Ad Hoc网络下OLSR协议软件设计方案

2014-03-08 09:35谭方勇
苏州市职业大学学报 2014年4期
关键词:路由链路分组

谭方勇,张 震,曾 海

(苏州市职业大学 计算机工程学院,江苏 苏州 215104)

一种高速大规模Ad Hoc网络下OLSR协议软件设计方案

谭方勇,张 震,曾 海

(苏州市职业大学 计算机工程学院,江苏 苏州 215104)

在高速大规模Ad Hoc网络环境下,提出一种基于用户模式的OLSR协议软件的整体架构方案,方案定义软件的实现方案及软件框架.软件框架的设计借鉴TCP/IP 协议栈的分层设计思想,解决移植性问题.算法重新设计节点之间的管理关系结构,并通过使用静态路由和OLSR路由相结合的方式,提高在高速大规模Ad Hoc网络中数据传输的性能.

Ad Hoc网络;OLSR协议;用户模式;软件框架;静态路由

Ad Hoc是一种将移动通信技术和计算机网络技术结合在一起的网络,具有分布式、自组织、自配置和自管理等特点,无需固定基础设施的支持.Ad Hoc网络的节点间是通过多跳转发机制进行数据交换,并使用路由协议实现分组转发策略.路由协议是Ad Hoc网络通信的基础,可实现Ad Hoc网络通信移动节点之间的互通.OLSR(optimized link state routing)协议是一种适用于Ad Hoc网络的主动式路由协议[1-3],优化了传统的链路状态算法,能高效快速地形成路由.

目前,国外已有的OLSR协议的实现主要包括olsr.org OLSR daemon、NRLolsr、OOLSR等,国内也有人提出了OLSR协议的实现方案[4-5].这些的OLSR路由协议的实现方案都较好地实现Ad Hoc网络的通信功能,其中有些侧重功能的齐全、有些侧重各个功能模块,但是在网络规模庞大、节点数量众多以及数据业务负载极高的Ad Hoc网络中进行应用时显得不太适合[6].本文提出了在一种高速大规模Ad Hoc网络环境下的基于用户模式的OLSR协议软件的整体架构方案,并对软件的关键技术模块进行分析与设计,算法在OLSR协议的基础上添加了按照管理关系确定的静态路由过程,重新优化了节点之间的管理关系,从而提高Ad Hoc网络的整体性能.

1 OLSR协议基本原理

OLSR协议是一种基于表驱动的优化链路状态路由协议[7],协议定义了其每个节点在自己的一跳邻居节点中选择其中的部分节点作为多点中继节点(multi point relay,MPR),只有被选为MPR的邻居节点才负责转发控制消息,节点之间通过周期性地交换信息并进行分布式计算更新和建立网络拓扑.只有MPR节点才有路由选择功能,而非MPR节点则不参与路由计算.OLSR协议利用MPR节点进行选择性洪泛,可以有效地降低控制消息洪泛的规模.被选为MPR的节点在其链路状态信息中声明了其与MPR Selector之间的链路状态信息,这些节点通过周期性地发送控制消息,向全网声明通过自己可以达到自己的MPR Selector.在进行路由计算的过程中,通过MPR形成从一个节点到网络中的其他节点的路由.节点在自己的一跳邻居节点中选择MPR时,必须选择与自己存在双向对称链路的节点,这可以避免数据分组在单向链路上传输时如何获得分组接收确认的问题.

2 OLSR路由协议软件整体架构方案

为了最大限度地利用操作系统提供的TCP/IP协议栈的功能以及软件实现的可行性,本OLSR协议软件的设计是在操作系统中采用基于用户模式的方式来实现.此外,为了让软件具有更好的可移植性,软件参考了TCP/IP协议栈的分层设计模式,将OLSR协议软件框架分为三层实现,即虚拟接口服务层(virtual interface service layer,VISL)、消息及事件调度层(message and event schedule layer,MESL)和路由服务管理层(routing service manage layer,RSML).每一层都按照功能分模块地实现,方便对协议功能的扩展.其中,虚拟接口服务器负责提供对不同操作系统以及第三方工具库的适配支持;消息及事件调度层负责对软件各个功能模块代码的调度管理;路由服务管理层主要负责完成OLSR协议的逻辑功能,控制分组与控制消息格式定义、协议数据表的管理和协议算法的实现.OLSR协议软件实现方案如图1所示.

图1 OLSR协议软件实现方案

OLSR协议软件为运行在操作系统中的基于用户模式的应用软件,根据 IANA(internet assigned numbers authority)的定义,OLSR协议软件使用UDP 698端口发送控制分组.OLSR协议软件本身不为业务分组提供路由查询操作,而是利用TCP/IP协议栈提供的通信功能进行IP路由表的维护.OLSR协议软件为节点提供路由计算方法,通过基于节点间协议控制信息的交换掌握网络拓扑信息,并依据这些信息计算路由表.当节点收到需要转发的分组(如用户应用的分组、非协议控制分组等)的时候,则仍通过IP从路由表中查找合适的路由并进行转发,即OLSR协议软件利用TCP/IP的通信功能管理和维护IP路由表,而IP利用OLSR协议软件提供的IP路由表完成路由操作.

图2 OLSR协议软件框架

OLSR协议软件的框架如图2所示.软件的每一层功能独立,上层使用下层提供的服务.虚拟接口服务层用来向其他两层提供接口服务,屏蔽操作系统或者将要用到的第三方支持的特殊性,以提供更好的可移植性.消息及事件调度层向路由服务管理层提供一套完备的程序调度和事件触发机制,保证在需要调用程序功能的时候执行正确的程序代码.路由服务管理层提供 OLSR 路由的逻辑功能.软件主程序完成对系统及协议的初始化及进程退出方式的设置.在协议运行期间,由消息及事件调度层进行对主线程序执行权的调度管理.调度的产生是基于定时器和事件来触发的.例如:一条链路的状态改变(由对称到不对称)将使消息及事件调度层触发对相关功能模块的调用(链路侦听、邻居探测等).路由服务管理层集中实现了协议的主要功能:控制分组及各种控制消息格式的定义、协议内部数据表的存储和维护以及协议算法的实现;各功能模块向消息及事件调度层注册被调用的条件;当条件满足时,消息及事件调度层将触发相应的程序调度.同时,利用节点剩余电量确定节点转发意愿 Willingness 也放在路由服务管理层中实现.而虚拟接口服务层则为其他所有的功能模块提供底层系统调用.

图3 网络关系管理图

3 OLSR协议关键模块的设计与分析

在高速大规模Ad Hoc网络中,节点之间的网络关系管理如图3所示.高层节点往底层节点发送数据,只能通过底层节点的管理节点转发,且其采用的是静态路由的方式.同一层节点之间的交互信息则通过OLSR协议.路由协议的实现是在OLSR协议的基础上添加了按照管理关系确定的静态路由过程,首先在OLSR::recv()函数中进行分支选择,簇头节点产生的数据按照OLSR::SR_forwardPacket(Packet * p)函数进行发送,而其他节点产生的数据则按照OLSR原有的OLSR::forward_data(Packet* p)函数进行发送.

路由协议的主要模块由函数OLSR::recv(Packet*p,Handler*h)、OLSR::SR_forwardPacket (Packet *p)和OLSR::getEntry(intdst)三部分组成,这3个函数分别进行路由协议选择、静态路由具体过程以及数据包下一跳节点获取.其具体流程分别如图4、图5、图6所示.

图4 OLSR协议中添加静态路由后OLSR::recv()流程

图5 OLSR::SR_forwardPacket()函数流程图

图6 OLSR::getEntry()函数流程图

4 结论

在对路由有较高的健壮性和快速反应的移动Ad Hoc网络中,采用先应试路由协议可以符合这一特点.OLSR属于先应试路由协议,可以通过其MPR机制有效地控制路由开销,同时其延时小、反应迅速.目前OLSR协议软件的实现有较多版本,各有特点,本文以TCP/IP协议为基础,设计了基于用户模式的OLSR软件应用软件框架,同时对OLSR软件的关键模块进行了分析与设计,提出了利用静态路由与OLSR动态路由相结合的方式以重新设计节点之间的网络管理关系,从而实现在高速、大规模Ad Hoc网络中数据传输的性能.

[1] IETF.Mobile Ad hoc networks charter [EB/OL].(2004-06-01)[2004-12-18].http://www.ietf.org/html.charters/manet-charter.html.

[2] Clausen T,JacquetEds P. RFC 3626-optimized link state routing protocol(OLSR)[S].Project Hipercom:INRTA,2003.

[3] 黄帅,任佳敏. 一种基于Android的OLSR路由协议实现方案[J]. 计算机技术与发展,2012,22(2):29-32.

[4] 梁海莲,张懿煌,须文波. 基于OOP的OLSR路由协议的一种实现方案[J]. 微计算机信息,2007,23:125-126.

[5] 谭方勇,叶良,于复生,等. Ad hoc网络中TDMA/CSMA融合的多址接入协议[J]. 计算机工程与设计,2011,32(11):3656-3659.

[6] Akyildiz I F,Wang Xudong.A survey on wireless mesh network[J].IEEE Communications Manazine,2005,43(9):23-30.

(责任编辑:李 华)

A Design of OLSR Protocol Software in High-speed and Large-scale Ad Hoc Network

TAN Fang-yong,ZHANG Zhen,ZENG Hai
(School of Computer Engineering,Suzhou Vocational University,Suzhou 215104,China)

This paper proposes an overall framework of OLSR protocol software based on user mode in highspeed and large-scale Ad Hoc network environment,and defnes its implementation and framework.The design of the software framework borrows the idea of layered design of TCP/IP protocol stack,which can solve the portability problem.The management structure of the nodes is redesigned by means of algorithon,and the combination of static routing protocol and OLSR routing protocol improves the performance of data transmission in high-speed and large-scale Ad Hoc network.

Ad Hoc network;OLSR protocol;user mode;software framework;static routing

TP393.04

A

1008-5475(2014)04-0011-04

2014-06-01;

2014-06-25

苏州市科技计划资助项目(SYG201257);苏州市职业大学校级课题资助项目(2013SZDYJ10)

谭方勇(1976-),男,江苏苏州人,副教授,硕士,主要从事无线网络及网络安全研究.

猜你喜欢
路由链路分组
天空地一体化网络多中继链路自适应调度技术
基于星间链路的导航卫星时间自主恢复策略
铁路数据网路由汇聚引发的路由迭代问题研究
分组搭配
探究路由与环路的问题
怎么分组
分组
基于预期延迟值的扩散转发路由算法
基于3G的VPDN技术在高速公路备份链路中的应用
PRIME和G3-PLC路由机制对比