LV02-01-天猫精灵IOT-02-WiFi-04-WiFi帧格式

本文主要是WiFi——WiFi帧格式相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
Windows版本 windows11
Ubuntu版本 Ubuntu22.04的64位版本
VMware® Workstation 16 Pro 16.2.3 build-19376536
终端软件 MobaXterm(Professional Edition v23.0 Build 5042 (license))
点击查看本文参考资料
分类 网址 说明
官方网站 阿里云 阿里云官网主页
阿里生活物联平台 生活物联网平台(飞燕平台)主页
AliGenie 天猫精灵开放平台AliGenie主页
阿里物联网平台 阿里物联网平台主页
Bluetooth 技术网站 蓝牙协议规范什么的可以来这里找
Telink Telink | Chips for a Smarter IoT (telink-semi.com)
Telink中文官网
开发手册 AliOS Things开发指南 AliOS Things开发指南,这里是最新版本,可以直接从官网找到
AliOS Things开发指南 AliOS Things应用开发指南,这里应该是3.3版本的完整开发文档
AliOS Things开发指南(3.0) AliOS Things应用开发指南,这里应该是3.0版本的完整开发文档
生活物联网平台开发文档 生活物联网平台(飞燕平台)开发文档
《设备端开发指南》
Wi-Fi IoT品类定义与功能开发 天猫精灵IoT开放平台——Wi-Fi IoT品类定义与功能开发
硬件平台 mk3080 WiFi开发板 WiFi开发板使用指南-阿里云开发者社区
esp8266开发板 一个教程:ESP8266-NodeMCU开发板详解-太极创客 (taichi-maker.com)
TLSR8258 Datasheet Datasheet for Telink BLE + IEEE802.15.4 MultiStandard Wireless SoC TLSR8258
参考资料 AliOS Things 3.0 应用开发指南 这个只是一篇参考文章,里面是一些环境搭建相关的,可以参考
IP知识百科 - 华为 (huawei.com) IP的一些相关知识点
点击查看相关文件下载
分类 网址 说明
蓝牙规范相关文档 Core Specification 5.2 核心规格 5.2,该规范定义了创建可互操作的Bluetooth 设备所需的技术。
《Core_v5.2.pdf》
Mesh Model(v1.1) 本Bluetooth 规范定义了模型(以及它们所需的状态和消息),这些模型用于在mesh 网络中的节点上执行基本功能,超出了Bluetooth Mesh 配置文件 规范中定义的基础模型。
本规范包括定义跨设备类型标准功能的通用模型,以及支持关键mesh 场景的模型,如照明控制、传感器、时间和场景。
《MshMDL_v1.1.pdf》
Mesh Profile(v1.0.1) 该Bluetooth 规范定义了基本要求,以实现可互操作的mesh 网络解决方案,用于Bluetooth 低能量无线技术。
《MshPRFv1.0.1.pdf》
Mesh Device Properties 本规范包含Bluetooth Mesh 配置文件 和Bluetooth Mesh 模型规范所要求的设备属性的定义。
但是跟之前的有些区别,我主要看的之前的版本:《MMeshDeviceProperties_v1.2.pdf》
GATT Specification Supplement GATT Specification Supplement | Bluetooth® Technology Website。
好像可以在线看:《GATT Specification Supplement》
Assigned Numbers GATT的一些类型定义可以在这里找。
AliOS Things alios-things/AliOS-Things Gitee上的AliOSThings SDK源码仓库
alibaba/AliOS-Things GitHub上的AliOSThings SDK源码仓库
天猫精灵蓝牙Mesh协议栈 alibaba-archive/genie-bt-mesh-stack GitHub上的天猫精灵蓝牙Mesh协议栈源码仓库。
之前是在alibaba/genie-bt-mesh-stack这个仓库。
写笔记的时候最新提交为faf523618a6a2560090fc423222b9db80984bb7a
蓝牙Mesh设备开发指南 阿里云生活服务平台开发手册——蓝牙设备开发一节中的内容

一、802.11帧类型

  • 数据帧

  • 控制帧

竞争期间的握手通信和正向确认(例如RTS信道预约、CTS预约成功、ACK等)、结束非竞争期等,通常与数据帧搭配使用, 负责区域清空, 信道获得,载波侦听, 肯定确认等

  • 管理帧

用于STA与AP之间协商、关系的控制,如关联、认证、同步等。如加入和退出无线网络以及处理接入点之间关联的转移。

二、WiFi帧通用格式

image-20231216225947315

注意这个Frame Control不一定每种帧都有。

三、WiFi数据帧格式

WiFi数据帧一般格式如下:

image-20231216230049047

Frame Control中的To DS和From DS位,和数据帧的addressx取值情况如下:

image-20231216230058407
  • Wi-Fi数据帧(携带数据)
1
2
3
4
Data                   :最简单的数据帧。用于无竞争/有竞争阶段 
Data + CF-ack :仅用于无竞争阶段。除了携带数据外,该帧还携带对刚收到数据的确认
Data + CF-poll :被AP用来传递数据给移动节点;请求移动节点发送一个可能被缓存的数据帧。
Data + CF-ack + CF-poll:把上述功能结合在一个帧中
  • Wi-Fi数据帧(不携带数据,一般是在省电模式中使用)
1
2
3
4
Null function       : 能量管理帧中由AP指示节点进入节能状态
CF-ack (no data)
CF-poll (no data)
CF-ack + CF-poll (no data)

四、WiFi控制帧格式

1. 基本格式

image-20231216230444578

就是前面的Frame Control帧,当是数据包是一个控制帧的时候,除了Protocol 和Type这两个字段,剩下的都不需要,全为0,控制帧只有头没有body部分。

2. 有哪些控制帧

控制帧的类型有如下几种:

  • Ack:确认帧
image-20231216231530736
  • BlocK Ack:批量确认帧

有时候大量的数据都需要确认帧的话,每一次都需要回复一个确认帧就会影响效率,所以会有批量确认帧,一般格式如下:

image-20231216231548055
  • RTS(请求发送)
image-20231216231727005
  • CTS(清除发送)
image-20231216231751754
  • Power save-poll:发自某个节点(可能在睡眠状态);请求AP发送被缓存的帧。
  • CF-end:通告无竞争阶段的结束。
  • CF-end + CF-ack:确认CF-end。

五、WiFi管理帧格式

1. 基本格式

image-20231216231859106

各个字段的含义如下:

image-20231216232038265

2. 有哪些管理帧

  • Probe request

用来获取AP或者其他节点的信息,STA站点主动扫描AP的时候会发出Probe request探测帧。一般格式如下:

image-20231217083000178
  • Probe response

对Probe request请求的响应,AP路由器发出。一般格式如下:

image-20231217083435055
  • Beacon

被动扫描的时候,AP建立时序同步功能而定期发送的管理帧。我们在软件抓到的包中,是可以看到这个Beacon帧发送间隔的:

image-20231217083955272

Beacon帧一般格式如下:

image-20231217083455113

我们来看一下Capability Info字段,它代表了路由器的一些能力信息,它有2个字节,就是16位,每个位代表的含义如下:

image-20231217083544481
  • Association request

移动节点向BSS内的AP请求关联。

image-20231217083636075
  • Association response

AP接受移动节点的关联请求。

image-20231217083647117
  • Re-association request

当移动节点离开当前BSS而进入另一个BSS时必须向新BSS的AP请求关联,新AP据此和老AP协商数据帧的转发。

  • Re-association response

新AP接受移动节点的关联请求。

  • Dissociation

终止一个关联。