底层架构 ipad websocket colors short几个字节 js空格符 mysql连接 python指令 java类 java程序实例 java类型 java入门课程 java中class java中new java方法调用 javahttp java接口调用 xs颜色 beatedit js轮播图代码 comsol软件下载 快捷精灵 stretchcolumns 云管家 flash制作工具 古风头像女动漫 tomcat修改端口 c4dr19 kafka权威指南 php取整 arm体系结构与编程 renderto wmiprvse是什么进程 cinema4d下载 粉碎文件工具 x270 冬青黑体简体中文 pr怎么旋转视频画面 wps脚注 pathping
当前位置: 首页 > 学习教程  > 编程语言

CSMA/CA协议工作原理

2020/8/31 15:48:17 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

参考资料
[1]罗浪. 无线局域网CSMA/CA协议的研究与实现[D].成都理工大学,2016.

2.1 无线局域网的组成

为了更好地描述CSMA/CA协议,稍微介绍无线局域网的背景知识,阅读时可选择性跳过。

802.11 标准是个非常丰富的无线网络标准。它规定无线局域网为星型拓扑结构,其中心点称作接入点 AP(Access Point),并把基本服务集 BSS(Basic Service Set)作为其最小构件。一个 BSS 又由一个固定基站和若干移动终端组成,其中固定基站就是上文所提到的接入点 AP。在 AP 被建立的同时,也必须为该服务集分配一个通信信道和一个服务集标识符(Service Set Identifier)(32 字节以内)。

移动站点要和中心接入点建立关联可通过两种方式:一种是移动站点被动的等待接入点定期发出的探测帧(beacon frame);另一种是移动站点主动的试探性的向接入点发送请求帧,然后等待接入点的响应。全部的移动站点在自身所处的服务集内都能够直接相互传输数据,然而若要和其他服务集的移动站点互传数据,就只能够通过所处服务集的接入点 AP。一个基本服务集中全部移动站点所发射出的无线电波的覆盖区域就决定了该服务集的最大服务区域,并把这个区域称作为该服务集的基本服务区 BSA(Basic Service Area)。基本服务区 BSA 的范围一般不会太大,半径在 50 米以内。

一个独立的基本服务集 BSS 是可以进行扩展的。要领即是利用本 BSS 的接入点 AP 使其连接到一个分配系统 DS(Distribution System)上,然后再连接到另一个基本服务集的接入点,这样就把两个相互独立的 BSS 相互连接起来了,从而构成了一个扩展的服务集ESS(Extended Service Set)。并且正是由于
DS 的存在,使其看起来就仿佛一个BSS 一样。值得提醒的是,这两个基本服务集接入点之间是通过有线连接起来的。

IEEE802.11 的基本服务集 BSS 和扩展的服务集 ESS 如图 2-1 所示:
图2-6 802.11基本服务集BSS和扩展服务集ESS

2.2 无线局域网的 MAC 层

802.11 局域网的 MAC 层被制定得非常特别。该层处于物理层之上,包含分布协调功能 DCF(Distribute Coordination Function)点协调功能 PCF(Point Coordination Function) 两个子层。如图2-2 所示:
在这里插入图片描述
基本服务集 BBS 中的移动站不能随意的占用信道,必须通过 MAC 层中的协调功能(coordination function)来决定其在某特定时间是否有使用信道进行数据发送或接收的权利。

DCF 协议规定了网络各站点必须通过争用的方式获得信道,进而获得数据发送和数据接收的权利。在每一个站点采用载波监听多点接入的分布式接入算法,即 CSMA/CA 协议的退避算法。 该机制适用于传输具有随机性的数据。DCF 是 MAC 层中必需的也是最主要的功能。

PCF 子层位于 DCF 层之上,该层不是必须的。在 PCF 功能下各站点不必争用信道,而是交由接入点 AP 集中协调控制,按照特定的方式把享用信道的权利轮番赋予每个站点,以此杜绝碰撞的发生。由于接入点AP在自组网络中并不存在,因此在自组网络的MAC层中没有PCF子层。

相比于 DCF 机制,PCF 机制目前使用较少,一般只使用于对实时性要求较高的业务。但两种机制可以交替配合使用。

2.2.1 MAC 帧结构

802.11 局域网的 MAC 帧结构(IEEEstd802.11, 2012)如图 2-3 所示,该图说明了 802.11 局域网 MAC 帧的主要字段。
在这里插入图片描述

2.2.2 常用的四种帧间间隔

为尽可能的避免冲突,802.11 局域网还要求,各站点不能无间断的一直发送,每发完一帧都得经过一个特定的时长才能继续发送下一帧。并把这个特定的时长称作帧间间隔 IFS(Inter Frame Space)。802.11 共规定了四种长度的帧间间隔,分别是 SIFS(Short Inter Frame Space)PIFS(PCF Inter Frame Space)DIFS(DCF Inter Frame Space)EIFS(Extended Inter Frame Space),它们之间的长度关系如图 2-5 所示:
在这里插入图片描述

2.2.3 两种载波监听机制

为尽可能的避免冲突,802.11中CSMA/CA协议采用了两种载波监听机制:物理载波监听(Physical Carrier Sense) 机制和 MAC 层的 虚拟载波检测(Virtual Carrier Sense) 机制。

