802.11 ACK在用户模式堆栈上花费的时间过长,导致数据重传。

3
我正在开发一个极简的用户态 802.11 Wi-Fi 栈。开发环境是在 Ubuntu 18.04 上,使用基于 Atheros 的 USB 网卡设置为监听模式。 我能够发送和接收数据包,但我面临的问题是栈需要花费太长时间来响应 802.11 ACK 帧,这导致对方要多次重传每个帧。来自驱动程序/芯片组的合法 ack 需要 0.000132 秒,而我的 ack 需要 0.0118 秒。
有没有办法与我通信的客户端“协商”ACK 超时(持续时间)?
欢迎提供任何解决方案或创意想法。
1个回答

0

在发送SIFS之后应该发送Ack,似乎这是不可协商的。而且WiFi网卡通常会在固件或硬件中ack数据包。您可以使用iw实用程序“iw dev wlan set monitor active”在监视模式下“启用”WiFi网卡以对传入的单播数据包进行ack,但驱动程序必须支持IEEE80211_HW_SUPPORTS_ACTIVE_MONITOR。

因此,最好找到一个合适的驱动程序。 PS:如果您找到了,请告诉我_


这是一个跟编程有关的问题吗? - Akber Iqbal
不!ACK是时间关键的(在802.11n中大约有10微秒的延迟),你的程序处理它已经太晚了。 - qijin Mo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接