WIFI p2p连接总结

p2p 设备角色

go 为 group owner,类似 ap 的功能,控制 p2p 组,每个 group 只有一个 go

gc 是 client,为连接 go 的设备,是组成员

P2P 扫描

p2p discovery 利用 probe request 和 probe response 帧来搜索周围的 p2p 设备,probe request 必须包含 p2p 的 ie。

device discovery 定义了两个阶段和两个状态

1.Scan Phase:扫描阶段,P2P device 会在各个频段发送 probe request(主动扫描),p2p device 在进行该扫描的时候不会处理来自其他设备的 probe request 帧,这一阶段后,p2p device 会进入 下一阶段(Find Phase)

2.Find Phase:找寻阶段,在这个阶段,p2p device 将会在 search state 和 Listen State 之间来回切换。Search State 中,P2P Device 将发送 Probe Request 帧,而 Listen State 中,它将接收其他设备的 Probe Request 帧并回复 Probe Response

search state:此状态下,P2P Device 将在 2.4GHZ 的 1/6/11 频段上分别发送 Probe Request 帧。为了与非 p2p 的 probe request 进行区分,p2p 的 probe request 帧会包含 p2p 的 ie,表示这是一个 p2p 的探测帧

listen state:p2p device 将随机选择在 1/6/11 频段中的一个频段来监听 probe request 帧,选定的信道成为 listen channel,整个 discovery 阶段都不会更改,listen 状态的持续时间 是 100TU 的随机整数倍(默认在 1 到 3 之间,厂商可以修改),随机是为了避免两个设备同时进入 listen 和 search 导致始终无法发现对方

Group Formation

设备发现后就可以进行 组协商了,主要作用是决定哪个设备当 GO,整个协商过程包括三次握手

Group Owner Intent 属性(成为 go 的渴望程度,最大值 为 15,15 表示该设备一定要成为 go)大的一方会成为 go,若相等的话,tie breaker bit 是 1 的成为 GO,若都是 15 则协商失败

第一次握手:设备 A 向设备 B 发送 GO Negotiation Request(包含了 Intent 属性值和 breaker 属性值),B 在收到后进行比较,此时 B 可以确定自己本次 P2P 连接时的角色了

第二次握手:设备 B 向 A 发送一个 GO Negotiation Response 帧,该帧包含了 B 的 Intent 属性值和 breaker 属性值,B 的 breaker 属性值为第一次握手时 A 的 breaker 属性值取反,因此不可能相同

第三次握手:设备 A 向 B 发送一个 GO Negotiation Comfirmation 帧,该 Confirmation 的作用之一时作为协商的确认,同时确定了后面 P2P 连接所使用的信道

在 Go 协商时设备 A 向设备 B 发送 GO Negotiation Request,如果 B 没有准备好的话,这时候 B 会先保存下 A 的协商信息,然后发送一个 GO Negotiation Response (包含 B 的协商信息)给 A,B 把状态设置为 P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE,表示当前 P2P 连接不可用,A 在收到该 response 之后,保存 B 的协商信息,切换到 Listen state,等待 B 的 P2P 连接初始化完成,并等待 B 发送GO Negotiation Request,这种情况下第一次协商没有确定任何东西,第二次协商才是正常流程

wps 流程

协商一个公共的 key,wps 流程结束后 ,gc 会自动断开和 go 的关联,然后重新发起连接,再次关联完成后可以进行四路握手

四路握手

以前面的公共 key 作为参数协商处 PTK 和 GTK,之后进行加密数据传输

相关推荐
SL_staff14 小时前
规则联动:给工厂装上‘自动化神经反射弧’——JVS·物联网平台规则引擎实战教程
java·人工智能·物联网
MuMuMu122315 小时前
越华环保集团碳惠小屋:物联网 + 区块链赋能碳普惠终端,构建可信个人碳账户体系
物联网
注塑机数据采集联网15 小时前
如何解决注塑机数据采集联网对接MES系统数据WiFi传输数据不稳问题
大数据·数据库·物联网·数据挖掘·数据分析
XMAIPC_Robot17 小时前
ARM+FPGA+AI船舶/工业自动化控制器EMC测试等级解析(IEC60533/IEC60945)
arm开发·人工智能·fpga开发·zynq·arm+fpga·rk3588+fpga
liubinkaixin17 小时前
海上风电叶片试验的上千片应变片,长线干扰怎么解
物联网
数字新视界17 小时前
机房动环监控提升数据中心安全性
物联网·3d·数字孪生·三维可视化·数据可视化
serene9417 小时前
Modbus“出道史”:1979年诞生,后来一路火到现在
物联网·开发·modbus·通讯协议·模拟器
Moyu_Friday17 小时前
网络安全基础-计算机网络应用与协议
网络协议·计算机网络
黄鹂鸟科技18 小时前
软件定制开发设计要点:从需求梳理、原型确认到敏捷交付与持续维护
后端·物联网·系统架构
虎王物联19 小时前
随身WiFi什么时候能恢复出厂:去控机和硬刷机的差别
物联网·随身wifi