WIFI P2P连接流程

Wi-FiPeer-to-Peer(P2P)技术允许设备在无AP情况下建立网络连接。该技术包含三个主要组件:P2PDevice、GroupOwner(GO)和P2PClient。P2PDiscovery阶段涉及设备发现、服务发现、组网和邀请过程,使用probe管理帧进行设备扫描。GroupFormation通过GONegotiation确定GO和client角色。ProvisionDiscovery则处理安全配置信息的交换。整个过程由详细的状态机管理,确保设备间通信的有效建立和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义

Wi-Fi Peer-to-Peer(P2P) Technical Specification
目的:多个设备在没有AP的情况下能够构成网络相互连接并通信。
p2p也是display的基础,用于智能终端多屏共享

架构

多个deivce通过p2p协议协商成为一个GO+多个client
在这里插入图片描述

3个组件

p2p device:即wifi设备
p2p group owner(GO):类似于AP
p2p client:类似于STA

组织结构

组建p2p group之前,智能终端都是p2p device
多个p2p device经过p2p协议协商之后,其中一个设备作为GO,其他设备作为client
其中不支持p2p功能的设备称为legacy client

技术标准

协议版本:802.11g及以上
安全要求:WPA2,WSC
共享媒体数据:WMM
P2P协议:
P2P Discovery(构建一个群组);
P2P Group Operation(管理一个群组);
P2P PowerManagerment;
Managed P2P Device Operation

流程

1.设备Discovery:通过probe发现
2.Group Formation:分为两种,一种是第一次构建群组使用PD帧;
在这里插入图片描述
一种是已经存在的群组重现连接使用invitation帧
在这里插入图片描述

P2P Discovery

目的:使多个devices相互发现并组成一个group

4个 技术项:
Device Discovery:扫描,搜索周围支持P2P的设备
Service Discovery:搜索指定的服务
Group Formation:组网,用于决定谁是GO谁是client
P2P Invitation:激活一个Persistent Group,邀请一个Client加入一个当前已存在的Group

在这里插入图片描述

Device Discovery(扫描)

两个设备,在discovery阶段,在同一时间,使用同一个信道,一个处于search state发送probe req,一个处于listen state发送probe resp,
在这里插入图片描述

管理帧:使用probe req和probe resp

