论文部分内容阅读
摘 要:从分析ZigBee路由技术入手,深入分析MFlooding路由协议,在传统的泛洪协议上引入了路由表的概念,用来减少数据包的重复发送,并通过NS-2对其性能进行仿真,仿真结果显示在要求鲁棒性较高的ZigBee无线传感器网络中采用MFlooding协议有较好的性能。
关键词:路由表;ZigBee;路由协议
中图分类号:TN925.93文献标识码:A
Research on Table-based ZigBee Routing Protocol
BO Wen-yan 1;YANG Zhi-ming
(1.Shanxi Datong University; Datong Shanxi 037003; China;2.Lanzhou University of Technology; Lanzhou 730050; China)
Key words: table-based; ZigBee;routing protocol
随着微电子技术、计算机技术和无线通信等技术的进步,推动了多功能传感器的快速发展,使其在微小体积内能够集成信息采集、数据处理和无线通信等多种功能。近年来,基于ZigBee协议的无线传感器网络已经成为人们关注的焦点。
ZigBee标准是由IEEE 802.15.4小组与ZigBee联盟共同制定的。针对不同的传感器网络的应用,研究人员提出了不同的路由协议。本文在要求鲁棒性较高的网络中应用了基于路由表的MFlooding路由协议,经过分析具有较好的网络性能。
1 ZigBee路由协议研究技术
路由协议负责将数据分组从源节点通过网络转发到目的节点,它主要包括两个方面的功能:寻找源节点和目的节点间的优化路径,将数据分组沿着优化路径正确转发。目前,国内外科研人员设计了多种面向WSN的路由协议。在采用ZigBee协议的WSN中,首先要解决网络配置、网络的拓扑结构以及网络中地址的分配问题。
1.1ZigBee网络配置
ZigBee网络中采用IEEE 802.15.4定义的两种无线通信设备[1]:全功能设备(Full-Function Device,FFD)和精减功能设备(Reduced-Function Device,RFD)。FFD可以和FFD、RFD进行通信,而RFD只能和FFD通信,RFD之间是无法通信的。FFD不仅可以发送和接收数据,还具有路由的功能。而RFD的应用则相对简单,只能和其父节点进行通信。
从网络配置上讲,ZigBee网络中的节点可以分为三种类型[1]:ZigBee协调点、ZigBee路由节点和ZigBee终端节点。
①ZigBee协调点:ZigBee协调点在IEEE 802.15.4也称为PAN协调点,它必须是FFD,一个ZigBee网络中只有一个ZigBee协调点,它是整个网络的主要控制者,并且通常具有相对于网络中其它节点类型的节点更强大的功能,主要负责发起建立新的网络、设定网络参数、发送网络信标、管理网络中的节点以及存储网络中节点信息等,网络形成后也可以执行路由器的功能。ZigBee协调点一般由交流电源持续供电。
②ZigBee路由节点:ZigBee路由节点也必须是FFD,它可以参与路由发现、消息转发、允许其他节点通过它来扩展网络的覆盖范围等。此外,ZigBee路由节点还可以在它的个人操作空间(Personal Operating Space, POS)中充当普通协调点(802.15.4称作协调点[1]),普通协调点并不是ZigBee协调点,它仍然受ZigBee协调点的控制。
③ZigBee终端节点:ZigBee终端节点可以是FFD或者是RFD,它通过ZigBee协调点或者ZigBee路由节点连接到网络,但不允许其他任何节点通过它加入到网络。因此,ZigBee终端节点相对于其他节点类型的节点具有存储容量较小、功耗较低等特点。
1.2ZigBee网络拓扑结构
ZigBee网络的拓扑结构主要有3中类型:星型网络结构(Star)、网型网络结构(Mesh)和簇型网络结构(Cluster-Tree)。目前在WSN中,采用的网络拓扑结构大多数是Cluster-Tree Topology。
1.3网络层地址分配机制
加入ZigBee网络的节点通过MAC层提供的关联过程组成一棵逻辑树,当网络中的节点允许一个新节点通过它加入网络时,它们之间就形成了父子关系,每个进入网络的子节点都会得到父节点为其分配的一个在网络中唯一的16bit网络地址。
2 路由表MFlooding的ZigBee路由协议研究
2.1传统flooding路由协议介绍
泛洪式路由(flooding)是一种传统的网络通信路由协议。flooding算法不要求维护网络的拓扑结构和相关的路由计算,而是当一个节点收到数据后,发送该数据给它所有的邻居节点,这些邻居节点分别将该消息转发给它们自己的邻居节点,直到该消息发布给整个网络,即网络中所有节点均收到这个消息。
2.2路由表MFlooding路由协议
在本文中,为了避免多次重复发送相同的数据包,在传统的flooding路由协议基础上,MFlooding路由协议进行重复包监测(即每一个包只转发一次),它同样维护一张路由表来记录以前转发过的包。路由表由一条条路由表项组成,其中每一条路由表项针对每个数据源记录了为它转发过的数据包情况。MFlood协议为每个节点维护一个序列号SEQ,数据源每发送一个数据包将SEQ增加1,并把该序列号添加到数据包的包头信息中,其他节点收到一个数据包后依靠序列号来判断自己是否转发过该数据包。
在传统的flooding中,并没有定义自己的控制包,但是在MFlooding中为了进行重复包检测,因此定义了自己的包头,并将序列号SEQ存在这个包头中,通过这个方法,为每一个数据包定义了一个序列号,每当一个节点接收到数据包时,先从自己的路由表里查询有没有相同的数据包(即序列号相同的数据包),若没有该数据包,则接收相应的数据包,记录其序列号然后将该数据包转发;反之,则丢弃该数据包但并不改变相应的路由表项。
2.3 MFlooding路由协议仿真与性能分析
本文在ns-2.28版本中对MFlooding路由协议的主要功能进行了仿真,包括数据包传输速率、丢包率和传输时延。仿真时间为200s,采用CBR业务源,数据流和仿真场景都采用随机生成,节点数为50个。仿真结果如下:
图1描述了部分节点间数据传输速率的情况,以节点1和节点2间为例:可以看到节点1和节点2间的平均传输速率为1.905Kbps,最大数据传输速率达到4.280Kbps;同时查看不同时段的传输速率,可见变化非常剧烈,这可能是由当前高速运动的场景决定,即节点运动的快慢或者网络拓扑结构变化的快慢会影响到数据传输速率。总体而言,整个网络中的数据传输速率基本保持恒定,所以MFlooding路由协议具有较好的有效性。在本文中,产生的随机场景中节点1和节点2间有一个CBR数据源,因此用该两节点对数据包的传输时延和丢包率进行分析。在建立网络初期,由于网络中节点数量较少,传输时延大约只有0.1s左右,但是随着网络中参与数据传输节点量的增加,传输时延会逐渐增加,最大可以达到30s左右,这说明MFlooding路由协议适合于小型网络。丢包率也是衡量一个网络性能的重要指标,在本文中,不考虑网络传输中噪声的影响和数据包队列阻塞的情况,因此对于节点2,有两种可能性会产生丢包:
第一种是由于节点1重复发送相同的数据包而被丢弃;第二种是由于别的节点数据源发送相同的数据包而被丢弃。下面我们只考虑第一种情况,其他的情况类似,从仿真数据结果分析可知:节点1向节点2发送了209个数据包,其中节点2接收到的数据包数量为161个,其丢包率可以计算出大约为23%,也就是说,节点2丢弃从节点1发来重复包的数量大约为48个,这样就降低了节点能量损耗和减少了没必要的通信资源开销。
通过仿真可以得出MFlooding协议只是在传统的flooding协议基础上增加了相应的路由表功能,用于查询已经转发过的数据包,这样就可以减少发送重复数据包,从而达到有效利用网络资源的目的;另外,基于泛洪协议本身的特点,该协议具有较好的可靠性,这主要是由于每一个数据包要遍历整个网络。
3 结束语
ZigBee无线网络技术具有低成本、低功耗、低速率等特点,并且还具有可靠性高、组网灵活、可扩展性强的优势,它必将有着广阔的应用前景和巨大的商业价值。本文重点分析了ZigBee无线传感器网络路由协议技术,包括无线网络配置、网络拓扑结构以及网络地址的分配;另外介绍了MFlooding路由协议,它是在Ad hoc网络中经常用到的flooding路由协议的基础上增加了路由表的功能,降低了每一个节点重复发送相同数据包的次数,并在NS2中进行了仿真,对其网络性能进行了重点分析,虽然MFlooding路由协议有一定的局限性,但是在鲁棒性要求较高的网络中,该协议还是有其一定的应用价值。
参考文献:
[1]HEDETNIEMI, S., And LIESTMAN, A. A Survey of Go ssiping and Broadcasting in Communication Networks. Net works 18 (1988).
[2]于海斌等.智能无线传感器网络系统[M].北京:科学出版社,2006:108-139.
[3]徐雷鸣,庞博,赵耀.NS与网络模拟[M].北京:人民邮电出版社,2003.
[4]秦冀,姜雪松.移动IP技术与NS-2模拟[M].北京:机械工业出版社,2006:140-162.
[5]耿萌,张效义,于宏毅.ZigBee路由技术研究[J].传感器与微系统,2006(11):82-85.
关键词:路由表;ZigBee;路由协议
中图分类号:TN925.93文献标识码:A
Research on Table-based ZigBee Routing Protocol
BO Wen-yan 1;YANG Zhi-ming
(1.Shanxi Datong University; Datong Shanxi 037003; China;2.Lanzhou University of Technology; Lanzhou 730050; China)
Key words: table-based; ZigBee;routing protocol
随着微电子技术、计算机技术和无线通信等技术的进步,推动了多功能传感器的快速发展,使其在微小体积内能够集成信息采集、数据处理和无线通信等多种功能。近年来,基于ZigBee协议的无线传感器网络已经成为人们关注的焦点。
ZigBee标准是由IEEE 802.15.4小组与ZigBee联盟共同制定的。针对不同的传感器网络的应用,研究人员提出了不同的路由协议。本文在要求鲁棒性较高的网络中应用了基于路由表的MFlooding路由协议,经过分析具有较好的网络性能。
1 ZigBee路由协议研究技术
路由协议负责将数据分组从源节点通过网络转发到目的节点,它主要包括两个方面的功能:寻找源节点和目的节点间的优化路径,将数据分组沿着优化路径正确转发。目前,国内外科研人员设计了多种面向WSN的路由协议。在采用ZigBee协议的WSN中,首先要解决网络配置、网络的拓扑结构以及网络中地址的分配问题。
1.1ZigBee网络配置
ZigBee网络中采用IEEE 802.15.4定义的两种无线通信设备[1]:全功能设备(Full-Function Device,FFD)和精减功能设备(Reduced-Function Device,RFD)。FFD可以和FFD、RFD进行通信,而RFD只能和FFD通信,RFD之间是无法通信的。FFD不仅可以发送和接收数据,还具有路由的功能。而RFD的应用则相对简单,只能和其父节点进行通信。
从网络配置上讲,ZigBee网络中的节点可以分为三种类型[1]:ZigBee协调点、ZigBee路由节点和ZigBee终端节点。
①ZigBee协调点:ZigBee协调点在IEEE 802.15.4也称为PAN协调点,它必须是FFD,一个ZigBee网络中只有一个ZigBee协调点,它是整个网络的主要控制者,并且通常具有相对于网络中其它节点类型的节点更强大的功能,主要负责发起建立新的网络、设定网络参数、发送网络信标、管理网络中的节点以及存储网络中节点信息等,网络形成后也可以执行路由器的功能。ZigBee协调点一般由交流电源持续供电。
②ZigBee路由节点:ZigBee路由节点也必须是FFD,它可以参与路由发现、消息转发、允许其他节点通过它来扩展网络的覆盖范围等。此外,ZigBee路由节点还可以在它的个人操作空间(Personal Operating Space, POS)中充当普通协调点(802.15.4称作协调点[1]),普通协调点并不是ZigBee协调点,它仍然受ZigBee协调点的控制。
③ZigBee终端节点:ZigBee终端节点可以是FFD或者是RFD,它通过ZigBee协调点或者ZigBee路由节点连接到网络,但不允许其他任何节点通过它加入到网络。因此,ZigBee终端节点相对于其他节点类型的节点具有存储容量较小、功耗较低等特点。
1.2ZigBee网络拓扑结构
ZigBee网络的拓扑结构主要有3中类型:星型网络结构(Star)、网型网络结构(Mesh)和簇型网络结构(Cluster-Tree)。目前在WSN中,采用的网络拓扑结构大多数是Cluster-Tree Topology。
1.3网络层地址分配机制
加入ZigBee网络的节点通过MAC层提供的关联过程组成一棵逻辑树,当网络中的节点允许一个新节点通过它加入网络时,它们之间就形成了父子关系,每个进入网络的子节点都会得到父节点为其分配的一个在网络中唯一的16bit网络地址。
2 路由表MFlooding的ZigBee路由协议研究
2.1传统flooding路由协议介绍
泛洪式路由(flooding)是一种传统的网络通信路由协议。flooding算法不要求维护网络的拓扑结构和相关的路由计算,而是当一个节点收到数据后,发送该数据给它所有的邻居节点,这些邻居节点分别将该消息转发给它们自己的邻居节点,直到该消息发布给整个网络,即网络中所有节点均收到这个消息。
2.2路由表MFlooding路由协议
在本文中,为了避免多次重复发送相同的数据包,在传统的flooding路由协议基础上,MFlooding路由协议进行重复包监测(即每一个包只转发一次),它同样维护一张路由表来记录以前转发过的包。路由表由一条条路由表项组成,其中每一条路由表项针对每个数据源记录了为它转发过的数据包情况。MFlood协议为每个节点维护一个序列号SEQ,数据源每发送一个数据包将SEQ增加1,并把该序列号添加到数据包的包头信息中,其他节点收到一个数据包后依靠序列号来判断自己是否转发过该数据包。
在传统的flooding中,并没有定义自己的控制包,但是在MFlooding中为了进行重复包检测,因此定义了自己的包头,并将序列号SEQ存在这个包头中,通过这个方法,为每一个数据包定义了一个序列号,每当一个节点接收到数据包时,先从自己的路由表里查询有没有相同的数据包(即序列号相同的数据包),若没有该数据包,则接收相应的数据包,记录其序列号然后将该数据包转发;反之,则丢弃该数据包但并不改变相应的路由表项。
2.3 MFlooding路由协议仿真与性能分析
本文在ns-2.28版本中对MFlooding路由协议的主要功能进行了仿真,包括数据包传输速率、丢包率和传输时延。仿真时间为200s,采用CBR业务源,数据流和仿真场景都采用随机生成,节点数为50个。仿真结果如下:
图1描述了部分节点间数据传输速率的情况,以节点1和节点2间为例:可以看到节点1和节点2间的平均传输速率为1.905Kbps,最大数据传输速率达到4.280Kbps;同时查看不同时段的传输速率,可见变化非常剧烈,这可能是由当前高速运动的场景决定,即节点运动的快慢或者网络拓扑结构变化的快慢会影响到数据传输速率。总体而言,整个网络中的数据传输速率基本保持恒定,所以MFlooding路由协议具有较好的有效性。在本文中,产生的随机场景中节点1和节点2间有一个CBR数据源,因此用该两节点对数据包的传输时延和丢包率进行分析。在建立网络初期,由于网络中节点数量较少,传输时延大约只有0.1s左右,但是随着网络中参与数据传输节点量的增加,传输时延会逐渐增加,最大可以达到30s左右,这说明MFlooding路由协议适合于小型网络。丢包率也是衡量一个网络性能的重要指标,在本文中,不考虑网络传输中噪声的影响和数据包队列阻塞的情况,因此对于节点2,有两种可能性会产生丢包:
第一种是由于节点1重复发送相同的数据包而被丢弃;第二种是由于别的节点数据源发送相同的数据包而被丢弃。下面我们只考虑第一种情况,其他的情况类似,从仿真数据结果分析可知:节点1向节点2发送了209个数据包,其中节点2接收到的数据包数量为161个,其丢包率可以计算出大约为23%,也就是说,节点2丢弃从节点1发来重复包的数量大约为48个,这样就降低了节点能量损耗和减少了没必要的通信资源开销。
通过仿真可以得出MFlooding协议只是在传统的flooding协议基础上增加了相应的路由表功能,用于查询已经转发过的数据包,这样就可以减少发送重复数据包,从而达到有效利用网络资源的目的;另外,基于泛洪协议本身的特点,该协议具有较好的可靠性,这主要是由于每一个数据包要遍历整个网络。
3 结束语
ZigBee无线网络技术具有低成本、低功耗、低速率等特点,并且还具有可靠性高、组网灵活、可扩展性强的优势,它必将有着广阔的应用前景和巨大的商业价值。本文重点分析了ZigBee无线传感器网络路由协议技术,包括无线网络配置、网络拓扑结构以及网络地址的分配;另外介绍了MFlooding路由协议,它是在Ad hoc网络中经常用到的flooding路由协议的基础上增加了路由表的功能,降低了每一个节点重复发送相同数据包的次数,并在NS2中进行了仿真,对其网络性能进行了重点分析,虽然MFlooding路由协议有一定的局限性,但是在鲁棒性要求较高的网络中,该协议还是有其一定的应用价值。
参考文献:
[1]HEDETNIEMI, S., And LIESTMAN, A. A Survey of Go ssiping and Broadcasting in Communication Networks. Net works 18 (1988).
[2]于海斌等.智能无线传感器网络系统[M].北京:科学出版社,2006:108-139.
[3]徐雷鸣,庞博,赵耀.NS与网络模拟[M].北京:人民邮电出版社,2003.
[4]秦冀,姜雪松.移动IP技术与NS-2模拟[M].北京:机械工业出版社,2006:140-162.
[5]耿萌,张效义,于宏毅.ZigBee路由技术研究[J].传感器与微系统,2006(11):82-85.