我目前正在尝试通过尝试随机翻转数据包中的位来模拟无线环境中的不良信号/流量。具体来说,我试图翻转 TCP 数据包的数据部分中的位(也许......每 5 个数据包翻转 1 位?)我知道这将使路由器无法正常工作,但这样做的全部目的是进行模拟路由器由于某种原因无法正常传输的环境。
因此,OpenWRT 中没有任何软件包能够执行我想要做的事情。 Airpwn 是唯一的例外(但是 Airpwn 不支持无线驱动程序)。
由于无处可寻,我的搜索范围扩展到了 Raspberry Pi 3B(也称为 brcmfmac)的无线驱动程序。但是,由于我找不到有关无线驱动程序程序流程的太多信息,如果有人知道我如何编辑路由器传输位的方式,我想向社区寻求帮助?
答案1
这并不是问题的答案,但为什么不使用已有的有损 WLAN 仿真工具呢?
使用该mac80211_hwsim
模块,您可以模拟任意数量的虚拟 WLAN 接口,这些接口可以通过“虚拟以太网”相互通信,除此之外,您还可以窥探在附加接口上传输的帧。
中度在此基础上构建并允许模拟帧丢失和延迟,因此您可以看到更高级别的算法的行为方式。 (不过,没有一点翻转)。
至于最初的问题,我想除了阅读内核代码(很多)之外没有什么可做的。另外,如果你位翻转,你将不得不处理各个级别的校验和,这可能会纠正错误或只是丢弃帧(因此结果与 wmediumd 所做的相同)。