802.11协议分析

版权声明:本文为原创文章,未经作者允许不得任何个人、组织、机构以任何形式与名义进行转载 https://blog.csdn.net/qq_23217779/article/details/88876163

DU(Data Unit) 数据单元,信息传输的最小数据集合

传递过程逐层封装(Rncapsulation)

SDU (Service Data Unit) / PDU (Protocol Data Unit)

MSDU--->MIC--->分帧--->添加IV--->加密--->添加mac头--->MPDU

MPDU/PSDU+物理头=PPDU--->RF发射

802.11 MAC头部结构

802.11

Protocol Version (2bit)

802.11协议版本,始终为0,1,2,3

Type (2bit)

规定帧的具体用途(3种帧类型)

控制帧(1)

数据帧(2)

管理帧(0)

SubType (4bit)

每个类型对应多个子类型,协议规定不同类型/子类型的帧完成不同功能的操作

To DS / From DS (1/1bit)

    标识帧的传输方向,传向DS或者来自DS,这两个字段的值决定着MAC头中四个Address字段的不同定义

0X00:出现在IBSS环境中 (可能是Management帧或者是Control帧类型),或者是STSL(Station To Station Link)中间两个STA通信,这种情况下通信不通过AP

0X01:表示Data帧从AP向STA传递

0x02:标识Data帧从STA向AP传递

0x03:表示两个AP间通信,这是典型的WDS(Wireless Distribution System)环境下AP间的通信,或者表示Mesh环境下MP间的通信,只有此时才会使用到Address4字段

 

More Frag(1bit) 表示是否还有后续帧

    值为1时表示有后续分段,可能是Data或者Management帧类型,只有单播接收地址会被分段

Retry(1bit)重传

    值为1时标识重传帧,可能是Data或者Management帧类型接收端进程使用此值防止帧重复

Power Mgnt(1bit) 活动模式(0)/省电模式(1)

    STA处于省电模式时,向关联的AP发送该值为1的帧(AP从不使用此字段),省电模式下STA不接收数据,发送给它的Data帧由AP暂时缓存

 

More Data (1bit)

    当AP缓存了至少一个MSDU时,会向省电模式的STA发送该值为1的帧,表示有数据要传输给STA,接收到此帧的STA唤醒自己并向AP发送PS-Poll帧,取回由AP为其缓存的数据,也被用于AP有更多的广播/多播帧需要发送的情况

 

Protcted Frame (1bit)

    可能是Data 或者 Management帧类型,标识MSDU是否被加密,也被用于表示PSK身份验证Frame#3帧,数据载荷为空时 该字段值为0

Order (1bit)

    在非QoS帧的情况下,值为1表示数据必须按严格顺序处理 通常为0

 

Duration/ID (16bit)

    所有的Control帧都使用该字段,其作用随Type/SubType变化有所不同

         帧类型为PS-Poll(type:1,subtype:10)时,表示STA关联的AID(association identity)

    其他情况下,该字段作为一种载波侦听机制,表示接收下一帧之前需要保持时间间隔,用于NAV(Network Allocation Vector) 计算,单位是微秒

 

MAC Layer Address

    BSSID:Basic Server set ID  踏实BSS的二层唯一标识,Infrastructure模式中BSSID就是AP的MAC地址,当AP支持多BSS时,随机生成每个BSSID

 

Sequence Control (16bit)

    包含两个字段:Sequence Number和Fragment Number

    Sequence Number是每个帧的编号,范围是0-4095 以1为步长递增,在帧被分段的时候,同意帧中不同分段的Sequence Number相同

         Fragment Number是被分段的帧用于标识分段位置顺序的编号,数值范围是0-15,以1为步长递增

FCS (32bit)

    发送端对全部MAC包头和Frame Body内容进行CRC计算,计算结果既为FCS(Frame Check Sequence)值,接收端进行同样的计算,结果一致时,则接收端向发送端返回ACK,否则丢弃帧(只对单播帧有效FCS错误的广播/多播可能被接收)

  wireshark在抓包时已经删除了FCS值

 

Frame Body(变长)

    数据字段,未加密的最大MSDU长度为2304字节(其中包含最大256字节的上层头信息和可以被传递的数据2048字节),不同的加密方法会增加一定的内容长度

         WEP: 8bytes--->2312bytes

    TKIP(WPA1):20bytes--->2324bytes

    CCMP(WPA2):16bytes--->2320bytes

    [*]Conteol类型的帧没有Frame Body的内容

 

猜你喜欢

转载自blog.csdn.net/qq_23217779/article/details/88876163