WiFi Direct即P2P协议学习笔记


前言

在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 Group。

在DMG之外的运行每个client可能是P2P GC或传统的不具有P2P功能的Client。在DMG之内运行的每个client必须是具备P2P功能的GC。
P2P components and topology when operating outside DMG
图1 在DMG之外的P2P组成和拓扑
P2P components and topology when operating within DMG
图2 在DMG中的P2P组成和拓扑

一个P2P Group有唯一的SSID,图3表示1:1的拓扑。
A subset of P2P 1:n topology (n=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设备处于并发模式。
P2P concurrent device
图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

P2P及其依赖的技术
图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主要由以下几个部分组成:

  1. Device Discovery,让两个设备到达相同的信道并交换彼此的设备信息(例如设备名称和设备类型)。在P2P协议规范中,Device Discovery在1,6,11信道进行。
  2. Service Discovery,是一个可选特性,允许P2P设备在形成连接之前发现可用的上层服务。
  3. Group Formation,用于确定哪台设备时GO,并形成一个新的P2P Group。
  4. P2P Invitation,用于调用一个存在P2P Group或者邀请一个P2P设备加入这个Group。

2.2 P2P设备Discovery过程

基本原理:P2P设备进行主动扫描从而发现附近的其他设备,设备使用probe request和probe response帧去发现彼此。P2P Group形成之后,GO会发送beacon帧去发现设备。
P2P Device不会回复probe request帧,除非它是GO或者处于Listen State。
P2P Device不会发送beacon帧,除非它是GO。
下面这张图展示了Discovery的过程:
P2P Device Discovery过程
Scan阶段:扫描阶段使用IEEE Std 802.11-2012中定义的扫描过程。P2P设备可以在这个阶段查找其他的P2P设备或者P2P Group,并选择最佳的信道去建立P2P Group。在Scan阶段,设备扫描自己支持的所有信道(可以是Channel 1,6,11,也可以是全新到扫描)去寻找周围的其他设备。在Scan阶段的P2P设备不会回复Probe Request帧
Listen状态:不属于P2P Group中的设备如果处于Listen状态可以被其他的设备发现。Listen状态会给定一个信道,叫Listen Channel监听信道。这是从Social Channels中选择的一个信道,2.4GHz频段中Channel 1,6,11被作为Social Channels。

Listen Channel应在设备Discovery之初选择,并应保持不变,直到P2P Discovery阶段完成。

处于Listen状态的P2P设备只能对Probe Request探测请求帧进行应答,探测请求帧包含P2P IE、P2P通配符SSID元素、一个通配符BSSID和一个目的地址(广播地址或其P2P设备地址)。

每个P2P 设备都会选择一个随机数,随机数的上限和下限分别是maxDiscoverableInterval和minDiscoverableInterval,默认情况分别为3和1。如果随机数为1,那么设备会处于Listen状态的时间为100TU,如果随机数为3,那么设备处于Listen状态的时间为3*100TU。随机数的机制主要是为了避免两个设备Listen和Search的时间同步,导致互相搜索不到彼此。

Search状态:P2P device会在social channel上发送一个或多个Probe Request帧。这些Probe Request帧包含以下信息。

  • P2P IE
  • WSC IE,以及Device Name,Primary Device Type和Device Password ID等。
  • SSID,用来设置P2P Wildcard SSID
  • BSSID
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值