码迷,mamicode.com
首页 > 其他好文 > 详细

CSMA/CA机制

时间:2019-05-02 18:25:56      阅读:1626      评论:0      收藏:0      [点我收藏+]

标签:ora   ash   tor   stripe   时序   nice   blank   计数器   and   

CSMA/CA机制

简介

CSMA/CA机制带冲突检测的载波监听多路访问,冲突避免机制.

网络拓扑

技术图片

若node1和node2同时给GW发送数据,那么在GW处会产生冲突,从而两者都无法正确接收,最终传输失败.

DIFS与SIFS: 帧间间隙. 分布式帧间间隙, 短帧间间隙. 发一帧之前都需要等待一个相应的帧间间隙.比如发送数据至少等待DIFS,发送ACK需要等待SIFS
Slot time:时隙,一个时间片段.节点竞争接入信道前需要经过相应的随机回退backoff过程,backoff过程由多个时隙组成
Contention window:竞争窗口用来让节点选择随机回退计数值backoff counter范围
Backoff:每个节点在竞争接入信道时,首先在竞争窗口中选择一个随机数为急诊的随机回退计数值,同时每个时隙,节点监听信道是否空闲,或空闲那么进行一次倒数,计数值减一,或信道忙,则不进行相应倒数,当随机回退计数值到0时,节点可以发送数据.

时序图

技术图片
  1. 当node1与node2相继存在数据,需要在竞争信道进行发送时,其首先需要"等待"DIFS时间,或DIFS时间内,信道保持空闲状态,那么久可以进行backoff过程
  2. 若node1与node2进入backoff过程时,其首先需要从竞争窗口选择一个随机数,默认初始竞争窗口为31,即随机回退计数值的范围[0,31],在上图node1选择了8,而node2选择了2.
  3. 在backoff过程中,每经过一个slot time, 节点会监听一次信道,若信道空闲,则相应的回退计数器的值减1,经过3个slot time后,STA 1的随机倒数计数器从8减到了5,而STA 2从2减到了0.
  4. 当节点计数器倒数到0时,节点竞争获取信道,从而可以发送数据.node2获取系信道发送PACKET A到GW.在GW收到数据后,会采用CRC机制对数据进行校验,若校验通过,GW会在SIFS后反馈ACK确认帧
  5. 当node2发送完数据后,等待了SIFS时间后,GW会向node2发送ACK确认帧,当node2接收到ACK后,数据传输完成.
  6. 当这次传输完成后,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机制


nicephil@gmail.com1

CSMA/CA机制

标签:ora   ash   tor   stripe   时序   nice   blank   计数器   and   

原文地址:https://www.cnblogs.com/nicephil/p/10802872.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!