开发者学堂课程【HaaS 物联网应用开发课程:AliOS Things 网络篇之 Wi-Fi 基础知识与连接过程】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/801/detail/13837
AliOS Things 网络篇之 Wi-Fi 基础知识与连接过程
内容介绍:
一、Wi-Fi 简介
二、Wi-Fi 基础知识
三、Wi-Fi 连接过程和帧结构
一、Wi-Fi 简介
1. Wi-Fi 发展历史
Wi-Fi 是 Wi-Fi 联盟制造商的商标做为产品的品牌认证,是一个创建于 IEEE802.11标准的无线局域网技术。
2. 主要物理层规范
802.11b |
802.11a |
802.11g |
802.11n |
802.11ac |
802.11ax |
|
发布时间 |
1999 |
1999 |
2003 |
2009 |
2014 |
2019 |
频段 |
2.4GHz |
5GHz |
2.4GHz |
2.4/5GHz |
5GHz |
2.4/5GHz |
带宽 |
20MHz |
20MHz |
20MHz |
20/40MHz |
20/40/80/160MHz |
20/40/80/160MHz |
物理层速率 |
11Mbps |
54Mbps |
54Mbps |
600Mbps |
6.8Gbps |
10Gbps |
最大单用户流 |
1 |
1 |
1 |
4 |
8 |
8 |
最大多用户流 |
NA |
NA |
NA |
NA |
4(DL only) |
8(UL&DL) |
调制方式 |
DSSS,CCK |
OFDM |
OFDM |
OFDM |
OFDM |
OFDM,OFDMA |
编码方式 |
CCK |
64-QAM,3/4 |
64-QAM,3/4 |
64-QAM,5/6 |
256-QAM,5/6 |
1024-QAM,5/6 |
子载波 |
NA |
312.5kHz |
312.5kHz |
312.5kHz |
312.5kHz |
78.125kHz |
初学者主要关注带宽、频宽和物理层速率。
二、Wi-Fi 基础知识
1. Wi-Fi 帧
WiFi 帧可以分为3种∶控制帧、数据帧、管理帧
控制帧通常与数据帧搭配使用,负责区域清空,信道获得,载波侦听,肯定确认等。
数据帧负责搬运数据。
管理帧负责监督,如加入和退出无线网络以及处理接入点之间关联的转移等。
2. Wi-Fi 帧结构
无论是控制帧,数据帧还是管理帧,所有的 WiFi 报文都符合如下的帧格式,其中前2个字节的 Frame Control字段区分帧的类型
MAC header 是每个帧的头部,Frame body 是每个帧传输具体携带的数据。重点关注 MAC header 中的控制信息。
Frame Control 用来表征当前帧的类型、版本、子类型等信息。
DA 为目的地址、SA 人地址(表示由谁发出)、SSID 属于哪一个服务集合。
3. 基础术语
SSID (Service Set ldentifier) :服务集标识符(所连接的 WiFi 名字)
BSS (Basic Service Set) :基本服务集
ESS (Extended Service Set) :扩展服务集
BSSID (Basic Service Set ldentifier) :基本服务集标识符(AP 地址)
ESSID ( Extended Service Set ldentifier) :扩展服务集标识符(由很多 BSSID 组成的大型闭合族)
三、Wi-Fi 连接过程和帧结构
1.手机连接过程
相信每个人都用自己的手机连接路由器进行工作或学习,咱们就来看看执行连线这个动作的过未中都发生了什么?
手机上的 WiFi 是打开设置界面后会扫描出很多 WiFi 名字,点击输入密码完成连接。在技术方面这个过程会被拆分成很多阶段。第一阶段为列出 WiFi 名字之前,需要扫描 WiFi。
2.扫描-主动扫描
国内 WiFi(4G)共有三个信道。信道指把 WiFi 频段分成十三个信道供给不同的人用,从而达到对频谱的合理利用。
原理为手机会像每一个信道发送一个管理帧,其目的是询问当前信道是否有 AP 设备,如果有设备会回复probe_response,设备收到后得知有 AP 设备,从而完成主动扫描。主动扫描指设备主动发出询问。
3.扫描-被动扫描
设备不会主动发送询问,而是在扫描中监听由 AP 设备发送出来的定期广播。如果信道监听到设备发出的广播帧,也会记录信息。被动扫描指设备被动监听。
4.扫描流程
手机依次到信道1~信道13上面进行主动扫描或被动监听
收集到路由器信息之后显示在界面上面,此时就完成了扫描过程
扫描完成除搜集到周围路由器列表外,还可以收集到路由器的的配置信息(加密模式,带宽,信置等802.11规范甲定义的苛政放在IE栏位中的信息)
手机端主动发送 probe request,AP也会定期被动发送 beacon 帧,手机端既有主动扫描也有被动扫描。如图7信道手机端主动发送 probe request,AP回应 probe response 同时发送 beacon,此时手机端可以扫描到两次信息。其中用到了管理帧 probe request、probe response、beacon。beacon 为100ms 发送一个帧。
5.扫描报文
扫描流程中会用到三种类型的报文
-Probe request:手机主动发送,用于探知周围路由器信息,收到此报文的路由器(设置为隐藏的路由器除外)需要回复 probe response 帧
-Probe response 帧:路由器在收到 Probe request 之后发送
-Beacon:路由器主动定期(一般为100ms)发送的信标帧,用于标识自身的存在
后面将以 probe request 和 probe response 帧为例介绍其报文格式。
6.Probe request 报文格式
发送的数字即为报文,Probe request 分为头部和 Frame body。Frame body 为所携带的主要信息报文。MAC header 中的 Frame Control 可以识别管理帧。Frame Control 中的 Type 和 Sub Type 表示当前WiFi帧属于哪一类以及子类。SA可以看到是谁发过来的,DA 为广播地址。Vendor Specific 为开发者根据自己的需求定制的报文。
7. Probe response 报文格式
重点关注 MAC header 中的 DA、SA 和 BSSID。如果 Probe response 是路由器发送出来的,那么 DA 是发送设备的MAC 地址,SA 为路由器地址,BSSID 为基础服务级的标志符,常与 AP 的 MAC 地址相同。Probe response中还携带了其他关键信息,比如 BSSID 名字以及加密信息和固定参数,比如当前发送的时间周和被动扫描 beacon 帧发送时间为多久发送一次。
8. Beacon 帧报文解析
主要由三部分组成,第一部分到802.11 radio information,这部分信息记录了报文抓取时的物理层信息,后两部分为头部和详细信息。
9. probe request 帧报文解析
扫描所有非隐藏路由器为扫描所有路由器,不指定名字。如果指定名字经常扫描不到,因为 beacon 帧被动扫描时不会携带 BSSID 的具体字段。
10.probe response 报文解析
11.WiFi 认证方式
WiFi 认证有开放系统认证和共享密钥认证两种方式。开放系统认证指没有密码,设备发送 Authentication 和 Association 两种管理帧,AP 回应之后就可以关联。
12.四次握手
WPA 的认证方式分为四个阶段,每个阶段都是在做重要的健全过程,是检验密码是否正确的流程。首先 AP 会生成一个随机数发给设备,同时设备也生成一个随机数。手机端收到随机数之后,用随机数和 WiFi 密码以及其他信息生成PTK 的 K(为加密数据所使用的K)。用 K 将随机数 S 进行加密放到 MAC 里面。MAC 值是使用随机数生成的 PTK,用 PTK 加密 S 和 MAC 地址是否相同。如果路由器生成 PTK 后进行加密生成 MAC,那么值就是对的。拿到 MAC 之后它会验证通过或不通过,会把 MAC 和加密过的 K 发送给设备端,设备端解密 K 后可获取信息并且回应 MAC。两边都将 K 安装到硬件里面,从而完成整个四次握手。所谓的握手就是交换密钥。
四次握手1/4
四次握手2/4
四次握手3/4
四次握手4/4
四次握手如果成功双方能够建立一个稳定成功的物理层的基于无线的连接。相当于插上了网线并且具有通讯的权限。
13.DHCP
设备拿到 IP 地址后就相当于整个流程能够基于 DCPIP 的协议站的信息进行传输和交流数据通信,从而完成整个 WiFi连接过程数据通路的建立以及万物互联的网络全过程。