User Tools

Site Tools


docs:wifi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
docs:wifi [2018/03/31 14:24]
Tom Li [Antenna Diversity]
docs:wifi [2018/03/31 14:24]
Tom Li [TODO]
Line 100: Line 100:
  
 (待续) (待续)
 +===== Distance / Coverage Class(OpenWrt 中的「最远设备米数」)=====
 +
 +当设备收到 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 =====
  
docs/wifi.txt · Last modified: 2018/03/31 14:24 by Tom Li