WIFI无线网络之Wi-Fi Direct(Wi-Fi P2P)协议
WIFI无线网络之Wi-Fi Direct(Wi-Fi P2P)协议
Wi-Fi Direct 简介
Wi-Fi Direct(Wi-Fi P2P) 是由 Wi-Fi 联盟(Wi-Fi Alliance) 推出的一种基于 IEEE 802.11 标准的无线通信协议,允许设备在 不依赖路由器或接入点(AP) 的情况下,直接建立点对点连接。广泛用于 文件共享、无线投屏、打印、游戏联机等场景。
Wi-Fi Direct 协议栈大致结构
+-----------------------------+
| Application Layer | (Miracast, RTSP, UPnP)
+-----------------------------+
| Wi-Fi Direct Layer | (Group Formation, Negotiation)
+-----------------------------+
| IEEE 802.11 MAC | (MAC 层协议处理)
+-----------------------------+
| PHY | (物理层,Wi-Fi 射频)
+-----------------------------+
Wi-Fi Direct vs IBSS(Ad-Hoc)
Wi-Fi Direct(Wi-Fi P2P) 和 IBSS(Independent Basic Service Set,即 Ad-Hoc 模式) 都是用于实现设备之间“点对点”通信的技术。虽然它们都允许设备不通过接入点(AP)直接通信,但在协议架构、功能支持、安全性、应用场景等方面有显著差异。在前面介绍 IBSS 的时候也简单对比过:https://notes.z-dd.online/2025/05/03/WIFI%E6%97%A0%E7%BA%BF%E7%BD%91%E7%BB%9C%E4%B9%8BIBSS(Ad-Hoc)%E6%A8%A1%E5%BC%8F/
对比维度 | Wi-Fi Direct | IBSS(Ad-Hoc) |
---|---|---|
标准协议 | IEEE 802.11z(Wi-Fi Alliance 定义) | IEEE 802.11 原生支持 |
连接方式 | 支持 Group Owner(GO)角色,可作为临时 AP | 所有设备地位相同,无中心节点 |
是否需要路由器 | 否 | 否 |
IP 分配机制 | GO 可充当 DHCP 服务器分配 IP | 需手动配置或使用自定义 DHCP |
安全性 | 支持 WPA/WPA2 加密和 WPS 快速配对 | 通常不加密,或仅支持 WEP(老旧) |
服务发现机制 | 支持 SSDP/DNS-SD 等服务发现 | 不支持自动服务发现 |
带宽/速率 | 高(支持 802.11n/ac) | 较低(通常为 802.11b/g) |
延迟表现 | 低延迟,适合实时应用 | 延迟较高,不适合视频串流 |
组网能力 | 支持多设备连接(一个 GO 可连接多个 Client) | 多设备共享同一信道,容易冲突 |
兼容性 | Android、Linux、Windows 支持较好 | 老系统支持好,现代系统支持差 |
典型应用 | Miracast 投屏、文件传输、打印 | 局域网直连、旧版游戏联机 |
驱动支持要求 | 需要 nl80211 和 mac80211 支持 P2P | 支持较广,但功能有限 |
Wi-Fi Direct vs Bluetooth
Wi-Fi Direct 结合了传统 Wi-Fi 的高速率和蓝牙的便捷性,使两个 Wi-Fi 设备可以像蓝牙一样直接配对连接,但具备更高的带宽和更低的延迟。
对比项 | Wi-Fi Direct | Bluetooth |
---|---|---|
最大速率 | 几百 Mbps | 通常 < 3 Mbps |
连接距离 | 100 米左右 | 10 米以内 |
功耗 | 较高 | 较低(BLE 更省电) |
配对速度 | 较快 | 快 |
是否需要中间设备 | 否 | 否 |
安全性 | 支持 WPA2 | 支持 AES 加密 |
适用场景 | 高带宽需求(如视频) | 低功耗、小数据量(如耳机) |
Wi-Fi Direct vs Miracast
对比项 | Wi-Fi Direct | Miracast |
---|---|---|
定位 | 通用连接协议 | 视频投屏协议 |
基础 | IEEE 802.11 | 基于 Wi-Fi Direct |
功能 | 任意类型的数据传输 | 视频流 + 音频流 |
编码格式 | H.264、HDCP 等 | H.264 |
应用场景 | 文件共享、打印、IoT | 手机投电视、PC 投电视 |
基本工作原理
Wi-Fi Direct 基于 IEEE 802.11 协议族,并引入了一些新的机制来实现点对点通信:
1. Group Formation(组形成)
- 两个或多个设备协商谁作为“Group Owner”(GO),相当于临时 AP。
- GO 负责管理 IP 分配、信道选择、安全认证等。
- 其他设备为 Client,连接到 GO。
2. 服务发现机制(Service Discovery)
- 支持 SSDP、DNS-SD 等协议,用于查找其他设备上可用的服务(如打印机、媒体服务器)。
- 用户可以通过搜索找到附近的设备并发起连接。
3. 安全连接机制(WPS/WPA2)
- 使用 WPS(Wi-Fi Protected Setup)进行快速配对。
- 使用 WPA2 加密保证数据传输的安全性。
关键概念解释
- Group Owner (GO) :类似临时 AP,负责管理连接和网络配置
- Client :连接到 GO 的设备
- Device Discovery :发现附近支持 Wi-Fi Direct 的设备
- Negotiation :协商哪个设备成为 GO
- WPS(Wi-Fi Protected Setup) :快速配对机制,包括 PBC(按钮连接)、PIN 码配对等方式
- RTSP / Miracast :常见的应用层协议,用于视频投屏
主要特性
特性 | 描述 |
---|---|
无需路由器 | 直接连接,无需中间设备 |
高带宽支持 | 最大速率可达数百 Mbps(取决于 Wi-Fi 标准) |
低延迟通信 | 更适合实时应用(如音视频串流) |
兼容传统 Wi-Fi | 可与普通 Wi-Fi 网络共存 |
支持多设备连接 | 一个 GO 可以连接多个客户端 |
支持 IPv4/IPv6 | 自动分配 IP 地址 |
典型应用场景
应用 | 描述 |
---|---|
无线打印 | 手机直接连接打印机打印文档 |
多媒体串流(Miracast) | 手机将屏幕内容投射到电视或 PC |
文件共享 | 在设备之间直接传输照片、视频等文件 |
游戏联机 | 多人本地游戏通过 Wi-Fi Direct 连接 |
远程控制 | 控制无人机、摄像头等 IoT 设备 |
车载系统互联 | 手机连接车机系统播放音乐或导航 |
Linux 下简单测试 Wi-Fi Direct
前提条件
- WIFI芯片 :支持 IEEE 802.11n/ac 并支持 P2P
- 驱动支持 :必须支持
nl80211
接口,且芯片相关驱动需支持
1. 查看wifi是否支持p2p
查看当前无线接口是否支持 P2P:
iw list
输出中应包含类似字段:
Supported interface modes:
* managed
* AP
* P2P-client
* P2P-GO
2. 确保wpa_supplicant
已启用
从 v2.0 开始支持 Wi-Fi Direct,确保wpa_supplicant
(核心守护进程)已启用未启用则启用:
示例命令:
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -D nl80211
3. 使用wpa_cli
简单测试p2p
可以按以下步骤进行简单测试:
- 机器 A(GO)
sudo wpa_cli -i wlan0 ## 在交互模式下: > p2p_group_add # 创建 Group > quit sudo ip addr add 192.168.44.1/24 dev p2p-wlan0-0 sudo ip link set p2p-wlan0-0 up ##启动 DHCP 服务器(可选) sudo dnsmasq --interface=p2p-wlan0-0 --dhcp-range=192.168.44.100,192.168.44.200,255.255.255.0 --dhcp-option=3,192.168.44.1 --no-daemon
- 机器 B(Client)
sudo wpa_cli -i wlan0 # 在交互模式下: > p2p_find # 开始扫描 > p2p_peers # 查看已发现设备 > p2p_connect <GO_MAC> pbc go_intent=0 # 连接设备 > quit
总结
项目 | 内容 |
---|---|
中文名称 | Wi-Fi 点对点 / Wi-Fi 直连 |
英文名称 | Wi-Fi Direct / Wi-Fi P2P |
标准组织 | Wi-Fi Alliance |
协议基础 | IEEE 802.11(含 802.11z) |
主要用途 | 设备直连、无线投屏、文件共享等 |
优势 | 高带宽、低延迟、无需路由器 |
劣势 | 功耗较高、配置复杂 |
支持平台 | Android、Linux、Windows、嵌入式系统 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DD'Notes!
评论