Linux无线:ACK实现

时间:2013-08-30 08:01:11

标签: linux driver wireless 802.11

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

假设STA A向STA B发送正常数据包。 基于802.11标准,如果STA B成功地从STA A接收到分组,则STA B将发送ACK。同时,STA A将切换到接收状态以便从STA B接收ACK。

我的问题是:

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

找到实施80211的同事的答案: ACK由硬件处理,类似于具有严格时序要求的一些其他低MAC相关功能。