无线传感网络中RPL路由协议研究及性能分析
2017-02-22阮文灵曾培峰
阮文灵,曾培峰
(东华大学 计算机科学与技术学院,上海 201620)
无线传感网络中RPL路由协议研究及性能分析
阮文灵,曾培峰
(东华大学 计算机科学与技术学院,上海 201620)
详细介绍了无线传感网络中的RPL(IPv6 Routing Protocol for Low-Power and Lossy Networks)路由协议,从仿真环境、参数设定、仿真场景设计等方面对RPL路由协议的仿真进行了分析。利用cooja模拟器对RPL路由协议进行了仿真,并针对分组递交率和平均功耗两个性能指标对RPL路由协议进行性能评估。仿真结果表明,RPL路由协议在分组递交率方面适用于各个场景,并能很好地适应网络的动态变化;在功耗方面不适用于树型空间位置的场景,并且对于动态变化的网络会大大增加平均功耗。
RPL路由协议;网络仿真;cooja模拟器;分组递交率;平均功耗
0 引言
随着网络的发展,物联网[1]已经成为继互联网之后的发展趋势。作为物联网的重要组成部分,无线传感网络由于受到处理能力、内存容量、电量等限制,其路由协议设计充满挑战。互联网工程任务组(Internet Engineering Task Force, IETF)建立低功耗有损网络路由工作组(Routing over Lossy and Low-power Networks, ROLL)来解决这一问题,提出一种新的路由协议RPL,即IPv6 Routing Protocol for Low-Power and Lossy Networks[2]。
本文首先介绍了RPL路由协议的原理,分析了控制路由报文发送频率的Trickle算法[3],其次用cooja[4]对不同场景进行了仿真,并根据仿真结果分析了RPL路由协议的性能,接着验证了Trickle算法,最后进行了总结。
1 RPL路由协议原理
RPL路由协议是一种距离矢量路由协议,它根据目标函数(Objective Function,OF)构建以目的节点(根节点)为导向的有向无环图(Destination-Oriented Directed Acyclic Graph,DODAG)。每个非根节点通过目标函数计算出一个Rank值,表明自己与根节点之间的距离关系。目前常用的目标函数有OF0(Objective Function Zero)[5]、MRHOF(The Minimum Rank with Hysteresis Objective Function)[6]和ETX(Expected Transmission Count)[7]。三种控制报文用于RPL路由协议,分别是DODAG信息请求报文(DODAG Information Solicitation,DIS)、DODAG信息对象报文(DODAG Information Object,DIO)和目的广告对象报文(Destination Advertisement Object,DAO)。DIS报文用于未加入网络的节点向网络中的节点主动寻求DIO报文,并寻求加入网络;DIO报文携带了一些配置参数,如RPLInstanceID、DODAGID、Rank等,让未加入网络的节点能够发现RPL实例并学习这些配置参数,选择父节点,主要用于向上路由的建立;DAO报文携带一些路由前缀信息,主要用于向下路由的建立。
1.1 DODAG构建过程
整个DODAG的构建可以分为两个部分,第一部分是向上路由的构建,第二部分是向下路由的构建。
如图1所示,向上路由的构建过程从根节点(6LoWPAN Border Router,6LBR)开始,6LBR广播DIO报文,它携带着自己节点的信息RPLInstanceID、DODAGID、Rank等,在它传输范围内的6LRA(6LoWPAN Router A)收到该DIO报文后,选择6LBR作为父节点并加入该DODAG。6LRA具有路由功能,它会根据目标函数计算rank值并更新收到的DIO报文,并广播出去,在它传输范围内的6LRB收到该DIO报文后,选择6LRA作为父节点并加入该DODAG。在6LRB加入DODAG后的某一时刻,6LN(6LoWPAN NODE)主动广播DIS报文,寻求加入某个DODAG。6LRB收到该DIS报文后,给6LN回复DIO报文,让6LN选择6LRB作为父节点并加入DODAG。至此整个DODAG的向上路由就建立了。向下路由通过DAO报文来构建。6LRA在收到6LBR的DIO报文后,回复6LBR DAO报文,6LBR收到后将6LRA的前缀信息加入到路由表项中。6LRB收到6LRA的DIO报文后,回复6LRA DAO报文,6LRA处理该DAO报文后并向自己的父节点6LBR回复DAO报文,6LBR收到该DAO报文后将6LRB的前缀信息加入路由表项中。因此,DAO报文的处理工程是从子节点发送自己的父节点,父节点在处理后依次发送给自己的父节点,直到发送到根节点为止,根节点包含了所有节点的前缀信息。
图1 DODAG构建过程
1.2 Trickle算法
Trickle算法是RPL路由协议中一个重要的组成部分,它用来控制DIO报文的发送频率。Trickle算法运用了自适应传输周期机制,保证网络中路由信息一致时,发送较少的路由报文;而不一致时迅速发送大量的路由报文,从而快速更新路由信息,保证一致性。
为了实现上述自适应传输周期的机制,Trickle算法使用了3个配置参数:最小时隙Imin表示DIO报文发送间隔的最小范围;最大时隙Imax表示DIO报文发送间隔的最大范围;常数k用于表征DIO报文是否发送。Trickle算法还使用了3个变量:当前时隙I,表示DIO报文当前的发送间隔;当前时隙的时间点t,表示只有到达当前时隙中的时间点t,DIO报文才有可能发送;一致性计数器c,用于与常数k比较,根据比较结果决定是否发送DIO报文。
Trickle算法的具体执行步骤如下:
(1)Trickle算法开始执行时,首先把当前时隙I随机置成[Imin,Imax]中的一个时隙,并且开始第一个时隙;
(2)当一个时隙开始时,把一致性计数器c重置成0,并把时间点t设为当前时隙I中大于等于I/2、小于等于I的一个随机时间点;
(3)当监听到一致性消息时,增加计数器c;
(4)在时间点t,当计数器c小于常数k时,发送DIO消息,否则不发送DIO消息;
(5)当时隙I过期后,时隙I=I×2,当I>Imax时,I置成Imax,并判断下一时隙是否有效,若有效返回步骤(2),否则结束;
(6)当监听到不一致性消息并且I>Imin时,重置I为Imin,当I=Imin时,什么也不做,并判断下一时隙是否有效,若有效返回步骤(2),否则结束。
2 仿真环境和参数设置
2.1 仿真环境
使用cooja对RPL路由协议进行仿真,cooja是基于Contiki操作系统[8]的模拟器。
2.2 仿真参数
图2 UDMG类型
在仿真实验中,使用的目标函数为ETX(Expected Transmission Count)。ETX指一个节点成功传输一个数据包给目的节点需要传输的次数。无线介质类型是UDMG类型,如图2所示,内部的圆区域代表了节点1能从其他节点接收包的范围,其中的百分比分别代表了从不同节点接收包的成功率,它随着与节点1的距离增大而减小。外部的圆区域为受到无线干扰的范围。设置接收包的范围为50 m,受到干扰的范围是100 m,发送包的成功率为100%,接收包的成功率根据节点间的距离确定。
仿真时间为15 min,节点的类型为sky类型,并且只有1个根节点。在不同空间位置关系的节点图仿真实验中,有30个具有路由功能的节点;在动态增减节点的仿真实验中,在第5 min时动态减少或增加10个有路由功能的节点。这些节点分布在200 m×200 m的正方形区域内。
3 仿真分析
为了对仿真结果进行分析,需要使用评估RPL路由协议的性能指标[9],使用分组递交率和平均功耗作为评估的指标。
3.1 不同空间位置关系的节点图仿真
为了评估RPL路由协议在不同的拓扑情况下的性能,根据根节点与路由节点的关系,设计了4种不同空间位置关系的节点图,如图3所示。
图3 不同场景下的节点图
图4显示了15 min内不同场景下发送给根节点包的数量和根节点接收包的数量,图5根据图4的数据计算出了分组递交率。根据图4,不同空间位置节点图发送给根节点的包的总数基本相同,为420左右。根据图5,格子型的分组递交率最高,为98.81%,而树型的分组递交率最低,为95.44%,但是相差都不是特别大,并且包的递交率都达到了95%以上。根据上述结果,在分组递交率方面RPL路由协议在静态的不同场景下都有较好的表现。
图5 分组递交率
图6显示了15 min内除根节点之外的其他所有节点的功耗的平均值。根据图6,树型的平均功耗最大,为3.14 mW,格子型的平均功耗最小,为1.79 mW。树型的平均功耗远远大于其他三种情况下的平均功耗。根据上述结果,在平均功耗方面PRL路由协议对于树型位置关系表现得并不是很好,而其他三种场景下有较好的表现。
图6 在15 min内不同位置关系的平均功耗
3.2 动态增减节点的仿真
为了评估RPL路由协议在动态变化拓扑中的性能,设计了动态增减节点的场景。节点随机关系的场景是最常见的场景,因此动态增减节点的仿真使用随机关系场景。
图7显示了15 min内不同条件下发送给根节点包的数量和根节点接收包的数量,图8根据图7的数据计算出了分组递交率。根据图7,在第5 min时动态加入节点的场景下,其他路由节点发送给根节点和根节点接收包的数量都比原来的要多,而动态减少节点的情况下都比原来的要少;但都少于一开始静态相同位置相同数目节点的场景,说明节点个数影响发送给根节点和根节点接收包的数量。根据图8,在第5 min时动态加入和减少节点的场景与静态相同位置相同数目节点场景相比,包递交率相差不大,说明动态增减节点对包递交率影响很小,RPL路由协议能够很好地适应网络的动态变化。
图7 在15 min内发送给根节点和根节点接收包数量
图8 分组递交率
图9显示了15 min内不同场景的平均功耗。根据图9,在第5 min时动态加入和减少节点的场景与静态相同位置相同数目节点场景相比,平均功耗都大大增加,说明了在功耗方面,RPL路由协议对于动态变化的网络会大大增加节点的平均功耗。
图9 15 min内不同场景的平均功耗
3.3 Trickle算法的仿真
为了验证Trickle算法能够有效控制DIO报文的发送频率,在网络维持不变时增大DIO报文的发送间隔,在网络发送变化时能够迅速减小DIO报文发送的间隔,从而维护网络。使用图2进行了仿真,图10显示了仿真结果。
图10 Trickle算法的仿真
图中横坐标代表时间节点,纵坐标代表时隙的大小。图中显示了三个阶段,第一阶段网络没有发生变化,因此每次当前时隙I到期后,I变成了I×2(I×2 本文对RPL路由协议进行了详细的介绍,并对静态场景及动态增减节点情况下的RPL路由协议性能进行了深入评估。从仿真结果得出以下结论: (1)对于不同静态场景,分组递交率都在95%以上,并且相差不大,RPL路由协议对各种节点布局都适用;对于动态增减节点,分组递交率与静态相比相差不大,RPL路由协议能适应网络的动态变化。 (2)对于不同静态场景,树型位置关系的平均功耗远大于其他关系的平均功耗,RPL路由协议对于树型位置关系并不特别合适;对于动态增减节点,RPL路由协议会大大增加平均功耗。 (3)Trickle算法能够有效地控制路由报文的发送。 [1] GUBBI J, BUYYA R, MARUSIC S, et al. Internet of Things (IoT): a vision, architectural elements, and future directions[J]. Future Generation Computer Systems, 2013, 29(7):1645-1660. [2] WINTER T, THUBERT P, BRANDT A, et al. RPL: IPv6 routing protocol for low-power and lossy networks[S]. Internet: RFC 6550, 2012. [3] LEVIS P, CLAUSEN T, HUI J, et al. The trickle algorithm[S]. Internet: RFC 6206, 2011. [4] OSTERLIND F, DUNKELS A, ERIKSSON J, et al. Cross-level sensor network simulation with COOJA[C]. Proceedings of 31st IEEE Conference on Local Computer Networks, Tampa,FL: IEEE, 2006: 641-648. [5] THUBERT P. RPL objective function zero[S]. Internet: RFC 6552, 2012. [6] GNAWALI O, LEVIS P. The minimum rank with hysteresis objective function[S]. Internet: RFC 6719, 2012. [7] GNAWALI O, LEVIS P. The ETX objective function for RPL[S]. Internet: draft-gnawali-roll-etxof-00, 2010. [8] DUNKELS A, GRONVALL B, VOIGT T. Contiki-a lightweight and flexible operating system for tiny networked sensors[C]. Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks, 2004. IEEE, 2004:455-462. [9] TRIPATHI J, DE OLIVEIRA J, VASSEUR J P. Performance evaluation of routing protocol for low power and lossy networks[S]. Internet: RFC 6687, 2012. Study and performance analysis of RPL routing protocol in WSN Ruan Wenling, Zeng Peifeng (College of Computer Science and Technology, University of Donghua, Shanghai 201620, China) RPL(IPv6 Routing Protocol for Low-Power and Lossy Networks) routing protocol in WSN(Wireless Sensor Networks) is presented in detail. The simulation of RPL routing protocol is analysed in aspects of simulation environment, parameters setting and simulation scenarios design. RPL routing protocol is simulated by using cooja simulator, performance of RPL routing protocol is evaluated according to the two performance indexes of the packet delivery ratio and the average power consumption. The simulation result indicates that in packet dilivery ratio, RPL routing protocol adapts to diffent scenarios and dynamic changes of the network well, in average power consumption, RPL routing protocol is not suitable for the scenario of tree type space position, and will increase the average power consumption greatly for dynamic changes of the network. RPL routing protocol; network simulation; cooja simulator; packet dilivery ratio; average power consumption TP391.9 A 10.19358/j.issn.1674- 7720.2017.03.019 阮文灵,曾培峰.无线传感网络中RPL路由协议研究及性能分析[J].微型机与应用,2017,36(3):63-66. 2016-10-08) 阮文灵(1992-),男,硕士研究生,主要研究方向:无线传感协议、物联网。 曾培峰(1964-),男,博士,教授,主要研究方向:计算机网络与通信、嵌入式系统。4 结束语