This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
docs:wifi [2018/03/31 14:23] Tom Li [Antenna Diversity] |
docs:wifi [2018/03/31 14:24] Tom Li [Distance / Coverage Class(OpenWrt 中的「最远设备米数」)] |
||
---|---|---|---|
Line 98: | Line 98: | ||
* MIMO | * MIMO | ||
* LNA | * LNA | ||
+ | |||
+ | (待续) | ||
+ | ===== Distance / Coverage Class ===== | ||
+ | |||
+ | 当设备收到 802.11 数据帧并通过校验确定有效后,会向 AP 发送 ACK 帧宣告接收无误。如果 AP 在一定时间内没有收到 802.11 数据帧,就会假定该帧在途中已丢失或损坏,并重新发送本数据帧。然而,来自 AP 的数据帧抵达设备并解码也是需要一定的时间的,如果过早超时,就会导致不必要的重传;另一方面如果超时等待时间过长,数据帧丢失后 AP 会将更多时间浪费在空等待而不是重传上。此外,如果 AP 发现某个设备在短时间内没有发送任何 ACK,则会认为此设备已掉线,并向设备发出 disassociate 帧其强制踢出网络,强制使其重连。 | ||
+ | |||
+ | ACK 超时时间由硬件固件或设备驱动决定。这一时间可能会硬编码为一个较大数值,个别 AP 和驱动可能会提供手工调整 ACK 时间的选项,而一些先进的驱动则拥有 ACK 时间估算功能,会根据设备过去的表现自动调整超时时间(如 Linux 的 ath9k 驱动包括一个实验性的 ACK time estimation 功能,默认没有启用)。一般来说,ACK 超时时间对网络性能几乎没有明显的影响。然而在长途 Wi-Fi 通讯领域,由于设备之间的具体往往高达数千米甚至数百千米,远高于任何设备的默认 ACK 超时时间,此时就会出现设备可以看到 beacon 但无法连上的问题。此时需要手工调整 ACK 超时时间。 | ||
+ | |||
+ | 除了 ACK 超时时间,另一个在 802.11 网络中关键的时间参数是 slot time。在 CSMA 在算法检测到碰撞后,设备会等待一段时间重新尝试传输,而这一等待时间的最小值就称为 slot time。在 802.11g 的 OFDM 物理层中,存在短 slot time 和长 slot time 两种标准时间设置。但当通讯距离足够长时,这一时间将同样不足,引发混乱。为了解决此类时间问题,802.11 标准规定了一个名为覆盖级别(coverage class)的参数。coverage class 的数值每增加 1,对应 3 us 的传播时间;默认的数值是 0,意味着信号传播时间可以忽略不计, | ||
+ | |||
+ | 在 Linux 中,为了解决长途 Wi-Fi 应用提供一个简单的配置方法,引入了一个 distance(距离)选项。用户无需计算电磁波的传播时间,只需要以米为单位指定最远设备的距离,Linux 内核就会正确设置适当的 coverage class 与正确的 ACK 超时时间。 | ||
===== TODO ===== | ===== TODO ===== |