Zibgee:安全及物理层、控制层细节
zigbee安全:
根据实际应用,zigbee提供3种不同的安全模式:
- 非安全模式:不提供安全服务,对传输数据无安全保护
- ACL模式:MAC层有能力判断收到的帧是否来自可信方(可信方名单实现定义),这种模式并不对数据信息进行密码保护
- 安全模式:主要提供以下四种服务
- 接入服务:类似acl安全模式
- 数据加密:通过对称密钥保护所传送的数据(被加密的数据通常为:信标载荷,命令载荷,数据载荷),使用AES128位加密
- 帧完整性检验:利用“信息完整代码(MIC)”来保护数据
- 有序刷新:采用规定的接收帧顺序对帧进行处理。当接收一个帧信息后,得到一个新的刷新值,将该值与前一个刷新值比较,如果新的更新,校验成功,替换前一刷新值;反之,校验失败。该服务能保证设备接收的数据信息总是最新的数据信息
协议层细节:
物理层:
物理层直接使用的IEEE 802.15.4的物理层
通信频率在物理层来规范,ZigBee根据不同的国家和地区为其提供不同的工作频率范围,ZigBee所使用的频率范围分别为2.4GHz和868/915MHz。
因此,IEEE 802.15.4定义了两个物理层标准,分别是2.4GHz物理层和868/915MHz物理层。
两个物理层都基于直接序列扩频(DSSS,Direct Sequence Spread Spectrum)技术,使用相同的物理层数据格式,区别在于工作频率、调制技术、扩频码片长度和传输速率的不同。
2.4GHz波段为全球统一、无须申请的ISM频段,有助于ZigBee设备的推广和生产成本的降低。2.4GHz的物理层通过采用16相调制技术,能够提供250kb/s 的传输速率,从而提高了数据吞吐率,缩短了通信时延和数据收发的时间,所以更加省电。
信道编号 | 中心频率/MHz | 信道间隔/MHz | 频率上限/MHz | 频率下限/MHz |
---|---|---|---|---|
k=0 | 868.3 | 868.6 | 868.0 | |
k=1,2,3…10 | 906+2(k-1) | 2 | 928.0 | 902.0 |
k=11,12,13…26 | 2401+5(k-11) | 5 | 2483.5 | 2400.0 |
物理层数据包由同步包头、物理层包头和物理层载荷3部分组成:
- 同步包头由前向同步码(前导码)和数据包(帧)定界符组成,用于获取符号同步、扩频码同步和帧同步,也有助于粗略的频率调整;
- 物理层包头指示净荷部分的长度;
- 物理层净荷部分含有MAC层数据包,净荷部分的最大长度是127字节。如果数据包的长度类型为5字节或大于8字节,那么物理层服务数据单元(PSDU)携带MAC层的帧信息,即MAC层协议数据单元。
4字节 | 1字节 | 1字节 | 变量 | |
---|---|---|---|---|
前同步码 | 帧定界符 | 帧长度(7位) | 预留位(1位) | PSDU |
同步包头 | 物理层包头 | 物理层净荷 |
介质接入控制子层:
介质接入控制子层直接使用了IEEE 802.15.4的介质接入控制子层
MAC子层数据包由MAC子层帧头(MHR,MAC Header)、MAC子层载荷和MAC子层帧尾(MFR,MAC Footer)组成。
2字节 | 1字节 | 0/2字节 | 0/2/8字节 | 0/2字节 | 0/2/8字节 | 可变 | 2字节 |
---|---|---|---|---|---|---|---|
帧控制 | 序列号 | 目的PAN标示符 | 目的地址 | 源PAN标示符 | 源地址 | 帧载荷 | FCS |
MHR(MAC层帧头) | MAC载荷 | MFR |
- MAC子层帧头由2字节的帧控制域、一字节的帧列号域和最多20字节的地址域组成。帧控制域指明了MAC帧的类型、地址域的格式以及是否需要接收方确认等控制信息;帧序号域包含了发送方对帧的顺序编号,用于匹配确认帧,实现MAC子层的可靠传输;地址域采用的寻址方式可以是64位的IEEE MAC 地址或者8位的ZigBee网络地址。
- MAC子层载荷,其长度可变,不同的帧类型包含不同的信息,如MAC子层业务数据单元(MSDU,MAC Service Data Unit);但整个MAC帧的长度应该小于127字节,其内容取决于帧类型。IEEE 802.15.4的MAC子层定义了4种帧类型:广播(信标)帧、数据帧、确认帧和MAC命令帧。只有广播帧和数据帧包含了高层控制命令或者数据,确认帧和MAC命令帧则用于ZigBee设备间与MAC子层功能实体间控制信息的收发。
- MAC子层帧尾含有采用16位CRC算法计算出来的帧校验序列(FCS,Frame Check Sequence),用于接收方判断该数据包是否正确,从而决定是否采用ARQ进行差错恢复。
- 广播帧和确认帧不需要接收方的确认;
- 数据帧和MAC命令帧的帧头包含帧控制域,指示收到的帧是否需要确认,如果需要确认,并且已经通过了CRC校验,接收方将立即发送确认帧,若发送方在一定时间内收不到确认帧,将自动重传该帧,
- 这就是MAC子层可靠传输的基本过程。