Wi-Fi Direct (P2P)原理及功能介绍

devtools/2025/1/12 0:45:35/

目录


P2P_4">Wi-Fi DirectP2P)介绍

P2P__6">Wi-Fi Direct P2P 概述

  • 定义Wi-Fi Direct P2P 是一种允许支持相应硬件的设备无需中间接入点,直接通过 Wi-Fi 相互连接的技术。
  • 特点
    • 便捷性:设备之间可以快速、直接地建立连接,无需依赖传统的无线路由器或接入点,方便在没有网络基础设施的环境中使用。
    • 高速性:能够提供比蓝牙等其他短距离通信技术更高的数据传输速率,适用于大文件传输、高清视频流媒体等对带宽要求较高的应用。
    • 安全性:采用了与传统 Wi-Fi 网络相似的安全机制,如 WPA2 加密等,确保设备之间通信的安全性。
    • 兼容性:不同制造商的符合 Wi-Fi Direct 标准的设备之间可以相互连接和通信,具有较好的兼容性。

P2PGOP2P_Group_Owner_15">P2P-GO(P2P Group Owner)

  • 定义:在 Wi-Fi Direct P2P 网络中,P2P-GO 是指 P2P 组的所有者,也被称为软接入点(Soft-AP)。
  • 作用
    • 网络管理:负责管理 P2P 组内的设备连接、数据传输和网络资源分配等。其他设备需要通过与 P2P-GO 建立连接来加入 P2P 组并进行通信。
    • 服务提供:可以提供网络接入、文件共享、打印服务等功能,使其他设备能够访问和使用这些服务。
    • 设备发现:在 P2P 组形成过程中,P2P-GO 通常会参与设备发现和协商过程,确定哪些设备可以加入 P2P 组以及它们的角色和权限。

工作流程

  1. 设备发现:支持 Wi-Fi Direct P2P 的设备在开启该功能后,会自动搜索附近的其他 P2P 设备。设备可以通过发送探测请求和接收探测响应来发现其他设备的存在。
  2. P2P 组形成:在发现其他设备后,设备之间会进行协商,确定哪个设备将成为 P2P-GO。这可以通过自动协商或手动指定的方式进行。一旦确定了 P2P-GO,其他设备就可以向 P2P-GO 发送连接请求,请求加入 P2P 组。
  3. 连接建立P2P-GO 收到连接请求后,会对请求进行验证和授权。如果请求合法,P2P-GO 会与请求设备建立连接,并为其分配一个唯一的 IP 地址。连接建立后,设备之间就可以开始进行数据传输和通信。
  4. 数据传输:在 P2P 组内,设备之间可以通过 TCP/IP 协议或其他应用层协议进行数据传输。P2P-GO 会负责转发数据帧,确保数据能够在组内的设备之间正确传输。
  5. P2P 组拆除:当设备之间的通信结束或需要断开连接时,设备可以向 P2P-GO 发送拆除连接的请求。P2P-GO 收到请求后,会释放相关的网络资源,并拆除与该设备的连接。如果 P2P 组内的所有设备都断开连接,P2P 组将自动解散

wifiDirect_33">wifi-Direct使用

wifidirect_35">windows11 wifi-direct

使用IPCONFIG /ALL可查看设备是否支持p2p.

image-20250106095209898

win11可通过wifi-direct连接支持p2p的显示器或打印机等设备。

image-20250106095131592

Openwrt

Openwrt平台下, iw命令查询Supported interface modes:字段, 可显示当前wifi网卡支持的模式。P2P-client、P2P-GO表明其支持wifi-direct。

