标签:android style blog http color 使用 os io
承接第6章介绍的WSC,本章将继续介绍Wi-Fi Alliance(Wi-Fi联盟)推出的另外一项重要技术规范Wi-Fi P2P。该规范的商品名为Wi-Fi Direct,它支持多个Wi-Fi设备在没有AP的情况下相互连接。
在Android平台的Wi-Fi相关模块中,P2P的功能点主要集中在:
和WSC一样,本章的分析拟采用如下方法:
下面,先来认识一下P2P。
WFA定义的P2P协议文档全名为“Wi-Fi Peer-to-Peer(P2P) Technical Specification”,目前的版本为1.1,全长160页。P2P技术使得多个Wi-Fi设备在没有AP的情况下也能构成一个网络(P2P Network,也被称之为P2P Group)并相互通信。
Wi-Fi P2P技术是Wi-Fi Display(也称之为Miracast,详情请参考作者的一篇博文http://blog.csdn.net/innost/article/details/8474683)的基础。在Miracast应用场景中,一台支持P2P的智能手机可直接连接上一台支持P2P的智能电视,智能手机随后将自己的屏幕,或者媒体资源传送给电视机去显示或播放。显然,借助P2P技术,Wi-Fi设备之间的直接相连将极大拓展Wi-Fi技术的使用场景。
注意:根据笔者自己的判断,随着支持越来越多的设备支持P2P和Miracast,智能终端设备之间的多屏共享和互动功能将很快得以实现。另外,恰逢本章撰写之际,Google发布了Android 4.3。在这次发布盛会上,Google推出了ChromeCast设备。目前,ChromeCast的技术实现细节还不清楚,据说有可能是Google自己定义的Google cast协议(可参考developers.google.com/cast)。
下面先简单介绍一下P2P的架构。
P2P架构中定义了三个组件,笔者将其称之为一个设备,两种角色。这三个组件分别是:
相信对本书的读者对上面这三个组件的概念并不陌生。实际上,P2P技术模仿了Infrastructure BSS网络结构:
最终构成的这个P2P Group组织结构如图7-1所示:
图7-1 P2P Group示意图
图7-1展示了一个典型P2P Group的构成,其中:
注意:“不支持P2P功能”更准确的定义是指不能处理P2P协议。在P2P网络中,GO等同于AP,所以Legacy Clients也能搜索到GO并关联上它。不过,由于Legacy Clients不能处理P2P协议,所以P2P一些特有功能在这些Legacy Clients中无法实现。
通过上述介绍读者会进一步发现P2P Group和Infrastructure BSS的相似性:
这部分内容和Infrastructure BSS中STA利用WSC先协商安全信息然后再关联至AP的流程完全一样。正是这种相似性,使得P2P能充分利用现有的一些技术规范。图7-2所示为P2P及其依赖的技术项:
图7-2 P2P及其依赖的技术项
由图7-2可知:
在如图7-2所示的技术项中,P2P Discovery是P2P所特有的,也是其核心。本章将主要围绕它进行介绍。首先来看P2P Discovery。
提示:
1、P2P Group Operation讲得是GO如何管理一个Group,也就是GO的工作职责。这部分内容请读者自行学习参考资料[2]一节。
2、P2P PowerManagement和P2P设备的电源管理有关,用于节省不必要的电力损耗。由于篇幅关系,本章不拟讨论它。请感兴趣的读者自行学习参考资料[3]。
P2P Discovery的目的很简单,就是使得多个P2P Device能够互相发现并构建一个Group。根据规范,它包括四个主要技术子项:
提示:Group分Persistent(永久性) Group和Temporary(临时性) Group两种。我们举二个简单例子来说明二者的区别:
Temporary Group:当你有份文件要传给一个同事时,双方打开手机的Wi-Fi P2P功能,建立一个Group,然后传输文件,最后关闭Wi-Fi P2P。在这个过程中,GO和Client的角色分配由Group Formation来决定,这一次的GO可能是你的设备,下一次则可能是其他人的设备。对于这种Group,在建立Group过程中所涉及的安全配置信息以及和Group相关的信息(以后我们会见到它)都是临时的,即下一次再组建Group时,这些安全配置信息都将发生变化。
Persistent Group:在这种Group中,GO由指定设备来扮演,而且安全配置信息及Group相关信息一旦生成,后续就不会再发生变化(除非用户重新设置)。Persistent Group中的GO多见于固定用途的设备,例如打印机等。如此,除了第一次通过P2P连接到打印机时相对麻烦一点(需要利用WSC协商安全配置信息)外,后续使用的话,由于P2P设备将保存这些安全信息,所以下一次再使用打印机时就能利用这些信息直接和打印机进行关联了。
由于篇幅关系,本章将仅介绍上述四个知识点中最为基础的Device Discovery和Group Formation,而Service Discovery和P2P Invitation的内容请读者学习完本章后再仔细研读P2P规范。
P2P Device Discovery虽然也是利用802.11中的Probe Request和Probe Response帧来搜索周围的P2P设备,但其步骤却比Infrastructure BSS中的无线网络搜索要复杂。举一个简单的例子,一个P2P Device除了自己要发送Probe Request帧外,还得接收来自其他设备的Probe Request帧并回复Probe Response帧。而在Infrastructure BSS中,只有AP会发送Probe Response帧。
为了加快搜索速度,P2P为Device Discovery定义了两个状态和两个阶段。
P2P Device Discovery的工作流程包含两个状态和两个阶段。先来看两个状态,它们分别是:
再来看两个阶段,它们分别是:
图7-3所示为P2P Device Discovery的流程示意图。
图7-3 P2P Device Discovery流程示意图
图7-3所示为两个P2P Device的Discovery流程,其中:
提示:P2P规范对两个状态及两个阶段的描述非常细致,甚至于对每个状态能干什么和不能干什么都有详细说明。不过,从如何快速掌握P2P框架的角度来看,笔者觉得这些内容过于啰嗦。
了解了Device Discovery的大体工作流程后,下面我们将通过实例来看看P2P使用到的Probe Request和Probe Response帧。
http://blog.csdn.net/innost/article/details/8474683
转自邓凡平 《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第七章 深入理解Wi-Fi P2P部分节选,布布扣,bubuko.com
转自邓凡平 《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第七章 深入理解Wi-Fi P2P部分节选
标签:android style blog http color 使用 os io
原文地址:http://www.cnblogs.com/9420sunshine/p/3922388.html