contikiRPL中如何实现ETX(估算的传输)?

问题描述 投票:0回答:1

我正在为RPL创建MRHOF的修改版本。但是,我对使用的ETX指标有一些疑问。我正在运行一个rpl-udp示例(.... / contiki-3.0 / examples / ipv6 / rpl-udp)

根据我的理解,ETX的一般定义如下:

ETX = 1/(df * dr)

其中df是数据包成功到达接收方的测量概率,dr是ACK包成功接收的概率。

[neighbor_link_callback(rpl_parent_t *p, int status, int numtx) (contiki / core / net / rpl / rpl-mrhof.c)]中定义了ETX,如下所示:

new_etx = ((uint32_t)recorded_etx * ETX_ALPHA +(uint32_t)packet_etx * (ETX_SCALE - ETX_ALPHA)) / ETX_SCALE

where

  recorded_etx = nbr->link_metric 
  packet_etx = MAX_LINK_METRIC * RPL_DAG_MC_ETX_DIVISOR
  nbr->link_metric = RPL_INIT_LINK_METRIC * RPL_DAG_MC_ETX_DIVISOR    (rpl-dag.c)
  RPL_INIT_LINK_METRIC = 2                                            (rpl-conf.h)
  ETX_SCALE = 100
  ETX_ALPHA = 90
  RPL_DAG_MC_ETX_DIVISOR = 256                                        (rpl-private.h)
  MAX_LINK_METRIC = 10

每次链接层收到ACK或超时事件时,都会触发此文件中的函数(neighbor_link_callback)。

[我了解ETX的正式定义,但是当我尝试将标准ETX公式与contikiRPL的ETX公式进行映射时,在理解contikiRPL中ETX的实现时遇到了一些麻烦。

如何在ContikiRPL中实现数据包成功到达接收方(df)的概率以及成功接收ACK包(dr)的概率?

我正在为RPL创建MRHOF的修改版本。但是,我对所使用的ETX指标有些怀疑。我正在运行一个rpl-udp示例(.... / contiki-3.0 / examples / ipv6 / rpl-udp)。按照...

contiki
1个回答
0
投票

在代码中,dfdr分别未知。该算法在发送方设备上运行,它无法区分丢包的情况和ACK丢失的情况。它们看起来完全一样:缺少

© www.soinside.com 2019 - 2024. All rights reserved.