CSMA/CA协议

802.11无线局域网使用的协议。

参考的是高军老师的《深入浅出计算机网络》。

一.为什么使用CSMA/CA协议

1.碰撞检测如何实现的,以及和有线信道的适配

        碰撞检测是适配器边发送数据边检测信道上面的电压变化情况,当检测到电压变化幅度超过一定的门限值时,表明发生了冲突,适配器要立即停止发送数据,等待一段时间后再发送。有线传输介质上容易实现。

2.无线信道的特征,以及与CA的不适配

        无线信道传输环境复杂,信号强度动态范围非常大,802.11无线网卡上接收到的信号强度远远小于发送信号的强度,信号强度甚至相差百万倍,因此如果要在802.11无线网卡上实现碰撞检测,硬件要求非常高。

3.无线信道的隐蔽站问题

        即使硬件实现了,无线信道上会出现隐蔽站的问题。因为无线电波的传输距离有限,假设站点A,C都可以和接入点AP进行信号传播,但A,C之间不能传播,则他们无法检测到对方发送的信号。当他们两个分别检测到信道空闲时,同时向AP发送数据,结果就会发生碰撞,并且这种碰撞无法检测出来。

        若A,C之间有障碍物,即使从距离上面看,彼此应当能够检测到对方发送的信号,但是由于障碍物,这两个站点还是成为了对方的隐蔽站。

        故无线局域网使用碰撞避免(CA),尽量减少碰撞发生概率。

二.两种不同的媒体接入方式

1.分布式协调功能(DCF)

        不采用集中控制,每个站点使用CSMA/CA协议通过争用信道来获得发送权。必须实现。

2.点协调功能(PCF)

        用接入点AP集中控制整个BSS(基本服务集)内的活动(自组网络没有这个选项)。PCF采用集中控制的计入算法,类似与探询的方法把发送数据权轮流交给各个站,从而避免碰撞。可选项。

三.确认机制

        使用CSMA/CA的同时,使用停止-等待的确认机制实现可靠传输。

        因为无线信道的通信质量远远不如有线信道,无线站点每通过无线局域网发送完一帧之后,等到收到对方的确认帧之后,才能继续发送下一帧。

四.帧间间隔(IFS)

        帧间间隔:802.11无线局域网规定,每个站点必须在持续检测到信道空闲一段指定的时间后才能发送帧,这段时间就叫帧间间隔。

        IFS长短取决于站点要发送的帧的类型。

        高优先级等待时间较短(优先获得发送权),低优先级等待时间较长。

      短帧间间隔(SIFS)

        长度28μs

        分隔开属于一次对话的各个帧。包含ACK\CTS\由过长的MAC帧分片后的数据帧,以及所有回答AP探询的帧和在PCF方式中发送出的任何帧。

        一个站点通过这段时间从发送方式切换到接收方式。

       DCF帧间间隔(DIFS)

        长度128μs。在DCF中发送数据帧和管理帧、

五.虚拟载波监听机制

        目的:让源站把他要占用信道的时间(包括目的站发回确认帧所需要的时间)及时通知给其他站,大大减少了碰撞概率。

        当某个站点检测到正在信道中传送的帧首部中的持续时间字段时,调整自己的网络分配向量NAV。NAV指出必须经过多长时间才能完成帧的这次传输、才能使信道转入空闲状态。

        信道忙状态:

        由于其物理层载波监听检测到信道忙。

        MAC层虚拟载波监听机制指出信道忙。

        监听到数据帧、RTS、CTS帧,得知信道将被占用的持续时间。

六.退避算法

1.与CSMA/CD不同的退避机制

        CSMA/CA:当某个发送帧的站检测到信道从忙->空闲,要等待一个DIFS,并且要退避一段随机事件后再次试图进入信道。避免多个站同时发送帧,所有要发送帧的站要执行退避算法。大大减少发生碰撞的概率,避免某个站长时间占用无线信道。

        CSMA/CD:当某个发送帧的站监听到信道变为空闲且持续96个比特时间后,立即发送帧。同时进行碰撞检测。如果检测到碰撞,才执行退避算法。某个站点在发送帧时,可能有很多个站同时监听信道等待发送,此时一旦信道空闲,这些站几乎同时发送,产生碰撞。

2.退避算法的执行

        1.过程

        当要发送帧的站检测到信道从忙态转为空闲时,执行退避算法。

        执行退避算法时,各站的退避计时器设置随机退避时间,退避时间减小到0,开始发送帧。

        退避时间还未减小到0而信道又转为忙态,冻结退避计时器,重新等待信道空闲,再经过DIFS后,继续启动退避计时器,从剩余时间开始倒计时。

        2.不使用退避算法

        需要发送第一个数据帧时,且检测到信道空闲时。即该数据帧不是成功发送完上一个数据帧之后,立即连续发送的数据帧。

       3. 使用退避算法

        发送帧之前检测到信道处于忙态;每次重传一个帧;每次成功发送后连续发送下一个帧时。

        4.退避时间选择

        与CSMA/CD协议类似,选择[0,1,2,3,........,2的2+k次方-1]个时隙,第六次退避之后不再增加。

七.CSMA/CA协议基本工作原理

        1.发送第一个数据帧

        若检测信道空闲->等待DIFS后发送。等待这个DIFS是考虑可能有其他高优先级的帧要发送。

        2.目的站正确收到该帧

        等待SIFS,目的站向源站发送确认帧ACK。若源站在重传计时器设置的超时时间内没有收到ACK,则重传之前发送的数据帧,直到收到ACK,或者多次重传失败后放弃。

        3.当前站发送时,其他站通过虚拟载波监听调整自己的NAV。若在这段时间内,其他站也有帧要发送,则必须推迟。在NAV结束后,等待DIFS间隔后还要退避一段时间,才可以发送。

八.信道预约

        目的:进一步降低碰撞概率。

        1.RTS

        源站发送数据帧之前发送的一个短的控制帧,称为请求发送(RTS)。包含源地址、目的地址和本次通信所需要的持续时间,包括目的站发回确认帧所需的时间。发送RTS之前,检测信道,如果空闲,等待DIFS。若RTS发生碰撞,源站就收不到CTS,源站会执行退避算法重传RTS。

        2.CTS

        目的站正确收到RTS,且媒体空闲,等待SIFS后发送一个相应控制帧,称为允许发送(CTS),包含从RTS中复制过来的本次通信所需的持续时间。

        3.源站收到CTS后,源站等待SIFS后,发送数据帧。除了源站和目的站,其他站收到CTF帧或数据帧后,推迟访问信道。

        4.若目的站正确收到源站发送的数据帧,则等待SIFS后,发送确认帧。

        5.问题:会带来额外开销

        6.何时使用:一般数据帧发送时,发送时延远远大于传播时延,碰撞概率很大,一旦碰撞,数据重发浪费时间很大,所以用RTS、CTS小代价预约是有必要的。

        7.当数据帧长度超过某个数值时,才进行预约。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值