RFC 6719中文版: The Minimum Rank with Hysteresis Objective Function

RFC 6719 The Minimum Rank with Hysteresis ObjectiveFunction

RFC 6719 具有磁滞特性的基于最低排名的一种目标函数

 

概述

RPL通过目标函数建立路由,该目标函数可以优化或是约束它所选择和使用的路由。本规范描述的MRHOF,一种目标函数,选择最小化一种度量的路由,同时,使用磁滞特性降低由于小幅度度量改变引起的剧烈抖动。MRHOF与沿路由的累加度量一起工作,该度量由RPL DIO消息通告中的度量所决定。

 

1 介绍

一个目标函数规定了RPL如何选择路径。例如,如果一个RPL实例使用一个最小跳数的目标函数,RPL将会选择具有最小跳数的路径。RPL要求网络中所有节点使用一个共同的目标函数;放宽这一要求可能是未来研究的一个课题。

 

运行RPL的节点可能使用大量的度量来描述一条链路或是一个节点,同时让这些度量对于路由选择是可用的。RPL使用DIO MC通告度量,目标函数使用这些度量选择路由。

 

RPL通过rank描述路由RPL定义了节点如何基于Rank决定路径和通告他们的Rank。一个目标函数定义了节点如何基于它潜在父代的Rank、度量和其他网络属性来计算自身的Rank

 

本规范描述了MRHOF,一种RPL的目标函数,使用磁滞特性选择最小度量值的路径。MRHOF使用的度量有DIO MC中的度量所决定。例如,使用时延度量的MRHOF允许RPL发现从节点到DAG实例根的稳定的最小时延路径。使用ETX的MRHOF允许RPL发现节点到根之间稳定的最小ETX的路径如果DIO MC中缺少度量或是缺少DIO MCMRHOF默认使用ETX来计算Rank

 

因为MRHOF寻找由度量描述的最小路径成本,所以它只能使用累加度量。MRHOF不支持非累加度量(注:这里的additive metrics应该是6551中指的聚合度量)。

 

2 术语

处理6550和6551中定义的相关术语外,本文档定义了三个术语:

Selectedmetric:被选择用来路径选择的度量。MRHOF支持使用一个单一度量进行路径选择。使用某一度量(除了ETX)作为selected metric的决定由DIO MC中选择的度量指出。缺少MC的情况下表明使用ETX度量,在这种情况下,ETX被作为Rank通告

Pathcost:Path cost量化了一条端到端路径的属性。Path cost是通过把被选择的链路度量和父节点通告的路径成本相加获得的。Path cost可以被RPL用来比较不同的路径。

Worstparent:父代集中具有最大路径成本的节点

 

3 MRHOF

MRHOF被设计发现具有最小路径成本的路径,同时阻止网络的过度抖动。通过两种机制实现这一目标。第一,它发现最小成本路径,例如,具有最小rank的路径。第二,只有当新路径比当前路径的路径成本少到某一给定的门限值,这时才会切换到新的路径。第二种机制就被称作“hysteresis”

MRHOF可以使用6551中任意的累加度量。节点必须支持至少它们中的一种:跳数、时延或是ETX(注:应该不止这三者可以用作聚合度量,同时跳数和ETX只能用作聚合度量)。节点应当支持ETX度量。MRHOF不支持非累加度量。

 

3.1 计算Path Cost

根节点为度量值设置变量cur_min_path_cost,该度量值用来计算Rank。

如果某一非根节点没有度量通过任意备选邻居节点来计算的路径成本,那么它必须作为一个RPL叶子加入一个备选邻居。

否则,节点为每一个备选邻居计算路径成本。一个邻居的路径成本代表了该路径的成本,依据selected metric,通过该邻居节点,从一节点到DAG的根。一个非根节点计算一个邻居节点的路径成本通过添加两个要素:

1、如果selected metric是链路度量,到该备选邻居的链路。如果selected metric是一个节点度量,那么就是该节点的selected metric。

2、selected metric的值在DIO的MC中,该DIO由那个邻居节点发出。万一MC是空的,那么ETX是selectedmetric----使用那个邻居通告的Rank作为第二个要素(缺少MC的情况下,ETX作为Rank通告)。

 

如果selected metric是一个链路度量,但到某一邻居的链路度量不可用,那么通过该邻居的链路的路径成本应当被置为MAX_PATH_COST。该成本值将不被考虑路径选择。

如果selected metric是一个节点度量,但该度量不可用,那么通过所有邻居的路径成本应当被置为MAX_PATH_COST。

 

当出现下面的任意情况,到一个邻居的路径成本应当被再次计算:

1、到备选邻居链路的selectedmetric被更新

2、selected metric是节点度量,同时该度量被更新

3、节点从备选邻居节点接收一个新的度量通告

该计算也应当周期性的被执行。尽管延迟该计算到一个最小Trickle间隔是无害的,但度量更新或是接收到新的度量通告之后,较长的拖延路径成本更新可能导致陈旧信息。

 

3.2 父节点的选择

计算完所有备选邻居节点的路径成本后,一个节点要选择首选父代。该过程成为“父节点选择”。为了允许磁滞,父节点选择维护一个变量,cur_min_path_cost,即当前首选父代的路径成本

3.2.1 when Parent Selection Runs

一个MRHOF实现应当每次执行父节点选择:

1、某一现存备选邻居的路径成本发生了改变,包括首选父代。在计算玩路径成本后,可以立即检查这一条件。

2、邻居表插入了一个新的备选邻居。

尽管有以上条件,如果推迟父节点选择直到某一更晚时间(例如,达到Trickle minimum interval)是必要的,那么要注意到,这样做可能推迟了网络中可用的更好路径的使用。

3.2.2 父节点选择算法

