BACnet初学者教程,第二章:BACnet/IP的一些基本设计标准

第二章:BACnet/IP的一些基本设计标准

平时调试BACnet协议,一个好用的 BACnet 调试工具和模拟器必不可少,推荐一款:

官网地址:BACnet Explorer

最基本的考虑是,BACnet/IP 设备在网络活动方面应该在概念上与所有其他 BACnet 设备一样表现:

  • 它们应该能够直接与网络上的对等设备进行通信;
  • 它们应该能够利用网络上所有对等设备接收的本地广播;
  • 它们应该能够向位于具有不同网络号的网络上的设备发送远程广播;
  • 并且全局广播应该仍像现在一样工作。

同样,B/IP 网络上的路由器应响应相同的网络层消息并执行与当前路由器相同的功能。希望您在看完这些后,这些假设的含义会变得清晰。

以下是我们所使用的 BACnet 设备的两个基本假设:

  • 设备具有唯一地址,在本例中为 IP 地址,并且它们知道该地址是什么。
  • 设备不知道,或者至少不需要知道其 BACnet 网络号(除非设备是 BACnet 路由器)。

BACnet/IP 使用用户数据报协议 (UDP),这是一种无连接协议。选择 UDP 的原因如下:

  • UDP 得到了很好的支持,并且为所有操作系统提供了简洁的 API。

    在新的平台上利用现有代码库的能力非常重要,因此套接字库通常是最先移植的软件组件之一,其余所有 IP 服务都会随之移植。

  • TCP 是一种面向连接的协议,其开销比 UDP 大得多,并且不允许"一对多"消息。

    其他面向流的协议(如 ATM)也存在同样的问题。IP over ATM 试图通过为数据包建立到"新"目的地的连接(称为"调用")并保持连接打开一段时间(在某种意义上是缓存连接)来解决部分问题。这对于基于 UDP 的 SNMP 等无连接协议来说是个坏消息,因为每个数据包都有调用设置和关闭开销。

  • 定义一种新的 IP 数据包类型(具有新的协议值)不会带来任何实质性的优势,而且相对于使用 UDP 来说还会带来一些潜在的缺点。

    虽然扩展操作系统的内核是可能的,但大多数应用程序开发人员都希望尽可能避免嵌入软件,因为嵌入软件会引发操作系统和平台相关的所有问题。这还会降低编写可移植代码的能力。例如,伯克利套接字库在所有常见 IP 平台上都以某种形式得到支持,而新的 IP 协议类型则不会得到支持。

  • 新的 IP 协议类型可能无法路由。

    虽然按某些标准来看,BACnet/IP 设备和支持的市场可能非常庞大,但它的规模和规模可能永远无法达到其他互联网软件应用程序的规模。现有的路由器制造商可能很乐意提供自定义数据包类型的路由,但需要付费。

  • 当前的防火墙不会放行新的数据包类型。

    即使先前假设防火墙不需要允许 BACnet/IP 数据包通过,与现有技术的配合也是一个考虑因素。

在本次演示中,我们将展示 UDP 提供了构建几乎任何架构的 BACnet/IP 互联网络所需的所有功能。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.redisant.cn

相关推荐
火山引擎边缘云10 小时前
创新实践:基于边缘智能+扣子的智慧婴儿监控解决方案
物联网·aigc·边缘计算
田三番15 小时前
使用 vscode 简单配置 ESP32 连接 Wi-Fi 每日定时发送 HTTP 和 HTTPS 请求
单片机·物联网·http·https·嵌入式·esp32·sntp
AIoT科技物语1 天前
免费,基于React + ECharts 国产开源 IoT 物联网 Web 可视化数据大屏
前端·物联网·react.js·开源·echarts
漫途科技2 天前
漫途焊机安全生产监管方案,提升安全生产管理水平!
物联网·安全
明达技术2 天前
MR30分布式IO模块与高效PLC协同
分布式·物联网·自动化
数码人Digitalor2 天前
数据采集器与物联网网关的区别
物联网
极客小张2 天前
基于STM32的实时监测环境系统设计:Flask、SQLite、Vue.js、HTTP/TCP技术
c语言·stm32·单片机·物联网·毕业设计·课程设计·python后端
极客小张2 天前
基于STM32的智能温室环境监测与控制系统设计(代码示例)
c语言·arm开发·stm32·单片机·嵌入式硬件·物联网·毕业设计
Lenzetech2 天前
科技资讯|谷歌Play应用商店有望支持 XR 头显,AR / VR设备有望得到发展
科技·物联网·ar·xr·蓝牙·find my
大福是小强2 天前
004-Kotlin界面开发快速入水之TicTacToe
开发语言·kotlin·界面开发·gui·教程·桌面应用·快速入水