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

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 长度、设备是否支持分段传输,以及设备的供应商信息。

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


http://www.kler.cn/a/324589.html

相关文章:

  • hrnet人体关键点检测模型适配atlas笔记
  • Fish Agent V0.13B:Fish Audio的语音处理新突破,AI语音助手的未来已来!
  • 怎样选择合适的服务器租用呢?
  • 软件设计师 - 第1章 计算机网络概论
  • 《基于Oracle的SQL优化》读书笔记
  • 解决背景图因为图片路径中携带括号导致图片无法显示的问题
  • 【系统方案】智慧城市大数据平台建设方案(Word)
  • 【小程序websocket最佳实践,有心跳和断线重连】
  • JD面试题
  • huggingface实现中文文本分类
  • Gitee基本指令操作
  • 若依生成主子表
  • 前端框架:选择的艺术
  • IP地址不足
  • Python电能质量扰动信号分类(五)基于CNN-Transformer的一维信号分类模型
  • 版本发布 | IvorySQL 3.4 发版
  • 鸿蒙开发(NEXT/API 12)【硬件(获取出行业务事件信息)】车载系统
  • Java解析Excel文件
  • 校企合作 | 宝兰德与西安航空职业技术学院共筑智慧教育新高地
  • Java使用Map数据结构配合函数式接口存储单个参数,多个参数,或带返回参数 的方法引用
  • 物联网系统中基于IIC通信的数字温度传感器测温方案
  • 基于SpringBoot+Vue的高校实习管理系统
  • 机器学习(2):机器学习的相关术语
  • [单master节点k8s部署]24.构建EFK日志收集平台(三)
  • [ACS_C]:以 H2和 O2等离子体处理的 Al2O3为载体的 Pt 催化剂用于液态有机氢载体对二苄基甲苯和全氢二苄基甲苯的加氢和脱氢
  • py-mmcif包pdbx_struct_assembly对象介绍