iw list
Wiphy phy0wiphy index: 0max # scan SSIDs: 32max scan IEs length: 465 bytesmax # sched scan SSIDs: 0max # match sets: 0Retry short limit: 7Retry long limit: 4Coverage class: 0 (up to 0m)Device supports AP-side u-APSD.Available Antennas: TX 0 RX 0Supported interface modes:* IBSS* managed* AP* AP/VLAN* monitor* P2P-client* P2P-GOBand 1:Capabilities: 0x16eHT20/HT40SM Power Save disabledRX HT20 SGIRX HT40 SGIRX STBC 1-streamMax AMSDU length: 3839 bytesNo DSSS/CCK HT40Maximum RX AMPDU length 32767 bytes (exponent: 0x002)Minimum RX AMPDU time spacing: 8 usec (0x06)HT Max RX data rate: 72 MbpsHT TX/RX MCS rate indexes supported: 0-7Frequencies:* 2412 MHz [1] (20.0 dBm)* 2417 MHz [2] (20.0 dBm)* 2422 MHz [3] (20.0 dBm)* 2427 MHz [4] (20.0 dBm)* 2432 MHz [5] (20.0 dBm)* 2437 MHz [6] (20.0 dBm)* 2442 MHz [7] (20.0 dBm)* 2447 MHz [8] (20.0 dBm)* 2452 MHz [9] (20.0 dBm)* 2457 MHz [10] (20.0 dBm)* 2462 MHz [11] (20.0 dBm)* 2467 MHz [12] (20.0 dBm) (no IR)* 2472 MHz [13] (20.0 dBm) (no IR)* 2484 MHz [14] (20.0 dBm) (no IR)valid interface combinations:* #{ managed } <= 2, #{ IBSS, AP, P2P-client, P2P-GO } <= 1,total <= 2, #channels <= 1, STA/AP BI must matchHT Capability overrides:* MCS: ff ff ff ff ff ff ff ff ff ff* maximum A-MSDU length* supported channel width* short GI for 40 MHz* max A-MPDU length exponent* min MPDU start spacingmax # scan plans: 1max scan plan interval: -1max scan plan iterations: 0Supported extended features:* [ RRM ]: RRM* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211* [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support* [ DEL_IBSS_STA ]: deletion of IBSS station support* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support* [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support

wificoncurrent_mode_124">wifi的concurrent mode

wifi的共存模式,有以下几种:

  • station mode + station mode

  • station mode + ap mode

  • station mode + p2p mode

  • p2p mode + ap mode

以上各模式中的station,ap,p2p在驱动中都需要对应的网络接口的,对于p2p mode + ap mode, 加载驱动后就会出现wlan0,p2p0两个网络接口。

image-20250106113014713

Linux环境下的配置工具

工作模式使用的工具
STAwpa_supplicant
APhostapd
P2Pwpa_cli

wifiP2P_148">必联wifi芯片P2P支持

aic8800d_linux_sdk_V3.0_2024_0712_e2a932c1\USB\driver_fw\drivers\aic8800\aic8800_fdrv\Makefile

CONFIG_USB_NO_TRANS_DMA_MAP = n
CONFIG_GPIO_WAKEUP = n
CONFIG_CREATE_TRACE_POINTS = n
CONFIG_SUPPORT_REALTIME_CHANGE_MAC = y
CONFIG_USE_USB_ZERO_PACKET = y
CONFIG_DEBUG_FS = n
#使能P2P
CONFIG_STA_SCAN_WHEN_P2P_WORKING = y
CONFIG_SET_VENDOR_EXTENSION_IE = n
CONFIG_VENDOR_GPIO = n
CONFIG_FWLOG_EN = n
CONFIG_FOR_IPCAM = n
CONFIG_5M10M = n

REF

什么是 Wi-Fi Direct 以及如何判断您的计算机是否支持它

