我一直在 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 类中的回退时间是否应该更小,至少最初是这样?