基于MAODV的无线自组网设备设计

2010-08-06 09:27归建平龙昭华蒋贵全
通信技术 2010年3期
关键词:多播网络层数据包

归建平,龙昭华,蒋贵全

(重庆邮电大学 计算机科学与技术学院,重庆 400065)

0 引言

移动Ad hoc网络(MANET)是由一组移动主机通过无线链路组成的一个自治系统,这些移动主机构成了拓扑结构动态变化的通信网络[1]。多播是一种面向群组计算的通信传播方式,它是将数据发送给由一个目的地址指定的一组节点。在 Ad hoc网络这种带宽资源紧张、系统资源有限的网络环境中,多播能够有效的节约带宽、减少数据包传送开销,因此具有重要的应用价值。

本文开发的无线 Ad hoc网络节点设备,是一个嵌入式移动通讯终端,该系统充分利用了嵌入式设备实时性强、可靠性高、成本低的特点,硬件核心采用美国 Ubicom公司的IP2022处理器,选用MAODV多播协议作为系统的路由协议,并结合嵌入式特性对路由协议进行了改进。

1 嵌入式设备设计

1.1 硬件设备

设备硬件的整体主要分为两部分:MCU部分和射频部分。MCU采用UBICOM公司的IP2022,完成控制功能和系统软件算法。IP2022是美国UBICOM推出的一款功能强大的网络通信处理器,IP2022自带嵌入式操作系统,网络协议模块和各种接口协议模块,可在一个芯片上支持通信物理层、Internet协议堆栈、特定设备应用和特定设备的外设软件模块,并可在 Internet上重构。同时,用户可使用预创建软件模块和配置工具来对其进行编程和重编程,从而可为各种设备间和人机间的通信创建真正的单片式网络应用方案。

射频部分采用Nordic公司的nRF905,完成无线信号的发送和接收工作。两者通过SPI总线连接。

1.2 软件结构设计

根据无线自组网特点,参照OSI/RM,无线自组网体系结构[2]如图1所示。

图1 无线自组网体系结构

而结合具体的设计和对MAODV研究的需要,对其进行了精简和改进,在这设备中采用的分层结构是:底层硬件、数据链路层、网络层和应用层。

其中物理层完成无线信号编码译码、发送和接收等工作;数据链路层负责相邻节点之间的直接通讯,确保通讯的可靠性,完成信道接入协议;网络层是无线自组网的重点,也是它与其它现有网络的主要区别所在。网络层连接应用层与数据链路层,主要功能为路由的发现及维护,确保源节点与目的节点之间的直接或多跳通讯,多播路由协议处于这一层,提供群组通信的底层支持。应用层连接实际的应用与网络层,给应用提供方便的传输接口。

为了各层相互之间能够有更好的独立性,本系统采用一种特殊的调用机制。软件的每个层次完成相应的功能,提供相应的接口,内部通过调用本层的函数实现。各层提供接口函数,这些接口函数只由主函数调用。

2 路由协议的设计

IETF的 MANET工作组推荐两种应用环境的多播路由协议[3],即 MAODV和 ODMRP。由于树状结构多播路由协议在多播树的初始化所需要的带宽资源比其它结构要小,树状多播路由协议具有很高的分组转发效率,同时MAODV协议和单播AODV协议很紧密的依赖关系,所以选择MAODV作为该系统的路由协议。

2.1 MAODV协议

MAODV是单播路由协议AODV的多播扩展,因此和AODV路由协议具有一些共同点,例如MAODV中的大部分控制报文就是基于 AODV中的格式。MAODV是采用双向共享树(Bi-direction Shared Tree)[4]的多播分发机制,多播分发树是按需创建的,而且MAODV多播树中的组成员都可以受理加入组申请。共享树是一棵以管理点为根,包括所有组成员的树。每棵共享树都有自己的管理点,由管理点负责受理来自树外节点的加入申请。共享树中多播数据的分发分作两步进行:多播数据源节点先将数据用单播方式发送到管理点,再由管理点沿多播树的分枝分发多播数据。“双向”是指多播树中的节点同时设置指向树中上游节点(父母节点)和下游节点(子节点)的指针。