如果某一链路的selected metric大于MAX_LINK_METRIC,那么节点在父代选择时应不考虑该链路。

一个节点必须选择具有最低路径成本的备选邻居作为它的优先父代,但以下条件除外:

1、依据系统配置,一个节点可能声称自己为浮动根节点,进而没有优先后代。

2、如果cur_min_path_cost大于MAX_PATH_COST(即表示链路或是节点不可用),节点可能声称自己为浮动根节点。

3、如果通过备选邻居路径的最小路径成本小于cur_min_path_cost,但减少的值不超过PARENT_SWITCH_THRESHOLD,那么节点可以继续使用当前的优先父代这就是MRHOF的磁滞因素

4、如果ALLOW_FLOATION_ROOT为0,同时没有发现邻居,那么节点没有优先父代,必须设置cur_min_path_cost为MAX_PATH_COST。

 

如果存在多个邻居共享最小路径成本,一个节点可以使用不同的选择标准在这些邻居中选择被认为是具有最低成本的节点。

一个节点可能包括多达PARENT_SET_SIZE-1个额外备选邻居在它的父代集中。通过父节点集中的节点的路径的成本小于或是等于通过任何不在父节点集中节点的路径的成本。如果通过优先父代的路径成本,同时worst parent太大,那么一个节点可以保持一个比PARENT_SET_SIZE小的父代集。

 

一旦首选父代被选择,节点为首选父代相符的路径成本设置它的cur_min_path_cost变量。Cur_min_path_cost值在发送DIO消息时,与selectedmetric对应的MC所携带

 

3.3 计算Rank

DAG根 set their Rank toMinHopRankIncrease。

一旦一个非根节点选择了它的父代集,那么它可以使用下面的表把一个父节点的路径成本(在表中被写作Cost)转换为Rank值

如果MRHOF使用了其它度量,那么Rank没有被定义。如果Rank没有被定义,那么节点必须作为叶子节点加入其中的一个邻居节点。

MRHOF使用这个Rank值计算the Rank,the rank和经过父代集的每个节点的路径相关。与通过父代集某一父代的路径相关的Rank是两个值中的最大值,第一个是依据上表计算的Rank值,第二个是节点通告的Rank加上MinHopRankIncrease。

 

一个节点设置它的Rank为三个值中的最大值:(省略)

1、通过优先父代计算的Rank

2、父代集中具有最高通告Rank的Rank值,

3、通过父代集中所有路径所计算的最大Rank,减去MaxRankIncrease。

 

3.4 通告路径成本

一旦选定了首选父代,节点设置它的cur_min_path_cost变量。然后,它计算度量,该度量将在它的MC中通告。这个度量值是父代集中具有最高路径成本的父节点的路径成本。所以,尽管cur_min_path_cost是通过首选父代的成本但一个节点通告的是通过父代集的一个成员从当前节点到根节点的最高成本路径。在发送DIO消息的时候,最高成本路径的值被与selected metric相符合的mc所携带。

果ETX是selectedmetric,那么节点不必在mc中通告它。想反,一个节点必须在它通告的Rank值中通告一个自身ETX的近似值,遵循3.3中描述的规则。如果一个节点接收了一个带有MC的DIO,且该MC中有一个ETX度量,那么MRHOF必须忽略Rank计算中的ETX度量值。

DODAG根通告一个度量值,DODAG Rootsadvertise a metric value that computes to a Rank value of MinHopRankIncrease。

 

3.5 working withoutmetric containers

缺少MC的情况下,MRHOF使用ETX作为他的度量。它本地计算到其邻居链路的ETX,把该值加到邻居们通告的Rank,计算相关路由的Rank。一旦父节点选择和rank计算使用ETX度量实现,那么该节点通告Rank,无须在DIO消息中包括MC。而在这种情况下,分配Rank使用6551中描述的ETX陈述,如分配Rank等于ETX*128。

 

4 using MRHOF for Metric Maximization(略)

对于需要发现具有selected metric最大值的路径,MRHOF不能直接用来进行父代选择,例如路径可靠性。把这种度量最大化问题转换为度量最小化问题,对于某些度量是可能的,MRHOF提供下述方法:

 

5 MRHOF 变量和参数

变量:

cur_min_path_cost:一个节点通过首选父代到根的路径的成本,以最近选择的父代进行计算。

参数:

MAX_LINK_METRIC:对于路径上的每个链路而言,被选择的链路度量所允许的最大值。

MAX_PATH_COST:被选择路径的路径度量所允许的最大值。

PARENT_SWITCH_THRESHOLD:磁滞因素门限值,只有达到该门限,才触发新首选父代的选择。

PARENT_SET_SIZE:在父代集中,备选父节点的数量,包括首选父代。

ALLOW_FLOATING_ROOT:如果置为1,允许节点成为浮动根。

 

分配参数值依赖于selected metric。这些参数的最好值由特定RPL部署的需求所决定。例如,如果我们使用ETX作为selectedmetric,UDP作为传输协议,我们应当使用一个小的MAX_LINK_METRIC(如,ETX为1.1)以便链路层重传足够提供一个端到端可靠性的好的机会。

当selected metric是ETX时,推荐已下值

MAX_LINK_METRIC:512,对于selectedmetric,不允许期望传输数大于4的链路

MAX_PATH_COST:32768,不允许期望重传大于256的路径(32768=256*128)

PARENT_SWITCH_THRESHOLD:192,至少比当前路径少1.5(128*1.5=192)

PARENT_SET_SIZE:3,如果首选父代不可用,两个备选父代在不触发新一轮路由发现的情况下仍然可用。

ALLOW_FLOATING_ROOT:0,不允许节点成为浮动根。

 

6管理

6.1设备配置

6.2设备监测

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值