WiFi P2P协议学习

WiFi P2P协议学习基本功能与服务 P2P 设备不能使用 11b 的速率传输数据和管理帧 除非 ProbeRequest 帧要同时发送给 P2P 设备和非 P2P 设备 P2P 设备不能响应显示只支持 11b 速率的 ProbeRequest 帧 P2P 设备应该支持如下一些操作 P2PDiscovery 省电相关 ManagedP2PDe

基本功能与服务

  1. P2P设备不能使用11b的速率传输数据和管理帧,除非
    Probe Request帧要同时发送给P2P设备和非P2P设备

  2. P2P设备不能响应显示只支持11b速率的Probe Request帧

P2P设备应该支持如下一些操作:

  1. P2P Discovery
  2. P2P Group Operation
  3. P2P Power Management 省电相关
  4. Managed P2P Device Operation 在IT部门限制下使用P2P功能

P2P设备寻址

每个P2P设备都有一个P2P设备地址,用于唯一引用该设备。在P2P发现阶段,设备地址都是作为帧的发送地址和接收地址。当一个P2P设备处于一个P2P组中时,要么是GO或GC。GO和GC之间使用接口地址进行数据通信,接口地址不是全局的。

主要功能描述及过程

1. P2P discovery

主要包含如下几个主要部分:

过程 描述
Device Discovery 两个P2P设备在同一个信道上交换信息
Service Discovery 一个可选的Feature,允许在建立P2P连接前,发现可用的更高层服务
Group Formation 确认P2P设备当作GO还是GC
P2P Invitation 触发一个Persistent P2P组,或者邀请一个P2P设备加入一个存在的P2P组中。

2. Device Discovery Procedure

基本机制

Listen State
P2P设备在指定的社会信道(2.4G中的1,6,11信道)上监听Probe Request帧。A P2P Device should be available in the Listen State for at least a contiguous period of 500ms every 5s in order to enable other P2P Devices to discover it.

Scan Phase
1. The P2P Device in the Scan Phase shall not reply to Probe Request frames.
2. 一个P2P设备可以描述特定类型的设备或某个P2P设备。




Find Phase
在此阶段,一个P2P设备交替地在Listen和Search两种状态之间切换。
A P2P Device in the Search State shall not reply to Probe Request frames.
发现处于一个P2P组中的设备
要发现一个P2P组中的设备,必须通过GO。
如果一个设备想加入一个P2P组,则需要
1. 获得GO的允许
2. 如果P2P被provisioned,则连接到P2P组。
如果一个P2P设备想邀请另一个P2P设备组成一个新的组,则可以执行如下 的一些操作
1. 发送一个P2P Invitation Request邀请对方加入。
2. 发送一个P2P Invitation Request调用一个之前建立过的P2P组,其中双方都曾经是这个组的成员,且其中之一是GO。
3. 初始化GO协商,建立一个全新的P2P组。






















两个处于Discovery中的P2P设备
在Scan阶段的P2P设备可以发现处于Listen状态的另一个P2P设备,如果要建立连接,则可以
1. 初始化GO协商以便建立一个新的P2P组。
2. 发送一个P2P Invitation Request帧,调用之前建立过的一个P2P持久组,其中一个设备是组的GO。
3. 发送一个P2P Invitation Request帧请求另一个P2P设备加入当前设备处于的P2P组中,该设备是GO或GC。








针对GO的设备发现过程
已经作为GO的P2P设备会在Operating Channel等待其他设备发现它。GO也可能在其他信道上搜索想要通信的设备或服务。如果P2P GO离开了Operating Channel,则需要使用Notice of Absence机制通知其他设备。

P2P GO发现Legacy Client
Legacy Client只能发现P2P GO。当GO接收到Legacy Client发过来的Probe Request帧时,P2P 设备会传输一个Probe Response帧。Legacy Client可能使用收集的信息初始化一个WSC(Wi-Fi Simple Configuration)用于连接上这个P2P设备。不支持WSC的Legacy Client必须使用其他方法被provisioned,P2P GO应该产生用于Provisioning的Credentials。

P2P设备发现与AP关联的一个P2P设备
过程类似,与AP关联的P2P设备也需要进入Listen状态,以便于被其他设备发现。

