您想了解有关测试Wi-Fi适配器的所有信息,但又害怕问

图片

这些日子之一是我们公司成立20周年。 在过去的15年中,这20年来,我们一直在开发用于分析Wi-Fi网络的程序。 这项工作的一部分是开发Wi-Fi适配器的驱动程序,在本文中,我将描述开发团队如何测试其劳动产品,以及在过去15年中随着标准和适配器的发展,测试过程如何发展。 将有许多图片(称为“极客色情”)和技术细节。

为什么根本要写特殊的驱动程序?

当您制作用于分析Wi-Fi网络的软件(并且我们制作了用于检查和建模网络的程序以及Wi-Fi数据包分析器)时,您需要以某种方式接收(读取,捕获,嗅探,捕获……-这些都是同义词)数据包附近的接入点和客户端之间交换了Wi-Fi。 您只能在Windows下通过为特定芯片组创建一组自己的驱动程序来执行此操作。

适配器制造商常用的标准驱动程序有什么问题? 从普通用户的角度来看,他们一切都很好。 仅有一个小问题-您不能使用它在被动观察者模式下读取Wi-Fi数据包。 否则,您将无法创建用于网络分析的软件。 总的来说,这是单独撰写文章的重要话题(我将在今年编写)。 如果您现在有兴趣,那么我将在下一段中简短地告诉您,如果编程的主题离您不远,请跳过它。

大约十年前,在Windows下,出现了一种新的API,用于被动读取Wi-Fi数据包,即所谓的监控模式。 您始终可以在Windows上“嗅探”数据包,而没有人打扰您运行Wireshark并查看通过无线适配器的数据包,但是问题在于您将只能看到数据包,而只能看到数据包。 所有其他信息(其他人的数据包,信标类型的数据包,有关数据包中的信号级别及其数据速率的信息等)均不可用。 新的API旨在彻底解决此问题。 但是他没有决定:几乎没有主要供应商的芯片组正常地支持它,并且API本身在诞生之时就已经过时了,微软也没有发展。 简而言之,对他来说完全是一场灾难。 而且,如果您偶然发现了用于在Windows下分析Wi-Fi网络的软件,其销售商声称该软件支持任何或几乎所有Wi-Fi适配器,并且不需要更换驱动程序-您肯定会得到他们所谓的“蛇油”英语。

编写用于监视Wi-Fi的特殊驱动程序困难,耗时且昂贵。 可以使用一只手的手指来计算执行此操作的公司的数量。

为什么要测试一堆适配器驱动程序

驱动程序是用于与特定于特定硬件的硬件(硬件)进行交互的程序。 在开发驱动程序的过程中,程序员必须确保驱动程序正确捕获数据包,切换频道和范围,正确响应休眠系统,正确计算信号电平以及执行许多操作,否则将无法分析Wi-Fi网络。

看来这是一个相当容易理解和简单的任务:我将适配器插入计算机,然后根据需要开发和测试驱动程序。 实际上,我们将讨论许多细微差别。

什么是测试平台

为了对驱动程序进行技术测试,您需要一个特定的测试平台,即一个用于处理各种硬件的平台,该平台必须满足以下几个要求:

  • 简单断开一个适配器并连接另一个适配器。
  • 能够连接到现代计算机界面。
  • 电子元件干扰小。
  • 流动性。 在测试过程中,您需要能够移动Wi-Fi适配器,改变其天线在空间中的方向,并改变与接入点的距离(否则您将无法正确校准信号电平)。
  • 能够同时连接多个适配器(对于USB)。

