802.11 帧格式解析 2012-02-13 0 个评论 收藏 我要投稿 1 MAC802.11 数据帧格式 首先要说明的是mac802.11 的帧格式很特别,它与TCP/IP 这一类协议不同,它的长度是可变的。不同功能的数据帧长度会不一样。这一特性说明mac802.11 数据帧显得更加灵活,然而,也会更加复杂。mac 802.11 的数据帧长度不定主要是由于以下几点决定的 1.1 mac 地址数目不定,根据帧类型不同,mac 802.11 的mac 地址数会不一样。比如说 ACK 帧仅有一个mac 地址,而数据帧有 3 个mac 地址,在 WDS 模式(下面要提到)下,帧头竟然有 4 个mac 地址。 1.2 802.11 的管理帧所携带的信息长度不定,在管理帧中,不仅仅只有一些类似于 mac 地址,分片标志之类的这些信息,而且另外还会包括一些其它的信息,这些信息有关于安全设置的,有关于物理通信的,比如说我们的SSID 名称就是通过管理帧获得的。AP 会根据不同的情况发送包含有不同信息的管理帧。管理帧的细节问题我们会在后面的文章中讨论,这里暂时跳过。 1.3 加密(wep,wpa 等)信息,QOS(quality of service)信息,若有加密的数据帧格式和没有加密的数据帧格式还不一样,加密数据帧格式还多了个加密头,用于解密用。然则 QOS 也是同样道理。 竟然 mac 802.11 数据帧那么复杂,我们就先从通用的格式开始说吧 帧控制(2 bytes): 用于指示数据帧的类型,是否分片等等信息,说白了,这个字段就是记录了mac 802.11 的属性。 *Protocol version:表明版本类型,现在所有帧里面这个字段都是0x00 *Type:指明数据帧类型,是管理帧,数据帧还是控制帧 *Subtype:指明数据帧的子类型,因为就算是控制帧,控制帧还分RTS 帧,CTS帧,ACK 帧等等,通过这个域判断出该数据帧的具体类型 *To DS/From DS:这两个数据帧表明数据包的发送方向,分四种可能情况讨论 **若数据包 To DS 为 0,From DS 为 0,表明该数据包在网络主机间传输 **若数据包 To DS 为 0,From DS 为 1,表明该数据帧来自 AP **若数据包 To DS 为 1,From DS 为 0,表明该数据帧发送往 AP **若数据包 To DS 为 1,From DS 为 1,表明该数据帧是从 AP 发送自 AP 的,也就是说这个是个WDS(Wireless Distribution System)数据帧,至于什么是WDS,可以参考下这里的介绍 #传送门 *Moreflag:分片标志,若数据帧被分片了,那么这个标志为 1,否则为 0 *Retry...