APP下载

基于DSR算法的MANET设计

2018-01-17贺蕴彬

电子技术与软件工程 2017年22期

贺蕴彬

摘 要 MANET(Mobile Ad Hoc Network)是移動自组织网络技术,其在工业生产控制领域具有广泛的应用价值。本文基于DSR算法的MANET设计研究,将DSR(Dynamic Source Routing)路由算法在MANET网络中进行改进,解决目前MANET节点频繁移动问题,进而设计DSR路由算法改进方案,优化网络节点,使其符合工业生产控制要求,能够解决无线自组网问题,实现有效的、稳定网络通信。

【关键词】DSR算法 MANET网络 路由算法 无线自组网

1 MANET网络概述

MANET是移动自组织网络,被称为移动Ad Hoc网络,它由多个移动无线节点组成,具有无中心、自组织、分布式的动态网络特点,满足快速、轻量的创建网络通信。MANET网络中的各个节点具有相同的地位和目的,可任意增加和减少节点,不会对网络其他链路通信造成影响。MANET由于节点发射功率限制、环境限制等网络节点之间的链接保障性较差。

总结MANET网络特点主要包括:无中心自组织、轻量部署生存周期短、多跳网络策略扩展性强、节点随机移动网络拓扑动态性。其相比传统的有限网络在网络结构方面无中心,拓扑结构动态变化、无基础设施支持,配置速度快、分布式进行控制管理。但是其安全性和服务质量较差、生存时间较短,网络健壮性困难。

2 DSR路由算法

DSR路由算法属于被动式路由算法,被动式路由对于无中心的网络拓扑结构具有较好的适用性,其算法简单、易于优化、便于移植。DSR算法实现源路由机制,在数据包传输过程中,需要在数据包头部添加路由信息,当路由发现过程中会带来很大的消耗,所以需要在节点内设置路由表对路由信息进行存储,并通过路由的维护来调节节点实现网络拓扑结构的变化。

路由的发现过程会首先查看路由表内是否存在节点信息,若自身内部路由表存在到目的节点信息则直接使用,若无则需要发起路由发现以泛洪广播发送路由请求包。

路由请求数据包是由源节点地址(Sid)、目标节点地址(Did)、数据包转发路径(Route record)和路由请求包序列号(Request id)构成。为了保证降低路由发现能耗开销,根据源及诶单地址和请求包序列号判断是否为首次收到数据包,若是首次收到数据包则进行连接,否则则放弃连接。在目的节点收到所需路由答应数据包。DSR路由算法发现过程为初始化数据检查节点本身是否含有目的及诶单路由信息,若有则启动路由建立连接,若没有则启动路由建立泛洪路由请求判断是否存在目的节点,若是存在则发送路由应答,源节点接收到应答建立连接,若不存在目的节点则判断是否缓存有到目的节点的路由信息,若有则发送路由应答,源节点接收到应答建立连接,若无则判断是否达到最大跳数限制,若未达到则返回再次进行搜索,若达到限制则路由建立连接失败。当路由连接中断,节点会向源及诶单反向发送错误信息包,当节点收到错误信息包后会将该路由信息删除。若是源节点在一定时间内没有收到答应包则会认为路由连接可能中断或者信息不可用,会删除其路由表中对应的路由信息。

3 DSR路由算法改进

移动节点会产生无限媒介的竞争,设A为信息的发送点,B、CWie接收点,设AB两点距离为x,C与B的竞争其处于区域SAB,竞争概率,概率积分区间等于中心点在A半径x圆周[0,r],得到竞争概率期望值为

,移动节点接收同条信息的数量越多其竞争概率越大。

为了提高DSR路由算法效率,需要进行降低路由发现消耗、减少路由发现过程的发起次数、设置计时字段、限制路由表记录数并建立等待路由应答表。同时,DSR算法按需分配对其进行优化进行网络包格式统一定义。

降低路由发现能耗设置网络中的任意两个节点之间的最大路由为4跳,为每个网络包设置一个生存时间值,其初始值为为4,每条路径最大包含5个节点,当每次进行网络包转发都会较少一次生存时间值。减少路由发现过程的发起次数以中间节点获取应答包后提取路由信息,进而获得节点到到源点和目的节点的路由。DSR是被动路由算法,路由表信息具有一定的时效性,所以为路由表设置生存计时字段,每一条信息都具有计时字段,可记录节点信息被记录的时间,当提取有效信息时需要在网络包里尽可能多的进行提取。为了解决存储器资源科设置节点路由表中的记录条数限制在10条以内,若路由表存满则按照一定策略进行淘汰。为了防止节点频繁发送路由请求,建立等待路由应答表按照顺序回复答应包。

4 基于DSR算法的MANET设计

4.1 DSR定义

DSR定义包括网络包和各类表的格式定义,网络包的格式定义路由请求包RREQ、路由应答包RREP、源路由包DATA、路由出错信息包REER。源路由节点ID使用SID字段表示,节点有效ID取值范围(1,254),以0表示无效ID,255表示所有节点,目的节点ID使用DID字段表示,包的序列号使用QID字段表示,取值范围(0-65535),包的转发路径使用Path字段表示,包的生存时间值使用TTL字段表示,数据段有效长度使用DLen字段表示,取值(0,16),Reserved位属性扩展保留字段,DATA表示数据字段。

4.2 节点程序

在组网无线通信中网络节点可作为终端节点、路由节点、交互节点存在,MANET节点程序框架包括主程序、串口中断函数、定时器中断函数和nRF中断函数。主程序负责任务的调度和处理,串口中断函数负责实时接收串口命令和维护串口接收缓冲,定时器中断函数负责维护时钟计时,nRF中断函数负责实时接收网络包,维护nRF缓冲区。每个节点有且仅有一张路由表,最多可记录10条信息,路由信息按照FIFO策略进行更新,由Time字段记录信息有效时间,当Time=0时则节点失效。为每个节点配置SID_QId快查表,记录节点收到网络包的,Count字段记录节点接收网络包的次数。在nRF中断缓冲区记录节点收到的网络包,当节点中有效数据通过源路由包发送,路由表力无对应路由信息则需要将路由包记录在待发任务表中,等待条件满足后发送,使用State字段表示待发状态。

5 结语

本文对DSR算法进行改进,以满足工业控制、传感网络等领域对MANET的需求,在MANET节点设计中对网络包和各类表格式进行定义,构建节点程序,实现多任务调用和事件实施响应,提高MANET的使用效率,解决节点频繁移动问题,将DSR协议中的路由算法在自定义MANET协议栈中优化和移植,具有良好的路由优化策略。

参考文献

[1]赵开新,魏勇,王东署.改进蚁群算法在DSR路由协议中的应用[J].火力与指挥控制,2015(07):135-138.

[2]李智楠,杨晓冬.基于可靠路径稳定性估计的MANET路由发现算法研究[J].通信学报,2016,37(08):119-128.

[3]丛佩丽,赵恒.一种面向移动AdHoc网络DSR协议的改进泛洪算法[J].电信科学,2016,32(10):110-115.

作者单位

昭通学院信息科学与技术学院 云南省昭通市 657000