此外,查看标准驱动程序的工作方式(例如, 请参阅适配器驱动程序与计算机在总线级别上的通信,但是现在我们不讨论此主题。

考古学与现代性

现在是时候直接谈论铁了。 回顾过去,有时非常古老,并讨论新事物。

2003年

我们从2003年开始制作Wi-Fi软件(在此之前,我们仅制作用于有线网络的软件)。 零开始是Wi-Fi刚刚起步的时候。 802.11标准家族中的第一个在1997年被采用。 紧随其后的是1999年的802.11b和802.11a,但这项技术在很久以后才传给大众。 大多数笔记本电脑在销售时都没有内置Wi-Fi,但您可以自己购买适配器:外部,连接到笔记本电脑的CardBus端口(PCMCIA)或内部PCI标准。 一小部分高端笔记本电脑还带有内置的miniPCI适配器。

我们的第一步是支持802.11b CardBus适配器。 那些日子是幸运的:几乎所有这些适配器都在Intersil Prism芯片组上,签署NDA后每个人都可以免费获得驱动程序源代码,物理层上的最大数据传输速率为11 Mbps,即 在理想条件下,确实有可能以不超过每秒1兆字节的速度传输数据。


带外部天线的CardBus Wi-Fi适配器

带外部天线的CardBus Wi-Fi适配器

我必须说,适配器工作良好,灵敏度很高,尤其是在可以连接外部天线的情况下。 一切都非常简单,并且在测试平台上无可争议:几乎所有笔记本电脑都具有一个或两个CardBus端口。

带有PCMCIA端口的老式笔记本电脑
您还记得这些3-4公斤的猛ma象吗?

剩下的就是将适配器插入这样的外部端口。

CardBus适配器和旧机器的相应插槽
CardBus适配器和旧机器的相应插槽

2007年

PCI Express总线上的更精致的ExpressCard标准已取代了微型CardBus适配器。 34毫米Wi-Fi ExpressCard适配器与802.11g和802.11a已经上市。 速度提高,应用了新的调制方案。

ExpressCard Wi-Fi适配器
ExpressCard Wi-Fi适配器

ExpressCard和CardBus一样,非常方便测试。 卡很容易更换,笔记本电脑可以移动,市场上没有配备ExpressCard端口的型号。

台式机也不会停滞不前,2007年采用了PCI Express 2.0标准,因此带有外部天线的PCIe适配器经常出现在台式机内部。 测试它们不是很方便(卸下机箱盖,装回PCIe适配器,将所有组件放回原处)。

2010

我们开始支持USB 2.0 Wi-Fi适配器。 这对于测试和最终用户使用来说都是非常方便的尺寸。 您需要的只是一个USB端口,如果使用多个适配器,则需要多个端口。

具有传奇色彩的Proxim ORiNOCO 8494 802.11n适配器基于基于Atheros Communications芯片组的竞技场出现,但尚未被高通公司吸收。 所有专业程序都使用此适配器进行Wi-Fi站点调查。 他有极好的敏感性。

传奇式USB适配器Proxim ORiNOCO 8494
传奇式USB适配器Proxim ORiNOCO 8494

一次连接多个适配器的能力是一大优势,它可以加快用于站点调查程序的通道的扫描时间,并允许例如在数据包分析器漫游时分析客户端的行为。

但是,请不要忘记典型的USB Wi-Fi适配器消耗200到300 mA的电流,如果您通过将三个适配器插入其中而使用无源USB集线器,则可以轻松超越USB 2.0 500 mA的限制。

PortaPow电表确定适配器电流消耗
PortaPow电表确定适配器电流消耗

USB 2.0集线器几乎没有RF干扰,除了电流消耗问题外,您唯一需要注意的是集线器上端口的位置。 端口的位置应确保适配器可以同时插入相邻的端口(如果端口太近,则无法插入适配器)。

对我们而言,2010年的下一个问题是MiniPCIe适配器的出现,它取代了笔记本电脑中的MiniPCI。 我们首先拆开笔记本电脑来测试新适配器。 这是多么的痛苦-可能不必讲。 在笔记本电脑中更换适配器是一个快速而繁琐的过程,您可能会遇到很多陷阱。 首先,如果笔记本电脑的“本机”适配器中有一个带有两个天线的适配器,而我们想用三个天线来测试该型号,则没有正常的解决方案。 其次,一些笔记本电脑制造商正进行彻底的破坏,在BIOS中严格刷新笔记本电脑支持的适配器型号。 而且,如果新适配器未落入此类白名单,则根本无法识别它。 第三,你可能只是运气不好而破坏了里面的东西。

在某些时候,我们必须使用带有PCIe <-> MiniPCIe适配器板的台式机。 但是解决方案并不完美:设备的移动性仍然很重要。 来自Bplus Technology的台湾人在各种各样非常有趣的调试解决方案中提供了如此出色的板卡,他们找到了完美的解决方案:

带MiniPCIe连接器的测试板
通过ExpressCard带有MiniPCIe插件的测试板

多年来,该委员会只是一个救星。 测试台结果非常棒:可以在两个帐户中更改适配器,可以保留移动性,没有干扰,而且评估板本身也很便宜。 您所需要的只是一台带有ExpressCard插槽的笔记本电脑,但是在那些年中这不是问题。

连接板
主板已连接,ExpressCard适配器已插入笔记本电脑

2013年

到2013年,Wi-Fi已完全征服了世界。 所有笔记本电脑都完全配备了集成的Wi-Fi模块,随着通用的小型化,这些模块开始以新的尺寸规格M.2(也称为NGFF)发布。 M.2卡比通常的MiniPCIe小,并且具有不同的连接器。

MiniPCIe板,MiniPCIe模块,M.2模块
MiniPCIe板,MiniPCIe模块,M.2模块

我想继续使用我们出色的测试套件,Bplus Technologies再次抢救。 他们发布了MiniPCIe <-> M.2适配器,我们很容易制作出如此厚的三明治:

MiniPCIe板上的“三明治”,MiniPCIe <-> M.2适配器,M.2 Wi-Fi适配器和与其连接的全向天线
MiniPCIe板上的“三明治”,MiniPCIe <-> M.2适配器,M.2 Wi-Fi适配器和与其连接的全向天线

市场上几乎没有配备ExpressCard的笔记本电脑,但是我们已经有很多这样的旧机器库存,尽管很显然我们很快将不得不寻找新的解决方案。 但是下面有更多关于它的内容。

2014年

2013年12月,802.11ac标准获得批准,2014年,市场上出现了许多带有USB 3.0的802.11ac适配器。 为什么要使用USB 3.0适配器? 因为总线速度2.0不够。 三空间(3个空间流)802.11n适配器在物理级别上可以提供最高450 Mbps的速度,但是802.11ac适配器已经可以提供867 Mbps(两个流,80 MHz通道宽度)或1300 Mbps(三个流,80 MHz通道宽度)甚至理论上为2340 Mbps(三个流,通道宽度为160 MHz,本质上只有一个)。

USB 3.0的唯一问题是USB 3.0设备(电缆,连接器,电路)能够产生非常强大的宽带射频噪声,这会使适配器随信噪比的降低而变得不那么敏感。 在没有良好屏蔽的情况下,这种效果很容易观察到。 下面的屏幕截图是使用TamoGraph Site Survey和Wi-Spy频谱分析仪拍摄的。 屏幕截图显示了2.4 GHz范围内几个网络的操作的典型图片(顶部是振幅,底部是所谓的瀑布视图)。 可以看出,噪声阈值约为–95 dBm。

无USB集线器干扰
无USB集线器干扰

现在,让我们尝试使Wi-Spy更加靠近集线器或外部USB 3.0驱动器。 情况正在发生根本变化:

USB集线器的强大干扰
USB集线器的强大干扰

在集线器附近,有一个非常不错的噪声,约为-77 dBm。 如果考虑到Wi-Fi可以以某种方式工作的最小信噪比约为4 dB,则使用此图片,如果来自接入点的信号低于-73 dBm,则适配器将无法连接到网络。 要解决此问题,您应该尝试使用其他集线器或使用其他USB电缆,以将适配器从RF噪声源中移除。

您可能会问,USB 3.0适配器如何承受这种干扰? 他们过着非常有趣的生活。 以基于Realtek芯片组的适配器为例:当不关联适配器时,它以USB 2.0模式工作,扫描通道并查找附近的网络。 当适配器连接到网络时,特殊的Windows系统服务会重新初始化设备,将其切换到USB 3.0模式。 在此模式下,适配器将保留直到解离为止,之后适配器将再次返回USB 2.0模式。 这些都是如此疯狂的舞蹈。

2018年

时间在流逝,如果在测试USB适配器时没有新问题(USB Type-C连接器不计在内,一个便士的适配器可以解决问题),那么MiniPCIe和M.2的危机就在酝酿之中。 继续使用“带有ExpressCard + MiniPCIe ExpressCard的笔记本电脑”的旧版本是难以忍受的。 首先,旧笔记本电脑不再支持Windows10。其次,它们可以随时死亡,这使我们无所适从,因为我不想在旧货市场上寻找替代笔记本电脑。

我们需要找到一个新的解决方案。 移动设备,最好在Windows和macOS下,具有用于连接的现代界面。 自然,具有直接内存访问(DMA)功能。 最简单的方法是将PCIe <-> MiniPCIe适配器板插入桌面,但是随后您不得不放弃移动性。 在办公室周围携带台式机对您的健康非常有好处,但效率却不高。 此外,我们现在通常正在从台式机转向笔记本电脑和英特尔NUC。 近年来,台式机在很大程度上已经失去了意义。

那么,我们还有什么呢? 当然,不是USB,因为a,您无法建立PCIe <-> USB桥接器。 然后是Thunderbolt:它在新的笔记本电脑和NUC中,并且应该使PCIe <-> Thunderbolt桥接成为可能。 好吧,搜索的方向是用于通过Thunderbolt连接PCIe适配器的设备。

我们进行搜索,查找到的是帅气的: Startech Thunderbolt 3 PCIe扩展机箱 。 自然,即使是在最激烈的幻想中,其开发人员也不会想到有人会想要在此机箱中插入Wi-Fi卡。 该站点实际上描述了开发人员访问过的所有幻想:“ Thunderbolt 3 PCIe机箱使您可以轻松地扩展系统,并具有实现最高生产力所需的功能。 “您可以添加多种类型的PCI Express卡,例如PCIe USB 3.1 / 3.0 / 2.0和USB-C,SSD,网络,eSATA,FireWire或视频捕获卡。” 从理论上讲,Wi-Fi应该起飞。 实际上...好吧,您知道它的实际情况。 如果某个组件至少出于某种原因(驱动程序,固件,微电路)没有任何赚钱机会,那么它将无法工作。

我们写了一份支持。 可以理解,对于Wi-Fi的问题,支持是完全没有准备的。 他们说他们尝试了以太网适配器,但是Wi-Fi却没有。 好吧,我们会为他们努力的。 包装盒很快到达,我们只能拆下外壳并将带有适配器的PCIe板插入M.2。

图片
内部Startech TB31PCIEX16

将Wi-Fi适配器插入适配器并拧紧。 接下来,我们将天线连接到板上(通过微型连接器,如果没有放大器就无法做到),将天线固定在PCIe板的支架上以将其拉出,然后将整个单元连接到笔记本电脑的电源和Thunderbolt端口。

图片
Startech TB31PCIEX16组装

而且有效。 当然,这种铁片通常不会立即消失,不会立即消失。 我必须先在计算机上更新Thunderbolt控制器固件。 但是后来一切都像发条一样。

未来

我们密切关注行业的发展。 接下来的接口是M.2 CNVio,例如,在最新的Intel 9560适配器中使用的接口是下一个Wi-Fi标准是802.11ax。 当问题出现时,我们将解决问题。

Source: https://habr.com/ru/post/zh-CN420415/


All Articles