通用网络层帧格式 网络层帧格式通常由一个网络层报头和一个网络层有效载荷组成。网络层报头按固定顺序出现。然而,仅仅只有多播标志值是1时才存在多播控制域。网络层帧格式如图3.3所示。 字节:2 帧控制 2 目的地址 2 源地址 1 广播半径域 1 广播序列号 网络层帧报头 图3.3通用网络层帧格式 3.4.1.1帧控制域 帧控制域为16位,包含所定义的帧类型、地址和序列域以及其他控制标记。帧控制域格式如图3.4所示。 比特0-1 帧类型 2-5 协议版本 3.4.1.1.1帧类型子域 帧类型子域为2bit,其值为表3.36中所列的非保留值。 表3.36帧类型子域值 帧类型值b1 b0 00 01 10,11 帧类型名 数据 网络层命令 保留 6-7 发现路由 8 多播标记 9 安全 10 源路由 11 目的IEEE地址 12 源IEEE地址 13-15 保留 0/8 目的IEEE地址 网络层的有效载荷 0/8 源IEEE地址 0/1 多点传变长 源路变长 帧的有效载荷 送控制 由帧 图3.4帧控制域格式 3.4.1.1.2协议版本子域 协议版本子域为4bit,设置值反应了所使用的ZigBee网络层协议版本号特定设备上所使用的协议版本应像固定网络层协议版本号一样。 3.4.1.1.3发现路由子域 发现路由子域用根据帧的传送控制路由发现操作。(见3.7.3.5) 对于网络层命令帧,路由发现子域设置为0x00表明抑制路由发现。 表3.37发现路由子域值 发现路由子域值 0x00 0x01 0x02 0x03 3.4.1.1.4多播标志域 多播标志域为1bit,如果是单播或者广播帧,值为0,如果为多播帧值为1。 3.4.1.1.5安全子域 安全子域值为1时,该帧才具有网络层安全操作能力。如果该帧的安全由另一层来完成或者完成被禁止,则该值是0。 3.4.1.1.6源路由子域 域意义 抑制路由发现 使能路由发现 强制路由发现 保留 源路由子域值为1时,源路由子帧才在网络报头中存在。如果源路由子帧不存在则源路由子域值为0。 3.4.1.1.7目的IEEE地址子域 目的IEEE地址是1时,网络帧报头包含整个目的IEEE地址。 3.4.1.1.8源IEEE地址子域 源IEEE地址是1时,网络帧报头包含整个源IEEE地址。 3.4.1.2目的地址域 在网络层帧中必须有目的地址域,其长度是2字节。如果帧控制域的多播标志子域值是0,那么目的地址域值是16位的目的设备网络地址或者为广播地址(见表)。如果多播标志子域值是1,目的地址域是16位目的多播组的Group ID。值得注意的是设备的网络地址与IEEE802.15.4-2003协议中的MAC层16位短地址相同。 3.4.1.3源地址域 在网络层帧中必须有源地址域,其长度是2字节,其值是源设备的网络地址。值得注意的是设备的网络地址与在IEEE802.15.4-2003协议中的MAC层16位短地址相同。 3.4.1.4半径域 在网络层帧中必须有半径域,其长度是1字节,并且限定了传输半径范围。每个设备接收一次该帧,则该值减以。 3.4.1.5序列号域 在每个帧中都包含序列号域,其长度是1字节。每发送一个新的帧序列号值加1。帧的源地址和序列号子域是一对,在限定了序列号1字节的长度内是唯一的标识符。关于使用序列号的更多信息,见3.7.2节。 3.4.1.6目的IEEE地址域 如果存在目的IEEE地址域,则包含与包含在网络层地址头中的目的地址域的16位网络地址相对应的64位IEEE地址。如果该16位网络地址是广播或者多播地址那么目的IEEE地址不存在。 3.4.1.7源IEEE地址 如果存在源IEEE地址域,则包含与包含在网络层地址头中的源地址域的16位网络地址相对应的64位IEEE地址。 3.4.1.8多播控制域 多播控制域是1字节长度且只有多播标志子域值是1时存在。它分成3个子域如图3.5所示。 比特:0-1 2-4 5-7 多播模式 非成员半径 最低非成员半径 图3.5多播控制域帧格式 3.4.1.8.1多播模式子域 多播模式子域表明无论是使用成员或非成员模式传输该帧。成员模式在目的组成员设备中使用传送多播帧。非成员模式是从不是多播组成员设备到是多播组成员设备换算多播帧。 表3.38多播模式子域值 多播模式域值b0b1 00 01 10 11 域意义 非成员模式 成员模式 保留 保留 3.4.1.8.2非成员半径子域 当不是目的组成员设备转播时,非成员半径域表明成员模式多播范围。接收设备是目的组成员将设置该子域值是最大非成员半径(MaxNonmemberRadius)域的值。如果NonmemberRadius field的值是0,接收设备不是目的组成员时将丢弃该帧,且如果NonmemberRadius域的值是在0x01到0x06范围内,那么将耗尽此域。如果NonmemberRadius域值是0x07表明无限的范围且不能被耗尽。 3.4.1.8.3最大非成员半径(MaxNonmemberRadius)子域 该帧的非成员半径域的最大值。 3.4.1.9源路由子帧域 如果帧控制域的源路由子域的值是1,才存在源路由子帧域。它分成三个子域如图3.6所示。 字节:1 1 可变 应答 计数器 应答索引 应答列表 图3.6源路由子帧格式 3.4.1.9.1应答计数器子域 应答计数器子域表明包含在源路由子帧转发列表里的应答的数值。 3.4.1.9.2转发索引 应答索引子域表明传输的数据包的应答列表子域的下一转发的索引。这个域被数据包的发送设备初始化为0,且每转发一次就加1。 3.4.1.9. 应答列表子域 应答列表子域是节点的2字节短地址的列表,这个域用来为源路由数据包的目的转发。地址是最无意义字节格式(formatted least significant byte first,???)且在源路由中有顺序的出现。 3.4.1.10帧有效载荷域 帧有效载荷的长度是可变的,包含了各种帧类型的具体信息。 3.4.2各种帧类型的格式 定义了两种类型的网络层帧,它们分别是数据帧和网络层命令帧。在下面将对这两种帧类型进行讨论。 本文来源:https://www.wddqw.com/doc/954314e4a2c7aa00b52acfc789eb172ded639939.html