[Spec] WiFi P2P Discovery

news2024/11/25 20:27:40

学习资料:Android Miracast 投屏


目录

学习资料:Android Miracast 投屏

P2P discovery

Introduction

 Device Discovery procedures

 Listen State

Search State

Scan Phase

Find Phase

总结


P2P discovery

Introduction


 

 P2P发现使P2P设备能够快速地找到彼此并形成一个连接。

P2P发现由以下主要组件组成:

  • 设备发现便于两个P2P设备到达一个公共通道上,并交换设备信息(例如,设备名称和设备类型)。
  • 服务发现是一个可选的特性,它允许P2P设备在形成连接之前发现可用的高级服务。
  • 组的形成用于确定哪些设备将成为P2P组的所有者,并形成一个新的P2P组。
  • P2P邀请用于调用持久性P2P组或邀请P2P设备加入现有的P2P组。

 Device Discovery procedures


P2P设备发现的目标是查找P2P设备,并快速确定将尝试连接到的P2P设备。

设备发现包括两个主要阶段:Scan和Find (从中文翻译的意思看是一个意思,下面看区别)

  •  带内设备发现使用探测请求帧(Probe Request Frame)和探测响应帧(Probe Response Frame)来交换设备信息。

 Listen State


  1.  不在P2P组中的P2P设备可以进入Listen State被发现。
  2. Listen State下,一个P2P设备活跃在一个给定的通道上,称为Listen Channel。这是一个从社交频道列表中选择的频道,应使用2.4 GHz频段中的频道1、6、11和DMG内60 GHz频段中的频道2作为社交频道。
  3. Listen Channel应在带内设备发现开始时选择,并在P2P发现完成之前保持不变。
  4. Listen State状态下的P2P设备,在接收到Probe Frame前不得发出任何帧数据。
  5. Listen State状态下只能响应包含P2P IE、P2P通配符SSID元素、通配符BSSID和作为广播地址或其P2P设备地址的目标地址的 Probe Request frames

Search State


Scan Phase


  1. Scan Phase使用在DMG外部操作时的IEEE 802.11-2012 [1]中定义的扫描过程,以及在DMG中操作时的IEEE 802.11-REVmc [11]中定义的扫描过程。P2P设备可以使用P2P设备来查找P2P设备或P2P组,并定位最佳的潜在操作通道,以建立P2P组。
  2. Scan Phase设备通过扫描所有受支持的通道来收集有关周围设备或网络的信息。
  3. Scan Phase的P2P设备不得响应探测请求帧。

Find Phase


 

  1.  查找阶段用于确保执行设备发现的两个P2P设备到达一个公共通道上,以启用通信。
  2. 这是通过在P2P设备在固定通道上等待探测请求或发现DMG信标帧(监听状态)或在固定信道列表(搜索状态)上发送探测请求或发现DMG信标帧的状态之间循环来实现的。通过将在听状态的每个周期中花费的时间随机化,帮助同一通道上的两个设备的收敛。通过将通道列表限制为一个称为社交通道的小集合,收敛时间最小化。
  3. 在查找阶段,P2P设备应在下面指定的监听和搜索状态之间交替使用。

总结


上面的spec文档翻译过来都模模糊糊说不清,下面说人话 !

1. P2P设备发现有两个阶段ScanFind

2. P2P设备工作状态有两个如下:

    Listen :不发送Probe Request Frame,只在收到probe后回复Probe Response Frame。

    Search:只发送Probe Request Frame,不回复Probe Response Frame

3. 在对方的Probe Response Frame,表明回复了我的Probe Request Frame即为发现了设备。

如图:

1. device 1 和device 2 都开始start Discovery,进入scan 阶段,在所有支持的channel上发送Probe Frame。

2. 进入Find阶段,两个device 随机切换Listen 和 search状态,时间间隔随机N*Intervals,在1/6/11三个channel上遇到了2回复了1的probe frame,表示device 1搜索到了device 2.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/684592.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WiSA Technologies开始接受WiSA E多声道音频开发套件的预订

美国俄勒冈州比弗顿市 — 2023年6月13日 — 为智能设备和下一代家庭娱乐系统提供沉浸式无线声效技术的领先供应商WiSA Technologies股份有限公司(NASDAQ股票代码:WISA)宣布:该公司现在正在接受其WiSA E开发套件的预订。WiSA E使用…

论文不详细解读(一)——MoCo系列

1. MoCo v1 论文名称: Momentum Contrast for Unsupervised Visual Representation Learning 开源地址:https://github.com/facebookresearch/moco 大佬详细解读:https://zhuanlan.zhihu.com/p/382763210 motivation 原始的端到端自监督方…

听说软件测试岗位基本都是女孩子在做?

“听我一朋友说,测试岗位基本都是女孩子做。” 不知道是不是以前“软件测试岗”给人印象是“不需要太多技术含量”的错觉,从而大部分外行认为从业软件测试的人员中女生应占了大多数。比如有人就觉得:软件测试主要是细心活,所以女生…

Python多任务执行方式

一、多任务的执行方式 并发:在一段时间内交替去执行任务(单核CPU)并行:CPU核数大于任务数 二、进程(实现多任务)——操作系统调度 进程是操作系统进行资源分配的基本单元一个程序至少有一个进程&#xf…

极致呈现系列之:EchartsK线图的数据量化

目录 什么是K线图K线图的特性及应用场景K线图的特性K线图的应用场景 Echarts中K线图的常用属性Vue3中创建K线图 什么是K线图 K线图是一种用于展示金融市场中股票、期货、外汇等交易品种价格走势的图表形式。它由一根根的垂直线条和水平线组成,能够直观地显示出一段…

OJ #378 字符串括号匹配2

题目描述 ​ 给出一个字符串,判断其中的左右括号是否匹配。 ​ 注:需同时判断左右圆括号 ( 和 ) ,左右中括号 [和],左右大括号 {和}。 ​ 不需要考虑括号之间的优先级的问题,也就是说,小括号包含大括号&…

NodeJS应届毕业生财务管理系统-计算机毕设 附源码82886

基于VueNodeJS应届毕业生财务管理系统 摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在…

合宙Air724UG Cat.1模块硬件设计指南--看门狗

概述 Air724UG 内部已经自带了看门狗,4秒进行一次喂狗,如果主芯片异常死机,自带的看门狗15秒左右会硬件复位主芯片。 另外主芯片死机情况下,reset键也可以硬重启。 通常情况下不需要外加硬件看门狗,如果对系统稳定性有…

FreeRTOS和uC/OS:选择入手哪个RTOS更合适?

FreeRTOS和uC/OS是两个流行的实时操作系统(RTOS),用于嵌入式系统开发。它们有一些区别,但选择哪个先入手取决于你的需求和项目要求。 复杂度:FreeRTOS是一个相对较简单的RTOS,它专注于提供基本的实时调度和…

西门子Mendix 入门 3

导航页面:用于在应用程序中添加或修改其他页面 创建查看查看和添加公司不同部门的页面 打开导航页面,添加新项目 选择TaskTracke新建一个名为Department_Overview的页面,并选择List作为模板 创建成功 现在转到 Department_Overview页面 链接数…

揭秘2023年项目管理软件排行榜实力榜

在现代的商业世界中,项目管理是必不可少的一个组成部分。为了成功地管理一个项目,项目经理需要实施一种系统化的方法来确保项目在时间和预算的约束下成功。这就需要使用专业的项目管理软件。因此,项目管理软件在商业领域中扮演着至关重要的角…

管理类联考——逻辑——知识篇——分析推理——一、排序——haimian

排序 题型特征 排序题通常是依据大小、时间、名次和前后等条件将几个元素有序地排在若干连续排列的位置上。解题时要找出一个对整个排列起决定作用的条件,然后涉及先后位置的条件尽可能结合起来进行解题。 思维导图 思路点拨 注意选项的模式,如果已经…

阿维塔进攻全场景NCA:“遥遥领先”能否赢得市场买单?

阿维塔正在高阶智驾的落地上奋力探索。 “在阿维塔上面,长安汽车、华为、宁德时代做了非常深层次的合作”,6月15日,阿维塔科技副总裁、首席营销官CMO 李鹏程称。当天,阿维塔邀请媒体走进深圳华为坂田基地的华为智能汽车解决方案展…

Autonomous Vehicles Learning Notes

文章目录 自动驾驶感知传感器多模态传感器融合BEVCorner Cases 缩写 未完待续。。。 自动驾驶 来自:浅谈自动驾驶技术与挑战 L0:主动刹车、盲点监测、车道偏离预警和车身稳定系统都属于 L0 级别的自动驾驶; L1:如车道保持系统&a…

MongoDB聚合查询(二)

MongoDB聚合查询 什么是聚合查询 聚合操作主要用于处理数据并返回计算结果。聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和、平均值、最大值、最小值)以返回单个结果。 MongoDB的聚合查询 聚合是…

springboot+vue学生档案借阅管理系统_8xpgg-

随着社会的不断进步与发展,人们对生活质量要求逐步提升。如果开发一款档案管理系统,可以让学生在最短的时间里享受到最好的服务;而开发本系统,又能够提高系统整体工作水平,简化工作程序,这对管理员和学生来…

【算法题】数组系列(找出数组中重复的数字、二维数组中的查找)

算法题 数组系列 一、找出数组中重复的数字1.1、题目1.2、解题思路1(排序法)1.3、解题思路2(hash)1.4、小结 二、二维数组中的查找2.1、题目2.2、理解题目2.3、解题思路2.3.1、暴力枚举2.3.2、二分查找2.3.3、对角线查询&#xff…

【数据结构与算法C++实现】3、排序算法

原视频为左程云的B站教学 以下所有的swap()函数,函数定义为 void swap(int& a, int& b) {int t a;a b;b t; } // 也可以用异或,但不能传入同一个变量,可以是不同变量相同值 void swap(int& a, int& b) {a a ^ b;b a ^ …

极智开发 | 让wsl2读取宿主机usb设备

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文介绍一下 让wsl2读取宿主机usb设备的方法。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:…

高效处理消息:使用Spring Boot实现消息重试机制

当涉及到消息发送和接收的可靠性,Spring Boot提供了一些机制来确保消息的可靠传递。其中包括消息确认机制和重试机制。下面是一个示例代码,演示如何在Spring Boot中实现可靠的消息发送和接收。 首先,我们需要配置RabbitMQ的连接信息和相关属性…