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

目录

  • Wi-Fi Direct (P2P)介绍
    • Wi-Fi Direct P2P 概述
    • P2P-GO(P2P Group Owner)
    • 工作流程
  • wifi-Direct使用
    • windows11 wifi-direct
    • Openwrt
    • wifi的concurrent mode
  • Linux环境下的配置工具
  • 必联wifi芯片P2P支持
  • REF


Wi-Fi Direct (P2P)介绍

Wi-Fi Direct P2P 概述

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

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 组将自动解散

wifi-Direct使用

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 phy0
	wiphy index: 0
	max # scan SSIDs: 32
	max scan IEs length: 465 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports AP-side u-APSD.
	Available Antennas: TX 0 RX 0
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * AP/VLAN
		 * monitor
		 * P2P-client
		 * P2P-GO
	Band 1:
		Capabilities: 0x16e
			HT20/HT40
			SM Power Save disabled
			RX HT20 SGI
			RX HT40 SGI
			RX STBC 1-stream
			Max AMSDU length: 3839 bytes
			No DSSS/CCK HT40
		Maximum RX AMPDU length 32767 bytes (exponent: 0x002)
		Minimum RX AMPDU time spacing: 8 usec (0x06)
		HT Max RX data rate: 72 Mbps
		HT TX/RX MCS rate indexes supported: 0-7
		Frequencies:
			* 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 match
	HT 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 spacing
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Supported 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

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

必联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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/952110.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

scrapy爬取图片

scrapy 爬取图片 环境准备 python3.10scrapy pillowpycharm 简要介绍scrapy Scrapy 是一个开源的 Python 爬虫框架&#xff0c;专为爬取网页数据和进行 Web 抓取而设计。它的主要特点包括&#xff1a; 高效的抓取性能&#xff1a;Scrapy 采用了异步机制&#xff0c;能够高效…

python学opencv|读取图像(二十八)使用cv2.warpAffine()函数平移图像

【1】引言 前序已经对图像操作进行了广泛的学习&#xff0c;包括读取、放大缩小&#xff0c;改变BGR通道值等&#xff0c;相关链接包括且不限于&#xff1a; python学opencv|读取图像-CSDN博客 python学opencv|读取图像&#xff08;三&#xff09;放大和缩小图像_python(1)使…

【数据库】四、数据库管理与维护

文章目录 四、数据库管理与维护1 安全性管理2 事务概述3 并发控制4 备份与恢复管理 四、数据库管理与维护 1 安全性管理 安全性管理是指保护数据库&#xff0c;以避免非法用户进行窃取数据、篡改数据、删除数据和破坏数据库结构等操作 三个级别认证&#xff1a; 服务器级别…

如何定位导致 Django 错误的文件

在 Django 开发中&#xff0c;当发生错误时&#xff0c;定位问题所在的文件和代码行是调试的重要步骤。以下是一些常用的方法和技巧来定位导致 Django 错误的文件&#xff1a; 1、问题背景 在项目中使用了 shrink 工具尝试运行 collect static 时&#xff0c;出现 TemplateSyn…

JavaSE——网络编程

一、InetAddress类 InetAddress是Java中用于封装IP地址的类。 获取本机的InetAddress对象&#xff1a; InetAddress localHost InetAddress.getLocalHost();根据指定的主机名获取InetAddress对象&#xff08;比如说域名&#xff09; InetAddress host InetAddress.getByNa…

在Windows环境下搭建无人机模拟器

最近要开发无人机地面站&#xff0c;但是没有无人机&#xff0c;开发无人机对我来说也是大姑娘坐花轿——头一回。我们要用 MAVLink 和无人机之间通信&#xff0c;看了几天 MAVLink&#xff0c;还是不得劲儿&#xff0c;没有实物实在是不好弄&#xff0c;所以想先装一个无人机模…

安科瑞 Acrel-1000DP 分布式光伏监控系统在工业厂房分布式光伏发电项目中的应用

吕梦怡 18706162527 摘 要&#xff1a;常规能源以煤、石油、天然气为主&#xff0c;不仅资源有限&#xff0c;而且会造成严重的大气污染&#xff0c;开发清洁的可再生能源已经成为当今发展的重要任务&#xff0c;“节能优先&#xff0c;效率为本”的分布式发电能源符合社会发…

NAT 代理服务器

文章目录 1. NAT2. 内网穿透3. 内网打洞4. 代理服务器正向代理服务器反向代理服务器 5. DNS6. ICMP7.测试内网穿透 1. NAT 在ip协议章节&#xff0c;我们说报文转发给路由器时&#xff0c;由于私有IP地址不能出现在公网中&#xff0c;路由器会将报文源IP地址替换为路由器的WAN…

