0

我一直在 Windows 上对 OpenThread 进行原型设计,我注意到使用Mac 类具有的当前 CSMA 退避逻辑,即使没有看到争用,它在每次发送之前平均等待约 9 毫秒。对于永远 128 字节的数据包,这似乎是一个相当长的等待时间。

当我在我的 Windows 原型中从一个虚拟(所有软件)设备 ping 到另一个设备时,对于小数据包,我得到如下信息:

Pinging fd00::e91b:775a:8cfd:bd05 from fd00::b98c:3fe5:44e1:3573 with 32 bytes of data:
  Reply from fd00::e91b:775a:8cfd:bd05: time=12ms
  Reply from fd00::e91b:775a:8cfd:bd05: time=2ms
  Reply from fd00::e91b:775a:8cfd:bd05: time=18ms
  Reply from fd00::e91b:775a:8cfd:bd05: time=19ms
  Reply from fd00::e91b:775a:8cfd:bd05: time=12ms

对于较大的数据包,我得到以下信息:

Pinging fd00::357c:a372:2734:344c from fd00::4392:ac8b:b7d1:631 with 1400 bytes of data:
  Reply from fd00::357c:a372:2734:344c: time=249ms
  Reply from fd00::357c:a372:2734:344c: time=273ms
  Reply from fd00::357c:a372:2734:344c: time=355ms
  Reply from fd00::357c:a372:2734:344c: time=231ms
  Reply from fd00::357c:a372:2734:344c: time=236ms
  Reply from fd00::357c:a372:2734:344c: time=281ms

最后,我在两个虚拟接口上使用了 iPerf,但我从来没有超过 ~77 Kbits/sec。根据RFC 6282 IPv6 Datagrams on IEEE 802.15.4 Section 1, 802.15.4 理论上应该有:

链路吞吐量为 250 kbps 或更低的无线链路

我希望 OpenThread 应该接近 77 kbps。

基础 OpenThread 库应该能够达到的速度是否有既定要求或目标?

Mac 类中的回退时间是否应该更小,至少最初是这样?

4

1 回答 1

2

正如您所注意到的,我们还没有关注 OpenThread 的性能。我们仍在努力确保实现所有必要的功能部件。

OpenThread 中的软 MAC 实现就是一个示例,应该对其进行优化以更好地匹配 IEEE 802.15.4-2006 时序规范。IEEE 802.15.4-2006 为 2.4 GHz 指定了 2.56 毫秒的默认随机最小回退窗口和 10.24 毫秒的最大回退窗口。假设最小默认窗口为 2.56 毫秒,则未确认数据帧之间的帧间距平均约为 1.28 毫秒。如果我们想要精确,则需要增加一点时间来解释强制性 IFS(短帧为 12 个符号或长帧为 40 个符号)。

于 2016-08-10T18:33:18.633 回答