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
Next revision
Previous revision
docs:wifi [2018/03/25 14:48]
Tom Li [Short/Long Preamble]
docs:wifi [2018/03/31 14:24] (current)
Tom Li [Distance / Coverage Class(OpenWrt 中的「最远设备米数」)]
Line 1: Line 1:
 ====== 802.11 无线网络参数解惑 ===== ====== 802.11 无线网络参数解惑 =====
  
-在 802.11 无线网络的 AP 配置选项中,有许多令人费解的高级参数。本文档对这些参数进行了简明叙述,帮助系统管理员根据环境对无线网络进行调优。需要注意的是,本文档并不是一份 802.11 协议指南,若对协议有疑问请参阅专业的原始文档,也欢迎提交修改建议。**目前文档还未编写完成。**+by 盖子 (biergaizi) 
 + 
 +在 802.11 无线网络的 AP 配置选项中,有许多令人费解的高级参数。本文档对这些参数进行了简明叙述,帮助系统管理员根据环境对无线网络进行调优。需要注意的是,但仅仅是面向用户和系统管理员的简介,虽然我会努力保证本文档的内容正确,不是一份 802.11 协议指南,若对协议有疑问请直接参阅 IEEE 资料。也欢迎提交修改建议。**目前文档还未编写完成。**
 ===== Beacon Interval ===== ===== Beacon Interval =====
  
Line 19: Line 21:
 多播和广播信息也是使用类似 TIM 的方式进行传输的,但是它们并不包含 TIM 中,而是包含在 DTIM(Delivery Traffic Indication Message)中。Beacon 中通常携带的是 TIM,但有时携带的是DTIM。 多播和广播信息也是使用类似 TIM 的方式进行传输的,但是它们并不包含 TIM 中,而是包含在 DTIM(Delivery Traffic Indication Message)中。Beacon 中通常携带的是 TIM,但有时携带的是DTIM。
  
-DTIM 出现的频率由 DTIM Interval/Period 控制,如 DTIM = 1,那么 DTIM 将每隔 1 个Beacon 出现一次,其他时间出现的是 TIM。按照 802.11 的电源管理协议,在 DTIM 出现之前,设备可以暂时进入休眠状态,直到下一个 DTIM 出现。因此,DTIM 的周期越长,设备可以睡眠的时间也就越长。因此,上调 DTIM 可以降低设备的电能消耗,但会影响网络传输的延迟与可靠性;下调 DTIM 可以提高网络传输的可靠性,减少延迟,但是会增加电能消耗。+DTIM 出现的频率由 DTIM Interval/Period 控制,如 DTIM = 2,那么 DTIM 将每个 Beacon 出现一次,其他时间出现的是 TIM,DTIM = 1 时每一个 Beacon 中 DTIM 都会出现。按照 802.11 的电源管理协议,在 DTIM 出现之前,设备可以暂时进入休眠状态,直到下一个 DTIM 出现。因此,DTIM 的周期越长,设备可以睡眠的时间也就越长。因此,上调 DTIM 可以降低设备的电能消耗,但会影响网络传输的延迟与可靠性;下调 DTIM 可以提高网络传输的可靠性,减少延迟,但是会增加电能消耗。
  
 DTIM = 3 时的情况如图所示。 DTIM = 3 时的情况如图所示。
Line 57: Line 59:
  
 数据链路层又可以进一步分为逻辑链路控制层(LLC, Logical Link Control)与媒介访问控制层(MAC, Media Access Control),我们感兴趣的绝大多数以太网活动发生在 MAC 层,而物理层又可以进一步分为物理收敛过程层(PLCP, Physical Layer Convergence Procedure)与物理媒介相关层(PMD, Physical Medium Dependent)。PLCP 负责将来自 MAC 层的帧进一步封装为 PLCP 协议控制单元(PPDU, PLCP Protocol Data Unit),接下来 PMD 再将准备好的 PPDU 的二进制数据通过调制解调器发送出去。 数据链路层又可以进一步分为逻辑链路控制层(LLC, Logical Link Control)与媒介访问控制层(MAC, Media Access Control),我们感兴趣的绝大多数以太网活动发生在 MAC 层,而物理层又可以进一步分为物理收敛过程层(PLCP, Physical Layer Convergence Procedure)与物理媒介相关层(PMD, Physical Medium Dependent)。PLCP 负责将来自 MAC 层的帧进一步封装为 PLCP 协议控制单元(PPDU, PLCP Protocol Data Unit),接下来 PMD 再将准备好的 PPDU 的二进制数据通过调制解调器发送出去。
 +
 +数据在整个网络流动如图所示。
  
 {{:docs:802.11-osi.png?direct&700|}} {{:docs:802.11-osi.png?direct&700|}}
  
