www.zigbee-sh.cn
郑州新双恒
ZigBee 协议规范
文件 053474r1
第三章
网络规范
3.1 概述
3.1.1 网络(NWK)层概述
网络层必须提供功能,以保证 IEEE802.15.4-2003 MAC 子层的正确操作,并为应用层提
供一个合适的服务接口。要和应用层通信,网络层的概念包括两个服务实体,提供必要的功
能。这些服务实体是数据服务和管理服务。NWK 层数据实体(NLDE)通过其相关的 SAP,
NLDE-SAP,提供了数据传输服务,而 NLME-SAP 提供了管理服务。NIME 使用 NLDE 来获
得它的一些管理任务,且它还维护一个管理对象的数据库,叫做网络信息库(NIB)。
3.1.1.1 网络层数据实体(NLDE)
NLDE 应提供一个数据服务,以允许一个应用程序在两个或多个设备之间传输应用协议
数据单元(APDU)。设备本身必须位于同一个网络。
NLDE 将提供以下服务:
� 生成网络级别的 PDU(NPDU): NLDE 应该可以通过增加一个合适的协议头,
从一个应用支持子层的 PDU,生成一个 NPDU。
� 拓扑指定的路由:NLDE 应该可以传输一个 NPDU 给一个合适的设备,它是通
信的最终目的地或是通信链中朝向最终目的地的下一步。
ZigBee 标准组织版权© 2007。保留所有权利。
www.zigbee-sh.cn
郑州新双恒
� 安全:保证传输的真实性和保密性的能力。
ZigBee 协议规范
文件 053474r1
3.1.1.2 网络层管理实体(NLME)
NLME 应提供一个管理服务,以允许一个应用程序与协议栈相互作用。
NLME 应提供以下服务:
� 配置一个新设备:为所需的操作充分配置协议栈的功能。配置选项包括开始一
个作为一个 ZigBee 协调器的操作,或加入一个已存在的网络。
� 开始一个网络:建立一个新的网络的功能。
� 加入、重新加入和离开一个网络:加入、重新加入或离开一个网络的功能,以
及为一个 ZigBee 协调器或 ZigBee 路由器请求一个设备离开网络的功能。
� 寻址:ZigBee 协调器和路由器给新加入网络的设备分配地址的能力。
� 邻居发现:发现,记录和报告信息关于设备的单跳邻居的能力。
� 路由发现:发现并记录通过网络的路径的功能,即信息可以有效地传送。
� 接收控制:一个设备控制何时接收者是激活的,以及激活多长时间,从而使 MAC
子层同步或直接接收。
� 路由:这个是使用不同路由机制的能力,例如单播,广播,多播或者多对一,
在网络中高效交换数据。
3.2 服务规范
图 3.1 描述了 NWK 层的组件和接口。
NWK 层提供了两个服务,通过两个服务访问点(SAP)访问。这些是 NWK 数 据 服 务 ,
通过 NWK 层数据实体 S A P(NLDE-SAP)访问和 NWK 管理实体,通过 NWK 层管理实体 SAP
(NLME-SAP)访问。这两个服务通过 MCPS-SAP 和 MLME-SAP 接口,提供了应用层和 MAC
子层之间的接口(参见[B1])。除了这些外部接口,在 NLME 和 NLDE 之间还有一个隐藏的
接口,允许 NLME 使用 NWK 数据服务。
ZigBee 标准组织版权© 2007。保留所有权利。
www.zigbee-sh.cn
郑州新双恒
ZigBee 协议规范
文件 053474r1
图 3.1 网络层参考模型
3.2.1 NWK 数据服务
NEK 层数据实体 SAP(NLDE-SAP)支持在对等的应用程序实体之间传输应用协议数据
单元(APDU)。
表 3.1 列出了 NLDE-SAP 支持的原语以及讨论这些原语的章节。
NLDE-SAP
表表表表 3.13.13.13.1 NLDE-SAP
NLDE-SAP
NLDE-SAP 原语原语原语原语
NLDE-SAP原语 请求 确认 指示
NLDE-DATA
3.2.1.3
3.2.1.1
3.2.1.2
3.2.1.1 NLDE-DATA.request
本原语请求传输一个数据 P D U(NSDU),从 本 地 APS 子层实体到一个或多个对等的 APS
子层实体。
ZigBee 标准组织版权© 2007。保留所有权利。
www.zigbee-sh.cn
郑州新双恒
3.2.1.1.1 服务原语的语义
本原语的语义如下:
NLDE-DATA.request
{
ZigBee 协议规范
文件 053474r1
DstAddrMode,
DstAddr,
NsduLength,
Nsdu,
NsduHandle,
Radius,
NonmemberRadius,
DiscoverRoute,
SecurityEnable
}
表 3.2 指明了 NLDE-DATA.request 原语的参数。
NLDE-DATA.request
表表表表 3.23.23.23.2 NLDE-DATA.request
NLDE-DATA.request
NLDE-DATA.request 参数参数参数参数
名称
类型
有效范围
描述
DstAddrMode
Integer
0x01 or 0x02
DstAddr
NsduLength
16-bit Address
Integer
0x0000-0xFFFF
< aMaxMACFrameSize-
nwkcMinHeaderOverhead
Nsdu
Set of Octets
-
NsduHandle
Integer
0x00 – 0xff
通过DstAddr提供的目的
地址类型;这可能有以下
两个值中的一个:
0x01=16位组播地址
0x02=设备的16位网络地
址或者一个16位广播地
址
目的地址
组成转移NSDU的字节
数。考虑到ZigBee网络层
不使用扩展的寻址模式,
这已被IEEE802.15.4规范
中的
aMaxMACFrameSize限
定所修改。这使得头闲置
的部分被用于有效载荷。
参见小节D.4。
组成转移NSDU的套接
字
与NSDU相联系的句柄
是通过网络层实体传输
的
ZigBee 标准组织版权© 2007。保留所有权利。
名称
Radius
NonmemberR
adius
DiscoverRout
e
Unsigned Integer
0x00 – 0xff
Integer
0x00 – 0x07
Integer
0x00 – 0x01
SecurityEnabl
e
Boolean
TRUE or ALSE
www.zigbee-sh.cn
郑州新双恒
ZigBee 协议规范
文件 053474r1
表 3.2 NLDE-DATA.request 参数(续表)
类型
有效范围
描述
间隔,跳数,帧允许通过
网络传输
间隔, 跳数, 组播帧将通
过不是组成员的节点传
送; 0x07 被视为无穷
DiscoverRoute参数可能
用于控制传输该帧的路
由发现操作(见子章节
3.7.3.4):
0x00 =禁用路由发现
0x01 =启用路由发现
SecurityEnable参数可用
于启用当前帧网络层安
全处理,如果安全级别在
NIB中被指定为0,意思为
没有安全,然后这个参数
将会被忽略;否则,TRUE
表示安全处理通过应用
安全级别来指定,FALSE
表示没有合适的安全处
理
3.2.1.1.2
3.2.1.1.2
3.2.1.1.2 原语生成
3.2.1.1.2
原语生成原语生成
原语生成
每当一个数据 PDU(NSDU)要被传输给一个对等的 APS 子层实体时,本原语由一个本
地 APS 子层实体生成。
3.2.1.1.3
3.2.1.1.3
3.2.1.1.3 接收结果
3.2.1.1.3
接收结果接收结果
接收结果
如 果 本 原 语 被 一 个 当 前 没 有 连 接 的 设 备 接 收 , NWK 层 将 发 出 一 个 状 态 为
INVALID_REQUEST 的 NLDE-DATA.confirm 原语。
在接收本原语时,NLDE 首先构造一个 NPDU,以传输所提供的 NSDU。如果在处理期
间,NLDE 在传输 NSDU 之前发出了 NLDEDATA.confirm 原语,则中止所有进一步的处理。
在构造新的 NPDU 时,NWK 头的目标地址域将被设置为 DstAddr 参数提供的值,且源地址
域值将为 MAC PIB 中的 macShortAddress属性的值。NWK 头的帧控制域的发现路由子域将
被设置为 DiscoverRoute 参数提供的值。如果所提供的 Radius 参数值不为零,那么 NWK 头
的半径域就设置为 Radius 参数的值。如果 Radius 参数值为零,那么 NWK 头的半径域将被设
置为 NWK IB 的 nwkMaxDepth属性值的两倍。NWK 层将为 3.6.2.1 小节所述的帧生成一个序
列号。且帧的 NWK 头的序列号域设置为这个序列号的值。NWK 头的多播标志域将根据
DstAddrMode 参数的值设置。如果 DstAddrMode 参数值为 0x01,NWK 头将包括一个多播控
制域,其中的域将设置如下:
� 如果该节点是 DstAddr 参数所指定的组的一个成员,多播模式域将设置为 0x01
� 否则,多播模式域将设置为 0x00
� 非成员半径和最大非成员半径域将设置为 NonmemberRadius 参数的值
一旦构造了 NPDU,如果 NSDU 是单播的,使用 3.6.3.3 小节所述的程序为它寻找路由;
ZigBee 标准组织版权© 2007。保留所有权利。
www.zigbee-sh.cn
郑州新双恒
ZigBee 协议规范
文件 053474r1
如果是广播的,使用 3.6.5 小节所述的程序寻找路由;如果是多播的,使用 3.6.6.2 小节
所述的程序寻找路由。当寻找路由程序指定要传输 NSDU,这通过发出 MCPSDATA.request
原语来完成,且 SrcAddrMode 和 DstAddrMode 参数设置为 0x02,表示使用 16 位的网络地址 。
SrcPANId 和 DstPANId 参数应设置为 MAC PIB 的 macShortAddr 的值。DstAddr 参数的值是
下一跳的地址,由寻找路由程序确定。如果信息是单播的,TxOptions 参数的位 b0 应设置为
1,表示需要一个确认。在接收 MCPSDATA.confirm 原语时,NLDE 发出 NLDE-DATA.confirm
原语,它的状态值等于从 MAC 子层收到的状态值。
如果 NIB 属性 nwkSecurityLevel值为非零,且 SecurityEnable 参数值为 TRUE,那么在
按照 4.3 节所述的进行传输之前,为该帧应用 NWK 层的安全处理。否则,不为该帧在 NWK
层执行安全处理。如果执行了安全处理,且它因任何原因失败,那么帧被丢弃,且 NLDE 发
出 NLDE-DATA.confirm 原语,它的状态参数值等于安全组合返回的状态值。
3.2.1.2 NLDE-DATA.confirm
本原语报告请求从一个本地 APS 子层实体到一个对等 APS 子层实体,传输一个数据 PDU
(NSDU)的结果。
ZigBee 标准组织版权© 2007。保留所有权利。
www.zigbee-sh.cn
郑州新双恒
ZigBee 协议规范
文件 053474r1
3.2.1.2.1 服务原语的语义
本原语的语义如下:
表 3.3 指明了 NLDE-DATA.confirm 原语的参数。
名称
Status
类型
Status
表 3.3 NLDE-DATA.confirm 参数
有效范围
从securitysuite 或者 MCPSDATA.confirm 原语返
回的
INVALID_REQUEST,MAX_FRM_COUNTER,NO_
KEY,BAD_CCM_OUTPUT,ROUTE_ERROR,BT_T
ABLE_FULL,FRAME_NOT_BUFFERED 或者任何
状态值(见[B1])
NsduHandle
Integer
0x00 – 0xff
TxTime
Integer
执行相关
描述
相应的状态
请求
处理相关被
确认的NSDU
基于本地时
钟传输包的
时间指示。时
间应该基于
在规定执行
中每个传输
包的同一点。
该值只有在
nwkTimeStam
p设置为
TRUE之后才
能提供。
3.2.1.2.2 原语生成
本原语由一个本地 NLDE 生成,以响应收到一个 NLDE-DATA.request 原语。
状态域将反映相应的请求的状态,如 3.2.1.1.3 小节所描述。
3.2.1.2.3 接收结果
在接收本原语时,发起设备的 APS 子层被告知其请求传输的结果。如果传输尝试成功,
状态参数将设置为 SUCCESS。否则,状态参数将指示错误。
ZigBee 标准组织版权© 2007。保留所有权利。
www.zigbee-sh.cn
郑州新双恒
ZigBee 协议规范
文件 053474r1
3.2.1.3 NLDE-DATA.indication
本原语表示从 NWK 层到本地 APS 子层实体传输一个数据 PDU(NSDU)。
3.2.1.3.1 服务原语的语义
本原语的语义如下:
表 3.4 指明了 NLDE-DATA.indication 原语的参数。
表 3.4 NLDE-DATA.indication 参数
名称
DstAddrMod
e
类型
Integer
有效范围
0x01 或 0x02
描述
通过DstAddr参数提供的目的地址类
型。这可能有以下两个值中其中一个:
0x01=16位组播地址
0x02=设备的16位网络地址或者16位
广播地址
NSDU发送的目的地址
0x0000-0xFFFF
DstAddr
SrcAddr
16-bit
Address
16-bit
Device
address
除了广播地址的任何无效
的设备地址
来自NSDU起源的单个设备地址
ZigBee 标准组织版权© 2007。保留所有权利。