ZigBee网络中的路由问题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

-1-ZigBee网络中的路由问题摘要:Zigbee协议是Zigbee联盟在IEEE802.4.15基础上提出的无线网络通信协议,相比较于蓝牙技术具有组网简单,功耗低等特点,主要应用于消费电子,工业、家庭自动化,农业自动化,个人电脑和医疗护理等,有着广阔的市场应用前景。目前国内仍处于研究初步阶段,本文对Zigbee网络中的路由问题加以整理以供国内同行参考,主要包括路由算法,路由发现和路由修复。关键字:Zigbee路由路由发现路有修复Abstract:TheZigBeeAllianceisdevelopinganewwirelesscommunicationsstandardonthebasisofIEEE802.4.15.It’smoresimple,lowerpowerconsumptionthanBluetooth.TheZigBeestandardwillbewidelyusedinconsumerelectronics,homeandbuildingautomation,agricultureautomation,PCperipheralsandmedicalsensorapplications.It’sanewtechnologyinchina,andthispassagewillgiveyouageneraldescriptionaboutsomeRoutingquestionsinZigbeenet.Keywords:ZigbeeRoutingRouteDiscoveryRouteRepair1概述随着无线通信和网络技术的不断发展,ZigBee联盟在2004年推出了面向低成本设备无线联网要求的ZigBee技术,它是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,主要适合于自动控制、远程控制领域及家用设备联网。ZigBee网络基本组成如图1所示。每个ZigBee网络中有协调器(A)、路由器(B)和终端(C)三种设备。协调器是整个网络的核心设备,负责网络的建立和全部设备的管理,可以允许其他设备加入或离开网络,具有路由、启动路由发现和路由修复的功能,每个ZigBee网络中只能有一个协调器;路由器是网络的中间设备,可以选择已有的网络加入,入网后可以允许其他设备加入或离开网络,具有路由、启动路由发现和路由修复的功能,每个ZigBee网络中可以有多个路由器,应根据网络设计的需要而确定,为了降低成本应尽量减少路由器的数量;终端是网络的末端设备,可以选择已有网络加入,不具备路由功能。网络中允许加入和加入设备之间构成父子关系,如图1中所示,A是B1的父设备,B1是A的子设备,B2为B1的子设备,A的从设备。网络中的每一个节点可以分为四层,IEEE802.15.4标准定义了媒体访问控制层和物理层,ZigBee标准在其基础上定义了一种堆栈协议,包括应用层和网络层。这种协议能够确保无线设备在低成本、低功耗和低数据速率网络中的互操作性。2ACB1B1B1B2B2CCCCC应用层网络层媒体访问控制层物理层图1ZigBee网络基本组成-2-ZigBee网络中的路由问题ZigBee网络具有自组网和多跳功能,而这当中最关键的技术就是路由和路由发现。ZigBee网络支持树状和网状路由,通过设置nwkUseTreeRouting参数使得两种路由能力可以交互,确保网络信息传递的可靠性的同时减少了通信量。nwkUseTreeRouting是网络层数据库中包含的一项参数,nwkUseTreeRouting=true表示在传递数据帧时可以使用树状路由,即网络中按父子关系传递信息,nwkUseTreeRouting=false表示不使用树状路由,若该设备同时也不具备网状路由能力(通过判断设备中是否有路由发现表以及表中是否有剩余空间确定设备是否具备路由能力)则该设备不能转发信息。当网络中某个节点与网络失去联系时,网络中的路由将遭到破坏,为了保证网络的通信畅通,协调器和路由器还应当能够启动路由修复功能,但其占用网络资源较多,容易造成网络堵塞,故不可频繁启动。2.1路由算法路由算法采用AODV(AdhocOnDemandDistanceVetor)算法。每个路由器维护一张路由表,并定期与其邻居路由器交换路由信息,根据最小路由矢量更新自己的路由表。表中存储的路由信息包括目标地址(destinationaddress)、下一跳地址(nexthopaddress)和该条目状态(status)。状态包括活动(active)、非活动(inactive)、路由发现中(underdiscover)和路由发现失败(discoverfailed),路由算法如图2所示。网络层接收到的数据帧来自应用层则首先判断是否是广播信息,即该数据帧是否传输给网络中的所有节点,若是则按照广播信息的处理规则(参考ZigBee协议)转发信息,若数据帧来自下层则在广播的同时将数据帧上传到上一层。如果不是广播地址则将目标地址与自己的网络地址比较,相等则上传到应用层,不等则判断目标地址是否是自己的一个终端子设备的地址,如果是则直接路由到目标设备。否则,如果该设备不具备路由能力,而nwkUseTreeRouting=true则按照树结构路径转发数据;否则丢弃该数据帧。如果该设备具备路由能力,提取数据帧中的discoverrouter参数,discoverrouter=0X02则立即启动路由发现;discoverrouter=0X01则首先对照路由表,如果有与目标地址相对应的路由条目,且状态为active则根据路由表中的下一跳地址转发数据帧,若状态为underdiscover则认为已经为该数据帧启动了路由发现,缓存该数据帧;若路由表中没有相应条目,或者状态为非活动(路由发现失败)则启动路由发现;若discoverrouter=0X00,表示禁止启动路由发现,此时若nwkUseTreeRouting=true则按照树结构路径转发数据,若nwkUseTreeRouting=false则该数据帧丢弃。-3-2.2路由发现启动路由发现后首先要在路由表中添加一个新条目,网络中的协调器和路由器应对接收到的路由发现请求和路由发现回答作出恰当的处理。2.2.1添加路由发现条目网络层接收到数据帧后若判定要启动路由发现,则在路由表中添加一个新条目,状态设为underdiscover,同时在路由发现表中创建一个对应的路由发现条目,每添加一个条目,RouterequestID自动加1,源地址设为启动路由发现设备的网络地址,源地址和路由请求ID唯一的标示一条路由发现条目。发送地址设为转发路由发现请求帧的设备中路由消耗(反映的是设备成功接收数据帧的概率,具体算法参考ZigBee协议)最小的设备网络地址。前向路由消耗Ctf是从启动路由发现的设备到接收设备的路由消耗,等于路由发现请求帧中的消耗值加上转发路由发现请求帧的设备到接收设备的连接消耗值。后向路由消耗Ctr为目标设备到接收设备的路由消耗,等于路由发现回答帧中的消耗值加上转发路由发现回答帧的设备到接收设备的连接消耗值。有效时间即该路由发现条目的存在时间,超过这一时间将删除该路由发现条目,若与之对应的路由表中的条目的状态为underdiscover则也将其删除。路由发现表结构如表1所示:数据帧广播信息?是来自上层?是广播广播并上传否自己是目标地址?否上传是子设备是目标地址?单播到子设备是否否支持树状路由?否丢弃否按照树结构路径转发数据是路由能力?Discoverrouter=0X00启动路由发现Discoverrouter=0X02否有效路由信息?使用路由信息图2路由算法是Discoverrouter=0X01是-4-表1路由发现表结构项目说明RouterequestID标示一条路由发现条目,每创建一个新条目该值自动加1源地址启动路由发现的设备地址发送地址转发路由发现帧的设备中路由消耗最小的设备地址前向路由消耗(Ctf)启动路由发现设备到接受路由发现请求帧设备之间的路由消耗后向路由消耗(Ctr)目标设备到接受路由发现回答帧之间的路由消耗有效时间该路由发现条目存在的最长时间2.2.2处理路由发现请求帧设备网络层启动路由发现后向外发送一个路由请求命令帧,帧格式如表2所示。帧控制部分的帧类型设为0X01,表示这是一个网络命令帧。路由域的目标地址为广播地址,有效载荷域的目标地址为路由表中的目标地址,即要发送的数据帧的目标设备的地址。路由请求ID设为路由发现表中的ID。表2路由发现请求帧格式协调器和路由器对接收到的路由发现请求帧应作出恰当的处理,其流程如图3所示。设备接收到路由发现请求帧后若具备路由能力则查找路由发现表,如果没有对应条目则创建一个,表中信息与请求帧中的一致,然后判断目标地址是否与自己的网络地址相同,相同则发送一个路由发现回答帧,不同则继续广播请求,请求帧中的路径消耗参数值修正为原路径消耗加上连接消耗;如果路由发现表中存在对应条目,则判断目标地址是否与自己的网络地址相同,或是否是自己的一个终端子设备,如果是而且帧中的路径消耗与发送和接收设备间的连接消耗的和Cf小于路由发现表中的前向消耗值Ctf,则修正表中的发送地址为路由请求帧的源地址,同时修正表中的路由消耗值为Cf并发送一个路由发现回答帧;若CfCtf则丢弃该请求帧;若目标地址与自己的网络地址不同,也不是终端子设备的地址,这种情况下如果CfCtf,则修改表中的发送地址为路由请求帧的源地址,同时修改表中的路由消耗值并继续广播路由发现请求帧,请求帧中的路径消耗修正为Cf,若该设备支持双向路径(即从A到B与从B到A都是有效的),则在路由表中创建一个新条目,目标地址为请求帧的源地址,下一跳地址为之前转发请求帧设备的地址,状态设为active;若CfCtf则丢弃该请求帧。若接收设备不具备路由能力,则判断是否是有效路径,有效路径是指数据帧来自接收设备(A)的子设备(B1),而源地址是其子设备(B1)的从设备(C),或者数据帧来自接收设备(B1)的父设备(A),而源地址不是接收设备的从设备(B2或C),如图1所示。不是则丢弃该请求帧;如果是则判断目标地址是否与自己的网络地址相同,相同则发出一个路由发现回答帧;不同则单播路由发现请求帧,这时帧的路由域的目标地址与有效载荷的目标地址相同。长度(字节)2221111121组成部分帧控制部分目标地址源地址传送半径序列号命令帧ID=0X01命令选项路由请求ID目标地址路径消耗路由域网络层帧头网络层有效载荷-5-2.2.3处理路由发现回答设备接收到路由请求帧后若判定符合其要求,则向启动路由请求的设备发送一个路由回答帧。路由发现回答帧格式如表3所示。帧控制部分的帧类型设为0X01,表示这是一个网络命令帧。路由域的目标地址为路由发现表中的发送地址(senderaddress)。有效载荷域的原始地址为发出路由发现请求设备的网络地址,响应地址为发出路由发现回答设备的网络地址。路由请求ID与接收到的路由请求中的相等。表3路由发现回答帧格式设备接收到路由发现回答帧后,若具备路由能力,则将回答帧中的原始地址与自己的网络地址相比较,若相等则根据原始地址和路由请求ID判断路由发现表中是否有与之对应的长度(字节)22211111221组成部分帧控制部分目标地址源地址传送半径序列号命令帧ID=0X02命令选项路由请求ID原始地址响应地址路径消耗路由域网络层帧头网络层有效载荷路由发现请求帧路由能力?否有效路径?是单播播丢弃否对应路由发现条目?是创建条目广播请求否自己或子设备是目标地址?否是是否丢弃CfCtf?是图3路由发现请求帧处理流程图自己是目标地址?否路由发现回答是修改路由发现表信息并发送路由发现回答CfCtf?否修改路由发现表信息并广播路由发现请求是-6-条目,没有则丢弃该回答帧,如果有但路由表中没有对应条目,则丢弃该回答帧,并删除对应的路由发现条目;如果路由表中有对应条目且状态为active,则将帧中的路径消耗与发送设备和接收设备的连接消耗的和Cf与表中的后向消耗值Ctr比较,若Cf

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功