当前位置: 首页 > news >正文

BACnet协议-(基于ISO 8802-3 UDP)(2)

1、模拟设备的工具界面如下:

2、使用yet another bacnet explorer  用作服务,用于发现设备,界面如下:


3、通过wireshark 抓包如下:

(1)、整体包如下:

(2)、mac头

(3)、IP头

自动对应

(4)、UDP头

(4)、BACnet头

(5)、NPDU

BACnet NPDU 数据结构字段包含如下内容:

  1. Version (0x01):

    • 这是 BACnet NPDU 的版本号,遵循 ASHRAE 135-1995 的标准。
  2. Control (0x20):

    • 控制字段,这个字节包含一些标志位,用于指示 NPDU 的内容和功能。
    • bit7 (0): 指示 NPDU 是否包含 BACnet APDU。此值为 0,表示该 NPDU 包含 APDU。
    • bit6 (0): 保留位,必须为 0。
    • bit5 (1): 目的地址标识符为 DNET、DLEN 和 Hop Count,这表明该帧有目的网络信息。
    • bit4 (0): 保留位,必须为 0。
    • bit3 (0): 源地址字段缺失。
    • bit2 (0): 无需期待应答。
    • bit1 (0): 该消息的优先级为普通消息。
    • bit0 (0): 此位为优先级控制字段,值为 0,表示这不是一个生命安全或关键设备消息。
      BitDescriptionIf 1If 0
      7APDUNPDU  传递网络层消息NPDU 包含 BACnet APDU
      6ReservedReservedReserved
      5Destination Specifier包含DNET DLEN DADR 不包含DNET DLEN DADR 
      4ReservedReservedReserved
      3Source Specifier包含SNET SLEN SADR 不包含SNET SLEN SADR 
      2Expecting reply等待回复不用回复
      1,0Priority11=生命安全,10=关键设备,01=紧急 00=正常
  3. Destination Network Address (65535):

    • 这是目的网络地址,设置为 65535,表示广播到目标网络。
  4. Destination MAC Layer Address Length (0):

    • 此字段长度为 0,表示目标网络是广播,无需具体的 MAC 地址。
  5. Hop Count (255):

    • 路由跳数被设置为 255,这意味着该消息可以通过 255 个路由器传输,这是 BACnet 允许的最大跳数。
(6)、APDU-Who-Is

一个未确认的 Who-Is 请求

(7)、APDU-I-Am

一个未确认的I-Am请求

APDU 分析:

  1. APDU Type: Unconfirmed-REQ (1):

    • 该帧类型为未确认请求 (Unconfirmed-REQ),值为 1。
    • 这是 BACnet 协议中一种未确认服务请求消息。
  2. Unconfirmed Service Choice: I-Am (0):

    • 未确认服务选择为 I-Am(值为 0)。
    • I-Am 消息用于设备向网络广播其存在以及设备标识信息。
  3. Object Identifier:

    • Object Type: device (8)
    • Instance Number: 3473435
    • 对象标识符指示了设备对象,类型为 device,实例号为 3473435。该标识符用于唯一标识网络中的设备。
    • C4   //应用程序标记 12(对象标识符),长度 4;
      高4bit是对象标识符,低4bit是长度4,
    • 02 35 00 1b  // 对象标识符指示了设备对象,
      高10bit是类型,=0b0000 0010 00 = 8 为 类型device,
      低22bit为实例号,为=0b11 0101 0000 0000 0001 1011  = 0x35001b = 3473435 该标识符用于唯一标识网络中的设备。
  4. Maximum APDU Length Accepted:

    • 值为 1464
    • 这表示该设备支持的最大 APDU 长度为 1464 字节。
      22    //Application Tag 2 (Unsigned Integer), length 2,高4bit表示数据类型(Unsigned Integer),低4bit数据长度
      05 b8 //最大 APDU 长度: 480
  5. Segmentation Supported:

    • 值为 segmented-both (0)
    • 表明设备支持分段传输(segmented-both),意味着设备可以在发送和接收时都支持数据分段。
      91    //Application Tag 9 (Enumerated), length 1,高4bit表示数据类型(Enumerated枚举),低4bit数据长度
      00    //设备支持分段传输(segmented-both
  6. Vendor ID:

    • Vendor Identifier 为 260,标识符表示该设备的供应商为 BACnet Stack at SourceForge
      22    //Application Tag 2 (Unsigned Integer), length 2,高4bit表示数据类型(Unsigned Integer),低4bit数据长度
      01 04 //Vendor Identifier 为 260,标识符表示该设备的供应商为 BACnet Stack at

