前言
在WiFi直连(WiFi Direct,也称为peer-to-peer,P2P)中,设备可以不通过AP(Access Point)进行连接。在P2P group中,称为GO(Group Owner)的设备具有像AP一样的功能,其他被称为GC(Group Client)的设备就去连接GO。支持WiFi Direct功能的设备都可以称为GO或GC。在Group Formation阶段,设备会被确定称为GO还是GC。笔者将会后面的博客讨论Group Formation过程。在P2P group中,只会存在一个GO,其他许多的GC去连接这个GO,然后进行通信。
一、P2P的模型
1.1 P2P的组成
P2P体系结构由支持设备间通信的交互组件组成。 P2P设备
- 能够作为P2P GO(Group Owner)或P2P GC(Group Client)角色。
- 能够协商成为GO或GC。
- 能够支持WSC(Wi-Fi Simple Configuration)Registrar和P2P discovery机制。
- 能够支持WLAN和P2P并发运行。
P2P GO角色:
- 类似于AP实体,对P2P GC提供BSS功能和服务。
- 提供WSC功能。
- 可能提供关联GC之间的通信
P2P GC角色:
- 实现STA的功能。
- 提供WSC Enrollee功能。
1.2 P2P的拓扑
P2P拓扑是1:n策略,多个GC可以连接同一个GO。这些连接的设备被称为一个P2P Gourp。
在DMG之外的运行每个client可能是P2P GC或传统的不具有P2P功能的Client。在DMG之内运行的每个client必须是具备P2P功能的GC。 图1 在DMG之外的P2P组成和拓扑 图2 在DMG中的P2P组成和拓扑
一个P2P Group有唯一的SSID,图3表示1:1的拓扑。 图3 P2P Group 拓扑为1:1
1.3 P2P并发模式
支持P2P功能的设备可以并发模式运行,也就是STA(Station)模式和P2P模式共存。在并发模式中,P2P设备可以连接一个AP。因此,P2P设备可以GO+STA或GC+STA模式运行。在并发模式中,设备存在两个interface接口,并且这两个interface大概率处于同一个channel信道,也有可能处于不同的channel和band。
在下图中可以看到,P2P设备处于并发模式。 图4 P2P Concurrent Device
图4显示了P2P设备有一个MAC实体作为了WLAN-STA,另外一个MAC实体作为了P2P Device。双MAC功能可以通过两个独立的物理MAC实体提供,每个实体与自己的PHY实体关联,或者两个虚拟MAC实体与一个PHY实体关联。
一个P2P group可以与一个并发操作的WLAN BSS处于相同或者不同的信道中。比如,WLAN BSS可能处于5.2GHz的channel 36,而P2P group在2.4GHz的channel 6。
1.4 功能和服务
1.4.1 基本功能和服务
在DMG之外运行的P2P,规范是假设以下STA功能和服务在设备中已经实现:
- IEEE 802.11g或比2.4GHz更新的PHY
- IEEE 802.11i(IES-CCMP)
- WiFi Protected Setup
- WiFi Multimedia
在DMG之内运行的P2P,规范是假设以下STA功能和服务在设备中已经实现:
- 在IEEE 802.11-2020中定义的DMG操作
- 在IEEE 802.11-2020中定义的AES-GCMP
- WiFi Protected Setup
图5 P2P及其依赖的技术
P2P技术一个主要的应用场景就是Miracast,设备之间共享媒体数据,所以P2P还必须支持WMM(WiFi Multimedia),WMM是一种源自802.11e的Qos服务,主要是针对实时音视频数据的传输。
1.4.2 P2P的特殊功能和服务
P2P设备还支持以下特殊功能:
- P2P Discovery:让设备轻易快速简单地识别并连接周围其他P2P设备和服务。
- P2P Group Operation:在DMG之外运行时类似于基础BSS操作,如IEEE802.11-2020所定义。在DMG内运行时类似于PBSS操作。
- P2P Power Management:提供了一系列的功能去减少P2P设备的功率消耗。
1.4.3 P2P的两种地址
- P2P Device Address
一个P2P设备在加入P2P Group之前都是使用的Device Addr开展Discovery等工作。对于一个P2P设备而言,Device Addr是唯一的,作用等同于MAC地址。 - P2P Interface Address
而当P2P设备加入P2P Group之后,它与Group中的其他设备交互时采用的时Interface Addr。另外,由于一个设备可以加入多个P2P Group,所有在每个P2P Group中设备必须采用不同的Interface Addr。当某一个P2P Group结束之后,设备在该Group中使用的Interface Addr也随之消失。
二、P2P discovery阶段
2.1 介绍
P2P discovery阶段让P2P设备快速查找周围的其他P2P设备,并建立连接。P2P discovery主要由以下几个部分组成:
- Device Discovery,让两个设备到达相同的channel并交换彼此的设备信息。
- Service Discovery,是一个可选特性,允许P2P设备在形成连接之前发现可用的上层服务。
- Group Formation,用于确定哪台设备时GO,并形成一个新的P2P Group。
- P2P Invitation,用于调用一个存在P2P Gourp或者邀请一个P2P设备加入这个组。
2.2 P2P设备Discovery过程
2.3
|