CN107566993A - 一种基于rpl协议的双向组播转发算法 - Google Patents
一种基于rpl协议的双向组播转发算法 Download PDFInfo
- Publication number
- CN107566993A CN107566993A CN201710896489.9A CN201710896489A CN107566993A CN 107566993 A CN107566993 A CN 107566993A CN 201710896489 A CN201710896489 A CN 201710896489A CN 107566993 A CN107566993 A CN 107566993A
- Authority
- CN
- China
- Prior art keywords
- node
- packet
- rpl
- unicast
- multicast
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于RPL协议的双向组播转发算法,向上转发采用链路层的单播方式,向下转发则根据节点的子节点数目选择采用链路层的单播方式unicast还是广播方式broadcast。向下转发模式的调整,改进了原RPL协议单纯采用的单播方式,优化节点配置,可以有效减少无线发射次数、降低节点能耗,并提高数据分组转发率。本发明描述的算法能够适用于各种低功耗有损网络。
Description
技术领域
本发明属于无线传感器网络领域,特别地涉及到无线传感器网络路由问题,具体是指一种基于RPL协议的双向组播转发算法。
背景技术
最近的五到十年中,互联网母体中发展起来的物联网(Internet of Things,IOT)概念逐渐被人们所熟知并成为当下十分热门的话题。物联网常常运行于不稳定的通信媒介上,这是任何软件或通信网络协议都应考虑的网络固有特性,这种性质常被称为“有损的(Lossy)”,而该网络上的节点均具有低功耗和有限存储资源等特点。因此常把具有以上特点的网络称为低功耗有损网络(Low-power and Lossy Networks,LLNs)。LLNs网络可以广泛的应用于城市网络、工业、家庭、建筑、交通、医疗等各个领域。不同的应用领域有不同的路由需求,因此给网络的部署和性能带来了不同的挑战。
IETF于2004年底成立了6LoWPAN工作组,它的目标是为了让IEEE802.15.4设备可以使用IPv6协议栈,进行基于IPv6的通信,同时可以将无线传感器网络纳入到互联网的体系中进行扩展和应用。6LoWPAN规定其链路层和网络层协议分别使用IEEE 802.15.4标准和TCP/IPv6协议栈,建立基于IPv6的无线传感器网络。
为了在LLNs网络中应用IPv6协议栈,IETF(Internet Engineering Task Force)的ROLL(Routing Over Low power and Lossy networks)工作组专门制定了RPL(RoutingProtocol for Low-power and Lossy Networks)协议。RPL路由协议是一种距离矢量路由协议,基于IPv6地址。它通过一个目标函数OF(Objective Function)和路由度量标准(Metric)建立一个目标导向的有向无环图DODAG(Destination Oriented DirectedAcyclic Graph)。每个DODAG中,根节点会选择其他节点作为自己的父亲节点,就是沿着DODAG指向根节点的默认下一跳路由。目标函数依据路由度量标准给出默认路由选择的计算结果。目标函数与路由度量标准可以有多种组合,适应不同应用场景的需要。
RPL的路由分为上行路由和下行路由两种,上行指的是朝向根的方向。其中上行路由也是默认路由,到最优父节点(preferred parent)的路由。下行路由则相反,远离根方向的路由,就是到子节点的路由。RPL路由支持4种操作模式(Modes of Operation,MOP),分别是MOP0:无下行路由维护;MOP1:非存储模式;MOP2:存储模式不支持组播;MOP3:存储模式支持组播。MOP3是唯一支持组播的操作模式,然而,RPL MOP3的组播不能避免报文的重复转发;并且在MOP3中,当一个路由节点向其子节点转发组播报文时,默认采用链路层的单播发射,这就造成了节点能量过多消耗并且导致延时增加。
发明内容
本发明的目的在于提供一种基于RPL协议的双向组播转发算法,用于解决RPL协议中组播模式下数据分组重复转发问题和向下转发时单纯采用链路层单播模式造成的节点能耗过高以及转发延迟问题。
为实现解决RPL MOP3模式存在的缺陷,本发明的技术方案为:
一种基于RPL协议的双向组播转发算法,RPL协议的MOP3方式分为节点主动发送组播数据分组和节点转发收到的组播数据分组;
作为优选,RPL协议的MOP3方式除了根节点,任何一个节点发送组播数据分组,既可以向父节点发送,也可以向子节点发送,是双向发送。
作为优选,所述任何一个节点向上转发组播数据分组时,采用链路层的单播方式。
作为优选,所述任何一个节点向下转发组播数据分组时,根据子节点的数目是否超过给定的阈值来选择采用链路层的单播方式或广播方式,所述阈值的计算公式如下:
作为优选,本发明提供的节点主动发送组播数据分组,包括以下工作步骤:
步骤S10,开始,节点N想要发送一个组播数据分组;
步骤S11,判断该节点N是否是RPL树的根节点,如果是,转步骤S13;如果不是,继续步骤S12;
步骤S12,该节点N将组播数据分组向上转发给自己的最优父节点;
步骤S13,判断该节点N是否有子节点,如果有,继续步骤S14;如果没有,跳转到步骤S15;
步骤S14,沿着RPL树向下发送组播数据分组,发送时采用链路层的单播还是多播,依赖于该节点N的子节点数目是否超过给定的阈值;所述阈值的计算公式如下:
步骤S15,节点N主动发送带有IPv6地址的数据分组的任务结束。
作为优选,本发明提供的节点转发收到的组播数据分组,包括以下工作步骤:
步骤S20,开始,节点N收到一个带有IPv6地址的组播数据分组;
步骤S21,判断数据分组是否来自节点N的最优父节点,如果是,执行步骤S27,如果不是,执行步骤S22;
步骤S22,判断数据分组是否来自节点N的子节点,如果是,执行步骤S23,如果不是,执行步骤S32;
步骤S23,判断节点N是否有路由表,如果是,执行步骤S24,如果不是,执行步骤S25;
步骤S24,向下转发数据分组,节点N向它的子节点(除该数据分组来源子节点)采用链路层单播方式转发数据分组;
步骤S25,判断节点N是否RPL树的根节点,如果是,如果是,执行步骤S31,如果不是,执行步骤S26;
步骤S26,向上转发数据分组,节点N向它的最优父节点转发数据分组;
步骤S27,判断节点N是否有路由表,如果有,执行步骤S28,如果没有,执行步骤S31;
步骤S28,检查MAC地址类型,判断数据分组是通过链路层的哪种方式被节点N收到的,如果是单播,执行步骤S30,如果是广播,执行步骤S29;
步骤S29,延迟转发数据包;
步骤S30,节点N把收到的数据分组沿着RPL树向下转发,采用链路层的单播或者广播,取决于子节点的数目是否超过阈值;
步骤S31,判断节点N是否组播小组的成员,如果是,执行步骤S33,如果不是,执行步骤S32;
步骤S32,节点N丢弃收到的数据分组;
步骤S33,节点N把收到的数据分组存储到网络协议栈;
步骤S34,节点N对收到带有IPv6地址的数据分组的转发任务结束。
采用以上技术方案,本发明具有以下优势以及有益效果:
与原IETF ROLL工作组制定的RPL协议相比,本发明改进了RPL协议中MOP3模式的实现,可以避免组播分组的重复转发,优化节点配置,有效减少无线发射次数、降低节点能耗,并提高分组转发率,算法在原RPL协议基础上实现,简单方便。
附图说明
图1为本发明实施例的基于RPL协议的双向组播转发算法步骤图
图2为本发明实施例的基于RPL协议的节点发送组播分组子算法流程图
图3为本发明实施例的基于RPL协议的节点转发组播分组子算法流程图
图4为本发明实施例的节点向上转发数据分组广播造成的重复示意图
图5为本发明实施例的节点向子节点广播分组导致的重复示意图
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
参考图1-3,所示为本发明实施例的算法流程图,包括以下内容:
一种基于RPL协议的双向组播转发算法,包括以下2个子算法部分:
子算法1,如图2所示。
子算法1:节点N发送组播分组的子算法。主要包括以下步骤:
步骤S10,开始,节点N想要发送一个组播分组;
步骤S11,判断该节点N是否是RPL树的根节点。如果是,转步骤S13;如果不是,继续步骤S12;
步骤S12,该节点N将组播分组向上转发给自己的最优父节点;节点在向上转发时,为避免数据分组的重复转发,在链路层必须采用单播方式。如图4所示,节点8是组播数据分组的源,采用广播方式发送数据分组,节点12和节点7都收到了组播数据分组,节点12将转发该分组给它的子节点14,节点7将转发该分组给它的最优父节点1。节点1将转发该分组给它的父节点根节点和子节点9。根据RPL原协议,以上转发过程都没有造成重复。但是在节点8广播数据分组时,节点6也收到了该分组,根据RPL树的等级判断,节点8等级比节点6低,节点6将接收该数据分组并转发给它的父节点,由此就导致了数据分组的重复转发。如果节点6能够判断它不是节点8的最优父节点,就会抛弃该数据分组,避免重复转发,但是节点6无法判断它是节点8的最优父节点。因此,任何节点在向上转发数据分组时,采用链路层单播方式是避免造成数据分组重复转发的唯一方式。
步骤S13,判断该节点N是否有子节点?如果有,继续步骤S14;如果没有,跳转到步骤S15。
步骤S14,沿着RPL树向下发送组播分组,发送时采用链路层的单播还是广播,依赖于该节点N的子节点数目是否超过给定的阈值。阈值的计算公式如下:
根据实验测试,链路层一次单播的无线发射次数是5左右,链路层一次广播的无线发射次数与节点的RDC(Radio Duty Cycling)有关,需要在具体的网络环境下测试。
步骤S15,节点N主动发送带有IPv6地址的数据分组的任务结束。
子算法2:如图3所示。
子算法2:节点转发组播分组的子算法。主要包括以下步骤:
步骤S20,开始,节点N收到一个带有IPv6地址的组播分组;
步骤S21,判断分组数据是否来自节点N的最优父节点?如果是,执行步骤S27,如果不是,执行步骤S22;
步骤S22,判断分组数据是否来自节点N的子节点,如果是,执行步骤S23,如果不是,执行步骤S32;
步骤S23,判断节点N是否有路由表,如果是,执行步骤S24,如果不是,执行步骤S25;
步骤S24,向下转发数据分组,节点N向它的子节点(不包括该数据分组来源的子节点)采用链路层单播方式转发分组,采用链路层单播而不是广播模式,主要是为了避免数据分组的重复转发;如图5所示,节点7转发来自节点8的组播数据分组给它的最优父节点1,节点1有3个子节点,如果采用链路层广播方式,节点1可以方便的把数据分组发送给它的子节点3、9和6。但是,节点7又收到了来自节点1的数据分组,因为节点1是节点7的最优父节点,并且节点7不知道这个数据分组是它之前发送的。这就导致了重复问题。因此节点N在向它的子节点转发数据分组时,采用逐个节点链路层单播方式。
步骤S25,判断节点N是否RPL树的根节点,如果是,如果是,执行步骤S31,如果不是,执行步骤S26;
步骤S26,向上转发数据分组,节点N向它的最优父节点转发数据分组;
步骤S27,判断节点N是否有路由表,如果有,执行步骤S28,如果没有,执行步骤S31;
步骤S28,检查MAC地址类型,判断数据分组是通过链路层的哪种方式被节点N收到的(单播or广播)?如果是单播,执行步骤S30,如果是广播,执行步骤S29;
步骤S29,延迟转发数据包;
步骤S30,节点N把收到的数据分组沿着RPL树向下转发,采用链路层的单播或者广播,取决于子节点的数目是否超过阈值,阈值的计算采用上述子算法1中的公式(1);
步骤S31,判断节点N是否组播小组的成员?如果是,执行步骤S33,如果不是,执行步骤S32;
步骤S32,节点N丢弃收到的数据分组;
步骤S33,节点N把收到的数据分组存储到网络协议栈;
步骤S34,节点N对收到带有IPv6地址的数据分组的转发任务结束。
综上所述,本发明实施例通过对RPL协议MOP3工作方式的改进,提出一种基于RPL协议的双向组播转发算法,可以避免组播分组的重复转发,优化节点配置,有效减少无线发射次数、降低节点能耗,并提高分组转发率,算法在原RPL协议基础上实现,简单方便。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于RPL协议的双向组播转发算法,其特征在于:所述RPL协议的MOP3方式分为节点主动发送组播数据分组和节点转发收到的组播数据分组。
2.根据权利要求1所述的基于RPL协议的双向组播转发算法,其特征在于:所述RPL协议的MOP3方式除了根节点,任何一个节点发送组播数据分组,既可以向父节点发送,也可以向子节点发送,是双向发送。
3.根据权利要求2所述的基于RPL协议的双向组播转发算法,其特征在于:所述任何一个节点向上转发组播数据分组时,采用链路层的单播方式。
4.根据权利要求2所述的基于RPL协议的双向组播转发算法,其特征在于:所述任何一个节点向下转发组播数据分组时,根据子节点的数目是否超过给定的阈值来选择采用链路层的单播方式或广播方式,所述阈值的计算公式如下:
5.根据权利要求1所述的基于RPL协议的双向组播转发算法,其特征在于:所述节点主动发送组播数据分组,包括以下工作步骤:
步骤S10,开始,节点N想要发送一个组播数据分组;
步骤S11,判断该节点N是否是RPL树的根节点,如果是,转步骤S13;如果不是,继续步骤S12;
步骤S12,该节点N将组播数据分组向上转发给自己的最优父节点;
步骤S13,判断该节点N是否有子节点,如果有,继续步骤S14;如果没有,跳转到步骤S15;
步骤S14,沿着RPL树向下发送组播数据分组,发送时采用链路层的单播还是多播,依赖于该节点N的子节点数目是否超过给定的阈值;所述阈值的计算公式如下:
步骤S15,节点N主动发送带有IPv6地址的数据分组的任务结束。
6.根据权利要求1所述的基于RPL协议的双向组播转发算法,其特征在于:所述的节点转发收到的组播数据分组,包括以下工作步骤:
步骤S20,开始,节点N收到一个带有IPv6地址的组播数据分组;
步骤S21,判断数据分组是否来自节点N的最优父节点,如果是,执行步骤S27,如果不是,执行步骤S22;
步骤S22,判断数据分组是否来自节点N的子节点,如果是,执行步骤S23,如果不是, 执行步骤S32;
步骤S23,判断节点N是否有路由表,如果是,执行步骤S24,如果不是,执行步骤S25;
步骤S24,向下转发数据分组,除该数据分组来源子节点,节点N向它的其他子节点采用链路层单播方式转发数据分组;
步骤S25,判断节点N是否RPL树的根节点,如果是,如果是,执行步骤S31,如果不是,执行步骤S26;
步骤S26,向上转发数据分组,节点N向它的最优父节点转发数据分组;
步骤S27,判断节点N是否有路由表,如果有,执行步骤S28,如果没有,执行步骤S31;
步骤S28,检查MAC地址类型,判断数据分组是通过链路层的哪种方式被节点N收到的,如果是单播,执行步骤S30,如果是广播,执行步骤S29;
步骤S29,延迟转发数据包;
步骤S30,节点N把收到的数据分组沿着RPL树向下转发,采用链路层的单播或者广播,取决于子节点的数目是否超过阈值;
步骤S31,判断节点N是否组播小组的成员,如果是,执行步骤S33,如果不是,执行步骤S32;
步骤S32,节点N丢弃收到的数据分组;
步骤S33,节点N把收到的数据分组存储到网络协议栈;
步骤S34,节点N对收到带有IPv6地址的数据分组的转发任务结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710896489.9A CN107566993B (zh) | 2017-09-28 | 2017-09-28 | 一种基于rpl协议的双向组播转发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710896489.9A CN107566993B (zh) | 2017-09-28 | 2017-09-28 | 一种基于rpl协议的双向组播转发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107566993A true CN107566993A (zh) | 2018-01-09 |
CN107566993B CN107566993B (zh) | 2021-03-26 |
Family
ID=60983366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710896489.9A Active CN107566993B (zh) | 2017-09-28 | 2017-09-28 | 一种基于rpl协议的双向组播转发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107566993B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103619045A (zh) * | 2013-11-21 | 2014-03-05 | 中国科学院信息工程研究所 | 一种低功耗有损网络的路由构建方法及系统 |
US20160219415A1 (en) * | 2015-01-22 | 2016-07-28 | Gainspan Corporation | Multicast packet delivery in a wireless network operating in storing mode |
-
2017
- 2017-09-28 CN CN201710896489.9A patent/CN107566993B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103619045A (zh) * | 2013-11-21 | 2014-03-05 | 中国科学院信息工程研究所 | 一种低功耗有损网络的路由构建方法及系统 |
US20160219415A1 (en) * | 2015-01-22 | 2016-07-28 | Gainspan Corporation | Multicast packet delivery in a wireless network operating in storing mode |
Non-Patent Citations (3)
Title |
---|
GEORGIOS Z. PAPADOPOULOS,ET.AL.: "BMFA: Bi-Directional Multicast Forwarding Algorithm for RPL-based 6LoWPANs", 《ICST INSTITUTE FOR COMPUTER SCIENCES, SOCIAL INFORMATICS AND TELECOMMUNICATIONS ENGINEERING 2017》 * |
杨红,等: "B_RPL:低存储开销的RPL路由协议", 《计算机科学》 * |
陈熙: "物联网中低功耗节点组播路由算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107566993B (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aggarwal et al. | Performance analysis of AODV, DSDV and DSR in MANETS | |
Abu-Ein et al. | An enhanced AODV routing protocol for MANETs | |
Sagar et al. | Evaluating and Comparing the Performance of DYMO and OLSR in MANETs and in VANETs | |
Hosek et al. | Investigation on OLSR routing protocol efficiency | |
Bansal et al. | Improved routing protocol for MANET | |
Sumathy et al. | Analysis of multicast routing protocols: PUMA and ODMRP | |
CN107566993A (zh) | 一种基于rpl协议的双向组播转发算法 | |
Taneja et al. | Performance evaluation of DSR and AODV over UDP and TCP connections | |
Tambuwal et al. | Improvement of DSR routing protocol using TTL-based scheme in Mobile Ad Hoc Networks | |
Gupta et al. | Mikbit-modified dsr for manet | |
Tonk et al. | Performance comparison of ad-hoc network routing protocols using NS-2 | |
Oli et al. | Simulation and Comparision of AODV and AOMDV Routing Protocols in MANET | |
Chand et al. | Performance comparison of AODV and DSR ON-Demand Routing protocols for Mobile ad-hoc networks | |
Kumar et al. | A Link Failure Solution in Mobile Adhoc Network through Backward AODV (B-AODV) | |
Kumar et al. | Comparative performance study of zone routing protocol over AODV and DSR routing protocols on constant bit rate (CBR) | |
Kaur et al. | Comparison and Analysis between ReactiveRouting Protocols in MANET using Opnet17. 5v | |
Cheng et al. | An AODV-based backup routing mechanism for time-critical in wireless mesh networks | |
Ravi et al. | A simulation study of impact of low and high mobility on MANET routing protocols | |
Deepthy et al. | Performance Improvement Of Energy Aware And Adaptive Routing Protocols For Manets–A Survey | |
Lee et al. | Multicast routing considering reliability and network load in wireless ad-hoc network | |
Paulus et al. | Analyzing the effect of varying CBR on AODV, DSR, IERP Routing Protocols in MANET | |
Nagra et al. | Simulation based Analysis of AODV, BABEL and PUMA Protocols for Adhoc Network | |
Taddia et al. | Energy efficiency in OLSR protocol | |
Zhang et al. | Adaptive Internet gateway discovery scheme for mobile ad hoc networks | |
Ch et al. | A path Recovery AODV optimistic Secure Rout Reply Protocol in Ad Hoc Mobile Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |