了解Wi-Fi信号强度【一文看懂】

👋了解Wi-Fi信号强度

特定应用可接受的Wi-Fi信号强度是多少?在我的无线部署中我应该尝试达到什么样的信号强度?
这些常见问题说明了信号强度有些令人困惑的本质。
首先,我们必须了解度量单位,以及在典型Wi-Fi环境中部署、管理或诊断问题时这些度量的含义。
只有这样,我们才能了解特定用途需要什么样的信号强度。

⚽️规划

任何良好的无线部署的关键是适当的规划,这需要一组目标和要求来实现。
确定覆盖区域内的最低信号强度要求几乎总是网络要求的一部分。

⚽️要求和变量

最佳新能所需的信号强度因多种因素而异,例如环境中的背景噪声、网路上的客户端数量、所需的数据速率以及将使用的应用程序。
例如,VoIP或VoWi-Fi系统可能需要比仓库中的条码扫描仪系统更好的覆盖范围。

⚽️了解信号强度

Wi-Fi信号强度很棘手。
最准确的表达方式是毫瓦(mW),但由于Wi-Fi的超低传输功率,您最终会得到大量的小数位,因此难以读取。
例如,-40dBm是0.0001mW,信号强度下降得越多,零点就越强。

RSSI(接收信号强度指示器)是一种常见的测量方法,但大多数 Wi-Fi 适配器供应商的处理方式不同,因为它没有标准化。
一些适配器使用 0-60 的比例,而其他适配器使用 0-255。

最终,表示信号强度的最简单和最一致的方法是使用dBm,它代表相对于毫瓦的分贝
由于 RSSI由于大多数 Wi-Fi 适配器的处理方式不同,它通常会转换为 dBm 以使其一致且易于阅读。

mW - 毫瓦(1 mW = 0 dBm)

RSSI - 接收信号强度指示器(通常为 0-60 或 0-255)

dBm - 与毫瓦相关的分贝(通常为 -30 至 -100)

⚽️读数 dBm

关于 dBm 的第一件事是我们在负数下工作。-30 是比 -80 更高的信号,因为 -80 是一个低得多的数字。

接下来,重要的是要知道 dBm 不会像您期望的那样以线性方式缩放,而是对数。这意味着信号强度的变化不是平滑和渐进的。
3s和10s的规则突出了 dBm 的对数性质:

3 dB 损耗 = -3 dB = 信号强度减半

3 dB 增益 = +3 dB = 信号强度加倍

10 dB 损耗 = -10 dB = 信号强度降低 10 倍(0.1 mW = -10 dBm,0.01 mW = - 20 dBm 等)

10 dB 增益 = +10 dB = 信号强度增加 10 倍(0.00001 mW = -50 dBm,0.0001 mW = -40 dBm,等)

⚽️理想信号强度

那么你应该拍摄什么信号强度?
对于发送电子邮件、浏览网页或扫描条形码等简单、低吞吐量的任务,-70 dBm 是一个很好的信号强度。
对于 IP 语音或流媒体视频等吞吐量更高的应用程序,-67 dBm 更好,如果您计划支持 iPhone 和 Android 平板电脑等移动设备,一些工程师建议使用 -65 dBm。

信号强度评论描述要求
-30 分贝惊人的可达到的最大信号强度。客户端只能距离 AP 几英尺才能实现这一点。在现实世界中不典型或不可取。不适用
-67 分贝非常好需要非常可靠、及时地传送数据包的应用程序的最小信号强度。VoIP/VoWi-Fi、流媒体视频
-70 分贝好的可靠数据包传输的最小信号强度。电子邮件、网络
-80 分贝不好基本连接的最小信号强度。数据包传送可能不可靠。不适用
-90 分贝无法使用接近或淹没在本底噪声中。任何功能都不太可能。不适用

⚽️跟踪信号强度

使用inSSIDer 可以轻松跟踪信号强度 。将信号强度阈值配置为您需要的任何信号强度,选择您的网络,然后步行到所需的覆盖区域。

在这里插入图片描述

如果蓝线低于虚线,则表明您有死角。就是这样!

👬 交友小贴士:
博主GithubGitee同名账号,Follow 一下就可以一起愉快的玩耍了,更多精彩文章请持续关注。

在C++中,可以使用Windows API中的WLAN API来获取已连接Wi-Fi的名称和信号强度。以下是一个简单的C++代码示例,可以实现此功能: ```c++ #include <Windows.h> #include <Wlanapi.h> #include <iostream> #pragma comment(lib, "Wlanapi.lib") int main() { // 初始化WLAN API DWORD dwError = 0; HANDLE hClient = NULL; DWORD dwMaxClient = 2; // 最大客户端数量 DWORD dwCurVersion = 0; if (WlanOpenHandle(dwMaxClient, NULL, &dwCurVersion, &hClient) != ERROR_SUCCESS) { std::cout << "WLAN API初始化失败!" << std::endl; return 1; } // 获取已连接Wi-Fi的名称和信号强度 PWLAN_INTERFACE_INFO_LIST pIfList = NULL; PWLAN_INTERFACE_INFO pIfInfo = NULL; PWLAN_CONNECTION_ATTRIBUTES pConnectInfo = NULL; if (WlanEnumInterfaces(hClient, NULL, &pIfList) != ERROR_SUCCESS) { std::cout << "获取网络接口信息失败!" << std::endl; WlanCloseHandle(hClient, NULL); return 1; } pIfInfo = &pIfList->InterfaceInfo[0]; if (WlanQueryInterface(hClient, &pIfInfo->InterfaceGuid, wlan_intf_opcode_current_connection, NULL, (DWORD*)&pConnectInfo, NULL) != ERROR_SUCCESS) { std::cout << "获取连接信息失败!" << std::endl; WlanFreeMemory(pIfList); WlanCloseHandle(hClient, NULL); return 1; } std::cout << "已连接Wi-Fi名称:" << pConnectInfo->strProfileName << std::endl; std::cout << "已连接Wi-Fi信号强度:" << pConnectInfo->wlanSignalQuality << std::endl; // 释放资源 WlanFreeMemory(pConnectInfo); WlanFreeMemory(pIfList); WlanCloseHandle(hClient, NULL); return 0; } ``` 以上代码可以获取已连接Wi-Fi的名称和信号强度,并在控制台上显示出来。如果要获取可用Wi-Fi的名称和信号强度,可以使用WlanScan函数扫描可用的网络,并使用WlanGetAvailableNetworkList函数获取可用网络列表。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

峰sir~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值