RPL如何计算开头没有数据包(UDP/TCP)的节点间的ETX?

How does RPL calculate ETX among nodes without data packets (UDP/TCP) at the beginning?

我想知道RPL如何在没有数据包的节点的初始化阶段计算ETX link指标。谢谢。

RPL查看邻居统计模块。模块可能有多种选择

  1. 如果您提供 LINK_STATS_CONF_INIT_ETX(stats) 宏的自定义定义,它将用于初始化 ETX。
  2. 否则使用(ETX_INIT * ETX_DIVISOR)作为默认值。 ETX_INIT 默认定义为 2。 ETX_DIVISOR 只是一个 Contiki 特定的比例因子,以避免浮点运算。

节点经常在发送数据包之前接收来自邻居的数据包。在那种情况下,RSSI 估计是已知的,但 ETX 是未知的。要从 RSSI 初始化 ETX 的初始估计,请将此行添加到 project-conf.h:

#define LINK_STATS_CONF_INIT_ETX(stats) guess_etx_from_rssi(stats) 

这样,在没有其他信息的情况下,信号强的节点将被优先路由。详情请看net/link-stats.c