无线是一个陷阱

2020-06-21 13:48:30

我曾经是一名反铁丝网斗士。我讨厌乱七八糟的电缆,也讨厌一旦它们靠近我的脸,我就会不知不觉地咀嚼它们。但遇到了一个又一个棘手的无线错误-主要是在试图让我的视频通话工作得更好的时候-我已经背信弃义了。我对WiFi、蓝牙和相关协议了解得越多,我就越确信它们在网络上往往比有线更糟糕。

例如:大多数人在视频通话断断续续时,会责怪他们的互联网服务提供商。这是可以理解的,因为大多数ISP都是定价过高的寡头垄断者,软件几乎无法使用,客户服务也很糟糕。然而,每次我都记得帮助别人找到他们连接问题的根源时,罪魁祸首竟然是他们的wifi。通常,最简单的修复方法就是铺设电缆。

WiFi(和蓝牙等)。通过让你觉得他们“只是在工作”来吸引你。但如果您进行调查,您通常会发现无线链路在降级状态下运行,其性能比有线链路差得多。由于这种降级是无声的,所以通常不明显问题出在无线上-相反,您可能会得出结论,问题出在您的设备/软件/自己身上。

一次又一次,我看到人们解决了一些与无线有关的问题,然后说:“哇,我不知道这还能好到哪里去!";

最近,我终于把桌子上所有的无线设备都换成了有线设备。虽然我不得不投资一点来弄清楚电缆管理(并改掉我咀嚼耳机电缆的习惯),但我能够实现几乎同样的整洁水平,可靠性、质量和速度都要好得多。我再也不用担心我的设备无法配对、电池耗尽,或者在直播演讲中自发地发出模糊的机器人声音。它极大地降低了我与设备相关的痛苦程度。

为了说明我所说的痛苦程度,下面我将介绍我在无线协议中遇到的一些微妙的、难以注意的但严重的问题。如果你确信,试试一些电线--你也可以找出你是否是无线陷阱的受害者。

干扰。如果多个无线网络在同一“信道”(射频频段)上运行,则它们的传输可能会相互干扰。当这种情况发生时,你的设备需要重新发送相同的信息,这会使你的WiFi速度变慢。

您可能认为这可以通过让路由器自动找出最不容易受到干扰的信道来解决,但其中许多路由器似乎在这方面做得很差。(此外,旧的2.4 GHz WiFi协议只允许使用三个不重叠的信道。)

这意味着在密度较高的区域(例如公寓楼),路由器通常会选择不好的信道,最终会相互干扰。如果路由器或设备受到干扰,您的路由器或设备无法通知您,因此只有当您知道路由器“应该”有多快并且注意到它较慢时,您才会了解它。

死亡区。如果您离路由器太远,您的计算机可能无法可靠地接收路由器发送的信号,反之亦然。“太远”有多远也会受到挡路的墙或天花板的影响,有时会以一种奇怪的方式。除非你对无线电波如何与建筑材料相互作用有很多了解,否则很难预测你的死区在哪里。

最糟糕的是,许多死区并没有完全死掉:您的计算机和路由器在放弃之前会多次尝试重新传输每个数据包,而且通常最终都会通过。如果这是最常发生的事情,那么你最终会得到一个“慢区”,在那里你的互联网可以正常工作,但微妙地很糟糕,而不是死亡区。

当然,除非您密切关注您的网络性能统计数据以及它们与您的空间位置之间的关系,否则您永远不会注意到慢速区。如果你注意到了什么,那就是有时你的互联网比其他时候随机更差。

投票。您计算机上的任何程序都可以要求您的无线网卡枚举附近的网络。这导致它进入“轮询模式”,在这种模式下,它花更少的时间传输数据,而花更多的时间监听通告其网络信息的路由器(它不能同时发送和接收)。因此,它会导致突然的网络延迟,例如可能导致视频通话卡顿或冻结几秒钟。

大多数程序员没有意识到无线轮询会干扰网络性能,因此他们要求操作系统疯狂轮询。我已经被这个烧伤过很多次了。

最令人震惊的例子是,我注意到我的视频通话有时会以一种奇怪的规律频率断断续续。以下是我追查罪魁祸首的曲折过程:

我每秒ping我的路由器大约10分钟,然后在Excel中绘制输出,并确认缓慢的ping操作恰好相隔30秒。这让我猜想这可能是软件问题。

我请求在Facebook上调试它,有人建议启用MacOS无线调试日志。

我启用了调试日志,并注意到有几个应用程序,当我打开它们时,会请求网络扫描,有时会与增加的ping延迟相关。

在将范围缩小到这几个应用程序之后,我问他们如何阻止他们在AskDifferent上这样做。

AskDifferent上的一些人将问题追溯到Qt,这是一个制作用户界面的软件框架,由拥有数百万用户的应用程序使用。

Qt包含一个组件,每当“网络访问管理器”被实例化时,它就会每30秒轮询一次网络,这会导致几乎所有使用网络的Qt应用程序每30秒中就有5个左右的时间降低您的wifi。

已经有多个关于此问题的错误报告,其中一个被工程师声明为“已关闭”,因为它们允许用户使用环境变量禁用轮询。

当然,这是一个令人难以置信的毫无用处的“解决方案”,因为大多数用户不会意识到他们的wifi被降级了;那些意识到这是Qt的错的人不会意识到这是Qt的错;而那些意识到这一点的人仍然很难在谷歌上搜索合适的修复程序(更不用说实现它了,除非他们会编程)。

