【发布时间】:2012-02-08 11:22:20
【问题描述】:
我在最后几天阅读了手册页、文档和其他任何 google 提出的内容,但我想我现在比刚开始时更加困惑。
这是我想做的事情:我想在使用 C/C++ 的 Linux 系统上通过无线接口 (802.11) 使用我自己的第 3-x 层协议发送和接收数据包。 到目前为止,一切都很好。我不需要信标、关联或任何与 AP/SSID 相关的东西。但是,对于数据传输,我希望 MAC 层表现得“像往常一样”,这意味着单播数据包被 ACK、重传、退避等。我还想享受扩展的 QoS 功能(802.11e 有 4 个队列和不同的访问类别)。另一方面,混杂模式不是问题,我只需要广播数据包和发送到特定站点的数据包。
正确的方法是什么?大多数关于原始套接字访问的文档似乎都集中在网络嗅探上,这无济于事。我一直在玩 monitor mode 一段时间,但从我目前所读到的内容来看,在监控模式等下接收到的数据包没有被确认。 如果没有监控模式,还有什么替代方案?使用 ad hoc 模式 和 unix 原始套接字?还是我必须摆弄司机?
我不是在寻找一个完整的解决方案,只是一些好的想法,从哪里开始。我通读了 socket(2)、socket(7) 和 packet(7) 的手册页,但这对 MAC 层在不同模式下的行为没有帮助。
提前致谢。
【问题讨论】:
-
您可能会查看是否有用于生成测试流量的开源软件 解决方案 - 即,混合有效和无效数据包以查看其他设备如何结束处理。据推测,这将有能力执行完整的常规操作,但也有任意变化(以引入所需的错误)。如果存在这种情况,您也许可以使用它或从中学习。
标签: linux network-programming network-protocols raw-sockets systems-programming