ESP8266开发之旅 进阶篇⑨ 深入了解 802.11 无线协议(非常重要)

授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。

共同学习成长QQ群 622368884,不喜勿加,里面有一大群志同道合的探路人

快速导航
单片机菜鸟的博客快速索引(快速找到你要的)

如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。

1. 前言

博主在 ESP8266开发之旅 网络篇⑥ ESP8266WiFiGeneric——基础库 中提到了一个 函数 onSoftAPModeProbeRequestReceived —— AP模式下收到探针请求,相信很多初学者非常疑惑——ProbeRequest是什么?它又有什么作用?

这就要涉及到我们本篇需要谈及到的 IEEE802.11 无线协议。

注意

  • 本篇涉及到TCP IP协议的相关知识,请读者自行查阅相关资料。

2. WLAN拓扑结构

在讲解 802.11协议前,我们需要先了解一下 WLAN拓扑结构。

首先,我们需要理解一下 STA 和 AP的区别,请自行参考博主以前的文章。而针对它们的组合方式又分为三种拓扑结构:

  • 独立的基本服务集网络(IBSS,也叫做Ad-Hoc
  • 基本服务集(BSS)网络
  • 扩展服务集(ESS)网络

2.1 IBSS —— 无AP

在这里插入图片描述

  • 由无线工作站STA组成,目前我没有用过;

2.2 BSS —— 有AP

在这里插入图片描述

  • 这个就是我们经常说的 无线 WiFi,我们通过 AP 接入点接入网络,也是我们讨论的重点。

2.3 ESS —— 有AP 和 DS

在这里插入图片描述

  • 这个就像是多个 BSS组合在一起,DS连接不同的BSS通信信道。

3. 802.11 协议

首先向小白解析一下 IEEE是 国际电工电子工程学会的简称。

IEEE 802.11 定义了无线LAN协议中物理层与数据链路层的一部分(MAC层),是国际电工电子工程学会(IEEE)为无线局域网络制定的标准。

作为一种通信方式,IEEE802.11在物理层上使用电磁波或红外线。

具体看下图:

在这里插入图片描述
而这里也有我们经常说的 802.11b/g/n,这里说的是物理层。

  • 无线网卡进来的包携带的是无线报文;
  • 802.11b和802.11g 是 2.4GHz频段(2400-2497MHz,注意此频段和微波炉频段一样,如果8266模块放在微波炉附近可能造成干扰)中的无线局域网标准。它们最大传输速度分别可以达到 11Mbps(802.11b) 和 54Mbps(802.11g),通信距离可以达到 30~50米左右;
  • 802.11n 是在 802.11g和802.11a的基础上,采用同步多条天线的MIMO技术,实现高速无线通信的一种标准。在物理层使用2.4GHz或5GHz频段(目前我们买的WiFi路由器基本上都是这样的,你会发现同时出现2.4G和5G的热点)。

接下来,我们来了解一下 802.11协议。

3.1 802.11 帧

3.1.1 802.11通用帧格式

802.11的帧格式非常复杂,但是还是有一个通用的格式:
在这里插入图片描述
而通过 2字节的 Frame control又区分了不同类型的帧。

802.11协议有规定三种类型的帧:

  • 管理帧
  • 控制帧
  • 数据帧

3.1.2 管理帧

主要工作

  • 管理STA与AP之间的协商、关系的控制,比如关联、认证、同步等。
  • 管理帧负责监督,主要用来加入或者退出无线网络,以及处理接入点之间连接的转移事宜

包括

子类型Subtype值代表的类型
0000Association Request(关联请求)
0001Association response (连接响应)
0010Reassociation request(重连接请求)
0011Reassociation response(重连接联响应)
0100Probe request(探测请求)
0101Probe response(探测响应)
1000Beacon(信标,被动扫描时AP 发出,notify)
1001ATIM(通知传输指示消息)
1010Disassociation(解除连接,notify)
1011Authentication(身份验证)
1100Deauthentication(解除认证,notify)
1101~1111Reserved(保留,未使用)
  • A: Beacon(信标)帧
    在这里插入图片描述
    信标帧是相当重要的维护机制,主要用来宣告某个网络的存在。定期发送的信标,可让移动工作站得知该网络的存在,从而调整加入该网络所必要的参数。- WiFi广告机会用到该帧

在基础网络里,接入点必须负责发送Beacon帧,Beacon帧所及范围即为基本服务区域。
在基础网络里,所有沟通都必须通过接入点,因此工作站不能距离太远,否则无法接收到信标。

具体帧内容请参考 beacon帧字段结构最全总结(一)——beacon基本结构

  • B: 探针请求(proberequest)
    在这里插入图片描述
    STA会利用probe request帧来扫描所在区域内有哪些802.11网络。

Probe request帧包含两个位。SSID和移动工作站所支持的速率。收到Probe request帧的AP会据此判断对方能否加入网络。
这里就是我们博文开头涉及到的 onSoftAPModeProbeRequestReceived —— AP模式下收到探针请求

同时 WiFi考勤机会用到该帧

  • C: 探针响应(proberesponse)
    在这里插入图片描述

如果检测要求所探查的网络与之相容,该网络就会以probe response帧应答。
在基础架构网络里,负责应答的工作站即为AP接入点。
在IBSS当中,工作站会彼此轮流发送Beacon信号。发送Beacon信号的工作站必须负责发送Probe Response帧,直到下一个Beacon帧被发送出来。

  • D: IBSS的数据待传指示通知信息(ATIM)帧
    在这里插入图片描述
    IBSS中的工作站如果为处于休眠状态的接收者暂存帧,就会在递送期间发送一个ATIM帧,通知对方有信息待传。

  • E: 解除连接和解除认证(disassociation与 deauthentication)
    在这里插入图片描述
    WiFi杀手和WiFi杀手检测器用到该帧

Disassociation(解除关联)帧用来终结一段关联关系;
Deauthentication(解除认证)帧则用来终结一段认证关系‘’

  • F: 连接要求(associationrequest)

在这里插入图片描述
一旦STA找到相容的网络并且通过身份认证,便会发送连接请求帧,试图加入网络。

Capability information(性能信息)用来指出STA所欲加入的网络类型

  • G: 重新连接帧(reassociationrequest)
    在这里插入图片描述
    位于相同的扩展服务区域,但在不同基本服务区域之间游走的移动工作站,若要再次使用传输系统,必须与网络重新连接。

如果STA暂时离开AP接入点所涵盖范围,之后要重新加入的时候,也必须重新关联。

  • H: 连接应答与重新连接应答(associationresponse与reassociationresponse)
    在这里插入图片描述
    关联响应,当移动工作站试图关联接入点时,接入点会回复一个关联响应帧或重新关联响应帧,两者的差别在于Frame Control位所记载的subtype位。

  • H: 认证(authentication)
    在这里插入图片描述

3.1.3 控制帧

主要工作

  • 用于保证数据的稳定传输。
  • 通常与数据帧搭配使用,负责区域的清空、信道的取得以及载波监听的维护,并于收到数据时予以正面的应答,借此促进工作站间数据传输的可靠性。

包括

子类型Subtype值代表的类型
1010Power Save(PS)- Poll(省电-轮询)
1011RTS(请求发送,即: Request To Send ,预约信道,帧长20字节)
1100CTS(清除发送,即:Clear To Send ,同意预约,帧长14字节)
1101ACK(确认)
1110CF-End(无竞争周期结束)
1111CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)