Python数据可视化-Pandas

文章目录 一. Pandas数据可视化简介二. Pandas 单变量可视化1. 柱状图2. 折线图3. 面积图4. 直方图5. 饼图 三. Pandas 双变量可视化1. 散点图2. 蜂巢图3. 堆叠图4. 折线图 一. Pandas数据可视化简介 pandas库是Python数据分析的核心库 它不仅可以加载和转换数据&#xff0c;还…

【NLP 18、新词发现和TF·IDF】

目录 一、新词发现 1.新词发现的衡量标准 ① 内部稳固 ② 外部多变 2.示例 ① 初始化类 NewWordDetect ② 加载语料信息&#xff0c;并进行统计 ③ 统计指定长度的词频及其左右邻居字符词频 ④ 计算熵 ⑤ 计算左右熵 ​编辑 ⑥ 统计词长总数 ⑦ 计算互信息 ⑧ 计算每个词…

【Elasticsearch】配置分片分配到指定节点

配置分片分配到指定节点 参考文章&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/current/shard-allocation-filtering.html 两种方式&#xff1a;根据节点属性分配和根据节点名称分配。 测试环境 tar xvf elasticsearch-7.17.25-linux-x86_64.tar.gz…

1. Doris分布式环境搭建

一. 环境准备 本次测试集群采用3台机器hadoop1、hadoop2、hadoop3, Frontend和Backend部署在同一台机器上&#xff0c;Frontend部署3台组成高可用&#xff0c;Backend部署3个节点&#xff0c;组成3副本存储。 主机IP操作系统FrontendBackendhadoop1192.168.47.128Centos7Foll…

计算机毕业设计Python机器学习农作物健康识别系统 人工智能 图像识别 机器学习 大数据毕业设计 算法

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

gesp(C++四级)(11)洛谷:B4005:[GESP202406 四级] 黑白方块

gesp(C四级)&#xff08;11&#xff09;洛谷&#xff1a;B4005&#xff1a;[GESP202406 四级] 黑白方块 题目描述 小杨有一个 n n n 行 m m m 列的网格图&#xff0c;其中每个格子要么是白色&#xff0c;要么是黑色。对于网格图中的一个子矩形&#xff0c;小杨认为它是平衡的…

在Mac上使用 Docker 构建一个 noVNC 环境并运行 MyCobot

本文展示了Mycobot 280 M5 上的 Mycobot 280 M5 moveit2 模拟环境&#xff0c;以及详细介绍了使用 Docker 在 macOS&#xff08;arm64&#xff09;上构建 moveit2 环境的步骤。 一、引言 这篇文章主要内容是关于如何在 Ros2 环境中构建在 Mac 上模拟 Mycobot 280 M5 的环境。 …

c语言提供后端,提供页面显示跳转服务

后端代码: #define SERVER_IP_ADDR "0.0.0.0" // 服务器IP地址 #define SERVER_PORT 8080 // 服务器端口号 #define BACKLOG 10 #define BUF_SIZE 8192 #define OK 1 #define ERROR 0#include <stdio.h> #include <stdlib.h> #include <st…

AnaConda下载PyTorch慢的解决办法

使用Conda下载比较慢&#xff0c;改为pip下载 复制下载链接到迅雷下载 激活虚拟环境&#xff0c;安装whl&#xff0c;即可安装成功 pip install D:\openai.wiki\ChatGLM2-6B\torch-2.4.1cu121-cp38-cp38-win_amd64.whl

Sentinel服务保护 + Seata分布式事务

服务保护 【雪崩问题】微服务调用链路中某个服务&#xff0c;引起整个链路中所有微服务都不可用。 【原因】&#xff1a; 微服务相互调用&#xff0c;服务提供者出现故障。服务调用这没有做好异常处理&#xff0c;导致自身故障。调用链中所有服务级联失败&#xff0c;导致整个…

六、Angular 发送请求/ HttpClient 模块

一、应用 HttpClient 模块 angular/common/http 中的 HttpClient 类基于浏览器提供的 XMLHttpRequest 接口。要想使用 HtpClient 模块&#xff0c;就要先导入 Anqular 的 HttpClientModule。大多数 Web 应用程序都会在根模块 AppModule 中导入它。 编辑 src/app/app.module.ts…

CompletableFuture // todo

相比较所有代码都在主线程执行&#xff0c;使用Future的好处&#xff1a;利用服务器多核、并发的优势。 不足&#xff1a; 开启没有返回值的异步线程&#xff1a; 1、runAsync 使用lambda表达式&#xff1a; 开启有返回值的异步线程&#xff1a; 1、supplyAsync 异步任务中的…