我有几个树莓派,它们都是相同的模型,具有相同的raspbian版本,并运行相同的代码,而我只是使用pyshark嗅探出探测请求并将它们记录到日志文件中。我可以让5个相同的rapiberry pi在完全相同的区域中运行相同的代码嗅探请求,在2个小时内捕获的探查请求数量至少有20%的差异。有时差异会超过20%。他们不应该更相似吗?
我研究了CPU的使用情况,它没有使一个或多个内核过载。这有足够的可用RAM。我唯一能想到的是,随着时间的流逝,raspbian运行与操作系统相关的各种“调整”,并且某些raspberry pi的“自我配置”要好于其他? (有可能吗?Raspberry pi是否运行了可以对其自身进行微调的系统事件?)
这是一个示例tshark命令,它捕获了我的探测请求:
sudo nice -n -15 stdbuf -oL tshark -i wlan1 -I -f 'wlan type mgt subtype probe-req' -Y 'wlan.sa[0:3] ne b8:27:eb && radiotap.dbm_antsignal gt -73' -T fields -e frame.time_epoch -e wlan.sa -e radiotap.dbm_antsignal -E header=y -E separator=, -E quote=d -E occurrence=f >> ../data-test/tsharkoutput.txt
我希望,如果未利用CPU或RAM,运行相同命令的不同树莓派将捕获几乎相同数量的数据包,但它们之间的差异会达到20%或更多。对为什么会有任何想法?
答案 0 :(得分:0)
从物理接口捕获时,tshark是dumpcap的包装。在这种模式下,tshark比转储要经历higher loss。
您应该改用dumpcap或tcpdump。如果要避免使用tshark,则将使用PyShark以外的库。
另外,根据定义,802.11流量很嘈杂并且容易丢失,因此在不同的捕获设备上看到不同的数据包是预期的行为。