AliOS Things 网络篇之 Wi-Fi 基础知识与连接过程|学习笔记

简介: 快速学习 AliOS Things 网络篇之 Wi-Fi 基础知识与连接过程。

开发者学堂课程【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标准的无线局域网技术。

image.png

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字段区分帧的类型

image.png

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.手机连接过程

相信每个人都用自己的手机连接路由器进行工作或学习,咱们就来看看执行连线这个动作的过未中都发生了什么?

image.png

手机上的 WiFi 是打开设置界面后会扫描出很多 WiFi 名字,点击输入密码完成连接。在技术方面这个过程会被拆分成很多阶段。第一阶段为列出 WiFi 名字之前,需要扫描 WiFi。

2.扫描-主动扫描

image.png

国内 WiFi(4G)共有三个信道。信道指把 WiFi 频段分成十三个信道供给不同的人用,从而达到对频谱的合理利用。

原理为手机会像每一个信道发送一个管理帧,其目的是询问当前信道是否有 AP 设备,如果有设备会回复probe_response,设备收到后得知有 AP 设备,从而完成主动扫描。主动扫描指设备主动发出询问。

3.扫描-被动扫描

image.png

设备不会主动发送询问,而是在扫描中监听由 AP 设备发送出来的定期广播。如果信道监听到设备发出的广播帧,也会记录信息。被动扫描指设备被动监听。

4.扫描流程

手机依次到信道1~信道13上面进行主动扫描或被动监听

收集到路由器信息之后显示在界面上面,此时就完成了扫描过程

扫描完成除搜集到周围路由器列表外,还可以收集到路由器的的配置信息(加密模式,带宽,信置等802.11规范甲定义的苛政放在IE栏位中的信息)

image.png

手机端主动发送 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 报文格式 

image.png

发送的数字即为报文,Probe request 分为头部和 Frame body。Frame body 为所携带的主要信息报文。MAC header 中的 Frame Control 可以识别管理帧。Frame Control 中的 Type 和 Sub Type 表示当前WiFi帧属于哪一类以及子类。SA可以看到是谁发过来的,DA 为广播地址。Vendor Specific 为开发者根据自己的需求定制的报文。

7. Probe response 报文格式

image.png

重点关注 MAC header 中的 DA、SA 和 BSSID。如果 Probe response 是路由器发送出来的,那么 DA 是发送设备的MAC 地址,SA 为路由器地址,BSSID 为基础服务级的标志符,常与 AP 的 MAC 地址相同。Probe response中还携带了其他关键信息,比如 BSSID 名字以及加密信息和固定参数,比如当前发送的时间周和被动扫描 beacon 帧发送时间为多久发送一次。

8. Beacon 帧报文解析

image.png

主要由三部分组成,第一部分到802.11 radio information,这部分信息记录了报文抓取时的物理层信息,后两部分为头部和详细信息。

9. probe request 帧报文解析

image.png

扫描所有非隐藏路由器为扫描所有路由器,不指定名字。如果指定名字经常扫描不到,因为 beacon 帧被动扫描时不会携带 BSSID 的具体字段。

10.probe response 报文解析

image.png

11.WiFi 认证方式

WiFi 认证有开放系统认证和共享密钥认证两种方式。开放系统认证指没有密码,设备发送 Authentication 和 Association 两种管理帧,AP 回应之后就可以关联。

image.pngimage.png

12.四次握手

WPA 的认证方式分为四个阶段,每个阶段都是在做重要的健全过程,是检验密码是否正确的流程。首先 AP 会生成一个随机数发给设备,同时设备也生成一个随机数。手机端收到随机数之后,用随机数和 WiFi 密码以及其他信息生成PTK 的 K(为加密数据所使用的K)。用 K 将随机数 S 进行加密放到 MAC 里面。MAC 值是使用随机数生成的 PTK,用 PTK 加密 S 和 MAC 地址是否相同。如果路由器生成 PTK 后进行加密生成 MAC,那么值就是对的。拿到 MAC 之后它会验证通过或不通过,会把 MAC 和加密过的 K 发送给设备端,设备端解密 K 后可获取信息并且回应 MAC。两边都将 K 安装到硬件里面,从而完成整个四次握手。所谓的握手就是交换密钥。

image.png

四次握手1/4

image.png

四次握手2/4

image.png

四次握手3/4

image.png

四次握手4/4

image.png

四次握手如果成功双方能够建立一个稳定成功的物理层的基于无线的连接。相当于插上了网线并且具有通讯的权限。

13.DHCP

image.png

设备拿到 IP 地址后就相当于整个流程能够基于 DCPIP 的协议站的信息进行传输和交流数据通信,从而完成整个 WiFi连接过程数据通路的建立以及万物互联的网络全过程

相关文章
|
2月前
|
网络协议 开发者 Python
Python网络编程与Socket通信:连接世界的无限可能
在当今数字化时代,Python作为一种强大的编程语言,通过网络编程与Socket通信为我们打开了连接世界的无限可能。本文将深入探讨Python网络编程的基础知识、Socket通信的原理以及实际应用,帮助读者更好地理解并运用这一技术。
|
2月前
|
网络协议 算法 网络架构
HCNP笔记-网络基础知识
HCNP笔记-网络基础知识
30 0
|
1月前
|
存储 网络协议 Linux
《网络是怎么样连接的》读书笔记 - WEB服务端请求和响应(五)
《网络是怎么样连接的》读书笔记 - WEB服务端请求和响应(五)
27 0
|
10天前
|
域名解析 存储 网络协议
某教程学习笔记(一):03、网络基础
某教程学习笔记(一):03、网络基础
9 0
|
14天前
|
安全 网络协议 网络安全
探索网络定位与连接:域名和端口的关键角色
探索网络定位与连接:域名和端口的关键角色
32 0
|
18天前
|
数据安全/隐私保护
智能家电设备连接网络配置
智能家电设备连接网络配置
22 5
|
27天前
|
机器学习/深度学习 算法 PyTorch
pytorch实现手写数字识别 | MNIST数据集(全连接神经网络)
pytorch实现手写数字识别 | MNIST数据集(全连接神经网络)
|
28天前
|
运维 负载均衡 安全
回归网络本质需求,提供普惠连接价值 持续打造简单易用的智能云网络
2023年11月25日,北京,在第六届SD-WAN&SASE大会暨云网络大会上,阿里云资深产品总监、阿里云网络产品管理负责人孙成浩受邀做了《打造简单易用的智能云网络——云网络持续演进之路》的主题分享,回顾云网络产业发展,阐释云网络未来演进方向,以及阿里云网络产品服务今年的能力演进。
194 0
|
1月前
|
网络安全 数据安全/隐私保护
【网络安全 | 靶场搭建】基于Kali的FTP搭建流程及FileZilla连接、报错详析
【网络安全 | 靶场搭建】基于Kali的FTP搭建流程及FileZilla连接、报错详析
22 0
|
1月前
|
缓存 负载均衡 网络协议
《网络是怎么样连接的》读书笔记 - 服务器端的局域网中(四)
《网络是怎么样连接的》读书笔记 - 服务器端的局域网中(四)
34 0

热门文章

最新文章