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.当数据帧长度超过某个数值时,才进行预约。
1221

被折叠的 条评论
为什么被折叠?



