MAC802.11数据帧格式
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:表明是否是重发的帧,若是为1,不是为0
*PowerManage:当网络主机处于省电模式时,该标志为1,否则为0.
*Moredata:当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0
*Wep:加密标志,若为1表示数据内容加密,否则为0
*Order 这个表示用于PCF模式下,这里不予讨论
生存周期/Associate ID (2 bytes):
先前不是讲过虚拟载波监听的一个机制么,他的Network Allocation Vector(NAV)就存在这里,这里叫duration,即生存周期。当然不是所有时候这个字段存放的NAV值。在特定类型数据帧中,它也可能表示Associate ID。一旦有主机关联到AP了,AP都会为主机分配一个Associate ID。比如在网络主机通知AP自己要进入省电模式(power saving)的时候,网络主机发给AP的通知数据帧里面,这个域就表示的是Associate ID而不是NAV了。当然还可以通过最高位来判断这个域的含义:
*在15bit为0的时候,该域表示duration
*在15bit为1,14bit为1的时候,表示Associate ID。
序列控制(2 bytes:4 bits/12 bits):这个域分2部分,一个是分片序列号和标识帧列号。分片序列号就是记录分片序号的。比如一个帧A被分片成a1,a2,a3,那么a1,a2,a3这三个分片帧的分片序列分别是0,1,2。这个和IP分段原理一样的,该域占4个比特位。剩下的12个比特位就用于标识帧的序号,这个跟IP头里面的序列号一样。
MAC地址 1-4
这四个地址在不同帧中有不同含义。这些以后会讨论。
以后我们可能会碰到以下类型的mac地址
RA(receiver address):无线网络中,该数据帧的接收者
TA(transmitter address):无线网络中,该数据帧的发送者
BSSID(Basic Service Set ID):在infrastructure BBS中,BSSID就是AP的mac地址。但是在IBBS中,它是一个随机即生成的46位二进制序列,还有最高两位分别是Universal/Local标志位和Individual/Group标志位。IBBS的BSSID中,Universal/Local标志位为1,表示本地MAC,Individual/Group标志位为0,表示是个人MAC。也就是说在IBBS中,BSSID地址应该类如 10xxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx(x表示随机数要么0要么1, 2进制表示)
DA(destine address):该帧的目的mac地址
SA(source address):该帧的源mac地址
这里的DA和SA含义和普通以太网中的含义一样,在无线网络中可能我们需要通过AP把数据发送到其它网络内的某台主机中。但是有的人会奇怪,直接在RA中填这台主机的mac地址不就久好了么。但是请注意RA的含义,说的是无线网络中的接收者,不是网络中的接收者,也就是说这台目的主机不再无线网络范围内。在这种情况下我们的RA只是一个中转,所以需要多出一个DA字段来指明该帧的最终目的地,当然,如果有了DA那必须有SA,因为若目的主机要回应的话,SA字段是必不可少的。(假设没有SA字段,那么目的主机回应的数据包就只能发送到源主机所属的AP上了~)
最典型的一个例子就是在WDS模式下,数据帧会有4个地址,RA,TA表示接收端和发送端,这两个地址用于无线传输的时候。还有2个地址是DA和SA,分别跟以太网中一样表示源地址和目的地址。WDS帧的格式如下图:
打个比方说,AP1有主机A,AP2有主机B。如果A要和B同学,那么A会首先发送数据帧给AP1,然后AP1发送帧给AP2 。这个时候帧里面会有4个地址,分别是RA=mac(AP2),TA=mac(AP1),DA=mac(B),SA=mac(A)。
MAC802.11数据帧格式相关推荐
- WIFI:802.11协议帧格式
802协议桢格式 802.11和Wi-Fi技术并不是同一个东西.Wi-Fi标准是802.11标准的一个子集,并且是Wi-Fi联盟负责管理 802协议桢格式: 协议 发布年份/日期 Op.标准频宽 实际 ...
- 802.11协议帧格式、Wi-Fi连接交互过程、无线破解入门
转自: http://www.cnblogs.com/littlehann/p/3700357.html Linux黑客大曝光: 第8章 无线网络 无线网络安全攻防实战进阶 无线网络安全 黑客大曝光 ...
- MODBUS通讯之数据帧格式解读(附资料下载)
MODBUS通讯之数据帧格式解读(文末可免费下载文档) 一.背景 之前在一个项目上用代码分别实现了Modbus主站和Modbus从站(注:其实官方提供有现成的MODBUS从站库代码,并且支持大多数的嵌 ...
- QIIME 2用户文档. 11数据筛选Filtering data(2018.11)
文章目录 前情提要 QIIME 2用户文档. 11数据筛选 下载实验相关数据 过滤特征表 按数据量过滤 偶然因素的过滤 基于索引的过滤 基于元数据的筛选 基于物种过滤表和序列 过滤序列 过滤距离矩阵 ...
- 双11数据过于完美涉嫌造假?天猫:造谣要负法律责任的哦
双11落下帷幕后,天猫官方实时公布双11最终成交额为2684亿元.随后,一条预测今年双11数据的微博被扒出,该预测数据与天猫公布的数据高度吻合,据此,有网友质疑天猫双11数据造假. 该微博发布于今年4 ...
- 天猫回应“双11数据造假”:已启动司法流程;小米折叠手机专利曝光;ASP.NET感染勒索软件|极客头条...
整理 | 郭芮 出品 | CSDN(ID:CSDNnews) 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头 ...
- android11obb,exagear安卓11数据包obb
软件简介 exagear安卓11数据包obb是一款独特的模拟器程序.软件有着很经典的游戏可以进行下载运行的,而且这些游戏通过它就可以在手机上进行体验到了.对于需要的用户来说有着很优质的服务体验.需要的 ...
- android11obb,exagear安卓11数据包obb合集版
exagear安卓11数据包obb合集版能够在手机上模拟端游游戏,兼容性特别的强大,可以运行非常多的大型游戏,想要玩端游在手机上就来这里体验吧. exagear安卓11数据包obb合集版特色: 1.模 ...
- 以太网 VLAN数据帧格式、交换机接口类型介绍、u和t的区别和作用
2.8.2 以太网 VLAN(VLAN数据帧格式.交换机接口类型) 原始的以太网数据帧没有802.1QTag字段,在网络中进行转发的时候能够被主机接收.解封查看. 而一但有了802.1Q Tag字段的 ...
最新文章
- Linux CENTOS7 Linux网络性能测试工具-iperf 安装过程以及示例!
- hadoop1.x 与hadoop2.x 架构变化分析
- python需要多久-在传智播客培训python需要多久?
- java -jar 启动优化_Android 8.1 启动时间优化--耗时分析
- php min命令,php min函数怎么用?
- 看看我们的程序猿寻常都爱看些什么好书?
- MyBatis官方文档——XML配置部分
- 三菱工控板底层源码_三菱PLC实例代码开源PLC项目源代码参考程序百度云资源下载...
- 四阶龙格库塔法的基本思想_四阶龙格库塔实验报告
- UltraCompare v21.00分析
- 华为手机的快应用是什么?如何使用快应用?
- Redhat之NIS
- angular directive 入门
- ubuntu16.04 安装Anbox
- 牛客网:智力题+判断推理+数量关系(1)
- 2023陆军工程大学计算机考研信息汇总
- connect ETIMEDOUT......
- 基因组层次聚类实战小案例
- Xcode12编译报错 “building for iOS,but linking in object file built for iOS Simulator”
- kingcms留言模块修改