首页 理论教育 避免环路和检测环路的方法

避免环路和检测环路的方法

时间:2023-11-20 理论教育 版权反馈
【摘要】:为了减少数据包的丢失、链路拥塞的情况,必须尽快检测出环路。因此,RPL 的策略是不保证不会出现环路,而是试图避免环路的出现。RPL 定义了两种规则来避免环路,这两种规则都依赖于节点的rank值,下面介绍这两种规则。RPL 协议的环路检测策略是在RPL 的路由分组首部中设置相关的bit 位,通过这些bit位来检测数据的有效性。RPL 支持在链路或节点失效之后的修复机制。

避免环路和检测环路的方法

在传统网络中,拓扑改变和节点间未及时同步的问题,可能会导致临时性的环路产生。为了减少数据包的丢失、链路拥塞的情况,必须尽快检测出环路。在LLN 中,环路的影响是有限的,并且这种环路的产生可能是暂时的,所以过度反应反而会导致更大程度上的路由碰撞和能量消耗。因此,RPL 的策略是不保证不会出现环路,而是试图避免环路的出现。RPL 定义了两种规则来避免环路,这两种规则都依赖于节点的rank值,下面介绍这两种规则。

规则1:也被称为最大深度规则,该规则不允许节点选择图中深度更大(rank值更大)的节点作为自己的父节点。

规则2:也被称为拒绝节点贪婪规则,该规则不允许节点试图移动到图中更深的地方,以增加自己潜在父节点的数量。(www.xing528.com)

RPL 协议的环路检测策略是在RPL 的路由分组首部中设置相关的bit 位,通过这些bit位来检测数据的有效性。比如,当一个节点将数据包发向自己的子节点时,将bit 位设置成down,然后将数据包发送到下一跳节点。收到down bit位的数据包的节点,查询自己的路由表,发现数据包是在向上方向传输的,则证明出现了环路,此时数据包需要被丢弃,并触发本地修复。

RPL 支持在链路或节点失效之后的修复机制。RPL 支持两种修复机制:全局修复和本地修复。当检测到链路或邻居节点失效后,节点在向上方向上没有其他路由器,则本地修复被快速触发以寻找到替代父节点或路径。当本地修复发生时,有可能破坏了整个网络的最优模式,从而由根节点触发全局修复机制重建DODAG,图中的每个节点都重新运行目标函数来重新选择更优的父节点。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