我正在做一个关于wifi信号质量的研究项目。我想要做的是使用Raspberry Pi来监控数据包级数据上尽可能多的指标。我想通过将wifi适配器置于监控模式(使用airmon-ng)并使用无线网络协议分析器(如tshark)捕获有关数据包的数据来实现此目的。
我从无线网络中了解到,您主要有三个部分:一个框架部分具有与您捕获的信息无关的相同信息,其中包含帧数,帧长和到达时间等内容。 (想要上传图片,但还没有10个声誉......)。
然后是IEEE 802.11数据,其中包含网络工作所需的内容。在WLAN上捕获时,它包含MAC地址。
而且我们有radiotap标头,它包含所有类型的信息(信号强度db和dbm,噪声电平,信号质量,TX值等等)。这个有点不同,因为这个信息实际上是由你用来捕获数据的wifi适配器填充或注入的。
在当前标志中,您可以找到wifi适配器实际注入的值。现在我的问题是,对于我的研究,我真的需要尽可能多的价值观。我已经工作了几个小时但是我没有成功找到一种方法来捕获除了dmb信号强度之外的任何东西(如果可用的话)。所以这就是我到目前为止所做的:
到目前为止,我使用的适配器是Edimax EW7811UN,AirPcap Classic,AirPcap Tx和两个与Atheros AR9271芯片组相似的alfa适配器。 AR9271适配器在ath9k_htc驱动程序上使用raspbian(debian for raspberry pi)开箱即用。将它们置于监视器模式并捕获工作正常,但在捕获中仅给出了dbm信号强度(如上面的屏幕截图所示)。 Edimax在8192cu驱动程序上开箱即用,但它显然不支持监控模式。我可以在zd1211rw驱动程序上启动它时将其置于监控模式,但这甚至没有给出dbm信号强度。然而,奇怪的是,一位朋友尝试了完全相同的Edimax适配器并且他可以捕获,我们唯一可以找到的区别是lsmod说rtl8192cu而不是8192cu。奇怪的是,论坛上说8192cu是较新的版本,但是这位朋友安装了最新的arch linux内核(比raspbian更新)。所以我在pi上安装了Arch Linux,但是仍然无法在监控模式下将edimax放在8192cu驱动程序上。然后我在aur repos中找到了一个包:dkms-8192cu,它应该有一个修补版本。但是,安装后它仍然无法正常工作。从realtek网站下载驱动程序也无法正常工作。在aircrack-ng网站上修补了一些东西,但它实际上提到了帧的注入,并不像我真正需要的那样。
我买了Airpcap Classic和Airpcap Tx,看看他们能做些什么。首先,他们没有Linux支持,所以这已经是一个很大的缺点,因为我需要从Pi使用它。然而,即使在windows中,airpcap也只捕获db和dbm噪声和信号质量。它确实接收到dbm噪声级别的一些数据,但它没有价值,因为它始终处于-100级别。我可以启动Airpcap classic和tx有zd1211B芯片组,所以我可以在zd1211rw驱动程序上启动它们,但这也没有提供dbm信号值或其他任何东西。
所以我的问题是,究竟是什么决定了radiotap标题中的内容?我想这将是驱动程序中的所有内容,但在我注销每个基于ath9_htc驱动程序的适配器之前,我需要完全确定。我即将购买另一个在carl9170驱动程序上运行的适配器,但我无法保证在任何地方它都会给我这些值。我在文献中发现的是,madwifi驱动程序给出(或正在给出)噪声级别,但它被Atheros收购,所以项目停止了,并且所有网站都建议只使用ath9k或ath5k驱动程序。我试图安装它,但我失败了,因为自项目停止以来它似乎真的是过时的软件。
如果有人可以向我解释究竟是什么确定了radiotap标头中的内容,以及是否有人可以分享他们从linux捕获的信息强度值超过dbm信号强度值的任何经验,那将是非常有用的。