3.1.4 数据帧

主要工作

  • 用来携带更高层次的数据(如IP数据包,ISO7层协议)。
  • 工作站与基站之间传递数据
    在这里插入图片描述
  • 数据帧的格式如上图所示,头部长度为24或30字节。
    由于数据的发送方和接收方的不同,所以数据帧也会有小分类。主要可分为四类:
functionToDSFromDSAddress1Address2Address3Address4
IBSS00DASABSSIDNot use
TO AP10BSSIDSADANot use
FROM AP01DABSSIDSANot use
WDS11RATADASA

重点关注前面三种

3.2 802.11 管理网络过程

有线通信和无线通信的最大区别在于有没有用到网线。有线设备(比如台式电脑)如果想连接某个网络,只要将网线接到对应路由器即可。而使用 802.11协议的设备(比如手提电脑、手机)则比较麻烦,需要经历几个阶段:

  • 扫描(SCAN 获取网络信息)
  • 认证(Authentication 确认身份)
  • 连接(Association 确认连接、交换数据)

在这里插入图片描述

而这几个阶段都涉及到复杂的 802.11协议管理帧,初学者有个大体概念即可,也可以自己去查阅相关资料以便深入学习。

3.2.1 扫描网络(SCAN)

扫描方式分为两种:

  • 主动扫描方式,特点是 快递找到
  • 被动扫描方式,特点是 找到时间较长,但STA节电
3.2.1.1 主动扫描方式
  • 依次在每个信道上发送Probe request管理帧报文,从Probe Response中获取BSS的基本信息, Probe Response包含的信息和Beacon帧类似;

在这里插入图片描述

3.2.1.2 被动扫描方式
  • 通过侦听AP定期发送的Beacon帧来发现网络, Beacon帧中包含该AP所属的BSS的基本信息以及AP的基本能力级,包括: BSSID(AP的MAC地址)、 SSID、支持的速率、支持的认证方式,加密算法、 Beacons帧发送间隔,使用的信道等;
  • 当未发现包含期望的SSID的BSS时,STA可以工作于IBSS状态

3.2.2 认证(Authentication)

当STA找到与其有相同SSID的AP,在SSID匹配的AP中,根据收到的AP信号强度,选择一个信号最强的AP,然后进入认证阶段。只有身份认证通过的站点才能进行无线接入访问。AP提供如下认证方法:

  • 开放系统身份认证(open-system authentication)
  • 共享密钥认证(shared-key authentication)
3.2.2.1 开放系统身份认证(open-system authentication)
  • 等同于不需要认证,没有任何安全防护能力
  • 通过其他方式来保证用户接入网络的安全性,例如Address filter、用户报文中的SSID