状态:有search和listen两种状态
search state:在2.4GHz的1,6,11频段上分别发送Probe Request帧
listen state: 随机选择在1,6,11频段中的一个频段,监听Probe Request帧并回复Probe Response帧(Listen Channel一旦选择好后,在整个P2P Discovery阶段就不能更改

阶段:有scan和find两个阶段
Scan Phase:扫描阶段,在各个频段上发送Probe Request帧(主动扫描)
Find Phase:在Search State和Listen State之间来回切换

流程

P2P Discovery启动,进入Scan阶段,该阶段在各频段发送probe req;
Scan阶段完成后,Listen Channel确定1个,进入Find阶段;
Find阶段listen 和search阶段来回切换;
为避免一直同时处于相同状态,规定Listen State的时间规定100TU的随机整数倍(1-3);
如图所示当一端在search state发送probe req,一端在listen state接收并回复probe resp,则设备扫描成功。

p2p probe 管理帧

重点信息字段:SSID,WSC IE,P2P IE
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

wpas扫描函数

扫描入口函数“wpas_p2p_find”
扫描三种类型:
P2P_FIND_START_WITH_FULL:默认设置。表示先扫描所有频段,然后再扫描socialchannels
P2P_FIND_ONLY_SOCIAL:只扫描social channels
P2P_FIND_PROGRESSIVE:它和P2P_FIND_START_WITH_FULL类似,只不过在SearchState阶段将逐个扫描所有频段

type=0, use default full scan  //使用默认全频段扫描方式
starting search    //启动search
starting short listen state  //启动listen
NL80211_CMD_REMAIN_ON_CHANNEL   //wifi驱动固定在一个频段一段时间,listen
NL80211_CMD_FRAME //接收到req
NL80211_CMD_FRAME_TX_STATUS. //本机发送resp上报
**P2P-DEVICE-FOUND   //发现p2p设备,SSID为“DIRECT-”**
NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL  //取消频段固定

Group Formation(组网)

设备发现之后,开始构造一个P2P Group

Provision Discovery(PD)流程

目的:利用WSC交换安全配置信息

PD帧(Action)

在这里插入图片描述

PD Request接收者支持发送者设置的WSC配置方法,则它在PD Response帧中将设置相同的Config Method属性值,否则设置Config Method值为0
重点信息字段:WSC IE的Config Method属性
在这里插入图片描述
在这里插入图片描述

GC2 首次连接 GO,或 Persistent Group 信息已失效需要PD流程
执行 GO Negotiation(若角色需重新协商)或直接关联(若角色已明确)。
完成 4-way handshake(若需密钥交换)。

invitation 流程

GO可以将Persistent Reconnect设置为1,表示GO具有persistent Group Formation的能力。P2P GC可以重新连接,而无需用户干预Persistent P2P Group。
若邀请成功,双方直接跳过 GO Negotiation 和 4-way handshake,使用之前保存的密钥加密通信
在这里插入图片描述

Invitation帧(Action)

在这里插入图片描述

GO Negotiation(GON)流程

在这里插入图片描述
GON流程包括GON Request、GON Response和GON Confirmation三次帧交换。双方交换一些信息,确认谁来扮演GO。主要包括GO Intent渴望程度等。

P2P Public Action管理帧

重点信息字段:P2P IE
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

P2P状态机

在这里插入图片描述
scan
在这里插入图片描述
find listen
在这里插入图片描述

find search
在这里插入图片描述

Group Formation Procedure GON
在这里插入图片描述

Operational Phase P2P GO
在这里插入图片描述

Operational Phase P2P Client
在这里插入图片描述

### WIFI P2P协议的工作原理 WIFI P2P(Peer-to-Peer)是一种基于Wi-Fi标准的技术,它允许多个设备之间无需通过接入点即可直接连接并交换数据。这种技术的核心在于支持短距离内的无线通信,并提供了一种灵活的方式让设备间共享资源和信息[^3]。 #### 原理概述 WIFI P2P利用了IEEE 802.11系列的标准来构建一种特殊的组网形式,在该网络中,参与的节点可以动态协商角色分配,例如谁作为Group Owner (GO),而其他成员则成为Client。此过程涉及多个阶段的操作,包括发现、配对以及最终的数据传输。 - **发现机制**: 设备首先要能够识别到彼此的存在。这一步骤通常借助广播或者多播消息完成。 - **连接建立**: 当两台或多台设备决定要形成一个临时性的群组时,则需指定其中一个担任GO的角色。这个决策可以通过特定算法自动做出,也可以由用户手动设定。 - **数据交互**: 成功组建好小组后,就可以按照常规IP层以上的通讯方式进行文件传送或其他服务请求响应操作了。 --- ### 实现方式 为了使WIFI P2P正常运作,需要满足一定的硬件条件和技术基础: - 支持 `IEEE 802.11g` 或更高级别的物理层(PHY)规格; - 集成了安全加密措施如 `IEEE 802.11i (IES-CCMP)` 来保护数据免受未授权访问威胁; - 提供便捷配置手段——比如 “WiFi Protected Setup”,简化用户的初始设置流程; - 考虑多媒体应用需求引入QoS保障机制 —— 即所谓的 `WiFi Multimedia` 功能模块。 此外,实际开发过程中还需要解决诸如NAT穿越等问题。对于位于不同私有局域网内部的终端来说,“P2P打洞” 技术显得尤为重要。这项技术使得即使存在防火墙或Cone型NAT的情况下也能成功创建跨越这些障碍物的有效链路[^1][^2]。 --- ### 应用场景 由于其高效性和便利性,WIFI P2P广泛应用于各种现代电子消费品之中,涵盖了娱乐休闲至商务办公等多个领域: 1. **媒体分享** - 用户可以直接把手机上的照片视频投射到智能电视屏幕上观看,而不必先上传云端再下载下来播放。 2. **游戏联机** - 多名玩家可以在不依赖互联网的前提下快速启动本地多人对抗模式的游戏体验。 3. **即时通讯工具扩展** - 某些IM软件内置了零流量聊天室功能,只要双方都在附近范围内就能享受纯粹面对面交流的乐趣。 4. **物联网(IoT)环境下的协同工作** - 家庭自动化控制系统可能运用此类方法协调各个传感器动作状态报告给中心控制器分析处理反馈命令下去执行相应任务。 5. **在线教育平台互动环节优化** - 对于某些特殊类型的远程教学活动而言,如果采用纯P2P架构而非传统CS模型的话可能会显著降低服务器负载压力从而提升整体性能表现[^4]。 ```python import wifi_p2p as wp def establish_connection(device_a, device_b): """模拟两个设备之间的WIFI P2P连接""" go = wp.select_group_owner([device_a, device_b]) client = device_a if go == device_b else device_b connection_status = wp.connect(go=go, client=client) return connection_status # 示例调用 status = establish_connection('DeviceA', 'DeviceB') print(f"Connection Status: {status}") ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值