MAODV的多播树包含同一多播组成员以及连接它们的中间节点。每一个多播树中存在一个组长(Group Leader),组长负责在网络中申明多播树的存在和状态。根据节点在多播树中担任的角色不同,将所有节点分为三类:组成员(隶属于多播树中相应的多播组的端节点)、路由器(能够将组成员连入到多播树但不属于多播组成员的中间节点)、组长(特殊组成员),如图2所示。

图2 MAODV多播树

2.2 嵌入式设备上MAODV的设计

MAODV协议位于网络层中,与在标准的TCP/IP协议栈上实现相比,在嵌入式系统中实现 MAODV有很多不同的地方,必须要考虑微控制器的处理速率、有限的内存空间和硬件的一些特性。MAODV协议是通过UDP协议的654端口进行收发的。考虑到NRF905的数据帧比较短小,在设计中就直接把MAODV路由包封装在网络层数据帧中的数据域中,然后把网络层中的帧的类型域设为0x01,表示是这个帧传输的是路由信息。

由于路由中断所导致的重新开启路由发现降低了网络的整体性能。因此,应该尽量减少路由发现次数,从而能够相应地避免启动路由发现所带来的开销。由此,考虑在网络节点中多存几条备用路由,这样当目前所使用的路由发生中断、不可再使用时,也有备用路由可以使用,这样就可以继续传输数据,不需要等待路由发现去寻找可用路由,从而也就减少了重新使用路由发现所带来的开销。如下页图3所示。

当节点接收到数据包时,首先,将数据包头文件中的源路由与自己缓存中的路由比较,如果没有完全一样的路由,就将最新获知的这条路由加入到该节点的缓冲中;然后,将该节点缓存中所有到达目的地的路由提取出来,根据每条路由的有效时间周期限制,将超过该时间限制的路由从缓存中删除;其次,按照各条路由的序列号进行排序,如果存在序列号相同的路由,则比较其到目的地的跳数,如果跳数相同,那么就按路由的生存时间排序,从而得到按优先级排好序的路由。优先级最高的为当前可用路由,其他路由作为备用路由;最后将数据包沿当前可用路由发送。一旦数据包到达目的地,该数据包就被发送到目的地主机的网络层软件去处理。这样处理使得到达目的节点的路由有多条,这样在当前使用的路由中,由于节点中存储着备用路由,从而能够尽量减少重新启动路由发现所带来的巨大开销。

图3 路由改进框图

3 结语

本文详细讨论了基于MAODV路由协议的无线Ad hoc网络节点设备的设计,包括软硬件设计,着重分析了多播路由协议并给出有效的设计方案,使MAODV路由协议更加高效。但是由于MCU性能的制约,下一步需要考虑采用性能更高的的处理器,使其可以应用于大规模的网络中。此外,还应该在考虑在网络的拓扑变化快速的情况下对路由协议进行一些改进,同时要加入QoS和安全因素,例如如何避开那些通讯繁忙的节点,使系统的总体吞吐量更大,提高网络的可靠性和质量。

[1] 郑少仁,王海涛,赵志峰,等.Ad hoc网络技术[M].北京:人民邮电出版社,2005.

[2] 英春,史美林.自组网体系结构研究[J].通信学报,1999,20(09):47-54.

[3] 龙昭华,贺政,蒋贵全.基于Ad hoc的按需路由协议DSR的优化研究与实现[J].通信技术,2007,40(09):46-48.

[4] 王新颖,吴钊,江小玲.基于节能的移动Ad Hoc网络AODV路由协议改进[J].通信技术,2008,41(07):121-123.

猜你喜欢
多播网络层数据包
胖树拓扑中高效实用的定制多播路由算法
用于超大Infiniband网络的负载均衡多播路由
二维隐蔽时间信道构建的研究*
InfiniBand中面向有限多播表条目数的多播路由算法
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
SmartSniff
网络编码与家族体系下的可靠多播方案
论物联网安全威胁及其应对策略
物联网技术在信息机房制冷系统中的应用
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair