学习资料: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
- 不在P2P组中的P2P设备可以进入Listen State被发现。
- 在Listen State下,一个P2P设备活跃在一个给定的通道上,称为Listen Channel。这是一个从社交频道列表中选择的频道,应使用2.4 GHz频段中的频道1、6、11和DMG内60 GHz频段中的频道2作为社交频道。
-
Listen Channel应在带内设备发现开始时选择,并在P2P发现完成之前保持不变。
-
Listen State状态下的P2P设备,在接收到Probe Frame前不得发出任何帧数据。
-
Listen State状态下只能响应包含P2P IE、P2P通配符SSID元素、通配符BSSID和作为广播地址或其P2P设备地址的目标地址的 Probe Request frames。
Search State
Scan Phase
- Scan Phase使用在DMG外部操作时的IEEE 802.11-2012 [1]中定义的扫描过程,以及在DMG中操作时的IEEE 802.11-REVmc [11]中定义的扫描过程。P2P设备可以使用P2P设备来查找P2P设备或P2P组,并定位最佳的潜在操作通道,以建立P2P组。
- Scan Phase设备通过扫描所有受支持的通道来收集有关周围设备或网络的信息。
- Scan Phase的P2P设备不得响应探测请求帧。
Find Phase
- 查找阶段用于确保执行设备发现的两个P2P设备到达一个公共通道上,以启用通信。
- 这是通过在P2P设备在固定通道上等待探测请求或发现DMG信标帧(监听状态)或在固定信道列表(搜索状态)上发送探测请求或发现DMG信标帧的状态之间循环来实现的。通过将在听状态的每个周期中花费的时间随机化,帮助同一通道上的两个设备的收敛。通过将通道列表限制为一个称为社交通道的小集合,收敛时间最小化。
- 在查找阶段,P2P设备应在下面指定的监听和搜索状态之间交替使用。
总结
上面的spec文档翻译过来都模模糊糊说不清,下面说人话 !
1. P2P设备发现有两个阶段Scan和Find。
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.