3 Service Discovery procedures

optional 

4. Group Formation procedure

完成Group Formation不能超过15秒。

4.1. GO Negotiation.
包含一个三路握手过程,用于协商谁是GO以及P2P组的一些特征。

Created with Raphaël 2.1.2 P2P_Device1 P2P_Device1 P2P_Device2 P2P_Device2 GO Negotiation Request GO Negotiation Response GO Negotiation Confirmation

4.2. Provisioning
To allow for P2P Device configuration, P2P Devices may delay starting the Provisioning phase until the expiration of the maximum of the P2P Group Owners GO Configuration Time and the P2P Clients Client Configuration Time from the respective Configuration Timeout attributes exchanged during Group Owner Negotiation.
The P2P client should connect to GO to obtain Credentials. They use WiFi Simple Configuration to exchange credentials. P2P Group session is established using appropriate credentials.




5. P2P Invitation procedure

P2P组操作
P2P组中的GO相当于AP的角色,而GC则相当于STA角色。每个P2P组都有一个唯一ID。ID包含GO的P2P设备地址,以确保唯一性。加入P2P组的设备需要获得证书,证书要求如下:
1. 认证类型:WPA2-PSK
2. 加密类型:AES
3. 使用64个十六进制字符的网络键值类型
4. 每个组都有不同的SSID。










版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179299.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午3:55
下一篇 2026年3月26日 下午3:55


相关推荐

  • 月之暗面杨植麟:Kimi K2 发布后的深度思考与未来之路

    月之暗面杨植麟:Kimi K2 发布后的深度思考与未来之路

    2026年3月12日
    2
  • python编程是啥-Python编程「建议收藏」

    python编程是啥-Python编程「建议收藏」随着人工智能时代的来临,编程语言的热度居高不下,随着智能机器人的出现,在2020年更是迎来一波新的高峰。在这样的大环境下,关于谁是人工智能最流行编程语言的讨论也十分热烈,C、C++、Java、Python等编程语言不断被拿出来做比较。那么接下来,风变编程来解析一波当下编程语言的新趋势。Python受欢迎度有望超越Java?近日,TIOBE编程语言社区公布了2020年10月编程语言排行榜。榜单数据显…

    2022年5月17日
    37
  • scanf输入字符串遇到空格?

    scanf输入字符串遇到空格?使用 scanf 时对空格处理 问题描述解决办法总结问题描述 scanf 输入字符串 含有空格的字符串 例如 Iloveyou 时 总是在空格处停止扫描 我们用 scanf s str 输入 Iloveyou 字符串后 str 输出却只有 I 这并不是我们想要的 这是因为 scanf 扫描到 I 后面的空格 就认为对 str 的扫描结束 即空格没有被扫描 并舍弃后面的 l

    2026年3月16日
    1
  • Docker 安装 OpenClaw 报错排查完全手册(续):如何解决pairing required,`EACCES: permission denied`Docker 拉取镜像提示 `denied

    Docker 安装 OpenClaw 报错排查完全手册(续):如何解决pairing required,`EACCES: permission denied`Docker 拉取镜像提示 `denied

    2026年3月15日
    2
  • mysql != 索引_Mysql语法

    mysql != 索引_Mysql语法转:https://www.cnblogs.com/huanzi-qch/p/15238604.html介绍通常情况下,全文检索引擎我们一般会用ES组件(传送门:SpringBoot系列——ElasticSearch),但不是所有业务都有那么大的数据量、那么大的并发要求,MySQL5.7之后内置了ngram分词器,支持中文分词,使用全文索引,即可实现对中文语义分词检索MySQL支持全文索引和搜索:  MySQL中的全文索引是FULLTEXT类型的索引。  全文索引只能用于InnoDB或My

    2022年8月24日
    27
  • CSS媒体查询_css网页

    CSS媒体查询_css网页媒体查询可以让我们根据设备显示器的特性(如视口宽度、屏幕比例、设备方向横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。媒体查询中可用于检测的媒体特性有width、height和color(等)。使用媒体查询,可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果。媒体查询与弹性盒布局的适用情况媒体查询当页面的结构发生变化的话最好使用媒体查询。​弹性盒如果只是宽高的变化,尽量使用弹性盒。…

    2025年8月24日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号