BACnet MSTP的令牌转发性能

在BACnet标准中,MSTP的最高波特率为115200bps,一个token包的长度为8字节,在两个包之间至少还要有4字节的切换时间(Tturnaround = 40bits),所以理论最高令牌转发率为115200/(80 + 40) = 960次/秒。

但是实际上市场上大部分产品的底层实现,都难以达到,造成MSTP的实际带宽受限,甚至造成丢包或丢令牌。

目前我司的产品上的进行的测试,4个节点,mac address从0~3, max_master=3,网络层静默,测得令牌转发率为948次/秒,带宽利用率98.8%.

在每秒一个读属性请求(23字节),一个读属性应答(29字节)的条件下,测得令牌转发率为943次/秒。

我司的协议栈是在完全满足标准时序要求下,基本榨干了MSTP的性能。

更新,2017年2月,我们在上述配置下做了ReadProperty服务的压力测试,把4个节点的max_info_frames均设为10,2个节点请求,2个节点响应。最后的结果每秒钟完成153~154个服务。

更新,2017年3月,现在通过详细的运行信息,用户可以方便地得到令牌转发率数据。在发布新一版固件9个月之后,我们重新做了上面的测试,这次的结果是每秒956.6次的令牌转发率,99.6%的带宽利用率。