谷动谷力

标题: WiFi基础学习到实战(一) [打印本页]

作者: sunsili    时间: 2022-10-12 17:30
标题: WiFi基础学习到实战(一)
WiFi基础学习到实战(一)
欢迎大家一起学习探讨通信之WLAN。针对WLAN技术的前些课节分享,知识点比较独立,相互之间比较零散。以一个小功能或特性作为一次分享。通过一年多对WLAN技术的了解,为了彼此互相学习,在WLAN技术能有体系性的一起探讨进步。我们新起一个WiFi学习分享的名称”WiFi基础学习到实战“,该系列分享主要基于802.11技术发展的主线,以Android系统WiFi实现做为实例分析,从原理到实践,进行详细探讨。WLAN技术相关特性分析,依然用名称“第*节:通信之WLAN(*)”。

让我们以“日拱一卒”的状态,一起追求自己心中想象的模样。

OSI模型,从上到下分为7层:“应用层”,“表示层”,“会话层”,“传输层”,“网络层”,“数据链路层”和“物理层”。802.11协议标准主要定义实现在“数据链路层”和“物理层”,它对OSI模型三层以上未做任何定义。

802.11协议标准将“数据链路层”定义分为两个子层:
  • 上子层:逻辑链路控制子层,Logical Link Control,缩写(LLC)。所有基于802网络完全一样。
  • 下子层:媒介访问控制子层,Media Access Control,缩写(MAC)。所有基于802.11网络完全一样。

802.11协议定义MAC子层的运行实现。



802.11协议标准将“物理层”定义分为两个子层,规定其运行实现:
  • 上子层:物理层集成程序,Physical Layer Convergence Procedure,缩写(PLCP)。
  • 下子层:物理媒介相关层,hysical Medium Dependent,缩写(PMD)。


注:
802.11网络,从LLC子层(包含LLC层)以上层与802.3网络对应层无任何区别。基于分层情况,可将MAC子层当作为LLC层和物理层之间的适配接口层。

网络的构建,主要目的服务设备之间的数据传输。当有多个设备时,设备之间的通信工作机制最重要的之一。802.11定义设备工作采用的是半双工,这将决定了两个设备通信工作,只有一方发送,一方接收。

如同以太网,当网络中有多个设备都要发送时,就需要一种机制协调调度,以太网采用的是载波监听冲突检测机制,缩写(CSMA/CD)。

802.11网络,采用的是载波监听冲突避免机制,缩写(CSMA/CA)。


CSMA/CD和CSMA/CA一个字母之差,有什么区别呢?
  • CSMA/CD:设备发送数据过程中,持续监听媒介,判断是否有冲突存在。即发送过程中,才判断冲突是否存在。
  • CSMA/CA:设备发送数据前,需要监听媒介是否空闲,避免冲突。即发送前,需判断冲突是否存在。


到这里,相信大家就有疑问了,以太网已这么成熟,为什么802.11网络不采用CSMA/CD机制,非要采用CSMA/CA机制呢?

802.11网络设备同一时间共享一个媒介,多个设备同时传输,会互相干扰传输失败。同时,802.11网络设备工作方式为半双工,当设备在发送过程中时,无法检测冲突,所以无法使用冲突检测方式。



好~!接下来我们探讨802.11网络采用的CSMA/CA机制如何定义运作的呢?

在一个802.11网络内,WiFi设备要发送数据帧之前,首先,要申请媒介使用权,同时,要告诉网络其他设备,这段时间物理媒介将被使用,从而避免冲突发生。

802.11协议在mac层和物理层定义了媒介使用运行方式。媒介即为定义的信道,信道状态分为空闲(idle)和繁忙(busy)。

  • 物理层称作物理载波监听,clear channel assessment,缩写(CCA),空闲信道评估。CCA是一个值,如果当信号强度大于该值,认为信道处于繁忙状态,否则认为信道处于空闲状态。

  • MAC层称作虚拟载波监听,network allocation vector,缩写(NAV),网络矢量分配。NAV是一个定时器,当NAV定时器为0时,则认为信道处于空闲状态,否则认为信道处于繁忙状态。


这里大家应该疑惑了,为什么802.11要定义物理载波监听和虚拟载波监听呢?


从上CCA定义可知,CCA是一个值,当信号小于该值,则认为信道处于空闲状态,在WiFi网络中,无线环境时刻变化多样,存在CCA检测的信号值小于CCA门限值,认为信道空闲。实际则信道被占用的情况。

802.11协议在MAC header定义了信道使用持续时间,其他设备接收到非本设备的帧时,获取其MAC header中的持续时间值,设置定时器,直到定时器减为0时,才触发信道竞争申请,因此,通过NAV的方式,减少这种CCA运行的不足。

随着802.11协议标准的发展更新,信道带宽已可以支持到40M,80M,160M等,如802.11n协议定义由两个20M带宽可以扩展成为一个40M的带宽,将其两20M信道分别称为主信道(primary)和辅信道(secondary)。此时,CCA监听和NAV更新如何运行呢?


CCA监听:两个信道都将维护一个CCA值,在使用40M带宽时,需通过CCA检测两个信道都处于空闲状态。如信道获取一个40M带宽信道的传输机会,但主信道CCA处于空闲,辅信道CCA处于繁忙,可有如下两种处理方案:
(1)在主信道20M带宽传输数据
(2)重新启动信道尝试访问,即触发回退等待流程。

NAV更新:WiFi设备只用从20M带宽主信道和40M带宽信道接收帧的持续时间字段值,做NAV更新。且帧的接收地址不为本WiFi设备地址。即NAV更新不会使用从辅信道或其他信道接收帧的持续时间字段值。

注:【协议规范】
When a TXOP is obtained for a 40 MHz PPDU, the STA may transmit 40 MHz PPDUs and/or 20 MHzPPDUs during the TXOP. When the TXOP is obtained by the exchange of 20 MHz PPDUs only in theprimary channel, the STA shall not transmit 40 MHz PPDUs during the TXOP.

An HT STA shall update its NAV using the Duration/ID field value in any frame received in a 20 MHzPPDU in the primary channel or received in a 40 MHz PPDU and that does not have an RA matching theSTA MAC address.


本节开始,主要对802.11协议整体进行探讨,实例无法很好体现说明,下面就简单看下信道资源申请和NAV更新字段值的实例:

如下所示,协议规定WiFi设备发送帧之前,可通过RTS向AP申请信道使用资源,携带使用信道持续时间字段,AP处于非繁忙状态,则通过回复CTS,告知WiFi设备将可使用信道时长。

网络中其他设备监听到RTS和CTS帧后,将获取其持续时长值,更新其NAV值。


本节探讨就到此,本节探讨基于OSI模型,802.11标准协议主要对其“数据链路层”和“物理层”做了定义,将“数据链路层”分为LLC层和MAC层,“物理层”分为PLCP层和PMD层。具体每层用做干什么,做了哪些事,到后面讨论到相关地方详细探讨。同时,本节对802.11网络运行机制进行了探讨,并参考802.3网络进行对照说明。WiFi基础学习到实战(一)探讨就到此,后续期待共同继续探讨学习。



注:对以上所述专业知识有修正意见或建议,可随时留言反馈。谢谢大家支持~!







欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2