我一直在Windows上構建OpenThread原型,並且我注意到,使用當前CSMA退避邏輯Mac class,它在每次發送之前等待平均約9ms,即使沒有發現競爭。對於128字節的數據包來說,這似乎還有相當長的一段時間。OpenThread是否有性能目標或需求?
當我從一個虛擬(所有軟件)設備到另一個在我的Windows原型平,我得到的東西像小包以下:
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類中的退避時間是否應該較小,至少在最初?