WIFI P2P架构
WI-FI P2P
- 定义
- 架构
- 3个组件
- 组织结构
- 技术标准
- P2P Discovery
- Device Discovery(扫描)
- 流程
- p2p probe 管理帧
- 日志关键打点
- Group Formation(组网)
- GO Negotiation(GON)流程
- P2P Public Action管理帧
- Provision Discovery(PD)流程
- PD帧
- P2P状态机
定义
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
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_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
GO Negotiation(GON)流程
GON流程包括GON Request、GON Response和GON Confirmation三次帧交换。双方交换一些信息,确认谁来扮演GO。主要包括GO Intent渴望程度等。
P2P Public Action管理帧
重点信息字段:P2P IE
Provision Discovery(PD)流程
目的:利用WSC交换安全配置信息
PD帧
PD Request接收者支持发送者设置的WSC配置方法,则它在PD Response帧中将设置相同的Config Method属性值,否则设置Config Method值为0
重点信息字段:WSC IE的Config Method属性
P2P状态机
scan
find listen
find search
Group Formation Procedure GON
Operational Phase P2P GO
Operational Phase P2P Client
WIFI P2P架构相关推荐
- Android Wifi P2P 入门
学习资料: Demo 下载地址:https://github.com/mengzhinan/WiFi_P2P_test GoogleAndroid Doc:https://developer.andr ...
- 谈谈对WiFi P2P的理解
谈谈对WiFi P2P的理解 概述 P2P架构简介 P2P Discovery介绍 Device Discovery 流程 Service Discovery Group Formation P2P ...
- android wifi p2p框架,7.2.1 P2P架构
P2P架构中定义了三个组件,笔者将其称之为一个设备,两种角色.这三个组件分别是: * P2P Device:它是P2P架构中角色的实体,读者可把它当做一个Wi-Fi设备. * P2P Group Ow ...
- WIFI P2P原理深入解析
目录 前言 1.原理及架构 2.实例及应用 3.常见的问题 前言 对Wi-Fi Direct即wifi直连,在物联,中短距离的传输稳定性明显比蓝牙具有优势,本文主要介绍两个方面:一是原理及架构,二是实 ...
- android wifi p2p / wifi direct
版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/h784707460/article/details/81502574 一. wifi P2P协议相关 ...
- 深入理解Wi-Fi P2P
第7章 深入理解Wi-Fi P2P 本章所涉及的源代码文件名及位置 ·W ifiP2pSettings.java packages/ apps/ Settings/ src/ com/ android ...
- Dynamo涉及的算法和协议——p2p架构,一致性hash容错+gossip协议获取集群状态+向量时钟同步数据...
转自:http://www.letiantian.me/2014-06-16-dynamo-algorithm-protocol/ Dynamo是Amazon的一个分布式的键值系统,P2P架构,没有主 ...
- Cassandra——类似levelDB的基于p2p架构的分布式NOSQL数据库
C: Consistency 一致性 • A: Availability 可用性(指的是快速获取数据) • P: Tolerance of network Partition 分区容忍性(分布式) 1 ...
- android——wifi系统架构
1. 系统架构 Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口.整个WiFi系统架构如下图所示 ...
最新文章
- Android SurfaceView 的应用
- 结对项目-四则运算 “软件”之升级版
- oracle导出BOM文件,ORACLE ERP导数据(BOM清单)-备份恢复-Oracle频道-中国IT实验室
- .describe() python_python的apply应用:一般性的“拆分-应用-合并”,附加详细讲解
- Harmony OS — ProgressBar垂直、水平进度条
- HeadFirstJava——11_异常处理
- 谷歌浏览器插件 清除 CSDN广告
- 如何使用matlab绘制晶胞结构示意图
- 2021/10/04 git 详细流程
- 二哥回复读者:研三秋招一败涂地了,怎么办?
- HIOKI日置RM3545电阻计/电阻表
- 傅立叶变换和拉普拉斯变换
- 一度智信开网店靠谱吗
- uni-app微信公众号登录
- rsa public key not find
- HTML+CSS+JavaScript实现登陆注册进入动态相册
- 第10章 数据库恢复技术 | 数据库知识点整理
- [css] 如何使用Font Awesome
- wpl计算方法_已知权值集合为{5,7,2,3,6,1,4},计算带权路径长度WPL()。
- 2021年豆瓣图书爬取-根据ISBN爬取图书信息