2.4G-WiFi连接路由器过程

一、概述

WiFi的数据通信基于802.11协议进行,无线AP在工作时会定时向空中发送beacon数据包,基站(STA)从beacon中解析出AP的名称、加密方式等信息,从而发起连接。

二、WiFi连接路由器的详细过程

WiFi连接过程主要可以分为3部分:扫描认证关联

在这里插入图片描述

2.1、扫描过程

2.1.1、主动扫描

WiFi的的扫描过程分为主动扫描和被动扫描。主动扫描情况下,STA会依次向各个信道广播发送探寻请求(Probe Request)管理帧,AP在收到Probe Request帧之后会定向回复探寻响应帧(Probe Ack),其中包含AP的SSID、MAC地址、加密方式等信息,之后STA根据路由器返回的信息进行连接和认证。

主动扫描有助于STA更快的发现周围的AP,但同时也会带来更高的功耗。

路由器返回的Probe Rsp中携带的信息和Beacon帧大同小异,下图是使用omipeek抓到的Probe Rsp包在wireshark中解析到的信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O6n7w2gW-1676278372974)(https://note.youdao.com/yws/res/3/WEBRESOURCE77aea57e4d2e8d2319e9b7abd8596e53)]

2.1.2、被动扫描

被动扫描,STA被动接收AP发送的Beacon管理帧,并且只会向无线AP所在信道发送Probe Request,它和主动扫描相比的优势在于可以降低功耗。
使用wireshark可以看到Beacon帧的结构如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bwaq1Y00-1676278372974)(https://note.youdao.com/yws/res/e/WEBRESOURCE166cd7ba33d8eb4abfd562e952e5740e)]

Beacon帧是广播,而Probe Response帧则是针对特定请求返回的单播数据。

2.2、认证

路由器的beacon帧和其返回的Probe Response帧中都包含路由器的SSID、加密方式等信息,STA在获得这些信息之后,使用提前设置好的密码按照正确的加密方式即可发起认证过程。

认证过程主要由认证请求(Auth Request)和认证响应(Auth Response)两部分组成:

  • STA向AP发起认证请求:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gJuQFHkq-1676278372975)(https://note.youdao.com/yws/res/6/WEBRESOURCEdd8b4d68d00522c3fc3b900bc1f7e366)]
  • AP响应认证请求:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O8F0H01z-1676278372975)(https://note.youdao.com/yws/res/f/WEBRESOURCEaf2c670cfe52f9092bea1c25d686c48f)]

认证请求和认证响应的帧格式类似,但是源地址和目的地址不同,认证请求的源地址是STA的地址,认证响应的源地址是AP地址。

2.3、关联

认证之后,STA向AP发送连接请求(Association Request),AP响应连接请求(Association Response)。

  • Association Request:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mettpn15-1676278372976)(https://note.youdao.com/yws/res/1/WEBRESOURCEc01ff0ef24eab337b042084fbb018501)]

  • Association Response
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3vMPBFbP-1676278372977)(https://note.youdao.com/yws/res/5/WEBRESOURCE5f6e200afad04531e8fef6d1ae5fe695)]

参考:https://www.modb.pro/db/146335

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Python的第三方库来帮助实现WiFi连接。一个常用的库是`pywifi`,它可以让你在Python中管理WiFi连接。 首先,你需要安装`pywifi`库。你可以使用以下命令来安装它: ``` pip install pywifi ``` 安装完成后,你可以使用以下代码来连接WiFi: ```python import pywifi from pywifi import const def connect_wifi(ssid, password): # 创建一个WiFi对象 wifi = pywifi.PyWiFi() # 获取第一个无线网卡 iface = wifi.interfaces()[0] # 断开所有的WiFi连接 iface.disconnect() # 等待一段时间,确保断开连接 pywifi.sleep(1) # 创建WiFi连接文件 profile = pywifi.Profile() profile.ssid = ssid # WiFi名称 profile.auth = const.AUTH_ALG_OPEN # 需要密码 profile.akm.append(const.AKM_TYPE_WPA2PSK) # WiFi加密算法 profile.cipher = const.CIPHER_TYPE_CCMP # 加密方式 profile.key = password # WiFi密码 # 删除所有的WiFi连接文件 iface.remove_all_network_profiles() # 添加新的WiFi连接文件 tmp_profile = iface.add_network_profile(profile) # 连接WiFi iface.connect(tmp_profile) # 等待连接成功 pywifi.sleep(5) # 判断是否连接成功 if iface.status() == const.IFACE_CONNECTED: print("WiFi连接成功!") else: print("WiFi连接失败!") # 调用连接WiFi函数 connect_wifi("你的WiFi名称", "你的WiFi密码") ``` 请注意,上述代码在连接WiFi时使用了明文密码,这样可能存在一定的风险。建议你根据实际需求修改代码,使用更安全的方式存储和传输密码。 希望能帮到你!如果有任何问题,请随时提问。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值