这种行为对用户非常不友好,而且“修复”如此可笑,以至于Qt开发者似乎不知何故没有意识到问题的严重性-我猜它毁了大约100万人的视频通话,因为例如,它影响了已经被下载7500万次的qBittorrent。这百万人中的大多数可能不够专业,不知道如何“将QT_BEARER_POLL_TIMEOUT环境变量设置为-1”。

(幸运的是,看起来确实像是在2017年-在最初的错误报告三年后-他们终于意识到,他们应该停止投票,以正确的方式修复错误。)。

Qt是最严重的违规者,但它远不是唯一的违规者。即使是MacOS也有过一段时间的漏洞,当你打开Spotlight时,同样的事情也会发生(在视频通话期间,如果有人让我看某个特定的文件,或者如果我想要分区阅读互联网多任务,我经常会这样做)。我不得不通过禁用单独的Spotlight结果类型来修复它,直到我找出是哪个类型导致了问题。因此,即使是苹果自己的开发者似乎也没有意识到WiFi轮询是一种危险。

高延迟。大多数蓝牙耳机都会引入大约150-300ms的延迟(我的计算机从互联网接收音频到耳机发出声音之间的时间)。这意味着如果我和纽约的一个朋友聊天,音频数据大约需要50ms才能从他们传到我的电脑上,比如说,200ms-4倍的时间-从我的电脑传到我的耳朵里。由于高延迟会破坏自然的对话流,我想尽可能多地消除它。

如果蓝牙耳机支持正确的“编解码器”,比如“AptX低延迟”,就有可能找到延迟较低的蓝牙耳机。当然,除了理论上支持编解码器之外,他们还必须同意您的计算机才能使用它,这有时可能会失败。(当然,检查正在使用的编解码器的选项隐藏在各种隐藏菜单和设置中,具体取决于您的操作系统。)。

质量不高。与编解码器问题相关的是,许多蓝牙设备在关闭麦克风时会播放高质量的音频,但在打开麦克风时播放的音频质量会低得多。如果您有蓝牙耳机,您可以自己测试一下:在上面播放音乐,然后打开麦克风设置到显示麦克风输入音量的页面。您可能会听到音频被剪断一秒钟,然后以较低的质量返回。(即使是你可能认为是高端设备的设备也会发生这种情况,比如我的AirPods Pro+2018 Macbook Air。)。

加密狗。尽管现在所有的电脑都有内置蓝牙,但现在很多蓝牙配件仍然带有专有的加密狗。我想这是因为制造商担心他们自己的蓝牙实现与您计算机的内置蓝牙硬件/驱动程序之间不一致或不兼容。

这种不信任似乎是正确的--例如,在我的Mac的内置蓝牙上,我的Logitech MX Master显示出明显的卡嗒声(停下来,然后跳起来,而不是平稳地移动)。我在三台不同的Mac电脑上都看到过这种情况,所以看起来很可能是软件问题。不过,当我切换到罗技的专用加密狗时,它停了下来。

同样,当连接到Mac蓝牙时,我的Jabra Evolve 75耳麦经常会出现麦克风或声音下降。它(基本上)在自己的加密狗上工作得很好。我不确定这些问题是归咎于Jabra/Logitech还是苹果(或蓝牙标准机构)。

无论哪种方式,这种加密狗的爆炸都是愚蠢和不便的。有一次,我不得不为我的四个加密狗(键盘/鼠标/耳机/麦克风)买了一个USB集线器。蓝牙的初衷是将不同的无线设备统一到一个单一的无线无线电和协议中,就像哈拉尔德蓝牙统一了丹麦一样,但它似乎在这方面大多失败了。

可靠性。即使使用专有的加密狗,蓝牙设备也远不如有线设备可靠。例如,我在上面写道,一旦我切换到专有的加密狗,我的罗技MX Master就可以正常工作,但事实并非如此:它工作了一段时间,然后有一天它又开始无缘无故地发出刺耳的声音。(就在那一天,我终于背信弃义,扔掉了办公桌上的蓝牙设备。)。

我遇到其他蓝牙错误,需要我每周取消配对和重新配对几次。例如,我的AirPods有时会“去同步”,因此一个会比另一个提前几毫秒播放音频,从而导致奇怪的、令人不快的回声效果。

干扰。可靠性差的一个可能原因是蓝牙和2.4 GHz WiFi相互干扰。就像WiFi干扰一样,如果你的设备受到干扰,你的设备永远不会警告你;你会注意到,只是因为它们突然变得有点糟糕。

充电。这不是蓝牙本身的错,而是使用太多无线设备的一个不利之处是,记住让它们都充电真的很烦人。我的手机往往在最不合适的时候死掉,比如在视频通话期间。

东西并没有完全破裂,它们只是退化了。这可能是正确的决定,但这意味着我没有立即注意到有问题。

雪上加霜的是,我不知道这台设备“应该”工作得有多好,所以我花了很长时间才注意到它处于降级状态。

即使我意识到了问题,也很难或不可能理解根本原因并修复它,因为我不知道正确的诊断方法(或者它们不存在)。

我希望我的工具是可预测的-具有一致的性能,并以我理解的方式失败。无线协议本质上更复杂(因为许多设备共享相同的空域),并且有更多不同的失败方式,因此它们比有线协议更难预测。对我来说,便利往往不值得花那么多钱。

在显然值得的情况下,我仍然会使用无线设备-例如,我的笔记本电脑使用wifi,因为它经常移动,我的手机使用无线充电器,因为我真的不在乎它充电的速度有多快。但对于严肃的工作,我会花时间摆弄电缆布线和布线。

这让我想知道,如果我们把目前花费在移除所有东西上的电线的10%投入到巧妙的电缆布线解决方案中,世界会是什么样子。我敢打赌,很多依赖无线的活动,比如视频通话,会更令人愉快。