该 APDU 是一个未确认的 I-Am 请求,广播设备的存在以及一些关键信息,如设备的唯一对象标识符、最大支持的 APDU 长度、设备是否支持分段传输,以及设备的供应商信息。

这些数据表明设备正在向网络中的其他设备声明其身份和能力,并不要求应答。这种消息通常用于初始发现或服务请求广播的场景。

相关文章:

BACnet协议-(基于ISO 8802-3 UDP)(2)

1、模拟设备的工具界面如下: 2、使用yet another bacnet explorer 用作服务,用于发现设备,界面如下: 3、通过wireshark 抓包如下: (1)、整体包如下: (2)、m…...

android 根据公历日期准确节气计算年月日时天干地支 四柱八字

1 年柱 判断当前日期是否超过本年的立春 未超过年份-1 已超过按当前年份计算 2月柱 当前日期是否超过当月的第一个节气 未超过-1 超过当前月份计算 节气对日柱时柱没影响。 获取某年某月第一个节气的准确日期 private int sTerm(int y, int n) {int[] sTermInfo…...

VMware虚拟机连接公网,和WindTerm

一、项目名称 vmware虚拟机连接公网和windterm 二、项目背景 需求1:windows物理机,安装了vmware虚拟机,需要访问公网资源,比如云服务商的yum仓库,国内镜像加速站的容器镜像,http/https资源。 需求2&#xf…...

游戏盾SDK真的能无视攻击吗

游戏盾SDK真的能无视攻击吗?在当今的互联网环境中,游戏行业蓬勃发展,但同时也面临着日益严峻的安全挑战。DDoS攻击、CC攻击、外挂作弊等恶意行为频发,不仅威胁着游戏的稳定性和公平性,也严重影响了玩家的游戏体验。为了…...

【QT】亲测有效:“生成的目标文件包含了过多的段,超出了编译器或链接器允许的最大数量”错误的解决方案

在使用dlib开发人脸对齐功能时&#xff0c;出现了”生成的目标文件包含了过多的段&#xff0c;超出了编译器或链接器允许的最大数量的错误“。 主要功能代码如下&#xff1a; #include <QApplication> #include <QImage> #include <QDebug>#include <dlib…...

什么是 Apache Ingress

Apache Ingress 主要用于管理来自外部的 HTTP 和 HTTPS 流量&#xff0c;并将其路由到合适的 Kubernetes 服务。 容器化与 Kubernetes 是现代云原生应用程序的基础。Kubernetes 的主要职责是管理容器集群&#xff0c;确保它们的高可用性和可扩展性&#xff0c;同时还提供自动化…...

SpringBoot助力墙绘艺术市场创新

3 系统分析 当用户确定开发一款程序时&#xff0c;是需要遵循下面的顺序进行工作&#xff0c;概括为&#xff1a;系统分析–>系统设计–>系统开发–>系统测试&#xff0c;无论这个过程是否有变更或者迭代&#xff0c;都是按照这样的顺序开展工作的。系统分析就是分析系…...

Antlr的使用

概念 ANTLR&#xff08;ANother Tool for Language Recognition&#xff09;是一个强大的解析器生成工具&#xff0c;用于读取、处理、执行或翻译结构化文本或二进制文件。ANTLR通过定义文法&#xff08;grammar&#xff09;来识别、构建和访问语言中的元素。 ANTLR为包括Jav…...

HealChat心理大语言模型 丨OPENAIGC开发者大赛高校组AI创作力奖

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给…...

PyQt5整合爬虫制作图片爬取器-幽络源

前言 本篇教程适合对Python爬虫和Python软件制作感兴趣的小伙伴阅读&#xff0c;看完本篇教程&#xff0c;你将能更深入了解PyQt5与实际功能的整合方式。 1.设计界面 首先在pycharm中创建一个新目录&#xff0c;这里我建立的目录名为爬图片&#xff0c;然后按如图打开Qt设计…...

DC00023基于jsp+MySQL新生报到管理系统

1、项目功能演示 DC00023基于jsp新生报到管理系统java webMySQL新生管理系统 2、项目功能描述 基于jspMySQL新生报到管理系统项目分为学生、辅导员、财务处和系统管理员四个角色。 2.1 学生功能 1、系统登录 2、校园新闻、报到流程、学校简介、在线留言、校园风光、入校须知…...

AdaptIoT——制造业中使用因果关系的自我标签系统

0.概述 论文地址&#xff1a;https://arxiv.org/abs/2404.05976 在许多制造应用中&#xff0c;机器学习&#xff08;ML&#xff09;已被证明可以提高生产率。针对制造业应用提出了一些软件和工业物联网&#xff08;IIoT&#xff09;系统&#xff0c;以接收这些 ML 应用。最近&…...

代码随想录算法训练营Day15

654.最大二叉树 力扣题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 前序递归、循环不变量 class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {return findmax(nums,0,nums.length);}public TreeNode findmax(int[] nums,int lefti…...

Thinkphp/Laravel旅游景区预约系统的设计与实现

目录 技术栈和环境说明具体实现截图设计思路关键技术课题的重点和难点&#xff1a;框架介绍数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取 技术栈和环境说明 采用PHP语言开发&#xff0c;开发环境为phpstudy 开发工具notepad并使用MYSQL数据库…...

SpringCloud学习记录|day1

学习材料 2024最新SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; 学redis讲到微服务就停了&#xff0c;nginx也是。 所以嘛&#xff0c;我终于来到微服务了。 复习MyBatisP…...

Elasticsearch讲解

1.Elasticsearch基本知识 1.基本认识和安装 Elasticsearch是由elastic公司开发的一套搜索引擎技术&#xff0c;它是elastic技术栈中的一部分。完整的技术栈包括&#xff1a; Elasticsearch&#xff1a;用于数据存储、计算和搜索 Logstash/Beats&#xff1a;用于数据收集 Kib…...

Linux嵌入式有发展吗,以及对uboot,kernel,rootfs的领悟

工作多年后&#xff0c;对uboot&#xff0c;kernel&#xff0c;rootfs的领悟&#xff0c;总结 上大学时&#xff0c;51单片机&#xff0c;正点原子的stm32&#xff0c;linux arm开发。对uboot&#xff0c;kernel&#xff0c;rootfs的理解云里雾里&#xff0c;感觉自己很懂了 其…...

基于Springboot+Vue的公寓管理系统(含源码+数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 该系统…...

多功能声学气膜馆:承载梦想与希望的舞台—轻空间

在9月29日上午&#xff0c;苏州大学应用技术学院的2024级新生开学典礼暨开学第一课在轻空间建造的多功能声学气膜馆内盛大举行。这一盛典不仅见证了2849名新生的入学&#xff0c;也展示了气膜馆的独特魅力与优越功能。 卓越的声学表现 声学气膜馆采用高性能材料&#xff0c;确保…...

【线程】线程池

线程池通过一个线程安全的阻塞任务队列加上一个或一个以上的线程实现&#xff0c;线程池中的线程可以从阻塞队列中获取任务进行任务处理&#xff0c;当线程都处于繁忙状态时可以将任务加入阻塞队列中&#xff0c;等到其它的线程空闲后进行处理。 线程池作用&#xff1a; 1.降…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...