首页 理论教育 Contiki中RPL协议实现与目标函数配置

Contiki中RPL协议实现与目标函数配置

时间:2023-11-20 理论教育 版权反馈
【摘要】:RPL 协议在Contiki 系统中的实现有两个目标函数,但默认情况下使用最小化ETX 值的目标函数,但相同的目标函数并不一定是所有路由场景中最优的路由策略。因此,需要相应修改目标函数以适应任何附加的约束或实现不同目标。以上代码禁用RPL 配置统计功能,设置RPL_CONF_STATS 为1,启用RPL配置统计功能。RPL_CONF_OF 是rpl目标函数的参数配置,ETX 在这里是默认目标函数。

Contiki中RPL协议实现与目标函数配置

RPL 协议使用目标函数OF(Objective Function)建立面向目标的有向无环图DODAG,目标函数OF 使用路由指标建立基于某种算法或计算公式的有向无环图DODAG。也就是说,目标函数优化或约束用于建立路由指标,因此有助于选择最佳路由。在同一节点或网状网络上可能运行多个目标函数,因为目标函数不同,网络部署会有很大差异,并且单个网状网络可能需要传输路径质量要求完全不同的流量

RPL 协议在Contiki 系统中的实现有两个目标函数,但默认情况下使用最小化ETX 值的目标函数,但相同的目标函数并不一定是所有路由场景中最优的路由策略。因此,需要相应修改目标函数以适应任何附加的约束或实现不同目标。

实现RPL 协议的核心文件有三个:rpl-config.h、rpl-of0.c、rpl-mhrof.c,这三个文件保存在core/net/rpl 文件夹下。下面我们介绍这三个文件及文件中的重要函数。

以上代码禁用RPL 配置统计功能,设置RPL_CONF_STATS 为1,启用RPL配置统计功能。

以上代码表示支持使用ETX 和ENERGY 类型的RPL 度量标准,然而,如果开发了一个新的目标函数,相关的度量标准也可以被支持。(www.xing528.com)

RPL_CONF_OF 是rpl目标函数的参数配置,ETX 在这里是默认目标函数。这应该被定义为一个和系统镜像相连的rpl_of目标的名字,例如rpl_of0,也可以定义为自己开发的目标函数。

RPL_LEAF_ONLY 值决定节点是否是叶子节点(正如标准draft-ietf-rollrpl-19#section-8.5所示)。

当ETX 未知时,宏变量RPL_INIT_LINK_METRIC 是为了初始化链路度量属性,它可以被更改为任何期望的值,可以将该值设置为1。

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

我要反馈