一直在研究linux无线802.11驱动,突然跳出这个问题:
假设STA A向STA B发送一个正常的数据包。 基于802.11标准,如果STA B成功接收到来自STA A的数据包,则STA B将发送ACK。同时STA A将切换到接收状态以接收来自STA B的ACK。
我的问题是:
在 STA A 控制 ACK 接收从 tx 到 rx 的切换的代码在哪里? 是硬件做的,还是驱动做的?
如果有人能赐教,我将不胜感激。谢谢!
最佳答案
一般来说,ACK需要在SIFS标准中发送见(https://en.wikipedia.org/wiki/Short_Interframe_Space)。 SIFS 的实际值因协议(protocol)而异(例如,在上面的共享链接中可以看到 802.11b 仅 10uS 相似)。
从技术上讲,必须在 10uS 内接收数据包并发送确认。在软件中这样做是可能的,但不鼓励这样做,因为这种困难的时间依赖。因此,通常 802.11 ACK 由硬件生成。
关于Linux 无线 : ACK implementation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18527866/