数据链路层-第六节媒体接入控制3:载波监听多址接入-碰撞避免(CSMA-CA)协议
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链路层-第六节媒体接入控制3:载波监听多址接入-碰撞避免(CSMA-CA)协议相关的知识,希望对你有一定的参考价值。
文章目录
本节对应视频
一:CSMA/CD无法直接应用在无线局域网
在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听,若发现有其他站在发送帧,就推迟发送以表面发生碰撞。但无线局域网不能使用碰撞检测CD,原因如下
- 由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高
- 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题), 进行碰撞检测的意义也不大
- 隐蔽站问题:如下图A、C互为隐蔽站,它们都检测不到对方的无线信号,因此碰撞检测没有意义
- 隐蔽站问题:如下图A、C互为隐蔽站,它们都检测不到对方的无线信号,因此碰撞检测没有意义
二:载波监听多址接入-碰撞避免(CSMA-CA)协议概述
(1)概述
载波监听多址接入-碰撞避免(CSMA-CA)协议:802.11无线局域网使用CSMA/CA协议,在CSMA基础上增加了一个碰撞避免CS功能,而不再实现碰撞检测功能。由于不可能避免所有碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收。802.11的MAC层标准定义了两种不同的媒体接入控制方式
- 分布式协调功能DCF: 在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式
- 点协调功能PCF: PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用
(2)帧间间隔IFS
帧间间隔IFS:802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS
帧间间隔的长短取决于该站点要发送的帧的类型:
- 高优先级帧需要等待的时间较短,因此可优先获得发送权
- 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会
常用两种帧间隔如下
- 短帧间间隔SIFS: 是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这
段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、 由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧 - DCF帧间间隔DIFS: 它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧
(3)CSMA/CA工作原理
CSMA/CA工作原理:注意以下三点
- 源站在检测到信道空闲后需要等待一段帧间间隔DIFS后才发送数据帧: 这是因为可能考虑到其他的站有更高优先级的帧要发送,如果有就让该帧发送
- 目的站在正确接收数据帧后还需要等待最短帧间间隔SIFS才能发送ACK帧: 这是因为,SIFS可以分隔开属于一次对话的各帧,在这段时间内,一个站点应该能够从发送方式切换为接收方式
- 信道由忙转为空闲且经过DIFS后还需要退避一段随机时间才能使用信道: 这是为了防止多个站点同时发送数据而产生碰撞
如下图,横坐标为时间,假设无线信道空闲,源站有数据帧发送
- 当源站监测到信道空闲时,则在等待帧间间隔DIFS后发送该数据帧
- 目的站如果正确收到该数据帧,则经过帧间间隔SIFS后,向源站发送确认帧ACK,如果源站在规定时间内没有收到ACK,则由重传计时器控制这段时间,就必须重传该数据帧,直到收到确认为止,或经过若干次重传失败后放弃发送
如下图所示,在源站和目的站一次对话过程中,无线信道处理忙状态
- 若无线信道处于忙状态时,其他信道要发送数据必须进行退避
- 当信道从忙状态转换到空闲状态,并经过帧间间隔DIFS后,其他要发送数据的无线站点,需要退避一段随机时间后才能发送
三:CSMA/CA协议退避算法
(1)使用退避算法的情形
不使用退避算法: 当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法
必须使用退避算法:
- 在发送数据帧之前检测到信道处于忙状态时
- 在每一次重传一个数据帧时
- 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)
(2)退避算法概述
CSMA/CA协议退避算法:在执行退避算法时, 站点为退避计时器设置一个随机的退避时间
- 当退避计时器的时间减小到零时,就开始发送数据;
- 当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器
在进行第 i i i次退避时,退避时间在时隙编号 0 , 1 , . . . , 2 2 + i − 1 \\0,1,.. .,2^2+i-1\\ 0,1,...,22+i−1中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应于第6次退避)就不再增加了
(3)举例说明
如下图所示,A、B、C、D、E为5个无线站点,横坐标为时间
-
假设A正在占用无线信道发送帧
-
在其发送过程,B、C、D也要发送帧,载波监听时发现信道忙,所以退避
-
根据退避算法选择出一个随机的退避时间,并在每个时隙对信道进行一次检测
-
当检测到信道由忙状态转为空闲状态,且经过帧间间隔DIFS后,退避计时器开始倒计时
-
假设C的退避时间最短,当C的退避计时器到时间后,C立即开始发送帧
-
此时,信道由空闲状态转为忙状态
-
当B和D检测到信道忙之后,就冻结各自剩余的退避时间
-
假设在C占用无线信道发送帧的过程中,E也要发送帧,于是进行载波监听发现信道忙,需要退避
-
根据退避算法选择出一个随机的退避时间,并在每个时隙对信道进行一次检测
-
当检测到信道由忙状态转为空闲状态,且经过帧间间隔DIFS后,退避计时器开始倒计时
-
当B和D检测到信道由忙状态转为空闲状态,且经过帧间间隔DIFS后
-
退避计时器重新开始从上次冻结的位置处计时
-
D的退避计时器会首先到时,于是立即发送帧,此时信道由空闲状态转为忙状态
-
当B和E检测到信道忙后,就冻结各自剩余的退避时间
-
当D发送完帧后,信道将转为空闲状态,
-
当B和E检测到信道由忙状态转为空闲状态,且经过帧间间隔DIFS后,退避计时器重新开始从上次冻结的位置处计时
-
E的退避计时器会首先到时,E立即开始发送帧,此时信道由空闲状态转为忙状态
-
当B检测到信道忙后,就冻结自己剩余的退避时间
-
当E发送完帧后,信道将转为空闲状态,
-
当B检测到信道由忙状态转为空闲状态,且经过帧间间隔DIFS后,退避计时器重新开始从上次冻结的位置处计时
-
当B的退避计时器到时后,立即发送帧
-
若B发送完这一帧后还有帧要发送,则在检测到信道空闲,且经过帧间间隔DIFS后,还必须再退避一段随机时间后才能发送
四:CSMA/CA协议的信道预约和虚拟载波监听
(1)信道预约
信道预约:为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。如下图
- 源站在发送数据帧之前先发送一个短的控制帧, 称为请求发送RTS(Request To Send),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间
- 若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发CTS(Clear To Send),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)
- 源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧
- 若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK
优点:
- 除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会受到其他站的干扰
- ,源站就收不到CTS帧,需执行退避算法重传RTS帧
- 由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延(因为是局域网) ,碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的
802.11标准规定了3种情况供用户选择
- 使用RTS帧和CTS帧
- 不使用RTS帧和CTS帧
- 只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧
(2)虚拟载波监听
虚拟载波监听:除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制。由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题
如下图,A和C互为隐蔽站。A在给B发送数据帧之前,可以使用RTS来预约信道,尽管C收不到该RTS帧,但是C可以收到B发送给A的CTS帧,这样C就知道了信道将被占用多长时间,在这段时间内C不会争用信道
以上是关于数据链路层-第六节媒体接入控制3:载波监听多址接入-碰撞避免(CSMA-CA)协议的主要内容,如果未能解决你的问题,请参考以下文章