CN103262481B - 有向无环图(dag)中的动态重路由调度 - Google Patents
有向无环图(dag)中的动态重路由调度 Download PDFInfo
- Publication number
- CN103262481B CN103262481B CN201180060375.1A CN201180060375A CN103262481B CN 103262481 B CN103262481 B CN 103262481B CN 201180060375 A CN201180060375 A CN 201180060375A CN 103262481 B CN103262481 B CN 103262481B
- Authority
- CN
- China
- Prior art keywords
- node
- dag
- route
- father
- classification
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/023—Delayed use of routing table updates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
在一个实施例中,特定节点在父亲节点处加入计算机网络中的有向无环图(DAG),并且基于DAG的拓扑来确定它的分级,该分级低于特定节点的父亲节点并且高于该特定节点的任何孩子节点。响应于对用于DAG中的路由变化的触发的检测,特定节点基于它的分级来延迟路由变化,从而该延迟长于任何孩子节点的第一相关延迟并且短于它的父亲节点的第二相关延迟。在延迟届满后,特定节点可以确定用于路由改变的触发是否仍有效,如果有效,执行路由改变。
Description
技术领域
本申请大体上涉及计算机网络,尤其涉及有向无环图(DAG)的路由以及管理。
背景技术
低功率有损网络(LLN,例如传感器网络)有大量的应用,例如智能电网(SmartGrid)和智能城市(SmartCities)。对LLN存在各种挑战,例如有损链路、低带宽、电池操作、低存储和/或处理能力等等。一种对LLN挑战的示例性路由方案是被称为针对LLN的路由协议或“RPL”的协议,该协议是距离矢量路由协议,除了用于限制控制流量、支持局部的(并且缓慢的)修复等一组特征之外,该协议建立面向目的地的有向无环图(DODAG,或简称为DAG)。RPL构架提供了灵活的方法,通过这种方法每个节点执行DODAG的发现、建造和维护。
当前,网状网络(meshnetwork,例如LLN)可能需要较长的时间来收敛。此外,现有的系统可以允许由每个节点独立判断的父亲选择(parentselection)改变(收敛)发生在DAG内的任何地方。由于这两个因素,在收敛(路由变化)过程中可能发生网络振荡以及不必要的变化。例如,在收敛时段期间,孩子节点可能迁移至其它父亲并且因此改变它们的孩子的状态,这可能使得网络中必须发生另外的改变。尤其是,当带有大量的孩子(并且由此带有大量流量)的节点改变父亲时,许多孩子节点受到影响,可能对路径度量(metrics)(例如,等待时间(latency))具有重大影响,导向进一步的振荡。此外,上述节点通过它的新父亲引导的新流量可能对该新父亲施以沉重的负载,因此该新父亲可能也需要寻找替代的父亲,导致大规模的网络和流量的重路由(rerouting)。最糟糕的是,在收敛处理期间,已经被下行发送的消息可能通过特定(预配置)的路由来遍历,由于在发送节点和DAG的根之间的路径可能已经被重配置,该路由可能不再有效。
附图说明
结合附图参考下文的说明可以更好地理解本文的实施例,在附图中相似的参考数字指示相同或功能类似的元件,其中:
图1示出了示例性计算机网络;
图2示出了示例性网络设备/节点;
图3示出了示例性消息;
图4示出了图1的计算机网络中的示例性有向无环图(DAG);
图5A-5C示出了示例性DAG节点分级(grading);
图6示出了DAG节点分级阈值的示例;
图7示出了示例性路由触发;
图8A-8E示出了示例性重路由调度(scheduling);
图9A-9B示出了示例性平行重路由调度;并且
图10示出了用于动态重路由调度的示例性简化过程。
具体实施方式
概述
根据本发明的一个或多个实施例,特定节点在父亲节点处加入计算机网络中的有向无环图(DAG),并且基于DAG的拓扑来确定它的分级,该分级低于该特定节点的父亲节点并且高于该特定节点的任何孩子节点。响应于对DAG中的路由变化的触发所进行的检测,特定节点基于它的分级来延迟路由变化,使得该延迟长于任何孩子节点的第一相关延迟并且短于它的父亲节点的第二相关延迟。在延迟期满后,该特定节点可以确定对路由变化的触发是否仍有效,如果有效则执行路由变化。以这种方式,路由变化被在DAG内排序,从叶子节点向上到DAG的根节点发生。
说明
计算机网络是通过通信链路相互连接的节点和用于在端节点之间输送数据的片段的在地理上分布的集合,这些端节点例如是个人计算机和工作站或者其他设备(例如传感器)等。许多类型的网络是可用的,范围从局域网(LAN)到广域网(WAN)。LAN通常通过专用私人通信链路来连接位于同一大致实体位置(例如建筑或校园)中的节点。另一方面,WAN通常通过长距离通信链路来连接地理上分散的节点,这些长距离通信链路例如是常见的运营商电话线、光学光路、同步光学网络(SONET)、同步数字体系(SDH)链路,或者电力线通信(PLC),诸如IEEE61334、CPLG3、瓦特脉冲通信(WPC)等。此外,移动自组网络(MANET)是一种自组(ad-hoc)网络,其一般被认为是通过无线链路连接的移动路线(以及相关联的主机)的自配置网络,这些移动路线一起形成了任意拓扑。
智能对象网络(例如特别是传感器网络)是一种具有在空间上分布的自治装置(诸如传感器、致动器等)的特定类型的网络,这些自治装置协同监视不同位置处的物理或环境条件,例如能量/功率消耗、资源消耗(例如用于高级计量设施即“AMI”应用的水/气等)、温度、压力、振动、声音、辐射、运动、污染物等。其他类型的智能对象包括致动器,例如负责开启/关断引擎或者执行任何其他动作。尽管有线连接也是可用的,但是作为一种智能对象网络的传感器网络通常是无线网络。即,除了一个或多个传感器之外,传感器网络中的每个传感器设备(节点)通常可以配备有无线收发器或者其他通信端口、微控制器以及能量源(例如电池)。一般地,对传感器节点的尺寸和成本限制导致对资源(例如能量、存储器、计算速度和带宽)的相应限制。相应地,虽然不需要,但是反应式(reactive)路由协议可以替代先应式(proactive)路由协议而被用于传感器网络。
在某些配置中,传感器网络中的传感器向一个或多个集中式或分布式数据库管理节点发送它们的数据以及来自其它传感器的路由/中继数据,这些数据库管理节点获取该数据以用于一个或多个相关联的应用。替代地(或者另外地),某些传感器网络提供这样的机制:通过这些机制,感兴趣的订阅者(例如“汇聚点(sink)”)可以专门从网络中的设备请求数据。在“推送模式”中,传感器无需提示就向传感器汇聚点/订阅者传输它们的数据,例如以规律的间隔/频率或者响应于外部触发(例如警报消息)来传输。相反,在“拉动模式”中,传感器汇聚点可以专门请求传感器(例如特定传感器或者所有传感器)向传感器汇聚点传输它们的当前数据(或者做出测量并传输该结果)。(本领域技术人员会认识到每种模式的益处和不足,两种模式都适用于本文描述的技术。)
图1是示例性计算机网络100的示意性框图,该网络示例性地包括通过各种通信方法相互连接的节点/设备200(例如,被如图所示地标记,“根”、“11”、“12”…“43”、“4N”)。例如,链路105可以是有线链路或者可以包括无线通信媒介,其中某些节点200(例如路由器、传感器、计算机等)可以例如基于距离、信号强度、当前操作状态、位置等而与其他节点200通信。本领域技术人员将会理解,任何数量的节点、设备、链路等可以被用在计算机网络中,本文示出的视图是为了简明。此外,虽然实施例在本文中是参考一般为“树”形的网络而示出的,但是本文的描述不局限于此,并且可以应用于这样的网络:该网络具有从根节点向所有方向发射的分支,根节点在多个周围节点中大致处于中心。
例如,网络中的某些设备可以比其他设备更有能力,例如与具有最小的存储器、电池电力等的那些设备相比,具有更大存储器、可持续的非电池电源等。例如,某些设备200可能不具有存储能力或者具有有限的存储能力。此外,设备200中的一个或多个可以被视为“根节点/设备”(或者能够作为根的设备(rootcapabledevice)),也被称为LLN边界路由器(LBR),而这些设备中的一个或多个也可以被视为“目的地节点/设备”。
数据包140(例如在设备/节点之间发送的流量和/或消息)可以被使用预定义的网络通信协议(例如传输控制协议/因特网协议(TCP/IP)、用户数据报协议(UDP)、多协议标签交换(MPLS)、各种专有协议等)在计算机网络100的设备/节点之间交换。在该背景下,协议由定义节点如何彼此交互的规则集合组成。此外,网络100内的数据包可以被取决于设备能力来以不同的方式传输,例如源路由数据包。
图2是可以用于本文所描述的一个或多个实施例的示例性节点/设备200(例如,作为网络中的根节点或者其他节点(例如传感器))的示意性框图。该设备可以包括通过系统总线250相互连接的一个或多个网络接口210、一个或多个传感器组件215(例如传感器、致动器等)、至少一个处理器220(例如8-64位微控制器)和存储器240,以及电源260(例如电池、插头等)。注意,根节点以及其它节点不一定包含传感器组件215。
网络接口210包含用于在耦合到网络100的物理和/或无线链路上传送数据的机械、电子和信令电路。网络接口可以被配置为使用各种不同的通信协议(包括TCP/IP、UDP、无线协议(例如IEEEStd.802.15.4、WiFi、蓝牙)、以太网、电力线通信(PLC)协议等)来发送和/或接收数据。注意,根可以具有两种不同类型的网络连接210。也就是说,一个或多个接口可以用来与网状网络(即,图1示出的其他节点)通信(进入网格单元(meshcell)),而对于根节点,另一接口可以在根节点与例如位于WAN的头端设备之间用作WAN上行链路网络接口。
存储器240包括多个可由处理器220和网络接口210寻址的存储位置,这些存储位置用于存储与本文所描述的实施例相关联的软件程序和数据结构。如上文所述,某些设备可能具有有限的存储器或者不具有存储器(例如,除了用于在设备上操作的程序/进程的存储器之外,没有用于存储的存储器)。处理器220可以包括适于执行软件程序以及操纵数据结构的必要元件或逻辑,例如路由/前缀245(尤其仅在有能力的设备(capabledevice)上)。操作系统242的一些部分通常驻留在存储器240中并且由处理器执行,操作系统242通过调用支持在设备上执行的软件程序和/或服务的操作等在功能上组织设备。这些软件程序和/或服务可以包括路由进程/服务244,路由进程/服务244可以包括示例性的有向无环图(DAG)进程246。另外,对于根设备(或者其他管理设备),在存储器240中还可以存在拓扑管理进程248和相关联的所存储拓扑249,以供如本文所描述地使用。对本领域的技术人员而言显而易见的是,其他处理器和存储器类型(包括各种计算机可读介质)可以被用来存储和执行与本文所描述的技术有关的程序指令。另外,虽然说明书说明了各种进程,但是明确地考虑到,各种进程可以被实施为模块,这些模块被配置来根据本文的技术(例如根据类似进程的功能)而操作的模块。
路由进程/服务244包含计算机可执行指令,这些计算机可执行指令由处理器220执行以实现由一个或多个路由协议提供的功能,这些协议例如是本领域技术人员将会理解的先应式或反应式路由协议。这些功能可以在支持的设备上被配置来管理包含路由/前缀245的路由/转发表,路由/前缀245例如包括用于做出路由/转发决定的数据。特别地,在先应式路由中,在计算去往网络中的任何目的地的路由之前发现和知晓连通性,例如链路状态路由(例如开放最短路径优先(OSPF)或中间系统到中间系统(ISIS))或者优化链路状态路由(OLSR)。在另一方面,反应式路由发现邻居(即,不具有网络拓扑的先验知识),并且响应于至目的地的所需路线来发送路由请求到网络中,从而确定哪个邻居节点可以用来到达所希望的目的地。示例性反应式路由协议可以包括自组按需距离矢量(AODV)、动态源路由(DSR)、动态MANET按需路由(DYMO)等。注意,在不支持或者未被配置来存储路由条目的设备上,路由进程/服务244可以仅由源路由技术所必需的提供机制组成。即,对于源路由,网络中的其他设备可以精确地告知能力较低的设备(lesscapabledevice)向何处发送数据包,并且能力较低的设备简单地按照指示来转发数据包。
低功率有损网络(LLN)(例如某些传感器网络)可以被用在大量的应用中,例如用于“智能电网”和“智能城市”。LLN中的许多挑战已经被呈现,例如:
(1)链接一般是有损的,使得数据包传递速率/比率(PDR)可能由于各种干扰源而显著地变化,例如,相当大地影响误码率(BER);
(2)链接一般是低带宽的,使得控制平面流量一般必须是有限制的并且与低速率数据流量相比是可以忽略的;
(3)有一些这样的使用情况:需要指定一组链路和节点度量,其中一些度量是动态的,从而需要特定的平滑功能来避免路由不稳定,相当大地耗费了带宽和能量;
(4)一些应用可能需要约束路由(constraint-routing)来例如建立将避免非加密链路、低能量上运行的节点等的路由路径;
(5)网络的规模可能变得非常大,例如,大约数千到数百万个节点;以及
(6)节点可能会受到低存储器、低处理能力、低电源(例如电池)的限制。
换言之,LLN是对路由器及其相互连接都有约束的一类网络:LLN路由器通常在有约束(例如处理能力、存储器和/或能量(电池))的情况下操作,并且它们的相互连接例如具有高损耗率、低数据速率和/或不稳定的特性。LLN由从数十到高至数千甚至数百万个LLN路由器中的任意路由器组成,并且支持(LLN内的设备之间的)点对点流量、(从中央控制点到LLN内的设备子集的)点对多点流量以及(从LLN内的设备朝向中央控制点的)多点对单点流量。
在Winter等人题为“RPL:用于低功率有损网络的IPv6路由协议(RPL:IPv6RoutingProtocolforLowPowerandLossyNetworks)”的因特网工程任务组(IETF)因特网草案<draft-ietf-roll-rpl-15>(2010年11月11日版)中规定的示例性协议提供了一种机制,该机制支持从LLN内的设备朝向中央控制点(例如通常的LLN边界路由器(LBR)或者“根节点/设备”)的多点对点(MP2P)流量,以及从中央控制点到LLN内的设备的点对多点(P2MP)流量(以及点对点或者“P2P”流量)。RPL(发音为“ripple”)一般可以被描述为这样的距离矢量路由协议:除了定义一组特征来约束控制流量、支持修复等等之外,该协议还建立用于路由流量/数据包140的有向无环图(DAG)。注意,如能够被本领域技术人员理解的那样,RPL也支持多拓扑路由(MTR)的概念,从而多个DAG能够被建立来依据独立的要求承载流量。
DAG是具有如下属性的有向图:所有的边缘被以应当没有循环(环路)存在的方式来定向。所有的边缘都被包含在下述路径中:这些路径朝着一个或多个根节点而定向并且终止于这一个或多个根节点(例如“簇头(clusterhead)”或“汇聚点”),以通常将DAG的设备与更大的设施(例如因特网、广域网或其他域)相互连接。此外,面向目的地的DAG(DODAG)是以单个目的地(即,没有向外边缘的单个DAG根)为根的DAG。DAG中的特定节点的“父亲”是在朝向DAG根的路径上该特定节点紧接着的下一节点,从而父亲具有比该特定节点本身更低的“级别(rank)”,其中节点的“级别”标识出该节点相对于DAG根的位置(例如,节点离根越远,该节点的级别越高)。另外,在某些实施例中,节点在DAG中的兄弟可以被定义为在DAG中位于相同的级别的任何邻居节点。注意,兄弟不一定共享共同的父亲,并且,由于没有向前的行进(它们的级别是相同的),兄弟之间的路线通常不是DAG的一部分。还要注意,树是一种DAG,其中DAG中的每个设备/节点一般具有一个父亲或一个优选的父亲。
DAG通常可以被基于目标函数(OF)来建立。目标函数的作用通常是指定关于如何建立DAG(例如父亲、备份父亲等的数量)的规则。
此外,一个或多个度量/约束可以通过路由协议来公告从而优化DAG。此外,路由协议还允许包括可选的一组约束以计算受约束路径,例如如果链路或节点不满足所要求的约束,则当计算最佳路径时该链路或节点被从候选列表中“剪除(prune)”。(替代地,约束和度量可以与OF分开)。此外,路由协议可以包括定义主机或一组主机的“目的(goal)”,例如用作数据采集点的主机、或者向外部设施提供连通性的网关,其中DAG的主要目标是使得该DAG内的设备能够达到该目的。在节点无法符合目标函数或者不理解或支持所公告的度量的情况下,该节点可以被配置来作为叶子节点而加入DAG。如本文所使用的,各种度量、约束、方针等被视为“DAG参数”。
说明性地,用于选择路径(例如优选的父亲)的示例性度量可以包括成本、延迟、等待时间、带宽、估计传输计数(ETX)等,而可以对路由选择施加的示例性约束可以包括各种可靠性阈值、对电池操作的限制、多径分集、带宽要求、传输类型(例如有线、无线等)。OF可以提供定义了负载平衡要求的规则,例如所选择的父亲的数量(例如单父亲树或多父亲DAG)。注意,路由度量和约束可以被如何获得的示例可以在Vasseur等人的题为“低功率有损网络中用于路径计算的路由度量(RoutingMetricsusedforPathCalculationinLowPowerandLossyNetworks)”<draft-ietf-roll-routing-metrics-12>(2010年11月10日版)的IETF因特网草案中找到。此外,示例性OF(例如缺省OF)可以在Thubert的题为“RPL目标函数0(RPLObjectiveFunction0)”<draft-ietf-roll-of0-03>(2010年7月29日版)的IETF因特网草案中找到。
建立DAG可以利用发现机制来建立网络的逻辑表示,并且利用路由传播(routedissemination)来在网络内构建状态,使得路由器知晓如何向它们的最终目的地转发数据包。注意,“路由器”指能够转发和生成流量的设备,而“主机”指能够生成但不转发流量的设备。此外,“叶子(leaf)”通常可以用来描述通过一个或多个路由器连接到DAG的非路由器,但叶子本身不能向DAG上的其他路由器转发在该DAG上接收的流量。当建立DAG时,控制消息可以被在网络内的设备之间传输以用于发现和路由传播。
根据示例性的RPL协议,DODAG信息对象(DIO)是承载如下信息的DAG发现消息:该信息允许节点发现RPL实例、学习它的配置参数、选择DODAG父亲集合以及维护上行的路由拓扑。此外,目的地公告对象(DAO)是一种发现答复消息,该发现答复消息沿着DODAG向上传送目的地信息,使得DODAG根(以及其他中间节点)能够供给下行路由。DAO消息包括用于标识目的地的前缀信息、在支持源路由的情况下记录路线的能力、以及用于确定特定公告的新鲜度的信息。注意,“上行”或“向上”路径是在从叶子节点朝着DAG根的方向上的路线,例如遵循DAG内的边缘的朝向。相反地,“下行”或“向下”的路径是在从DAG根朝着叶子节点的方向上的路线,例如通常行进在与DAG内的上行消息相反的方向上。
通常,DAG发现请求(例如DIO)消息被从DAG的(一个或多个)根设备向下朝着叶子传输,告知每个相继的接收设备如何到达根设备(即,接收到请求的方向通常是根的方向)。因此,DAG被在朝向根设备的向上方向上创建。DAG发现答复(例如DAO)然后可以从叶子向(一个或多个)根设备返回(除非是不必要的,例如仅针对UP流),告知另一方向上的每个相继的接收设备如何针对下行路线来到达叶子。该过程帮助建立路由表从而向DAG中的任何节点(而不仅仅是向叶子)发送下行消息。在传输DAO消息之前,能够维护路由状态的节点可以从它们所接收的DAO消息来聚集路线。然而,不能维护路由状态的节点可以附加下一跳(next-hop)父亲地址。DAO消息然后被直接发送至能够进而建立拓扑并且在本地计算到DODAG中所有节点的下行路线的DODAG根。这样的节点然后可以跨过不能存储下行路由状态的DAG的区域而使用源路由技术到达。
图3示出示例性的简化控制消息格式300,控制消息格式300可以在建立DAG时用于发现和路由传播,例如作为DIO或DAO。示例性地,消息300包括报头310,报头310带有一个或多个表明消息类型(例如RPL控制消息)的字段312以及/或者指示特定消息类型的特定代码,该特定消息类型例如是DIO或DAO(或DAG信息征集(Solicitation))。该消息的主体/有效载荷320内可以是多个用于中继有关信息的字段。尤其是,这些字段可以包括各种标志/位321、序列号322、级别值323、实例ID324、DODAGID325以及其他字段,本领域技术人员可以详细理解每个字段。此外,对于DAO消息,还可以包括用于目的地前缀326和传输信息字段327的另外字段等等(例如用于ACK的DAO_序列等)。对DIO或者DAO,可以使用一个或多个另外的子选项字段328在消息300内提供另外的或者定制的消息。例如,目标代码点(OCP)子选项字段可以在DIO内用来承载指定用于建立相关联的DAG的特定目标函数(OF)的代码。替代地,子选项字段可以用来在消息300内(可以如本文所述的,在一个或多个类型-长度-值(TLV)字段中)承载其他某些信息,例如标志、请求、能力、列表等。
图4示出了例如通过上面所述的技术可以在图1的网络100内创建的示例性DAG。例如,可以为每个节点选择某些链路105以与特定的父亲通信(并且因此,相反地,与孩子通信,如果存在孩子的话)。这些所选择的链路形成DAG410(示出为较粗的线),DAG410从根节点朝着一个或多个叶子节点(没有孩子的节点)延伸。然后流量/数据包140(在图1中示出)可以在朝着根的上行方向或者朝向叶子节点的下行方向上遍历DAG410。
如上所述,现有的系统可以按照每个节点的独立判断而允许父亲选择改变(收敛)发生在DAG内的任何地方。由于这个因素,收敛(路由变化)期间可能发生网络振荡以及不必要的变化。例如,在收敛时段期间,孩子节点可能迁移至其它父亲并且因此改变它们的孩子的状态,这可能使得网络中必须进行更多的改变。尤其是,当带有大数量的孩子(并且由此带有大量流量)的节点改变父亲时,许多孩子节点受到影响,可能对路径量度(例如,等待时间)具有重大影响,导向进一步的振荡。此外,上述节点通过它的新父亲引导的新流量可能对该新父亲施以沉重的负载,并且因此该新父亲可能也需要寻找替代的父亲,导致大规模的网络和流量路由。最糟糕的是,在收敛处理期间,已经被下行发送的消息可能通过特定(预配置)的路由来遍历,由于在发送节点和DAG的根之间的路径可能已经被重配置,该路由可能不再有效。
作为进一步的说明,在现有系统中每个节点(无论它所具有的孩子的数量,也无论它在DAG中的位置)连续地观察它各自的优化函数(OF),并且当被标识时,它优化它的父亲,导致网络的新路由。例如,如果给定的节点确定它的父亲的ETX超出了特定阈值,它可以通过复位(home)至新的父亲来发起路由变化。但在现有系统中,特定链路的ETX的增加(标识较低的服务质量),节点可以选择新的父亲,这也被它的孩子节点(并且随后是排序更高的孩子)至DAG根的路径的增加的ETX所反映。(注意,ETX是示例性度量,相同的逻辑也适用于一些其它度量)。作为结果,当所述节点改变它的父亲时,它的孩子也可以做出类似的决定并且改变它们的父亲(即上述这个节点),在网络改变期间造成不需要的网络振荡。
动态重路由调度
本文的技术被设计为在网状网络(例如网络100/DAG410)的收敛阶段期间以及正在进行的DAG维护/优化期间,使大的路由变化的数量(并且由此减少相关联的DAG维护流量的数量)最小化。特别地,根据本文的技术,DAG内的节点的位置也被列入考虑来对DAG中的路由变化进行调度(排序)。例如,本文的技术通过基于节点的改变将对网络的剩余部分有多大的影响来为节点的路由变化指派不同的定时,从而最小化路由变化。即,与距离根更远的节点以及诸如具有较少的孩子(以及较少的流量)的节点(例如距离叶子节点更近)相比,对于带有大数量的孩子(或流量)的节点的改变可能更多地影响网络。同时,由于该技术抑制了流量改变的大小,相应地减少的数量的丢失消息可以被实现。
具体地,根据将被在下文更细节化地描述的本发明的一个或多个实施例,特定节点在父亲节点处加入计算机网络中的DAG,并且基于所述DAG的拓扑来确定它的“分级”,此分级低于该特定节点的父亲节点并且高于该特定节点的任何孩子节点。例如在一个具体实施例中,叶子节点的分级被设置为0。响应于对DAG中的路由变化的触发进行的检测,特定节点基于此分级来延迟路由变化,使得该延迟长于任何孩子节点的第一相关延迟并且短于父亲节点的第二相关延迟。在延迟期满后,特定节点可以确定用于路由变化的触发是否仍有效,如果有效,则执行该路由变化。以这种方式,在DAG内对路由变化进行调度,来从叶子节点向上到DAG的根节点发生。
示例性地,本文所描述的技术可以由硬件、软件和/或固件,例如根据DAG过程246来执行,它们可以包括计算机可执行指令,这些指令由处理器220执行从而执行与本文所描述的新技术相关的功能,例如结合路由过程/服务244。例如,本文的技术可以被视为对传统协议(例如RPL协议)的扩展,因此这样,这些技术将由在本领域中被理解为执行RPL协议的类似组件来处理。
操作上,本文的技术是基于这样的观察:在网络的周边改变路由导致的整体性能的成本少于在网络的中心做出路由变化的成本。因此本文的技术在网络的边缘(叶子节点)开始并且上行朝向根节点工作。换言之,与距离根节点较近的节点(例如对于做出改变具有更为严厉的要求/延迟)相比,距离DAG410的叶子节点较近的节点可以更频繁地执行路由变化,因此,在DAG的顶端(或者网格的中心)的重路由被最小化,从而保持流量在网络的中心/根处不间断地流动,该处网络中的分组流量通常更重并且因而更倾向于冲突。
在父亲节点处加入DAG410的节点可以首先在DAG内确定它的“分级”是什么。本文所定义的“分级”是基于DAG410的拓扑对节点的排级别或排序,使得该网络中的任何节点具有这样的分级:该分级低于特定节点的父亲节点的分级并且高于该特定节点的任何孩子节点的分级。注意,术语“高于”、“低于”是相对于从DAG的叶子节点(最低的节点)到根节点(最高节点)而言的,不具体到更高或更低的数值。在一个实施例中,分级是从DAG的管理节点(例如DAG根)接收的,尽管在本文的其它实施例中,DAG的每个节点可以以分布式的方式来确定它自己的分级,允许这些技术针对特别大的网络进行缩放。
节点的DAG分级可以基于各种基于拓扑的因素来确定。例如,DAG的某些拓扑因素可以包括特定节点的子DAG中的节点数目(例如孩子、孙子等的数目),DAG内特定节点从根节点起的“深度(depth)”(级别/排序),以及特定节点的子DAG中从该子DAG的最深的叶子节点起的“高度(height)”。
图5A-5C示出了图4中示例性拓扑中的这些因素。特别地,图5A示出了基于每个特定节点的子DAG的数目来计算的分级520。例如,由于处于各自的DAG分支的底部,叶子节点(41、42、43、4N、31、33、34、35和22)都在子DAG中具有零个(0)节点。在此情况下,“0”是最低的分级。图5A中最高分级的节点是节点11,其分级为“8”(即,其子DAG中有八个节点:节点21、22、31、32、41、42、43和4N)。注意,由于通常不参与DAG父亲选择,根节点不需要被分级(它是最高的节点,因此没有父亲)。一般地,节点可以如上文讨论的,在它的子DAG中通过DAG消息来发现节点的数目。
在一个替代的实施例中,图5B示出了简单的分级系统,其中分级是基于DAG410中节点的深度(在RPL中称为“排序”)的,即与根节点的距离,该距离对设备而言是已知的,例如基于本领域技术人员所知的拓扑建立协议(topologybuildingprotocol)。例如,节点41-4N具有“4”的分级(级别),节点31-35具有“3”的分级(级别),节点21-24具有“2”的分级(级别),并且节点11-13具有“1”的分级(级别)。在该示例中,较低的数字(级别)实际上指示了较高的分级,并且因此较高的数字(级别)对应于较低的分级。
在如图5C所示的又一个实施例中,替代地,分级可以是基于节点的“高度”的,本文定义的“高度”是该节点与它的子DAG内最低的叶子的距离。例如,叶子节点被再次分级为“0”(本实施例中的最低分级),并且叶子节点的任何父亲节点被分级为“1”(次低分级)。随后每个依次的父亲被分级为高出一级的分级(例如,节点21被分级为“2”,节点11被分级为“3”等)。注意,叶子节点22被分级为“0”,而它的父亲节点11被分级为“3”而不是“1”。由此可见,这是由于这样的事实:基于最远的叶子节点,节点11的高度为“3”。
注意,如图5A-5C所示的实施例是直接基于DAG410的物理拓扑的。但同理,通过以拓扑上的分级520为基础,分级也可以是基于网络内的流量的。例如,假设这些节点平均各自产生相同数量的流量,则子DAG中的孩子越多,节点距离根节点越近,或者节点距离叶子节点越远,该节点要处理的流量通常越多。这样,分级的确定可以被认为是基于流量的。但同时,在本文的一个或多个具体实施例中,分解可以是基于实际流量的测量(例如网络统计,诸如分组的数目、带宽值等)的。尤其是,流量可以是预期的流量(例如,基于拓扑和/或其它因素(诸如与其它节点相比,对特定节点的计划用途)),也可以是在该拓扑中每个节点处的当前或者平均流量。
根据本文的一个或多个实施例,节点可以基于以通常的传统方式所标识的一个或多个路由度量改变,来检测对路由变化的触发。特别地,响应于导致了增加的或减少的成本、延迟、EXT等的网络事件(跨越了某个配置阈值),路由变化(收敛、重路由等)可以由该网络中的节点来触发。但在一些实施例中,阈值也可以基于节点的分级。
图6示出了阈值625的示例,该阈值可以基于分级(例如基于上文图5B的简单的基于DAG深度的分级)。例如,最低分级的节点可以具有较低的阈值(例如5%),而分级逐渐增加的节点相应地具有增加的阈值625(例如10%、15%和20%)。特别地,在这些实施例中,阈值是基于分级的,使得对于每个特定节点的阈值大于或等于它的孩子节点中任一者的相关阈值,并且小于或等于它的父亲节点的第二相关阈值。以这种方式,在较高分级处路由变化也可以被触发得更少,从而减少(或者至少减慢)较靠近根节点处的网络改变。注意,针对阈值625示出的值仅是示例,并且不应认为限制本文的实施例的范围。
如图7中所示,可以在网络内检测触发730,它指示了DAG中的路由变化。例如,触发可以被基于对位置“X”处的路由度量改变的识别来确定,其中,度量选自成本、延迟、等待时间、可用带宽、所使用的带宽、估计的传输计数(ETX)等。再一次,尽管该阈值可以被在网络中的所有节点处共享(例如,任何大于10%的改变产生触发),但在某些实施例中,每个节点具有基于分级520的阈值625。例如,假设ETX值在该位置增加了15%。由于该值影响(节点11的)特定子DAG内的所有节点,它被传播至该分支/子DAG中的所有节点,例如以沿路径公告的更多ETX的形式。随后,子DAG内的所有节点将接收此改变的路由度量,并可以分别对触发730进行检测。(在一个或多个实施例中,触发是基于管理员命令、周期性的定时器、网络拥塞检测等,这样触发可以是全网络的(network-wide),而不简单地限于特定的子DAG。)
根据本文的实施例,响应于对触发730的检测,每个检测节点基于各自的分级来延迟它的相应路由变化。特别地,这种延迟使得特定节点的延迟长于它的任何孩子节点的相关延迟(如果存在孩子节点的话),并且短于该节点的父亲节点的相关延迟。因此,由于每个节点等待它的孩子(如果有的话)在它的父亲(注意,父亲在等待它的孩子,等等)之前来完成它的任务,这种调度基于动态的延迟/定时器来从网络的边缘(叶子节点)到中心(根节点)更新网络(例如父亲选择)。注意,任何特定节点并不需要真正地意识到与孩子或父亲相关联的延迟,这是由于它已经以与其它节点相同的方式计算了自己的延迟,并且因此该延迟落在孩子节点的延迟和父亲节点的延迟之间。还应当注意的是,尽管触发730通常可以引起DAG拓扑的许多层中的改变,但通过从网络的叶子节点开始,这些改变一般可以仅被限制在子DAG的几个较低层中。特别地,子DAG周边处的改变可以优化目标函数(OF)并且不需要在较靠近DAG根的较高层处改变DAG。
图8A-E示出了根据本文的一个或多个实施例的示例性重路由调度。例如如图8A中所示,基于检测到的触发730的重路由从DAG的边缘朝向根发生,因此第一个改变路由的节点可以是叶子节点(例如执行重路由840来选择新的DAG父亲(例如节点33)的节点43和4N)。特别地,尽管所有子DAG内的节点都检测触发730,但每个节点基于它们各自的分级来延迟对该触发的反应,例如分级越高,节点等待执行任何路由变化的时间越长。注意,与叶子节点相关联的延迟可以是没有延迟(为零的延迟)。
根据本文的又另一个具体实施例,当孩子节点更新它的根路由时,先前的父亲的定时/延迟被重置。例如,作为重置的一部分,父亲的定时器和父亲的父亲的定时器可以被重置(或者例如,被停止),直到计算了与新触发相关的测量(例如在此示例中,新的ETX),注意这是由于,由于孩子节点(例如节点43和4N)已经迁移到了别处,在旧的父亲节点处的流量会已经改变。在一个实施例中,孩子节点可以向它先前的父亲通知它已经改变了父亲(并且带走了它所有的孩子/子DAG),从而该先前的父亲可以(迅速地)意识到该孩子已经迁移。在另一个实施例中,其它用于确定孩子已经离开的技术可以被使用,例如路由邻接、保持活动(keepalives)等,并且,作为响应,在执行路由变化(重路由)之前需要的延迟可以因而被重置。再一次,应当注意在一些案例中,为了缓解在触发了重路由事件840的位置X处的问题,较低分级处的DAG改变可能就够了,因此不需要进一步的DAG拓扑改变。
图8B示出了随后被调度的路由变化,其中一旦最低分级的叶子节点已经完成了它们的路由变化,或者更具体地,已经基于次最低分级的节点的定时/延迟被给予了改变路由的机会,那么如果在位置X处的问题未被解决,则这些次最低分级的节点可以执行它们的路由变化。(例如,假设图8A-8E中的分级像图5B中示出的那样基于DAG深度)。例如,节点32可以确定尽管节点43和4N选择了新的父亲,导致触发730的网络事件仍需要节点32处的父亲级改变来选择新的父亲节点22。例如,可以基于新的DAG拓扑(点43和4N离开了节点32),假设从节点32到节点21到节点11的链路比从节点32到节点22到节点11的链路更糟。例如,也许从节点32到21的链路是用来支持来自节点32的所有孩子节点的较大流量的较高带宽的链路,但既然该负载被减小,则节点32可以使用到节点22的较低成本的链路,等等。这样,一旦节点32的路由变化延迟期满,节点32就可以选择新的父亲节点22。再一次如上所述,可以有这样的情况:父亲节点32可以不需要基于本文所述排序的重路由序列来选择新的父亲(尽管在传统技术中父亲节点32可能是这样做的),因为父亲节点的子DAG可能已经以某种方式进行了重路由,该方式缓解了对父亲节点自己这样做的需要。
既然节点32已经被给予了重路由(选择新的父亲)的机会,经调度的延迟可以把分级向上传播至较高分级的节点,但在本文的一个或多个实施例中,就像在图8C中示出的,经调度的延迟回到较低分级的节点。例如如图所示,基于节点32选择新的父亲节点22的改变,也许节点43希望改变回节点32。由于在做出改变之后对节点32处的延迟定时的重置,以及节点22(和节点11)听说节点32的改变之后,延迟重新开始,以允许DAG410的边缘在创建更接近网络的中心/根的路由变化之前重选定(resettle)新的父亲(如果期望如此的话)。
再一次,调度可以转到接下来的节点,并且最终如图8D所示,更靠近DAG根(网格/单元中心)的改变在节点22处发生,节点22被给予了基于检测到的触发730(现在根据本文的技术,基于在节点22之下已经被允许发生的改变)来调整自己的路由的机会(如果仍需要的话)。例如,尽管节点22被示出基于节点4N的到节点33的迁移来将父亲改变至节点12,但节点22可能不一定响应于被触发的事件/改变730而改变了父亲。例如,如上文所述,尽管在传统技术中,节点22会响应于触发730来改变父亲而不考虑它的子DAG在做什么,从而潜在地影响网络(它的子DAG)中的大量节点,但根据本文的技术的节点22会等待节点4N(和任何其它节点)来首先对该触发做出反应,根据本文经调度的路由,潜在地缓解了节点22选择新的父亲的原因。
特别地,由于在经调度的重路由中的每个节点被给予改变重路由的机会,这些节点确定触发是否仍有效,即表明需要改变的那个条件是否仍存在,或者该条件是否已经被较低分级的节点的拓扑改动所解决(例如,基于孩子节点已经改变了父亲,并因此基于所造成的网络内流量的重定向)。
注意,响应于一个特定分支/子DAG内检测到的触发进行重路由的结果可以导致该网络内一个或多个额外检测到的触发。例如如图8E中所示,节点22到新的父亲节点12的重路由可能导致节点12与根节点之间的链路的恶化,最终到达这样的程度:在新的触发730时(例如,基于上文所述的延迟/定时而在适当的时候)节点23进行重路由来选择父亲节点13。
根据又另一个实施例,改变可以在多个层(例如与根的距离)中并行地发生。例如如图9A中所示,假设在对上文图8A-8E中不相关的改变中,节点32在特定的经调度的重路由实例中将父亲从节点21改变到节点22。尽管该改变基于上文所述的延迟来传播,但新开始的重路由可以从边缘再一次发生。例如如图9B中所示,当重路由的第一“波”从节点32向节点22传播(它可以基于对来自节点32的新流量的接收来从节点11向节点12重路由),新的第二波可以在叶子节点43和4N处开始,例如可能响应于节点32先前的改变导致的增加了的成本。(尽管DAG410是简化的示意图,通过DAG的传播并行波的概念仍可以理解)。
最后,图10示出根据本文所述的一个或多个实施例,用于在DAG中动态地调整重路由排序/定时的简化过程的示例。过程1000始于步骤1005,并且继续到步骤1010,其中特定节点200在父亲节点处加入DAG410,并且接着在步骤1015中基于该DAG的拓扑来确定它的分级,其中该分级低于该特定节点的父亲节点的分级并且高于任何孩子节点的分级。在一个实施例中,分级是从DAG的管理节点(例如根节点)接收的,但在其它实施例中,该特定节点给它自己计算分级。
在步骤1020中就像上文细节化地描述的,响应于对路由变化的触发730的检测(例如基于经分级的阈值),特定节点(假设不在最低分级(例如叶子节点)处)基于步骤1025的分级来延迟自己的路由变化。如上文详释的,该延迟长于孩子节点中任意孩子节点的第一相关延迟并且短于父亲节点的第二相关延迟。换言之,特定节点给予任何孩子节点响应于触发来做出路由变化的时间,然后类似地在它的父亲节点之前自己执行任何改变。
可选地,如上所述,在步骤1030,特定节点可以从孩子节点接收关于它们各自的父亲变化(如果有任何变化的话)的通知,并且响应于对孩子节点的改变的确定,特定节点可以在步骤1035重置延迟,例如允许在重新访问步骤1205期间进一步的改变。
在延迟期间,例如基于该延迟期间的任何子DAG路由变化,在步骤1040中特定节点获得新的与触发相关的测量,例如新的ETX测量、新的成本等。在步骤1045中,如果基于新的测量,该触发不再有效,则过程返回步骤1020来等待对进一步触发的检测。另一方面,如果在步骤1045中该触发在延迟期满之后仍有效,则随后在步骤1050,特定节点可以在它的经调度(排序)的时间期间来执行它自己的路由变化。如上所述,为了缓解振荡和冲突,路由变化还可以被在经调度的时间内随机化,从而允许同一级的节点来在稍微不同的时间调整。
在步骤1055(某些实施例)可选地向先前的父亲节点通知路由(父亲)改变之后,过程1000返回步骤1010来在新的父亲处加入DAG,相应地在步骤1015中确定新的分级,并且在步骤1020中等待进一步的重路由触发730。注意,如上文指出的(例如参考图8C),这些新的触发可以是基于响应于先前的触发而做出的改变。也应当注意,尽管过程1000内的某些步骤可以是如上所述的可选的,但图10中的步骤仅仅是示例,并且可以根据需要来包括或者排除某些步骤。
因此,本文所描述的新颖技术提供了对计算机网络中重路由排序/定时的动态调整。特别地,新颖技术确保路由变化被从网络/网格的边缘(叶子)处开始,并且由于这种经排序的调度,网络中重路由的数量可以被减少,这是由于父亲选择(重路由)可以被取消(因为节点的子DAG中的重路由已在做出对该节点自己的分级(例如级别)处的重路由的决定之前发生)。因此靠近根的路由抖动(flapping)被最小化并且从而对主流量的影响被缓和(例如提高网格单元的测量度量)。此外,根据本文的一个或多个实施例的操作通过使大的路由抖动的数量最小化来减少丢失消息的数量,例如通过以半协调的(semi-coordinated)方式执行重路由(开始于网络的边缘并且朝向网络的中心移动),使网络收敛得到缓冲。
另外,上述自适应(动态)技术提供了对于人工方式而言困难(如果不是不可能的话)的功能,尤其是针对带有大量节点的网络。即,由于(例如由DAG根)所做出的一些RPL参数的中心决策,RPL被设计来提供高度的灵活性。但其不利效果是,网络管理员不得不配置大量的定时和变量,这可能是繁重的任务并且相当困难,因为网络特性可能基于环境(智能城市、智能电网、家庭等)而极大地不同。因此,本文的新颖的技术根据特定网络的拓扑(例如,流量度量)来提供了路由更新排序(例如延迟和阈值)的自适应调节。
虽然已经图示和描述了动态地调整网络中的排序/延迟的示例性实施例,但应理解,在本文的实施例的精神和范围内,多种其他适应和修改是可以被做出的。例如,本文已经结合LLN(尤其是RPL协议)来描述和示出了实施例。但是,广义上的实施例不受此限制,并且事实上可以被与其他类型的利用DAG路由的网络和/或协议(例如距离向量协议)一同使用。
前文的描述针对的是具体实施例。但明显的是,在达成它们的一些或全部优势的情况下,可以对所描述的实施例做出其他变化和修改。例如,明显可以预期的是,本文所描述的组件和/或元件可以被作为存储在有形的(非瞬态的)计算机可读存储介质(例如磁盘/CD等)上的软件来实现,该存储介质具有在计算机、硬件、固件或它们的组合上执行的程序指令。因而本说明仅仅是示例性的,并且不限制本文实施例的范围。
因此,所附权利要求的目的是覆盖所有在本文实施例的真正精神和范围内的变化和修改。
Claims (23)
1.一种用于调整路由的方法,包括:
由特定节点在父亲节点处加入计算机网络中的有向无环图DAG;
基于所述DAG的拓扑来确定所述特定节点的分级,所述分级低于所述特定节点的父亲节点并且高于所述特定节点的孩子节点,其中具有较多子孙的节点所具有的分级比具有较少子孙的节点高;
检测对所述DAG中的路由变化的触发;
作为响应,由所述特定节点基于所述分级来延迟所述路由变化,其中分级越高,所述特定节点等待执行任何路由变化的时间越长;
响应于所述延迟的期满,基于所述特定节点在所述延迟期间发生的变化来确定对路由变化的所述触发是否仍有效;以及
如果有效,则由所述特定节点执行所述路由变化,
其中所述延迟长于所述孩子节点中至少一些孩子节点的第一相关延迟并且短于所述父亲节点的第二相关延迟。
2.如权利要求1所述的方法,其中,确定所述分级的步骤包括:
基于从如下小组中选出的所述DAG的拓扑因素来确定所述分级,所述小组包括:所述特定节点的子DAG中的节点数目、所述特定节点在所述DAG内从根节点起的深度、所述特定节点的子DAG中从所述子DAG的最深的叶子节点起的深度。
3.如权利要求1所述的方法,其中,确定所述分级的步骤包括:
基于从如下小组中选出的所述DAG的拓扑因素来确定所述分级,所述小组包括:基于所述拓扑在所述特定节点处的预期流量、由所述拓扑所致的所述特定节点处的当前流量、基于所述拓扑的在所述特定节点处的平均流量。
4.如权利要求1所述的方法,其中,检测所述触发的步骤包括:
标识从如下小组中选出的度量的路由度量改变,所述小组包括:成本、延迟、等待时间、可用带宽、所利用的带宽、估计传输计数(ETX)。
5.如权利要求1所述的方法,其中,检测所述触发的步骤包括:
标识大于阈值的路由度量改变,所述阈值基于所述分级,使得所述阈值大于或等于所述孩子节点中所述至少一些孩子节点的第一相关阈值并且小于或等于所述父亲节点的第二相关阈值。
6.如权利要求1所述的方法,还包括:
在所述特定节点处,从所述DAG的管理节点接收所述分级。
7.如权利要求1所述的方法,还包括:
从所述孩子节点中的特定一个孩子节点接收通知,该通知表示该特定孩子节点正向除所述特定节点之外的节点改变父亲;以及
作为响应,基于所述孩子节点对父亲的改变来确定所述触发是否仍有效。
8.如权利要求1所述的方法,还包括:
从所述特定节点向所述父亲节点传输通知,该通知表示所述特定节点正向除所述父亲节点之外的节点改变父亲。
9.如权利要求1所述的方法,其中,确定所述触发是否仍有效的步骤包括:
等待新的测量,这些测量基于由所述特定节点的一个或多个孩子节点执行的任何路由变化;
分析所述新的测量;
如果所述新的测量值得所述特定节点的路由改变,则确定所述触发仍有效。
10.如权利要求1所述的方法,还包括:
确定所述孩子节点中的一个向所述特定节点之外的节点改变了父亲;以及
作为响应,重置对所述路由变化的所述延迟。
11.如权利要求1所述的方法,还包括:
把所述路由改变的性能在下述范围内随机化:所述范围长于所述孩子节点中至少一些孩子节点的第一相关延迟并且短于所述父亲节点的第二相关延迟。
12.如权利要求1所述的方法,其中,基于所述DAG的拓扑来确定所述特定节点的分级的步骤包括:将所述分级确定为高于任何所述孩子节点。
13.一种用于调整路由的设备,包括:
一个或多个网络接口,所述网络接口适于参与计算机网络中的向无环图(DAG);
处理器,所述处理器耦合至所述网络接口并且适于执行一个或多个进程;以及
存储器,所述存储器被配置为存储所述处理器可执行的进程,当被执行时,所述进程能够:
在父亲节点处加入所述DAG;
基于所述DAG的拓扑来确定所述设备的分级,所述分级低于所述设备的父亲节点并且高于所述设备的孩子节点,其中具有较多子孙的节点所具有的分级比具有较少子孙的节点高;
检测对所述DAG中的路由变化的触发;
作为响应,由所述设备基于所述分级来延迟所述路由变化,其中分级越高,所述设备等待执行任何路由变化的时间越长;
响应于所述延迟的期满,基于所述设备在所述延迟期间发生的变化来确定对所述路由变化的所述触发是否仍有效;以及
如果有效,则执行所述路由变化,
其中所述延迟长于所述孩子节点中至少一些孩子节点的第一相关延迟并且短于所述父亲节点的第二相关延迟。
14.如权利要求13所述的设备,其中,当被执行来确定所述分级时,所述进程能够:
基于从如下小组中选出的所述DAG的拓扑因素来确定所述分级,所述小组包括:所述设备的子DAG中的节点数目、所述设备在所述DAG内从根节点起的深度、所述设备的子DAG中从所述子DAG的最深的叶子节点起的深度。
15.如权利要求13所述的设备,其中,当被执行来确定所述分级时,所述进程能够:
基于从如下小组中选出的所述DAG的拓扑因素来确定所述分级,所述小组包括:基于所述拓扑在所述设备处的预期流量、由所述拓扑所致的所述设备处的当前流量、基于所述拓扑在所述设备处的平均流量。
16.如权利要求13所述的设备,其中,当被执行来检测所述触发时,所述进程能够:
标识从如下小组中选出的度量的路由度量改变,所述小组包括:成本、延迟、等待时间、可用带宽、所使用的带宽、估计传输计数(ETX)。
17.如权利要求13所述的设备,其中,当被执行来检测所述触发时,所述进程能够:
标识大于阈值的路由度量改变,所述阈值基于所述分级,使得所述阈值大于或等于所述孩子节点中一些孩子节点的第一相关阈值并且小于或等于所述父亲节点的第二相关阈值。
18.如权利要求13所述的设备,其中,当被执行时,所述进程还能够:
从所述DAG的管理节点接收所述分级。
19.如权利要求13所述的设备,其中,当被执行时,所述进程还能够:
从所述孩子节点中的特定一个接收通知,所述通知表示该特定孩子节点正向除所述设备之外的节点改变父亲;以及
作为响应,基于所述孩子节点对父亲的改变来确定所述触发是否仍有效。
20.如权利要求13所述的设备,其中,当被执行时,所述进程还能够:
响应于所述执行的路由变化,来向所述父亲节点传输通知,所述通知表示所述设备向除所述父亲节点之外的节点改变了父亲。
21.如权利要求13所述的设备,其中,当被执行来确定所述触发是否仍有效时,所述进程能够:
等待新的测量,这些测量基于由所述设备的一个或多个孩子节点执行的任何路由变化;
分析所述新的测量;
如果所述新的测量值得所述设备的路由改变,则确定所述触发仍有效。
22.如权利要求13所述的设备,其中,当被执行时,所述进程还能够:
确定所述孩子节点中的一个向除所述设备之外的节点改变了父亲;以及
作为响应,重置对所述路由变化的所述延迟。
23.如权利要求13所述的设备,其中,当被执行时,所述进程还能够:
把所述路由改变的性能在下述范围内随机化:所述范围长于所述孩子节点中所述至少一些孩子节点的第一相关延迟并且短于所述父亲节点的第二相关延迟。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/971,474 US8937886B2 (en) | 2010-12-17 | 2010-12-17 | Dynamic reroute scheduling in a directed acyclic graph (DAG) |
US12/971,474 | 2010-12-17 | ||
PCT/US2011/065414 WO2012083134A1 (en) | 2010-12-17 | 2011-12-16 | Dynamic reroute scheduling in a directed acyclic graph (dag) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103262481A CN103262481A (zh) | 2013-08-21 |
CN103262481B true CN103262481B (zh) | 2016-03-16 |
Family
ID=45478535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180060375.1A Expired - Fee Related CN103262481B (zh) | 2010-12-17 | 2011-12-16 | 有向无环图(dag)中的动态重路由调度 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8937886B2 (zh) |
EP (1) | EP2652921B1 (zh) |
CN (1) | CN103262481B (zh) |
WO (1) | WO2012083134A1 (zh) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8345552B2 (en) | 2007-02-27 | 2013-01-01 | Alcatel Lucent | Virtual connection route selection apparatus and techniques |
US8489765B2 (en) * | 2010-03-19 | 2013-07-16 | Cisco Technology, Inc. | Dynamic directed acyclic graph (DAG) adjustment |
US9081567B1 (en) * | 2011-07-21 | 2015-07-14 | Cisco Technology, Inc. | Method and apparatus to control routing convergence during node reboot by entering a freeze state that inhibits routing convergence during the reboot process |
US9491686B2 (en) | 2011-07-28 | 2016-11-08 | Pulse Secure, Llc | Virtual private networking with mobile communication continuity |
US8891450B2 (en) | 2012-02-06 | 2014-11-18 | Juniper Networks, Inc. | Mobile node host route installation and withdrawal |
FR2987964B1 (fr) * | 2012-03-07 | 2014-05-09 | Commissariat Energie Atomique | Procede de preselection d'un routeur dans un reseau rpl |
US8934366B2 (en) | 2012-04-20 | 2015-01-13 | Cisco Technology, Inc. | Distributed node migration between routing domains |
DE202013012472U1 (de) | 2012-08-03 | 2017-01-13 | Terra Bella Technologies Inc. | Satellitenplanungssystem |
US9814052B2 (en) * | 2013-02-14 | 2017-11-07 | Mitsubishi Electric Corporation | Data distribution system, distribution device, terminal device, and data distribution method providing enhanced communication efficiency |
US9264243B2 (en) * | 2013-02-19 | 2016-02-16 | Cisco Technology, Inc. | Flooding and multicasting in a loop-free routing topology using routing arcs |
US12073480B2 (en) * | 2013-07-12 | 2024-08-27 | D2L Corporation | System and method for evaluating assessments |
US9320036B2 (en) | 2013-07-17 | 2016-04-19 | Cisco Technology, Inc. | Installation of time slots for sending a packet through an ARC chain topology network |
US9258097B2 (en) | 2013-07-20 | 2016-02-09 | Cisco Technology, Inc. | Configuring new paths in a wireless deterministic network |
US9258098B2 (en) | 2013-07-20 | 2016-02-09 | Cisco Technology, Inc. | Exclusive and overlapping transmission unit allocation and use in a network |
US9276716B2 (en) | 2013-09-09 | 2016-03-01 | Cisco Technology, Inc. | Sensor data transport and consolidation within communication nodes in a network |
US9319962B2 (en) | 2013-10-02 | 2016-04-19 | Cisco Technology, Inc. | Local path repair in a wireless deterministic network |
US10762458B1 (en) | 2013-10-24 | 2020-09-01 | Planet Labs, Inc. | Satellite scheduling system |
CN103619057B (zh) * | 2013-12-13 | 2017-06-20 | 中国科学院沈阳自动化研究所 | 基于4‑20mA回路取电的802.15.4e无线设备低功耗组网方法 |
US10325295B1 (en) | 2013-12-30 | 2019-06-18 | Planet Labs, Inc. | Pricing of imagery and collection priority weighting |
US9738403B1 (en) | 2013-12-30 | 2017-08-22 | Terra Bella Technologies Inc. | Parallel calculation of satellite access windows and native program implementation framework |
US9614726B2 (en) * | 2014-01-21 | 2017-04-04 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for deploying maximally redundant trees in a data network |
US10015720B2 (en) | 2014-03-14 | 2018-07-03 | GoTenna, Inc. | System and method for digital communication between computing devices |
US9503361B2 (en) | 2014-06-13 | 2016-11-22 | Cisco Technology, Inc. | Active/static path redundancy |
US9774534B2 (en) * | 2014-07-17 | 2017-09-26 | Cisco Technology, Inc. | Distributed arbitration of time contention in TSCH networks |
WO2016153536A1 (en) * | 2015-03-26 | 2016-09-29 | Hewlett Packard Enterprise Development Lp | Delay of route update communication |
US10491514B2 (en) | 2015-08-28 | 2019-11-26 | Texas Instruments Incorporation | Network address assignment and reclamation for hierarchical based RPL networks |
JP6858983B2 (ja) * | 2015-11-25 | 2021-04-14 | チーミフィア,インコーポレイテッド | プロジェクト階層のオーグメンテーション、探査およびメンテナンスのための方法 |
JP6418194B2 (ja) * | 2016-03-30 | 2018-11-07 | トヨタ自動車株式会社 | 無線通信装置および無線通信方法 |
KR101970271B1 (ko) * | 2016-10-26 | 2019-04-18 | 부산대학교 산학협력단 | TSCH 및 RPL 기반의 산업 IoT 네트워크에서의 스케줄링을 위한 장치 및 방법 |
CN107506175B (zh) * | 2017-07-21 | 2020-07-28 | 北京中科睿芯科技有限公司 | 一种基于执行效率梯度预测的数据流图拥塞检测方法 |
CN107526639B (zh) * | 2017-08-16 | 2021-07-09 | 杭州朗和科技有限公司 | 资源编排的方法、介质、装置和计算设备 |
US10776246B2 (en) * | 2017-08-18 | 2020-09-15 | Vmware, Inc. | Presenting a temporal topology graph of a computing environment at a graphical user interface |
CN108154530B (zh) * | 2017-11-30 | 2020-07-10 | 华中科技大学 | 一种分布式计算有向图围长的方法 |
US10944669B1 (en) | 2018-02-09 | 2021-03-09 | GoTenna, Inc. | System and method for efficient network-wide broadcast in a multi-hop wireless network using packet echos |
CN108965128B (zh) * | 2018-07-11 | 2020-03-27 | 常州工程职业技术学院 | 一种基于rpl协议的dodag构建优化算法 |
EP3831021A1 (en) | 2018-07-27 | 2021-06-09 | Gotenna Inc. | VINEtm ZERO-CONTROL ROUTING USING DATA PACKET INSPECTION FOR WIRELESS MESH NETWORKS |
CN109005115B (zh) * | 2018-08-08 | 2021-04-27 | 佛山科学技术学院 | 一种分布式传感器网络的智能拓扑方法及装置 |
CN109963316B (zh) * | 2019-01-29 | 2021-07-30 | 北京航空航天大学 | 用于移动卫星网络的多径路由方法及设备 |
WO2020185707A1 (en) | 2019-03-08 | 2020-09-17 | goTenna Inc. | Method for utilization-based traffic throttling in a wireless mesh network |
CN111917637B (zh) * | 2019-05-09 | 2022-05-17 | 华为技术有限公司 | 数据报文发送方法及装置 |
CN112152923B (zh) * | 2019-06-28 | 2021-12-28 | 北京华为数字技术有限公司 | 用户面重路由方法及装置 |
US11074294B2 (en) * | 2019-07-02 | 2021-07-27 | Ananth Natarajan | System and method for Directed Acyclic Graph (DAG) encoding into hash linked blocks |
CN110634488B (zh) * | 2019-10-08 | 2022-04-15 | 北京小米智能科技有限公司 | 信息处理方法、装置和系统以及存储介质 |
US11106562B2 (en) * | 2019-10-31 | 2021-08-31 | Vmware, Inc. | System and method for detecting anomalies based on feature signature of task workflows |
US11595874B2 (en) * | 2021-05-11 | 2023-02-28 | Mitsubishi Electric Research Laboratories, Inc. | Routing data in wireless network that coexists with interfering wireless networks |
CN115499285B (zh) * | 2021-06-18 | 2023-11-24 | 中国科学院声学研究所 | 一种分布式分级时延提供的名字解析系统构建方法 |
US11966776B2 (en) | 2021-07-14 | 2024-04-23 | International Business Machines Corporation | Learning agent based application scheduling |
CN113660158B (zh) * | 2021-08-05 | 2023-06-30 | 北京网聚云联科技有限公司 | Overlay虚拟链路动态路由的调度方法、服务器及存储介质 |
CN115348652B (zh) * | 2022-10-18 | 2023-03-24 | 苏州浪潮智能科技有限公司 | 一种无线低功耗有损网络的节点模式设置方法及其装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459565A (zh) * | 2007-12-13 | 2009-06-17 | 华为技术有限公司 | 一种复用段保护业务的恢复方法、装置和网络节点 |
US7693064B2 (en) * | 2005-10-24 | 2010-04-06 | Cisco Technology, Inc. | Forwarding packets to a directed acyclic graph destination using link selection based on received link metrics |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6876668B1 (en) | 1999-05-24 | 2005-04-05 | Cisco Technology, Inc. | Apparatus and methods for dynamic bandwidth allocation |
US6751191B1 (en) | 1999-06-29 | 2004-06-15 | Cisco Technology, Inc. | Load sharing and redundancy scheme |
US6742044B1 (en) | 2000-05-10 | 2004-05-25 | Cisco Technology, Inc. | Distributed network traffic load balancing technique implemented without gateway router |
US7162034B1 (en) | 2000-12-29 | 2007-01-09 | Cisco Technology, Inc. | Method and apparatus for multi-session time-slot multiplexing |
US7466655B1 (en) | 2003-09-16 | 2008-12-16 | Cisco Technology, Inc. | Ant-based method for discovering a network path that satisfies a quality of service equipment |
WO2005039109A1 (en) | 2003-10-14 | 2005-04-28 | Cisco Technology, Inc. | Method and apparatus for generating routing information in a data communications network |
US7710882B1 (en) | 2004-03-03 | 2010-05-04 | Cisco Technology, Inc. | Method and apparatus for computing routing information for a data communications network |
US8604910B2 (en) | 2004-07-13 | 2013-12-10 | Cisco Technology, Inc. | Using syslog and SNMP for scalable monitoring of networked devices |
US7558214B2 (en) | 2004-08-27 | 2009-07-07 | Cisco Technology, Inc. | Mechanism to improve concurrency in execution of routing computation and routing information dissemination |
JP5115509B2 (ja) | 2009-03-26 | 2013-01-09 | ブラザー工業株式会社 | コンテンツ配信システム、ノード装置、離脱処理遅延方法及び離脱処理遅延制御プログラム |
US8270313B2 (en) * | 2009-11-13 | 2012-09-18 | Mitsubishi Electric Research Laboratories, Inc. | Ranking nodes in networks with topologies arranged as directed acyclic graphs |
-
2010
- 2010-12-17 US US12/971,474 patent/US8937886B2/en not_active Expired - Fee Related
-
2011
- 2011-12-16 CN CN201180060375.1A patent/CN103262481B/zh not_active Expired - Fee Related
- 2011-12-16 EP EP11808479.7A patent/EP2652921B1/en not_active Not-in-force
- 2011-12-16 WO PCT/US2011/065414 patent/WO2012083134A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7693064B2 (en) * | 2005-10-24 | 2010-04-06 | Cisco Technology, Inc. | Forwarding packets to a directed acyclic graph destination using link selection based on received link metrics |
CN101459565A (zh) * | 2007-12-13 | 2009-06-17 | 华为技术有限公司 | 一种复用段保护业务的恢复方法、装置和网络节点 |
Non-Patent Citations (1)
Title |
---|
The Minimum Rank Objective Function with Hysteresis draft-gnawali-roll-minrank-hysteresis-of-01;O. Gnawali等;《IETF》;20100712;正文第3.2节 * |
Also Published As
Publication number | Publication date |
---|---|
EP2652921A1 (en) | 2013-10-23 |
US8937886B2 (en) | 2015-01-20 |
WO2012083134A1 (en) | 2012-06-21 |
US20120155329A1 (en) | 2012-06-21 |
EP2652921B1 (en) | 2018-10-31 |
CN103262481A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103262481B (zh) | 有向无环图(dag)中的动态重路由调度 | |
CN102971988B (zh) | 用于有向无环图(dag)路由的替代下行路径 | |
US9325626B2 (en) | Method and apparatus to reduce cumulative effect of dynamic metric advertisement in smart grid/sensor networks | |
US9667536B2 (en) | Network traffic shaping for Low power and Lossy Networks | |
CN102804696B (zh) | 动态有向无环图(dag)拓扑结构报告 | |
CN103262467A (zh) | 与计算机网络中低接触节点的增加的通信机会 | |
US9426035B2 (en) | Data reporting using reporting groups in a computer network | |
CN105580331A (zh) | 针对确定性无线网络的分布式路由协议和集中式路径计算的共存 | |
US20120155475A1 (en) | Dynamic Routing Metric Adjustment | |
Cai et al. | ACO based QoS routing algorithm for wireless sensor networks | |
CN103416041A (zh) | 远程缝合的有向非循环图 | |
Sahnoun et al. | EEPR-OLSR: an energy efficient and path reliability protocol for proactive mobile Ad-hoc network routing | |
Oddi et al. | A proactive link-failure resilient routing protocol for MANETs based on reinforcement learning | |
Sivakumar et al. | A Survey on Investigating the Need for Intelligent Power‐Aware Load Balanced Routing Protocols for Handling Critical Links in MANETs | |
Archana et al. | Biologically inspired QoS aware routing protocol to optimize lifetime in sensor networks | |
Jain et al. | Energy-Based improved MPR selection in OLSR routing protocol | |
Kumar et al. | Link discontinuity and optimal route data delivery for random waypoint model | |
Padyal et al. | Continuous neighbour discovery approach for improvement of routing performance in WSN | |
Mukti et al. | A Comprehensive Performance Evaluation of Proactive, Reactive and Hybrid Routing in Wireless Sensor Network for Real Time Monitoring System | |
Rekik et al. | A scalable geographic routing protocol for virtual power plant communications | |
Jabbar | Mobility-based performance comparison of MBQA-OLSRv2 and MBMA-OLSRv2 routing protocols | |
Becker | Qos routing protocols for mobile ad-hoc networks-a survey | |
Dhanapal et al. | Efficient clustering protocol based on ant-bee agent for large scale MANET | |
Gunasekaran et al. | Resourceful and reliable routing selection scheme in MANET | |
Priyadharshini et al. | PSO based route lifetime prediction algorithm for maximizing network lifetime in MANET |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160316 Termination date: 20201216 |