CSMA/CA机制
Posted nicephil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSMA/CA机制相关的知识,希望对你有一定的参考价值。
CSMA/CA机制
简介
CSMA/CA机制带冲突检测的载波监听多路访问,冲突避免机制.
网络拓扑
若node1和node2同时给GW发送数据,那么在GW处会产生冲突,从而两者都无法正确接收,最终传输失败.
DIFS与SIFS: 帧间间隙. 分布式帧间间隙, 短帧间间隙. 发一帧之前都需要等待一个相应的帧间间隙.比如发送数据至少等待DIFS,发送ACK需要等待SIFS
Slot time:时隙,一个时间片段.节点竞争接入信道前需要经过相应的随机回退backoff过程,backoff过程由多个时隙组成
Contention window:竞争窗口用来让节点选择随机回退计数值backoff counter范围
Backoff:每个节点在竞争接入信道时,首先在竞争窗口中选择一个随机数为急诊的随机回退计数值,同时每个时隙,节点监听信道是否空闲,或空闲那么进行一次倒数,计数值减一,或信道忙,则不进行相应倒数,当随机回退计数值到0时,节点可以发送数据.
时序图
- 当node1与node2相继存在数据,需要在竞争信道进行发送时,其首先需要"等待"DIFS时间,或DIFS时间内,信道保持空闲状态,那么久可以进行backoff过程
- 若node1与node2进入backoff过程时,其首先需要从竞争窗口选择一个随机数,默认初始竞争窗口为31,即随机回退计数值的范围[0,31],在上图node1选择了8,而node2选择了2.
- 在backoff过程中,每经过一个slot time, 节点会监听一次信道,若信道空闲,则相应的回退计数器的值减1,经过3个slot time后,STA 1的随机倒数计数器从8减到了5,而STA 2从2减到了0.
- 当节点计数器倒数到0时,节点竞争获取信道,从而可以发送数据.node2获取系信道发送PACKET A到GW.在GW收到数据后,会采用CRC机制对数据进行校验,若校验通过,GW会在SIFS后反馈ACK确认帧
- 当node2发送完数据后,等待了SIFS时间后,GW会向node2发送ACK确认帧,当node2接收到ACK后,数据传输完成.
- 当这次传输完成后,node2需要再等待DIFS时间后,重新进入backoff过程.node2需要选择新的随机数计数器,如图,node1此时计数器继续递减,从而有公平机会发送数据.
BEB机制
截断二进制回退算法, 在CSMA/CA的机制中,还是存在发生冲突的可能,为了避免再次冲突,引入了BEB机制.
如果node1和node2不小心选择了同样的随机数计数器,同时递减到0,那么还是会有冲突.节点需要对竞争窗口(CW)采用BEB机制.
在竞争初期,CW大小是[0,31].如果节点数量增多情况下我们需要扩大竞争窗口,即发生一次冲突CW从[0,31]变为[0,63].一共允许回退6次,第七次不倍增窗口,再次尝试重启,如果再次失败就丢包.
次数 | CW大小 |
---|---|
0 | 15 |
1 | 31 |
2 | 63 |
3 | 127 |
4 | 255 |
5 | 511 |
6 | 1023 |
7 | 1023 |
CTS/RTS机制
以上是关于CSMA/CA机制的主要内容,如果未能解决你的问题,请参考以下文章
初探802.11协议——开篇(PCF/DCF与CSMA/CA机制)