第三章:zigbee学习笔记之物理层和mac层帧格式分析
本文原地址:https://blog.csdn.net/tainjau/article/details/81634681
IEEE802.15.4工作组致力于无线个人区域网络(wireless personal area network, WPAN)的标准化工作,制定的IEEE802.15.4标准规定了WPAN网络的物理层(PHY)和媒体访问层(MAC)
那么接下来的物理层和mac层都是以IEEE802.15.4标准来学习的。
文档下载路径在:https://download.csdn.net/download/tainjau/10578440,里面包含了上述文档和zigbee网络层应用层的资料。
zigbee相关文章链接:
第一章:zigbee学习笔记之简介(上)
第二章:zigbee学习笔记之简介(下)
第三章:zigbee学习笔记之物理层和mac层帧格式分析
第四章:zigbee学习笔记之网络层帧格式分析(上)
第五章:zigbee学习笔记之网络层帧格式分析(下)
【ember zigbee】zigbee协议栈相关文档学习笔记系列
1、PHY层
PHY层的数据包分为SHR,PHR和PHY Payload
SHR(Synchronization Header):用于同步数据的
PHR(Physical Header):包含了帧长度信息
PHY Payload:包负载,即实际内容(发送给接受设备的数据和命令)
2、MAC层
MAC Frame定义了四种结构如下:
信标帧、数据帧、应答帧和MAC命令帧。
帧类型是由MAC层前面的Herder中的2个字节的FrameControl来决定的。
除此之外,FrameControl控制字段还有其他用途,相应位代表的意思如下:
其中:第0-2位表示帧类型:000:信标帧、001:数据帧、010:应答帧、011:命令帧。
第3位表示安全使能:体现在该帧是否有密锁保护MAC的有效载荷。
第4位表示数据待传:1:表述当前数据还没传输完成,发送端还要接着传输数据给接收 端,因此接受设备还需要发送请求来获取数据。
第5位表示确认请求:1:表示接受设备在接受到该帧的时候,需要回复一个确认帧来表述接收到数据。
第6位表示网内/网际:表示是否在同个PAN网络中传输数据。
第10-11位和14-15为表示目的/源地址模式,00:没有目的地址,01:预留,10:16位的短地址,11:64位的长地址。
2.1、Beacon frame
其中Beacon Payload对于NWK层是可选域。
简单来说,信标帧用于同步网络中的设备。在信标网络中,协调器通过向网络中的所有从设备发送信标帧,以保证这些设备能够同协调器进行同步(同步工作和同步休眠),以达到网络功耗最低(非信标模式只允许ZE进行周期性休眠,ZC和所有ZR必须长期处于工作状态)。
这里我截取一段抓包器抓到的beacon包的数据,可以看到超帧描述(superframe specification)、保护时隙域(GTS Fields)和未处理地址区域(Pendling Address Filelds)这几个区域还是有很多细节要讨论的,这里我现在也不是很了解,留在将来学习吧。
2.2、Data frame
下图是MAC层数据协议单元(MPDU)的通用帧格式。 数据帧由高层(应用层)发起,在ZigBee设备之问进行数据传输的时候,要传输的数据由应用层生成,经过逐层数据处理后发送给MAC层,形成MAC层服务数据单元(MSDU)。通过添加MAC层帧头信息和帧尾,便形成了完整的MAC数据帧MPDU,其帧结构如下图所示。
2.3、Ack frame
最简单的MAC帧,不包含任何Payload,向发送设备表示已经正确的接收了相应的信息。Ack帧非常小,只有5个字节。
还记得之前提到过的FrameControl控制段中的第5位表示确认请求位吧。这位如果被设置成1时,那么接收端收到之后,就需要回复一个ack,来表述接受到数据了。
看一下Ack的数据帧
2.4、MAC Command Frame
Mac命令帧是细化了通用MAC帧的帧载荷域,是这几种帧格式中较为复杂的
在ZigBee网络中,为了对设备的工作状态进行控制,同网络中的其他设备进行通信,MAC层将根据命令类型生成相应的命令帧。
区别命令帧的关键在于命令帧标识符(command Type)描述如下:
由于每个命令帧后面的载荷所携带信息不同,这里我就不做一一记录了。关于物理层和MAC层,还是基于《IEEE Std 802.15.4-2003》文档。
将来还是得买一本关于这类的书来学习比较稳妥。
http://www.taodudu.cc/news/show-3694019.html
相关文章:
- MAC层与llc层的区别
- 以太网 MAC子层
- LTE RLC/MAC层作用学习
- [4G5G专题-95]:MAC层- 调度 - 无线资源调度概述
- MAC层总结
- 以太网MAC层基础知识学习
- 【图解计算机网络】物理层和MAC层的亲密关系
- [4G5G专题-56]:L2 MAC层-逻辑信道到物理信道的映射、MAC层包或PDU格式、MAC层复用与解复用
- 二、MAC层和MAC地址
- 网络协议 3 - 物理层 和 MAC 层
- 物理层和Mac层的区别
- MAC层与llc层的大不同
- 计算机网络-物理层、MAC层
- LTE MAC层
- 1.数据链路层(MAC层)
- MAC层
- 以太网的MAC层
- Repeater重放攻击
- java数据包重放攻击代码实现,Web服务的重放攻击的一点想法
- 会话重放攻击
- 登录重放攻击_什么是重放攻击Replay attack
- ETHW重放攻击
- session 重放攻击_关于接口的重放攻击
- 记录一次小项目中的重放攻击与解决方案
- https能防重放吗_HTTPS如何防止重放攻击?
- 打造千万级流量秒杀第十课 Web 安全:如何解决重放攻击和 XSS 注入?
- 【API 接口设计】重放攻击
- 重放攻击及抗重放
- Web安全防范--防止重放攻击
- java防攻击_Java请求中关于如何避免防重放攻击
第三章:zigbee学习笔记之物理层和mac层帧格式分析相关推荐
- 王道《计算机网络》第三章数据链路层 学习笔记
数据链路层 链路层的功能 链路层的两种信道 局域网.广域网 链路层的设备 数据链路层的功能概述 数据链路层的基本概念 结点:主机.路由器 链路:网络中两个结点之间的物理通道,根据传输介质的不同分为有线 ...
- 第三章 分组-学习笔记
第三章 分组 # 导入需要的模块 import numpy as np import pandas as pd 一.分组模式及其对象 1. 分组的一般模式 分组操作常见于生活中,例如: 1.按照 性 ...
- head first python(第三章)–学习笔记
1.介绍基础文件,输入,输出 open() 打开文件,一次传入一行数据,可以结合for循环和readline()来使用 close() 用来关闭open打开的文件 the_file = open('s ...
- ZigBee学习笔记——(三)ZigBee无线传感器网络通信标准
第三章 ZigBee无线传感器网络通信标准 一.ZigBee 标准概述 二.ZigBee 技术特点 三.ZigBee 协议框架 四.ZigBee 网络层规范 五.ZigBee 应用层规范 六.ZigB ...
- Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25
Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...
- 传感器自学笔记第十一章——三色RGB学习笔记+高感度声音检测模块+KY-010光遮断传感器+TCRT5000循迹传感器+倾斜模块
作者:GWD 时间:2019.06.28 三色RGB学习笔记(开关量类传感器) 一.学习要点:无 二.手册分析(开关量传感器) 1.产品用途:RGB LED 模块由一个贴片全彩 LED 制成,通过 R ...
- Zigbee学习笔记
作为一个硬件从业人员,虽然不是从事物理网行业的,但是多少得了解一些,以下是笔者最近学习Zigbee的笔记,包含了Zigbee基本知识,正确的学习方法. Zigbee无线传感网络 先搞清楚IEEE802 ...
- 计算机网络学习笔记之物理层
计算机网络学习笔记之物理层 通信基础 背景知识 基本概念 数据.信号与码元 信源.信道与信宿 速率.波特与带宽 ★ \bigstar ★ 奈奎斯特定理(奈式准则)与香农定理 ★ \bigstar ★ ...
- 第三章 进程管理笔记
第三章 进程管理笔记 20135109 高艺桐 3.1进程 1.程序本身并不是进程,进程是处于执行期的程序以及相关资源的总称. 2.执行线程,简称线程,是进程中活动的对象.每个线程都拥有一个独立的计数 ...
最新文章
- UVA 10746 Crime Wave - The Sequel
- 汇编: 使用ds data
- linux 入门教程
- 场景文字识别的算法创新与应用,来自百度的技术前沿
- 移动端页面rem+media写法过程
- electron 打开调试_构建基于 iOS 模拟器的前端调试方案
- 安装erlang没有bin文件夹_RabbitMQ的安装和使用
- Tableau可视化学习笔记:day03-04
- linux内核syscall_define6,linux中添加系统调用
- RS-485 通讯协议简介
- ORB_SLAM2编译build_ros.sh时报错([rosbuild] Error from directory check: /opt/ros/kinetic/share)
- IT人的求职技巧 中山大学新炬网络校园宣讲会
- 机器人设计之一简单机械设计
- UVa12325 宝藏
- 社区疫情防控的微信公众号文章排版必备素材集锦
- 【C++】栈的应用:逆波兰式的实现
- CUDA PTX ISA阅读笔记(一)
- java英语自我介绍_java自我介绍英语口语
- VC2008 Redist依赖安装 win10下报1935失败解决
- 多渠道归因分析:python实现马尔可夫链归因(三)