要想理解Wi-Fi的真正工作原理,除了了解前面我写的Wi-Fi网络结构,网络连接过程,还需要详细了解Wi-Fi的帧结构。
本文对帧的一般结构做详细介绍,后面内容的会在后续文章继续。
Wi-Fi帧的分类
Wi-Fi的帧从大类上分为三类:
1.数据帧
数据帧,顾名思义,就是我们在联网中要传输的数据,就好比公路运输中要运输的货物。
2.控制帧
功能:控制帧通常与数据帧搭配使用,负责区域清空, 信道获得, 载波侦听, 肯定确认等。
相对有线传输,无线传输只有有限的几个信道。如果大家在同一信道上同时发射,这样接收机就不知道接受谁的数据。就像在一个大的教室里面,所有的同学一起回答老师的问题,老师无法确定是哪个同学回答的,也听不清楚。这时候就需要有一个同学比如班长来协调。让同学轮流的发言。控制帧就相当于这个协调的同学(班长)。
3.管理帧
主要功能:接入和退出无线网络以及处理接入点之间关联的转移。
无线网络和有线网络不一样,有线网络天然就带有连接管理。如果你家的网线不插入对应的交换机网口里面就不能上网。但无线网络不一样,只要有无线网卡,大家都可以接受到Wi-Fi信号,这个时候就要对接入点进行管理,管理帧的功能就是管理接入的Wi-Fi终端。
上图是一般的帧格式,Wi-Fi的帧分为两部分组成:MAC头部+frame body,其中MAC是固定格式的,frame body是可变长度,遵循TLV(Type length value)格式。
MAC头部有frame control,duration,address1,address2,address3,和sql-ctl字段组成。
我们首先看下frame control字段,这个字段是分析Wi-Fi最重要的一个字段。
Frame control1) Protocol Version: (协议版本)通常为0
2) Type: 帧类型,管理帧00,控制帧: 01,数据帧10。
3) Subtype: 帧的子类型,每种大类帧又分为多个小类
4)To DS: 管理帧和控制帧都是0,数据帧表示是从发往AP的
5)From DS: 管理帧和控制帧都是0,数据帧表示是从AP发来的
6)More Fragment: 用于说明长帧被分段的情况,是否还有其它的帧,如果有则该值设置为1。
7)Retry(重传域): 表示该分段是先前传输分段的重发帧。
8)Power Management: 表示传输帧以后,站所采用的电源管理模式,1表示终端处于节能状态,0表示处于正常状态
9)More Data: 表示有很多帧缓存到站中。即至少还有一个数据帧要发送给STA是设置为1
9)Protected Frame: 1表示是加密的数据帧。
10) Order(序号域): 在长帧分段传送时,该域设置为1表示接受者应该严格按照顺序处理该帧,否则设置为0。
Frame control字段定义了帧的类型,子类型,从哪里发来的,电源管理,是否加密等重要状态信息,
是我们分析Wi-Fi帧的重要字段。
Duration/ID(持续时间/标识)表明该帧和它的确认帧将会占用信道多长时间。跟有线传输不一样。在WiFi的网络环境下,每个数据发送者都要轮流的使用信道才不会引起冲突。发送者在这个字段写明了它的数据发送将要占用多长的信道时间,这样可以有利于后续的发送者发送数据。
Address Fields(地址域):地址域有三个,Address Fields1表示接受者的MAC地址,Address Fields2表示发送者的MAC地址,Address Fields3表示Wi-Fi的BSSID,一般情况下都是AP的MAC地址。这三个域和不同的帧类型有细微的区别。
sql-ctl(Sequence Control)字段:顺序控制字段:主要用于过滤重复帧。
(未完待续)
郑重声明:本文作品为原创,如转载须注明出处“百家号:物联网电子世界”。