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

相关推荐
TDengine (老段)12 分钟前
TDengine 高级功能——流计算
大数据·物联网·flink·linq·时序数据库·tdengine·涛思数据
Thanks_ks8 小时前
深入剖析物联网边缘计算技术:架构、应用与挑战
物联网·边缘计算·应用场景·技术架构·安全隐私·资源受限·标准化挑战
Lin_XXiang14 小时前
java对接bacnet ip协议(跨网段方式)
java·物联网
安科瑞刘鸿鹏15 小时前
破解高原运维难题:分布式光伏智能监控系统的应用研究
运维·物联网·安全
脾气超好的钢铁侠20 小时前
《深入协议层:tlmqtt如何通过自定义编解码器实现高性能MQTT Broker》
物联网
搬码临时工21 小时前
内网怎么映射外网ip? 内网的地址快速映射给外网访问用方法
运维·服务器·网络·物联网·网络协议·tcp/ip·智能路由器
xhload3d1 天前
图扑软件 | 带你体验 Low Poly 卡通三维世界
物联网·3d·智慧城市·html5·webgl·数字孪生·可视化·工业互联网·三维建模·工控·轻量化·中国风·卡通动画·写实风格·科技风·low poly
Despacito0o1 天前
深入浅出MQTT协议:从物联网基础到实战应用全解析
java·物联网·struts
神一样的老师2 天前
工业物联网中的事件驱动采样架构及优化
物联网·架构
十年小站2 天前
物联网基础概念
物联网