首页 理论教育BACnet网络层PDU结构详解

BACnet网络层PDU结构详解

【摘要】:BACnet NPDU的组成结构以及报文头部PCI编码区的控制管理功能标识域如图4-3所示。目前的BACnet协议的版本号是1。用于记录报文经过BACnet路由器的次数。如果信源节点和信宿节点同在一个BACnet子网内进行数据通信,NPDU中与地址有关的域均可以默认。

1.BACnet网络层协议数据单元结构

BACnet网络层采用了与应用层不同的方式,只定义了NPDU报文,为了实现不同功能的网络层服务,通过报文头部PCI编码区的给定标识信息进行功能控制和管理。BACnet NPDU的组成结构以及报文头部PCI编码区的控制管理功能标识域如图4-3所示。

2.协议版本号

每个NPDU的第一个字节是一个无符号整数,标识BACnet协议的版本号。目前的BACnet协议的版本号是1。

3.NPDU中的控制字段

NPDU的第二个字节是控制字段,该字段的作用是区分服务的类型和功能,8bit中的每一位布尔值用来表示不同的功能,控制字节中每个位标识的作用见表4-2。

978-7-111-38144-0-Chapter04-4.jpg

图4-3 BACnet NPDU结构

4.特殊域的内容

1)DNET:信宿节点网络号,2B。

2)DLEN:信宿节点的MAC层地址长度,1B,0表示对目标网络的广播。

3)DADR:信宿节点的MAC层地址。

4)SNET:信源节点网络号,2B。

5)SLEN:信源节点MAC层地址的长度,1B。

表4-2 控制字段中每个位标识的作用

978-7-111-38144-0-Chapter04-5.jpg

6)SADR:信源节点的MAC层地址。

7)Hop Count:递减计数器值,1B,初始化为X‘FF’。用于记录报文经过BACnet路由器的次数。报文每经过一个BACnet路由器,该域的数值就减1。当该值为0时,则丢弃这个报文,不再向下一个路由器转发。

5.网络层报文类型(Message Type)

如果控制域字节中的第7位为1,表示此报文是一个网络层报文,其报文类型域存在。这是个1B的域,其内容表示报文携带的各种网络层的控制信息。

6.NUD(网络层数据部分)

NPDU中网络层数据部分NUD域的内容和长度取决于报文的类别。当网络层报文为传送AP-DU报文时,该域必须进行标识。如果报文是网络层协议控制和管理报文,NUD域内容和长度由报文的类型(Message Type)确定。

如果信源节点和信宿节点同在一个BACnet子网内进行数据通信,NPDU中与地址有关的域均可以默认。如果信源节点和信宿节点不在同在一个BACnet子网内,NPDU报文经过一个或多个BACnet路由器转发报文,涉及源地址的相关域较为复杂。