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

相关文章
|
3月前
|
JSON JavaScript 前端开发
|
4月前
|
算法 Python
Python基础教程(第3版)中文版 第一章 快速上手:基础知识(笔记)
Python基础教程(第3版)中文版 第一章 快速上手:基础知识(笔记)
|
5月前
|
IDE 算法 开发工具
Python编程入门:基础知识与环境搭建
【4月更文挑战第8天】探索Python编程之旅,了解其易学、易读、可维护的特性及丰富的标准库。设置开发环境,包括安装Python、验证安装、选择IDE(如PyCharm、VS Code)并编写首个"Hello, World!"程序。熟悉IDE和Python标准库,通过实践提升技能,踏上编程征程。开始你的Python学习之旅吧!
58 2
|
5月前
编程笔记 01工具及参考资料
编程笔记 01工具及参考资料
|
5月前
|
消息中间件 运维 关系型数据库
KnowStreaming系列教程第一篇——安装和使用
KnowStreaming系列教程第一篇——安装和使用
386 0
|
10月前
|
存储 安全 编译器
【C++】C++入门详解 II【深入浅出 C++入门 这一篇文章就够了】(下)
【C++】C++入门详解 II【深入浅出 C++入门 这一篇文章就够了】(上)
92 0
|
10月前
|
编译器 Linux C语言
【C++】C++入门详解 I【C++入门 这一篇文章就够了】(下)
【C++】C++入门详解 I【C++入门 这一篇文章就够了】
59 0
|
JSON 测试技术 数据格式
vitest第二章(入门)
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
151 0
vitest第二章(入门)
|
SQL 数据库
实战:第二章:关于EZDML工具使用踩的坑
实战:第二章:关于EZDML工具使用踩的坑
168 0
|
前端开发
快速入门less原理以及常用基本知识
快速入门less原理以及常用基本知识(动态计算rem)
173 0
快速入门less原理以及常用基本知识
下一篇
无影云桌面