物理载波监听是物理层的直接载波监听,通过接收到的电信号来判断信道状态。它规定站点在建立通信之前必须先侦听信道状态,“听到”信道处于忙态的时候不能发送数据,除非信道空闲。

虚拟载波监听是让源站点在所发送的数据帧首部中的“持续期字段”中写入一个时间值,以微秒为单位,表示在持续期时间内会占用信道。持续期时间包括ACK 的传输时间。这是因为无线信道的通信质量远不如有线信道的,且不采用碰撞检测,因此站点在一次通信中要收到目的站响应的 ACK 帧后才表示本次通
信就此顺利完成。这叫做链路层确认。其他站点在检测到信道上数据帧中的“持续期”字段时,就重设自身的网络分配向量 NAV(network allocation vector)。NAV指出了信道忙的时间长度,这样站点就在知道接下来 NAV 时间内信道被占用,不能发送数据。“虚拟载波监听”之所以有“虚拟”二字,是因为实际上其他站点并没有监听信道,而只是由于这些站点被告知了信道忙才退避等待,表现得就好像都监听了信道一样。

因此,当这两种机制中的任何一种机制“听到”信道忙,都表示信道忙,否则表示信道空闲。

2.3 CSMA/CA 协议包含的两种通信方式

CSMA/CA 协议包括了两种通信方式:一种是基本通信方式(basic access method),另一种是 RTS/CTS
通信方式。

2.4 CSMA/CA 协议及其退避算法

CSMA/CA 协议规定,站点在进行通信之前,必须先监听信道状态:

(1)若检测到信道空闲,则再等待一个 DIFS 后(如果这段时间内信道一直是空闲的)就开始发送 DATA 帧,并等待确认。

(2)目的站若正确收到此帧,则在等待一个 SIFS 后,就向源站发送确认帧ACK。当发送站收到 ACK 帧就表示本次传输过程完成。

(3)另外,在站点发送数据帧时,所有其他的站点都已经设置好了网络分配向量 NAV,在这整个通信过程完成前其他站点只能执行 CSMA/CA 的退避算法,随机选择一个退避时间,推迟发送。
退避时间的选择方法如下:

为了减少各个站点选择相同的退避时间的概率,802.11 标准规定,第 ii 次退避的退避时间是在时隙个数 { 0,1,...,22+i10,1, ... , 2^{2+i}-1} 中随机地选择一个,并把 22+i12^{2+i}-1 称之为竞争窗口 CW(ContentWindow)CW(Content Window)。由此可见,退避时间就等于所选择的时隙个数乘以时隙时间,是时隙时间的整数倍。当发生第一次退避时,也就是 i=1i=1,退避的时隙个数是在区间 {0170,1,…,7} 中随机地选择一个;当发生第二次退避时,也就是 i=2i=2,退避的时隙个数是在区间{01150,1,…,15}中随机地选择一个;以此类推,当时隙个数达到 255,也就是进行到第 6 次退避时,竞争窗口不再增大。也就是说,竞争窗口 CWCW 的值只能是{71531631272557,15,31,63,127,255} 中的一个。一般地,把 CWminCW_{min} 称之为最小竞争窗口,CWmin=7CW_{min}=7 ;把 CWmaxCW_{max}称之为最大竞争窗口,CWmax=255CW_{max}=255CWminCWCWmaxCW_{min}≤ CW ≤ CW_{max}

(4)站点选择好退避时间就等效于设定好了一个退避计时器(backoff timer)。于是在计时器减小到零之前,站点会每经历一个时隙时间就检测一次信道状态。若检测到信道忙,则暂停倒计时;若检测到信道空闲,就表示先前的通信过程已完成,这时其他站点设置的 NAV 时间也就结束了。再经过一个 DIFS,争用窗口到来,退避计时器就从暂停处重新开始倒计时,在每个时隙的起始时刻减一,一旦退避计时器的时间减小到零就代表可以进行通信了,就开始发送整个数据帧。

在争用窗口期间,由于可能不止一个站点要执行退避算法,因此争用信道的情况比较复杂。CSMA/CA 协议的退避机制如图 2-11 所示。
在这里插入图片描述
以上就是 CSMA/CA 协议及其退避算法的全部内容,情况很复杂,现作如下归纳:
(1)如果站点最初要进行通信(而不是通信冲突后再进行重传),且发现信道是空闲的,在等待一个
DIFS 后,就开始通信。

(2)如果站点最初要进行通信、但发现信道忙,或者站点一次通信完成后要再继续通信的,再或者站点通信冲突要重传的,则站点执行 CSMA/CA 的退避算法,各自进行第 ii 次退避。只要发现信道忙,就暂停倒计时;只要信道空闲,就继续倒计时。

(3)站点退避计时器时间只要减少到零(这个时候信道一定是空闲的),就立即开始通信并等待确认。

(4)发送站若收到确认,就表示通信过程顺利完成。这时如果想要继续通信,就再从步骤(2)开始。

(5)若发送站没有收到确认,那么就要重传此帧。因此也要从步骤(2)开始,直到收到确认。除非已经超过重传次数的上限值,只能放弃重传。

值得说明的是,当一个站最初想要建立通信连接,并且发现信道是空闲的,那么就直接开始通信,而不需要退避。除此以外的任何情形都得要执行退避算法。


本文链接: http://www.dtmao.cc/news_show_150416.shtml

附件下载

上一篇:8KOBE24

下一篇:Tomcat优化配置

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?