beacon帧

本文深入解析MAC头部各字段的含义与作用,包括版本、帧类型、子类型、目标地址、源地址、BSSID等,并详细阐述帧主体中管理帧、控制帧与数据帧的类型与特点,同时介绍信息元素的概念与应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.MAC头部

解释:

① Version 版本号  目前为止802.11只有一个版本,所以协议编号为0

② Type 00表示管理帧,01表示控制帧,10表示数据帧

③ Subtype 和Type一起表示不同的帧,

Management frame(管理帧:Type=00)a

0000

Association request(关联请求)

0001

Association response(关联响应)

0010

Reassociation request(重新关联请求)

0011

Reassociation response(重新关联响应)

0100

Probe request(探测请求)

0101

Probe response(探测响应)

1000

Beacon(信标)

1001

ATIM(通知传输指示消息)

1010

Disassociation(取消关联)

1011

Authentication(身份验证)

1100

Deauthentication(解除身份验证)

1101~1111

Reserved(保留,未使用)

Control frame(控制帧:Type=01)b

1010

Power Save(PS)- Poll(省电-轮询)

1011

RTS(请求发送)

1100

CTS(清除发送)

1101

ACK(确认)

1110

CF-End(无竞争周期结束)

1111

CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)

Data frame(数据帧:Type=10)c

0000

Data(数据)

0001

Data+CF-ACK

0010

Data+CF-Poll

0011

Data+CF-ACK+CF-Poll

0100

Null data(无数据:未传送数据)

0101

CF-ACK(未传送数据)

0110

CF-Poll(未传送数据)

0111

Data+CF-ACK+CF-Poll

1000

Qos Data c

1000~1111

Reserved(保留,未使用)

1001

Qos Data + CF-ACK c

1010

Qos Data + CF-Poll c

1011

Qos Data + CF-ACK+ CF-Poll  c

1100

QoS Null(未传送数据)c

1101

QoS CF-ACK(未传送数据)c

1110

QoS CF-Poll(未传送数据)c

1111

QoS CF-ACK+ CF-Poll(未传送数据)c

④ To DS:表明该帧是BSS向DS发送的帧; From DS:表明该帧是DS向BSS发送的帧;  More Frag:用于说明长帧被分段的情况,是否还有其它的帧;   Retry(重传域):用于帧的重传,接收STA利用该域消除重传帧;  Pwr Mgt(能量管理域):为1:STA处于power_save模式,0:处于active模式;   More Data(更多数据域):为1:至少还有一个数据帧要发送给STA ;  Protected Frame:为1:帧体部分包含被密钥套处理过的数据; Order(序号域):为1:长帧分段传送采用严格编号方式;

⑤ Duration 表明该帧和它的确认帧将会占用信道多长时间;

⑥ 目的地址

⑦ 源地址

⑧ Bssid

⑨ Sequence Control(序列控制域):由代表MSDU(MAC Server Data Unit)或者MMSDU(MAC Management Server Data Unit)的12位序列号(Sequence Number)和表示MSDU和MMSDU的每一个片段的编号的4位片段号组成(Fragment Number)

⑩ 表示MSDU和MMSDU的每一个片段的编号的4位片段号组成

2、帧主体

管理帧十分灵活。帧主体(frame body)中的大部分数据如果使用长度固定的字段,就称为固定字段(fixed field);如果字段长度不定,就称为信息元素(information element)。所谓信息元素,是指长度不定的数据块(data block)。每个数据块均会标注类型编号和大小,各信息元素的数据字段元素都有特定的解释方式。

 

所显示的Timestamp(时戳)位,可用来同步BSS 中的工作站BSS 的主计时器会

