摘要:无线传感器网络是九十年代末开始出现的一门综合了传感器技术、嵌入式计算技术、分布式信息处理技术和无线通信技术的无线网络,能够感知和采集环境或某些对象的信息,经过处理后,传输到监控者。本文以传统AODV路由协议为基础,针对微型无线传感器网络,自主研发了一种全新的MSAODV路由协议。
1 引言
随着通信技术、嵌入式计算技术和传感器技术的飞速发展和日益成熟,具有感知能力、 计算能力和通信能力的微型传感器开始在世界范围内出现。由这些微型传感器构成的传感器 网络引起了人们的极大关注。这种传感器网络
传感器网络
通信技术和计算机技术的飞速发展,人类社会已经进入了网络时代。智能传感器的开发和大量使用,导致了在分布式控制系统中,对传感信息交换提出了许多新的要求。 单独的传感器数据采集已经不能适应现代控制技术和检测技术的发展,取而代之的是分布式数据采集系统组成的传感器网络,传感器网络可以实施远程采集数据,并进行分类存储和应用。
综合了传感器技术、嵌入式计算技术、分布式 信息处理技术和通信技术,能够协作地实时监测、感知和采集网络分布区域内的各种环境或 监测对象的信息,并对这些信息进行处理,获得详尽而准确的信息,传送到需要这些信息的用 户。本文在AODV 路由协议的基础上,提出了一种全新的路由协议—MSAODV 协议,这种路 由算法适合在微型无线传感器网络上使用。
2 MSAODV 路由算法的基本思想与算法原理
2.1 路由算法的基本思想
在研究了 AODV 路由协议之后,本文提出了一种全新的路由算法,这种路由算法适合在 微型无线传感器网络上使用,又由于是基于AODV 路由协议之上,故称之为MSAODV(Micro- Sensor Ad-hoc On-Demand Distance Vector Algorithm)路由协议。
无线传感器网络与传统无线移动网络有区别,无线传感器网络最关心的是整个网络的成 存周期,而传统无线移动网主要关心的是网络拓扑化情况下可靠传输质量。微型无线传感 器网络中的节点具有体积小,功耗小,通信距离短等特点,他们应用的场合非常广泛,像战场敌 方信息采集,森林火灾监控等,这些场合往往是一些无人区,传感器节点抛撒到这些地方再回 收的可能性非常小,所以节点的功耗决定了他的使用时间。针对这些特点,MSAODV 路由算 法采用了按需查询方式,他简单实用,易于扩充,协议开销小,应用了这种路由算法传感器节点 大部分时间都可以处在睡眠状态,这样就延长了节点的使用时间,适合无线传感器网络的使用环境。
2.2 MSAODV 路由算法原理
MSAODV 路由协议算法是在AODV 路由协议的基础上改进演化而来的,他继承了AODV 路由算法的许多特点,但是又与AODV 路由协议算法有所不同。无线传感器网络的体 系结构将有助于设计MSAODV 路由协议算法,图1 显示了无线传感器网络的体系结构。
MSAODV 路由算法同样假设网络中的所有链路都是双向对称的,即某个源节点通过一 条路由可以到达无线网络中的某个目的节点时,该目的节点同样也可以通过这条路由的反向 路由回到源节点。MSAODV 路由协议同样是一种按需的距离向量路由协议,具有按需路由协 议的特点,网络中的每个节点在需要进行通信时才发送路由分组,而不会周期性地交互路由信 息以得到所有其它主机的路由:同时具有距离向量路由协议的一些特点,即各节点路由表只维 护本节点到其他节点的路由,而无须掌握全网拓扑结构。
MSAODV 路由协议中只有两种类型的消息控制帧:路由请求RREQ 和路由应答RREP。 和AODV 路由协议一样,当源节点需要发送数据而又没有到目的节点的有效路由时,启动一 个路由发现过程:向网络广播一个路由请求包RREQ,中间节点转发该路由请求,收到请求的目 的节点以单播的方式向源节点返回一个RREP 包,RREP 沿着刚建立的逆向路径传输回源节 点,源节点收到该RREP 包后则开始向对应目的节点发送数据。在路由请求包的正向传播过 程中,网络中能收到该路由请求的节点都建立起了到源节点的反向路由,当目的节点收到路由 请求而回送路由应答时,逆向路径上的节点又建立了前向路由。整个MSAODV 路由发现过 程如图2 所示,a 图表示的是反向路由的建立过程,节点S 需要和节点D 通信,但是他没有节点 D 的路由,所以节点S 发起到节点D 的路由请求,节点S 广播一个路由请求包,收到路由请求包 的节点转发节点S 的请求,最终节点D 收到了节点S 的路由请求包,这个过程建立了节点S 到 节点D 的反向路由;b 图表示的是由节点S 到节点D 前向路由的建立过程,当节点D 收到节点 S 的路由请求包后,他要给节点S 回送一个路由应答包,顺着刚才建立的反向路由,应答包最终 被节点S 成功接收,在此过程中节点S 又建立了到节点D 的前向路由。
3 MSAODV 路由中的路由表与协议帧的格式
3.1 MSAODV 路由协议路由表
网络中的每一个节点都有这样的一个路由表,该表保存了对应节点的路由信息,由于各个 节点在网络中的位置不同,因而他们的路由表项也不相同,
3.2 MSAODV 路由协议帧格式
由于 MSAODV 路由协议是AODV 路由协议的改进演化,所以与AODV 路由协议帧类 似,MSAODV 路由协议也包括RR 卫Q 协议帧和RREP 协议帧,但不包含RERR 协议帧。不 包含RERR 协议帧会导致MSAODV 协议在路由维护和错误处理上功能欠缺,但可以通过其 他方法来弥补这个缺陷。
1 RREQ 协议帧格式
2 RREP 协议帧格式
4 MSAODV 路由协议的操作
由于MSAODV 路由协议是对AODV 协议的改进演化,所以MSAODV 路由协议的操作 与AODV 路由协议的操作大同小异,为了清晰起见,对MSAODV 协议的操作做一详细的介绍 还是有必要的。
4.1 产生路由请求
无线网络中某个节点需要和网络中的另一个节点通信时,他首先会查找自己的路由表,以 确定是否有通往该目的节点的有效路由,如果有的话,从对应的目的节点路由表项中取出下一 跳节点地址,然后构造数据包并把该数据包发往下一节点,如果不存在通往目的节点的路由, 那么该节点就要发起一次路由请求。
4.2 处理和转发路由请求
处理和转发路由请求是针对源节点和目的节点之间的中间节点而言。这些中间节点可能 不止一个,在他们收到源节点广播的RREQ 路由请求帧之后,必需处理和转发该路由请求帧。
在某个中间节点接收到源节点广播或者由其他节点转发的RREQ 请求帧后,他首先会判 定该RREQ 请求帧是否己经被成功接收过,判断的依据就是源节点的IP 地址和广播ID 号,如 果发现由源节点和广播ID 唯一标志的RREQ 请求帧是新的,也就是没收到过,就会根据此 RREQ 请求帧更新自己路由表中对应的项。很显然,该路由表项的目的节点IP 字段就是是源 节点IP 地址,下一跳IP 地址就是发送此RREQ 请求帧的节点IP 地址,有可能是源节点也有可 能是另一个中间节点。接下来此中间节点判断该RREQ 请求帧的目的IP 是不是就是自己, 如果是就回送一个RREP 回应帧,不是就转发该RREQ 请求帧。
4.3 产生路由应答
RREQ 经过中间节点的转发到达目的节点或者是直接到达目的节点后,目的节点要进行 相应的处理。
目的节点收到 RREQ 请求包,首先会判断是否已经收到过此请求包,如果没有收到过则更 新自己相应的路由表项,目的节点把该路由表项的目的IP 更新为源节点的IP 地址,下一跳IP 为发给他RR 卫Q 请求帧的节点IP,目的节点序列号填上源节点的序列号,该序列号在RREQ 请求帧里,跳数直接从RREQ 请求帧里拷贝。在确认请求的节点就是自己后,目的节点要给源 节点发送一个RREP 应答帧,接下来目的节点构造一个RREP 应答帧并正确初始化该帧。类 型字段为2,表示该帧是RREP 应答帧。跳数字段为0,因为是目的节点发起的RREP 应答帧。 目的节点产生一个RREP 应答包之前,必需更新自己的序列号,更新值为当前序列号与RREQ 请求包中的目的序列号两者中的最大值,目的序列号字段被初始化为这个最大值。源IP 地址 指的是发起RREQ 请求帧的源节点的IP 地址,而不是指目的节点的IP 地址,同样的,目的IP 地址就是目的节点的IP 地址,也就是发起RREP 应答帧的节点IP 地址。
在目的节点构造好 RREP 回应帧后,就要把该帧以单播的形式沿着反向路由传送,他的下 一跳节点IP 地址是发给他RREQ 请求帧的节点地址,可能是某个中间节点,也可能是源节点。 一切准备就绪,目的节点按照退避算法发送该帧。
4.4 接收和转发路由应答
由于无线网络的特点,尽管目的节点是以单播的形式向源节点回送RREP 回应帧,但是网 络中的很多节点也能接收到该帧,当然,这些节点只是简单的丢弃该帧,只有反向路由上的节 点才会接收该RREP 回应帧。反向路由上的节点会沿着反向路由顺利的把RREP 回应帧传给 源节点,同时他们也根据此RREP 回应帧建立了前向路由。
该节点下面要完成的工作就是把 该RREP 回应帧转发出去。他要知道下一跳节点的IP 地址,以RREP 回应帧中的源节点IP 地址为关键字查找路由表,得到下一跳节点的IP,这个表项是在建立反向路由时建立或更新 的。该中间节点在完成上面的步骤后,以退避算法转发该RREP 回应帧。与RREQ 请求帧的 转发不同,R.REP 回应帧的转发是单播的,他不会像R.REQ 请求帧那样可能被转发多次,所以 R.REP 回应帧的字段里不存在广播ID。
4.5 新节点加入
无线传感器网络中的节点在开机或重启之后,会向网络广播一个RESET 消息,网络中的 其他节点收到此RESET 消息后会转发该帧,最后主节点收到该帧。新节点在RESET 消息帧 里携带自己的IP 地址,这样当主节点收到该帧后就可以知道是哪个节点重启。 收到 RESET 消息帧的其他节点首先查找自己的路由表看是否有主节点的IP 地址,如果 有就以单播的形式发送该帧,反之则继续广播此RESET 消息帧。
每个节点都要保存上一次他 收到的RESET 消息帧中的源节点IP 地址,下次再收到RESET 消息帧首先要比较源IP 地址 是否和保存值相同,相同就不再转发该帧,在经过一段时间后,将保存值清零,这样就避免了重 复转发同一个RESET 消息帧,又避免了不再转发下次的RESET 消息帧。
4.6 其他操作
除了前文描述的产生路由请求、处理和转发路由请求、产生路由应答、接收和转发路由应答、新节点加入等主要操作外,MSAODV 路由算法余下的操作可以参考第二章介绍的 AODV 路由算法。
5 本文作者创新点
AODV 路由算法应用在无线传感器网络中有一定的局限性,不能很好得适合无线传感器 网络的体系结构。以无线传感器网络与传统移动无线网着重点不同为依据,本文提出了适合 无线传感器网络的路由算法MSAODV,并详细叙述分析了MSAODV 路由算法。
转载请注明来源:中国测控网(www.ck365.cn)