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,之后进行加密数据传输

相关推荐
今年下半年18 小时前
记录一次IBMS物联网项目的架构设计及技术栈应用
物联网·websocket·网络协议·tcp/ip·微服务·udp·kafka
水墨长天1 天前
物联网协议 MQTT 快速开发与实践
后端·物联网
EatFans1 天前
全栈自造Status Deck(三):桌面端上位机程序开发
物联网
调试优选官6 天前
IoT物联网系统定制落地实践:从设备接入、协议网关、平台分层到业务应用,如何做技术选型、交付验收、责任边界与长期运维成本评估及迁移安排
物联网·iot·成本分析
Seoyoneh7 天前
呼叫中心系统上云还是本地部署?架构、成本与运维全维度技术对比
人工智能·信息与通信·通信
华允物联-HUAIOT7 天前
工业路由器和DTU在联网方式上的区别
物联网
wuyk5557 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
码流子7 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
女神下凡7 天前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
XUEYUAN52127 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5