定期发送目前已作用的微秒数。当计数器到达最大值时,便会从头开始计数。(对一个长度64bit、可计数超过580,000 年的计数器而言,很难会遇到有从头开始计数的一天。

 

Beacon interval字段

每隔一段时间就会发出一个Beacon(信标)信号用来宣布802.11网络的存在。Beacon帧中除了包含BSS参数的信息,也包含接入点缓存帧的信息,因此移动式工作站要仔细聆听Beacon信号。此帧长度为16位,用来设定Beacon信号之间相隔多少时间单位。时间单位通常缩写为TU,代表1024微秒(microsecond),相当于1毫秒(millisecond)。Beacon通常会被设定为100个时间单位,相当于每100毫秒,也就是0.1秒传送一次Beacon信号。

 

Capability Info(性能信息)字段,传送Beacon信号的时候,它被用来通告网络具备何种性能。此字段应用于Beacon帧、Probe Response帧,Probe Request帧,每个bit代表一个旗标,对应于网络所具备的特殊功能,工作站会使用这些公告数据来判断自己是否支持该BSS 所有的功能。没有实现性能公告中所有功能的工作站,就无法加入该BSS。

1,2--ESS/IBSS   这两个bit 旗标彼此互斥(mutually exclusive)。基站会将ESS 位设定为1,而将IBSS 布位设定为0,表示基站属于基础网络的一部分。IBSS 中的工作站则会将ESS 位设定为0,而将IBSS 位设定为1。

3--4--:

0 0 基站并不支持中枢协调功能(point coordinationfunction)

0 1 基站使用PCF 来传递,但并不支持轮询

1 0 基站使用PCF 来传递与轮询

1 1 保留,未使用

5--将Privacy bit 设定认1,代表需要使用WEP 以维持机密性。在基础网络中,发送端为基站。在IBSS 里,Beacon 信号必须由IBSS 当中某部工作站负责。

6--短同步信号,802.11g 规定使用短同步信号,因此在依循802.11g 标准所建置的网络中,此位必然设定为1。

7--分组二进制卷积编码

8--机动信道转换,

9--是否支持802.11h协议

10--

11--此bit 若设定为1,代表使用802.11 所支持的较短的时槽。

12--

13--

14--此bit 若设定为1,代表使用802.11g 的DSSS-OFDM 帧构建(frame construction)选项

15--

16--

 

Ssid信息

 

Ap发送帧所支持的速率

 

出现在实体层采用直接顺序技术中

 

数据待传信息,基站会为处于休睡状态的工作站暂存帧。每隔一段时间,基站就会尝试传递这些暂存帧给休眠中的工作站。如此安排的理由是,启动发送器比启动接收器所耗费的电力还要多。802.11的设计者预见未来将会有以电池供电的移动工作站;定期发送暂存帧给工作站的这个决定,主要是为了延长设备的电池使用时间。将TIM(数据待传指示信息)信息元素送到网络上,指示有哪些工作站需要接收待传数据,只是此过程的一部分。

DTIM Count:此位的长度为一个字节,代表下一个DTIM(数据待传指示传递信息)帧发送前,即将发送的Beacon 帧数。

DTIM Period:此位的长度为一个字节,代表两个DTIM 帧之间的Beacon interval 数。0 值目前保留未用。DTIM 会由此期间倒数至0。

Bitmap Control:位可进一步划分为两个次位。Bit 0 用来表示连接识别码0 的待传状态,主要是保留给组播使用。其他七个bit 则是保留给Bitmap Offset(bit对映偏移)次位使用。为了节省频宽,可以通过Bitmap Offset 次位,只发送一部分的虚拟bit 对映。BitmapOffset 是相对于虚拟bit 对映的开头处。利用Bitmap Offset 次位及Length 位,802.11工作站可以推断虚拟bit 对映有哪些部分包括在内。

 

Starting Chaannel:第一信道编号即是符合功率限制的最低信道

Number of Channels:符合功率限制的频段大小,是由信道数来指定。信道大小随PHY 而有所不同。

Max Tx Power:最大传输功率,以dBm 为单位

 

扩展物理层:802.11g 定义了扩展速率物理层(extended rate PHY,简称ERP)。为了兼容早期产品,另外定义了ERP 信息元素

 

Extended Supported Rates 信息元素的作用和的Supported Rates 元素没有两样,不过它允许信息元素的内容超过25 多个字节

 

 

 

802.11n标准中采用A-MPDU聚合帧格式,即将多个MPDU聚合为一个A-MPDU,只保留一个PHY头,删除其余MPDU的PHY头,减少了传输每个MPDU的PHY头的附加信息,同时也减少了ACK帧的数目,从而降低了协议的负荷,有效的提高网络吞吐量,A-MPDU聚合的是经过802.11报文封装后的MPDU,这里的MPDU是指经过802.11封装过的数据帧。通过一次性发送若干个MPDU,减少了发送每个802.11报文所需的PLCPPreamble、PLCPHeader,从而提高系统吞吐量。

A-MSDU技术是指把多个MSDU通过一定的方式聚合成一个较大的载荷。这里的MSDU可以认为是Ethernet报文。通常,当AP或无线客户端从协议栈收到报文(MSDU)时,会打上Ethernet报文头,这里我们称之为A-MSDUSubframe;而在通过射频口发送出去前,需要逐一将其转换成802.11报文格式。而A-MSDU技术旨在将若干个A-MSDUSubframe聚合到一起,并封装为一个802.11报文进行发送。从而减少802.11MAC头的开销,同时减少了应答帧的数量,提高了报文发送的效率。

 

无线客户端支持MCS集:

MCS(Modulation and Coding Scheme,调制与编码策略):

用户对MCS的配置分为三类,配置基本MCS、支持MCS和组播MCS。配置输入的MCS索引是一个范围,即指0~配置值,如输入5,即指定了所要输入的MCS范围为0~5。

基本MCS:基本MCS是指AP正常工作所必须支持的MCS速率集,客户端必须满足AP所配置的基本MCS速率才能够与AP进行连接。

支持MCS:支持MCS速率集是在AP的基本MCS速率集基础上AP所能够支持的更高的速率集合,用户可以配置支持MCS速率集让客户端在满足基本MCS的前提下选择更高的速率与AP进行连接。

MCS调制编码表是802.11n为表征WLAN的通讯速率而提出的一种表示形式。MCS将所关注的影响通讯速率的因素作为表的列,将MCS索引作为行,形成一张速率表。所以,每一个MCS索引其实对应了一组参数下的物理传输速率。

 

MCS索引

空间流数量

调制方式

速率(Mb/s)

800ns GI

400ns GI

0

1

BPSK

6.5

7.2

1

1

QPSK

13.0

14.4

2

1

QPSK

19.5

21.7

3

1

16-QAM

26.0

28.9

4

1

16-QAM

39.0

43.3

5

1

64-QAM

52.0

57.8

6

1

64-QAM

58.5

65.0

7

1

64-QAM

65.0

72.2

8

2

BPSK

13.0

14.4

9

2

QPSK

26.0

28.9

10

2

QPSK

39.0

43.3

11

2

16-QAM

52.0

57.8

12

2

16-QAM

78.0

86.7

13

2

64-QAM

104.0

115.6

14

2

64-QAM

117.0

130.0

15

2

64-QAM

130.0

144.4

可以这样记:空间流量2是1的两倍。

表1-5 MCS对应速率表(40MHz)

MCS索引

空间流数量

调制方式

速率(Mb/s)

800ns GI

400ns GI

0

1

BPSK

13.5

15.0

1

1

QPSK

27.0

30.0

2

1

QPSK

40.5

45.0

3

1

16-QAM

54.0

60.0

4

1

16-QAM

81.0

90.0

5

1

64-QAM

108.0

120.0

6

1

64-QAM

121.5

135.0

7

1

64-QAM

135.0

150.0

8

2

BPSK

27.0

30.0

9

2

QPSK

54.0

60.0

10

2

QPSK

81.0

90.0

11

2

16-QAM

108.0

120.0

12

2

16-QAM

162.0

180.0

13

2

64-QAM

216.0

240.0

14

2

64-QAM

243.0

270.0

15

2

64-QAM

270.0

300.0

 

 

 

 

 

1.      HT20:HT Capability Info字段里会明确注明”Only 20MHz Operation is Supported”,且没有HT Information字段;

2.      HT40:HT Capability Info字段里会明确注明”Both 20MHz and 40MHzOperation is Supported”,且HT Information Element 1字段里会包含有2nd Channel Offset的信息;

3.      HT20/40-20MHz:HT Capability Info字段里会明确注明”Both 20MHz and 40MHzOperation is Supported”,且HT Information Element 1字段里会注明”No Secondary ChannelPresent”;

4.      HT20/40-40MHz:HT Capability Info字段里会明确注明”Both 20MHz and 40MHzOperation is Supported”,且HT Information Element 1字段里会包含有2nd Channel Offset的信息;

 

 

重叠 BSS 扫描 参数:

 

转载于:https://www.cnblogs.com/zhanglinf/p/4584499.html

<think>好的,用户想了解如何捕获和分析无线网络中的Beacon。首先,我需要回忆相关的工具和方法。记得之前看过OpenWrt系统下用tcpdump抓Beacon的例子,应该可以用上。用户提到了引用[1]中的命令,也就是在OpenWrt上用tcpdump指定接口和类型。这个命令的关键是“type mgt subtype beacon”,因为Beacon属于管理的子类型。 接下来,可能需要使用Wireshark进行详细分析,虽然用户没有直接提到,但Wireshark是常用的工具。另外,Linux下的C语言嗅探器在引用[2]中有提到,涉及到以太网结构体的定义,可能需要解释一下如何解析802.11结构。 用户可能需要具体的步骤,比如设置无线接口为监听模式,这在Linux下通常用aircrack-ng工具集的airmon-ng。如果用户是在普通Linux系统而不是OpenWrt上操作,步骤可能略有不同。需要区分不同环境下的工具使用。 另外,用户可能关心如何过滤出Beacon,除了tcpdump的过滤语法,可能还需要解释其他工具如tshark的用法。最后,分析部分需要解释Beacon的结构,比如时间戳、SSID、支持的速率等,这些信息有助于网络分析。 可能还需要提醒用户权限问题,比如需要使用sudo或者root权限来捕获数据包。另外,确保无线网卡支持监听模式,否则可能需要外置网卡。用户可能没有提到这些前提条件,但作为回答的一部分应该包含进去,避免他们在实际操作中遇到问题。 最后,生成相关问题时要考虑用户可能进一步的需求,比如抓取其他类型的、安全分析或性能优化等。这些问题可以帮助用户深入探索网络分析的不同方面。</think>### 捕获和分析无线网络中的Beacon方法 #### 1. **抓取Beacon的工具及方法** **核心工具**: - **tcpdump**:适用于OpenWrt/Linux系统的命令行抓包工具,可指定无线接口和类型过滤[^1] - **Wireshark/tshark**:图形化/命令行工具,支持协议解析和可视化分析 - **aircrack-ng套件**:提供无线网卡监听模式配置和专用抓包功能 **操作步骤**: 1. **设置无线接口为监听模式**(Linux系统): ```bash sudo airmon-ng start wlan0 # 将wlan0切换为监听模式(通常重命名为wlan0mon) ``` 2. **使用tcpdump抓包**(OpenWrt示例): ```bash tcpdump -i wlan0 -n -e type mgt subtype beacon -w beacon.pcap ``` - `type mgt`:限定管理 - `subtype beacon`:过滤Beacon子类型[^1] 3. **使用Wireshark实时分析**: ```bash tshark -i wlan0mon -Y "wlan.fc.type_subtype == 0x08" # 0x08对应Beacon ``` #### 2. **Beacon结构分析** 802.11 Beacon包含以下关键字段: - **时间戳**:协调网络时间同步 - **SSID**:网络名称(可能被隐藏) - **支持的速率**:如$1, 2, 5.5, 11$ Mbps - **信道参数**:工作频率和信道号 - **安全信息**:WPA/WPA2加密方式声明 - **流量指示**:DTIM周期等参数 通过解析这些字段可获取: - 隐藏SSID网络的检测 - AP信号强度(RSSI)分布 - 网络负载评估(通过Beacon间隔时间) #### 3. **数据解析示例(C语言)** 在Linux下可通过原始套接字捕获,并解析以太网头: ```c #include <net/ethernet.h> struct ethhdr *eth_header = (struct ethhdr*) packet_buffer; // 引用net/ethernet.h定义[^2] ``` 对于802.11需注意: - 无线头部比标准以太网多24字节 - 需要识别Frame Control字段中的`Type=Management`和`Subtype=Beacon`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值