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架构相关推荐

  1. Android Wifi P2P 入门

    学习资料: Demo 下载地址:https://github.com/mengzhinan/WiFi_P2P_test GoogleAndroid Doc:https://developer.andr ...

  2. 谈谈对WiFi P2P的理解

    谈谈对WiFi P2P的理解 概述 P2P架构简介 P2P Discovery介绍 Device Discovery 流程 Service Discovery Group Formation P2P ...

  3. android wifi p2p框架,7.2.1 P2P架构

    P2P架构中定义了三个组件,笔者将其称之为一个设备,两种角色.这三个组件分别是: * P2P Device:它是P2P架构中角色的实体,读者可把它当做一个Wi-Fi设备. * P2P Group Ow ...

  4. WIFI P2P原理深入解析

    目录 前言 1.原理及架构 2.实例及应用 3.常见的问题 前言 对Wi-Fi Direct即wifi直连,在物联,中短距离的传输稳定性明显比蓝牙具有优势,本文主要介绍两个方面:一是原理及架构,二是实 ...

  5. android wifi p2p / wifi direct

    版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/h784707460/article/details/81502574 一. wifi P2P协议相关 ...

  6. 深入理解Wi-Fi P2P

    第7章 深入理解Wi-Fi P2P 本章所涉及的源代码文件名及位置 ·W ifiP2pSettings.java packages/ apps/ Settings/ src/ com/ android ...

  7. Dynamo涉及的算法和协议——p2p架构,一致性hash容错+gossip协议获取集群状态+向量时钟同步数据...

    转自:http://www.letiantian.me/2014-06-16-dynamo-algorithm-protocol/ Dynamo是Amazon的一个分布式的键值系统,P2P架构,没有主 ...

  8. Cassandra——类似levelDB的基于p2p架构的分布式NOSQL数据库

    C: Consistency 一致性 • A: Availability 可用性(指的是快速获取数据) • P: Tolerance of network Partition 分区容忍性(分布式) 1 ...

  9. android——wifi系统架构

    1. 系统架构 Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口.整个WiFi系统架构如下图所示 ...

最新文章

  1. Android SurfaceView 的应用
  2. 结对项目-四则运算 “软件”之升级版
  3. oracle导出BOM文件,ORACLE ERP导数据(BOM清单)-备份恢复-Oracle频道-中国IT实验室
  4. .describe() python_python的apply应用:一般性的“拆分-应用-合并”,附加详细讲解
  5. Harmony OS — ProgressBar垂直、水平进度条
  6. HeadFirstJava——11_异常处理
  7. 谷歌浏览器插件 清除 CSDN广告
  8. 如何使用matlab绘制晶胞结构示意图
  9. 2021/10/04 git 详细流程
  10. 二哥回复读者:研三秋招一败涂地了,怎么办?
  11. HIOKI日置RM3545电阻计/电阻表
  12. 傅立叶变换和拉普拉斯变换
  13. 一度智信开网店靠谱吗
  14. uni-app微信公众号登录
  15. rsa public key not find
  16. HTML+CSS+JavaScript实现登陆注册进入动态相册
  17. 第10章 数据库恢复技术 | 数据库知识点整理
  18. [css] 如何使用Font Awesome
  19. wpl计算方法_已知权值集合为{5,7,2,3,6,1,4},计算带权路径长度WPL()。
  20. 2021年豆瓣图书爬取-根据ISBN爬取图书信息

热门文章

  1. 大屏监控系统数据可视化界面设计
  2. 基于Android的影院在线购票APP的设计与实现
  3. 企业微信打卡项目技术点总结
  4. whistle 在Android7.0以上手机的证书安装
  5. java基于ssm的桶装水纯净水配送管理系统springboot
  6. 《积极心理学》哈佛公开课
  7. 一个北漂的一天时间安排
  8. you-get下载腾讯视频相关
  9. 【物联网】16.物联网开发之传感器
  10. 自适应端在线玩俄罗斯方块源码开源版源码