在这里插入图片描述

3.2.2.2 共享密钥认证(shared-key authentication)
  • 采用WEP加密算法
  • Attacker可以通过监听AP发送的明文Challenge text和STA回复的密文Challenge text计算出WEP KEY

在这里插入图片描述

STA可以通过Deauthentication来终结认证关系。(WiFi杀手通过构造这种管理帧来模拟STA想终结认证关系

3.2.3 关联(Association)

当AP向STA返回认证响应信息,身份认证获得通过后,进入关联阶段。
1) STA向AP发送关联请求
2) AP 向STA返回关联响应
至此,接入过程才完成,STA初始化完毕,可以开始向AP传送数据帧。

其中:

  • Association :STA通过Association和一个AP建立关联,后续的数据报文的收发只能和建立Association关系的AP进行
  • Reassociation:STA在从一个老的AP移动到新AP时通过Reassociation和新AP建立关联;Reassociation前必须经历Authentication过程;
  • Deassociation:STA通过Deassociation和AP解除关联关系

在这里插入图片描述

这里有两个图,博主觉得非常有意思:
认证与关联

漫游

3.3 Wi-Fi认证连接过程

  • AP发送Beacon广播管理帧
    因为AP发送的这个Beacon管理帧数据包是广播地址,所以我们的PCMIA内置网卡、或者USB外界网卡会接收到这个数据包,然后在我们的"无线连接列表"中显示出来

  • 客户端向承载指定SSID的AP发送Probe Request(探测请求)帧
    当我们点击"连接"的时候,无线网卡就会发送一个Probe帧,用来向AP请求连接

  • AP接入点对客户端的SSID连接请求进行应答
    AP对客户端的连接作出了回应,并表示不接受任何形式的"帧有效负载加密(frame-payload-encryption)"

  • 客户端对目标AP请求进行身份认证(Authentication)

  • AP对客户端的身份认证(Authentication)请求作出回应
    AP回应,表示接收身份认证

  • 客户端向AP发送连接(Association)请求
    身份认证通过之后,所有的准备工作都做完了,客户端这个时候可以向WLAN AP发起正式的连接请求,请求接入WLAN

  • AP对连接(Association)请求进行回应
    AP对客户端的连接请求(Association)予以了回应(包括SSID、性能、加密设置等)。至此,Wi-Fi的连接身份认证交互就全部结束了,之后就可以情况下可以正常进行数据发送了。
    但是,
    如果设置了安全性,则可能需要WPA/WPA2/802.1X认证才能发送数据。请记住,802.11身份验证与WPA2或802.1X身份验证机制不同,后者是在移动台通过身份验证和关联后发生的。最初802.11认证帧是为WEP加密设计的,但是这种安全方案已被证明是不安全的,因此不推荐使用。由于这个802.11认证帧是开放的,几乎总是成功。

  • 客户端向AP请求断开连接(Disassociation)
    当我们点击"断开连接"的时候,网卡会向AP发送一个断开连接的管理数据帧,请求进行断开连接

  • AP向客户端请求解除关联(Deassociation)

黑客最喜欢攻击:

- Deassociation
- Disassociation

4. 总结

本篇是后面多篇应用帖子的理论基础,虽然乏味,但是真的非常重要,务必理解。
博主这里也是抛砖引玉,还需读者仔细斟酌,自行查阅更多学习资料。

  • 6
    点赞
  • 8
    收藏
  • 打赏
    打赏
  • 13
    评论
WLAN是英文WirelessLAN的缩写,就是无线局域网的意思。无线以太网技术是一种基于无线传输的局域网技术,与有线网络技术相比,具有灵活、建网迅速、个人化等特点。将这一技术应用于电信网的接入网领域,能够方便、灵活地为用户提供网络接入,适合于用户流动性较大、有数据业务需求的公共场所、高端的企业及家庭用户、需要临时建网的场合以及难以采用有线接入方式的环境等 作为全球公认的局域网权威,IEEE802工作组建立的标准在过去二十年内在局域网领域独领风骚。这些协议包括了802.3Ethernet协议、802.5TokenRing协议、802.3z100BASE-T快速以太网协议。在1997年,经过了7年的工作以后,IEEE发布了802.11协议,这也是在无线局域网领域内的第一个国际上被认可的协议。  在1999年9月,他们又提出了802.11b"HighRate"协议,用来对802.11协议进行补充,802.11b在802.11的1Mbps和2Mbps速率下又增加了5.5Mbps和11Mbps两个新的网络吞吐速率。利用802.11b,移动用户能够获得同Ethernet一样的性能、网络吞吐率、可用性。这个基于标准的技术使得管理员可以根据环境选择合适的局域网技术来构造自己的网络,满足他们的商业用户和其他用户的需求。802.11协议主要工作在ISO协议的最低两层上,并在物理层上进行了一些改动,加入了高速数字传输的特性和连接的稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:点我我会动 设计师:我叫白小胖 返回首页
评论 13

打赏作者

单片机菜鸟哥

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值