Bandwidth of BACnet MSTP

A common problem of BACnet MSTP is low bandwidth utilization. Some researches disclose that more than 50% traffic on MSTP bus is token frame.

Unfortunately, many poor implement of MSTP make it worse. For example, in standard, the Tturnaroud is 40 bits, that is said, on 115200bps, node only need to wait 0.35 millisecond to send frame when it receive token. But in practice, there are a lot of devices wait at lease several milliseconds.

Our implement of MSTP try best to improve bandwidth. In previous laboratory test, we achieve 98.8% bandwidth utilization on our BACnet router. The test criterion is:

115200bps, 4 node with mac address from 0 to 3, max_master set to 3, no NPDU. in theory, the max token relay rate is 960 per seconds. we get 948 per second.

In another test, we send a read property request (23 bytes frame) each second, then get a Reply_Postponed frame, then a  read property response (29 bytes frame). we still get token relay rate of 943 per second.

Update Feb, 2017, We make a stress test for ReadProperty service on above configuration, set max_info_frames to 10 in all devices, 2 devices request, the other 2 devices reply. The result is 153~154 ReadProperty requests are served each second.

Update March,2017. Thank to our detailed runtime info, user could get token pass rate easily. 9 months after we release first firmware, We perform above test again, then get 956.6 per second, 99.6% bandwidth utilization.