[WiFi Direct:它的用途以及拥有它的设备](https://itigic.com/zh-CN/wifi-direct-what-it-is-used-for-and-what-devices-have-it/#:~:text=为此,您只需按照我们将要展示的一系列步骤进行操作,您就可以知道是否您可以连接其他设备或交换文件。 您要做的第一件事是转到开始,进入终端或命令提示符并执行以下命令: 执行后,将显示有关您的连接的非常完整的信息。 您将看到网卡上的数据、MAC,地址、IP、适配器型号……您还会看到(或没有)提及 WiFi Direct。 您将看到类似于下图中的内容,这证实了我们的设备是兼容的。)

wifi direct—深入理解Wi-Fi P2P - 张同光 - 博客园

linux环境的wifi配置工具及工作模式区分介绍_linux wifi p2p-CSDN博客

ap/p2p共存互通:

ps://www.cnblogs.com/ztguang/p/12649163.html)

linux环境的wifi配置工具及工作模式区分介绍_linux wifi p2p-CSDN博客

ap/p2p共存互通:

关于WIFI的工作模式–AP MODE/STATION MODE-CSDN博客


http://www.ppmy.cn/devtools/149737.html

相关文章

Linux第一课:c语言 学习记录day06

四、数组 冒泡排序 两两比较&#xff0c;第 j 个和 j1 个比较 int a[5] {5, 4, 3, 2, 1}; 第一轮&#xff1a;i 0 n&#xff1a;n个数&#xff0c;比较 n-1-i 次 4 5 3 2 1 // 第一次比较 j 0 4 3 5 2 1 // 第二次比较 j 1 4 3 2 5 1 // 第三次比较 j 2 4 3 2 1 5 // …

【LeetCode】力扣刷题热题100道(11-15题)附源码 环形链表 二叉树中序遍历 插入法(C++)

目录 1.字母异位词分组 2.环形链表 3.环形链表2 4.二叉树的中序遍历 5.搜索插入位置 1.字母异位词分组 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 排序字符…

Ubuntu 24.04 LTS系统安装Docker踩的坑

一开始我跟着Docker给出的官网文档 Ubuntu | Docker Docs 流程走&#xff0c;倒腾了两个多小时&#xff0c;遇到了各种坑&#xff0c;最后放弃了。在我们使用脚本安装Docker命令前&#xff0c;我们先把已经安装的Docker全部卸载掉。 卸载Docker 1.删除docker及安装时自动安装…

Springboot3.x工程创建及必要引用(基础篇)

下面从环境的安装和配置开始&#xff0c;到Springboot3.x工程创建&#xff0c;记录一下让完全没有基础的小白用户也能够开始自己的第一个项目。 准备 安装JDK环境&#xff08;这里最好安装JDK17及以上版本&#xff09;安装IntelliJ IDEA Ultimate工具&#xff08;可以从官网下…

第37周:咖啡豆识别 (Tensorflow实战第七周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 可视化数据 2.3 配置数据集 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 3.2.1 直接调用官方 3.2.2 自建模型 四、编译 4.1 设置动态学习率 五、模型训…

基于Qt的OFD阅读器开发原理与实践

摘要 本文详细探讨了基于Qt开发OFD阅读器的原理与实践。通过解析OFD文件格式、构建文档结构、实现页面渲染、处理用户交互以及进行性能优化&#xff0c;本文展示了如何使用Qt框架开发一个功能强大、性能优异的OFD阅读器。文章还提供了示例代码和未来发展方向&#xff0c;为开发…

Qt天气预报系统鼠标拖动窗口

Qt天气预报系统 1、鼠标拖动窗口1.1重写鼠标移动函数1.2添加定义1.3定义一个偏移值1.4判断鼠标左键是否被按下1.5计算当前鼠标位置与窗口左上角位置的偏移值1.6移动窗口 2、.h文件和.cpp文件2.1 .h文件2.2 .cpp文件 3、结论 1、鼠标拖动窗口 1.1重写鼠标移动函数 protected:v…

新冠肺炎服务预约微信小程序的设计与实现ssm+论文源码调试讲解

第4章 系统设计 4.1 系统设计的原则 在系统设计过程中&#xff0c;也需要遵循相应的设计原则&#xff0c;这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性&#xff0c;安全性&#xff0c;可定制化&#xff0c;可扩展性&#xff0c;可…