-数据在个网络流动图所示+「Preamble」是有关物理层上半层(即 PLCP 层)的一个概念。PLCP 层中的通讯也是一帧一帧进行的,其中「帧」名为 PPDU。PPDU 一共分为三部分,第一部分是先导区,名为 PLCP Preamble;第二部分是头部信息,名为 PLCP Header;第三部分是要传递的 payload,名为 PSDU。当包含着以太网帧的 802.11 帧从 MAC 层来到 PLCP 层,PLCP 就会为这些帧加入 Preamble 和 Header,从而封装为 PPDU。 
 + 
 +在 802.11 协议中,Preamble 存在五个版本。 
 + 
 +    * Long Preamble(旧版 802.11b) 
 +    * Short Preamble(新版 802.11b) 
 +    * OFDM Preamble(802.11g) 
 +    * HT Mixed(802.11n 向下兼容) 
 +    * HT Greenfield(原生 802.11n,不向下兼容) 
 + 
 +第一个版本被称为 Long Preamble,是 802.11b 及其之前的 802.11 无线网络使用的 PLCP Preamble 格式。在 802.11b 推出后,IEEE 又重新设计了一种新版本的 Preamble 格式,与 Long Preamble 相比长度明显缩短,因此名为 Short Preamble,减少了 802.11b 网络数据传输的额外开销,从而可以让 802.11b 无线网络达到更快的实际传输速率。然而,Short Preamble 的支持是可选的,并不是所有的设备都支持它。因此,将 Preamble 设置为 Short 可以降低开销,提高 802.11b 的传输速度,但无法兼容第一代的 802.11b 设备;将 Preamble 设置为 Long 可以兼容第一代 802.11b 设备,但会降低网络的传输速度;网络稳定性与本选项无关。 
 + 
 +{{:docs:802.11-preamble.png?direct&600}} 
 + 
 +第三个版本是 802.11g 中的 OFDM Preamble,这个 Preamble 使用了新的编码方式,进一步降低了开销;而在 802.11n 中,Preamble 再次经过了重新设计,出现了向下兼容的第四版本 HT Mixed 与不向下兼容的 HT Greenfield。 
 + 
 +{{:docs:802.11-ppdu.png?direct&600|}} 
 + 
 +在修订版的 802.11b 协议中,Short Preamble 已经改为了强制实现,而不是可选实现,因此新的设备都支持 Short Preamble;其次,802.11b 已经是 1997 年的老古董了,早早就被 802.11g 与 802.11n 取代,因此 Preamble 究竟是 Short 还是 Long 已经完全不重要了。总而言之:如果你拥有十分古老的 802.11b 设备需要兼容,你也许需要启用 Long Preamble,如果你的 802.11b 设备是新设备,请使用 Short Preamble,更好的选择是不必关心这个选项,并直接禁用 802.11b 与 802.11g。 
 + 
 +===== Antenna Diversity ===== 
 + 
 +电磁波在空间中的传播会受到障碍物和噪音的干扰,导致信号强度出现随机衰减(fade)。对于 802.11 无线网络而言,由于设备与 AP 直接往往没有直射路径,因此电磁波会被不同的物体反射,产生多径传播现象,使设备与 AP 反复接收到之前已经接收过的相同信号;而通过不同路径抵达设备与 AP 的电磁波之间也会混合在一起,产生失真。这这种情况下,衰减现象会更加容易发生,干扰通讯的正常进行。在最严重的情况下,多径信号产生相消干涉现象而互相抵消,造成严重的「深衰」(deep fake),此时信号强度下降数千倍,可导致高达 30 dB 的损失。 
 + 
 +天线分集(Antenna Diversity)是使用多根天线降低通讯干扰的技术。在最典型的方案中,无线设备使用两根或更多天线,由于天线的位置不同,因此每根天线的信号的传播路径也不同。果一根天线的信号传播出现深衰,很可能另一根天线却是正常的。因此,无线设备可以选择一根信号最强的天线用来收发信号。这就叫做空间分集(Space Diversity),可以看到在 Space Diversity 中,虽然天线的数量可以很多,但是任何时刻只有一根天线负责信号的传输。 
 + 
 +在 802.11g 与 1x1 无 MIMO 的 802.11n 中,Antenna Diversity 选项指的就是 Space Diversity。在 AP 上,可能存在一个是否开启 Antenna Diversity 的选项,也可能会有额外的选项让用户指定发射天线与接收天线。除非 AP 是用于特殊环境下组网的情况,Antenna Diversity 应该总是开启,而发射、接收天线应该设置为「自动」。 
 + 
 +带 MIMO 的 802.11n 无线设备则实现了更加复杂的 Antenna Diversity 技术,一般这类设备上没有选项可以直接控制 Antenna Diversity,因为这是 802.11n MIMO 的一部分 
 + 
 +两种:
  
-而「Preamble」则是有关物理层上半层(即 PLCP 层)的一个概念。PLCP 层中的通讯也是一帧一帧进行的,其中「帧」名为 PPDU。PPDU 一共分为三部分,第一部分是先导区,名为 PLCP Preamble;第二部分是头部信息,名为 PLCP Header;第三部分是要传递的 payload,名为 PSDU。当包含着以太网帧的 802.11 帧从 MAC 层来到 PLCP 层,PLCP 就会为这些帧加入 Preamble 和 Header,从而封装为 PPDU。+    * MIMO 
 +    * 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 超时时间。
  
-为了对通讯进行控制与协调,每个 PPDU 除了 payload 以外显然也有自己的 headerPPDU 的 header 分为两部分部分导言Preamble),第二部分为+除了 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,意味着信号传播时间可以忽略不计
  
-数据进行协调与控制个 PPDU 都包括+在 Linux 中,为了解决长途 Wi-Fi 应用提供一个简单配置方法引入了一个 distance(距离)选项。用户无需计算电磁波的传播时间,只需要以米为单位指定最远设备的距离,Linux 内核就会正确设置适当的 coverage class 与正确的 ACK 超时时间。
  
-而 802.11 无线网络中的「Preamble」,指的是 PLCP 协议中 
 ===== TODO ===== ===== TODO =====
  
     * 注明来源(CC By + 合理使用)     * 注明来源(CC By + 合理使用)
     * 1, 6, 11 信道的选择,与 20/40 MHz 频宽     * 1, 6, 11 信道的选择,与 20/40 MHz 频宽
 +    * WMM
     * AMPDU     * AMPDU
     * UAPSD     * UAPSD
Line 85: Line 124:
     * Antenna Diversity     * Antenna Diversity
     * 802.11w     * 802.11w
 +    * Coverage Class(OpenWrt 中的「最远设备米数」)
docs/wifi.1521989331.txt.gz · Last modified: 2018/03/25 14:48 by Tom Li