0

一直在研究Linux无线802.11驱动,突然出现这个问题:

假设STA A向STA B发送一个正常的数据包,根据802.11标准,STA B如果成功接收到STA A的数据包,将发送ACK。同时STA A将切换到接收状态以接收STA的ACK B.

我的问题是:

控制在 STA A 接收 ACK 从 tx 切换到 rx 的代码在哪里?它是由硬件完成的,还是由驱动程序完成的?

如果有人能启发我,真的很感激。谢谢!

4

2 回答 2

1

通常,ACK 需要以 SIFS 标准发送,请参阅(https://en.wikipedia.org/wiki/Short_Interframe_Space)。SIFS 的实际值因协议而异(例如,在上面的共享链接中可以看到 802.11b 其仅 10uS 相似)。

从技术上讲,必须在 10uS 内接收数据包并发送 ack。在软件中这样做是可能的,但不鼓励这样做,因为这种硬时间依赖性。因此,通常 802.11 ACK 由硬件生成。

于 2016-02-26T16:05:38.547 回答
0

从一些实现80211的同事那里找到答案:ACK由硬件处理,对于其他一些具有严格时序要求的低MAC相关功能也是如此。

于 2013-12-23T05:34:01.280 回答