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

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

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

最基本的考虑是,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

相关文章
第三章:什么是 BACnet/IP 网络
BACnet/IP 网络是一个或多个 IP 子网(IP 域)的集合,这些子网分配有单个 BACnet 网络号。BACnet 互联网络由两个或多个 BACnet 网络组成。这些网络可能是 BACnet/IP 网络,也可能使用其他指定的技术。此标准还支持以类似于 IP 子网的方式包含 IP 多播组,如下文中所述。
683 0
第三章:什么是 BACnet/IP 网络
|
机器学习/深度学习 存储 自然语言处理
SeACo-Paraformer
【6月更文挑战第14天】
609 6
|
安全 网络协议 网络安全
BACnet初学者教程,第一章:BACnet/IP介绍
BACnet初学者教程,第一章:BACnet/IP介绍
480 0
|
11月前
|
机器学习/深度学习 数据采集 算法框架/工具
使用Python实现智能生态系统监测与保护的深度学习模型
使用Python实现智能生态系统监测与保护的深度学习模型
408 4
|
存储 数据格式
如何在51单片机实现scanf和printf
如何在51单片机实现scanf和printf
618 0
|
10月前
|
安全 编译器 C++
constexpr、const和 #define 的比较
本文比较了 `constexpr`、`const` 和 `#define` 在 C++ 中定义常量和函数的优缺点。`constexpr` 用于编译期求值,提供更高的性能和类型安全性;`const` 保证变量在运行期间不可修改,增强代码可靠性;`#define` 用于宏定义,适用于简单的常量和跨平台兼容性。选择时应根据具体需求和代码上下文决定。
284 0
|
Linux iOS开发 MacOS
BACnet 调试工具 工程师必备
BACnet是由ASHRAE开发的标准通信协议,专用于楼宇自动化和控制网络。它支持对象访问、报警与事件处理、文件传输及远程设备管理等功能,实现了跨平台操作。BACnet Explorer作为一款强大的工具,不仅便于浏览与控制BACnet设备,还内置了设备模拟器以辅助调试工作。其用户友好的界面设计确保了高效便捷的操作体验。
579 3
BACnet 调试工具 工程师必备
|
机器学习/深度学习 数据采集 人工智能
使用Python实现深度学习模型:智能音乐创作与生成
使用Python实现深度学习模型:智能音乐创作与生成
299 3
|
算法 图形学
【头歌 计算机图形学 练习】多边形填充v1.0 (第1关:扫描线填充算法(活动边表AET法) 第2关:边缘填充法 第3关:区域四连通种子填充算法 第4关:区域扫描线种子填充算法)
【头歌 计算机图形学 练习】多边形填充v1.0 (第1关:扫描线填充算法(活动边表AET法) 第2关:边缘填充法 第3关:区域四连通种子填充算法 第4关:区域扫描线种子填充算法)
684 0
|
域名解析 网络协议 Linux
域名解析类型及dig,nslookup进行Dns解析过程查看
域名解析类型及dig,nslookup进行Dns解析过程查看
416 4