Bootstrap

IEEE 802.11 RTS/CTS 协议

        IEEE 802.11 RTS/CTS即RTS/CTS协议(Request To Send/Clear To Send)即请求发送/清除发送协议是被802.11无线网络协议采用的一种用来减少由隐藏节点问题所造成的冲突的机制

         相当于一种握手协议,主要用来解决"隐藏终端"问题。"隐藏终端"(Hidden Stations)是指,基站A向基站B发送信息,基站C未侦测到A也向B发送,故A和C同时将信号发送至B,引起信号冲突,最终导致发送至B的信号都丢失了。"隐藏终端"多发生在大型单元中(一般在室外环境),这将带来效率损失,并且需要错误恢复机制。当需要传送大容量文件时,尤其需要杜绝"隐藏终端"现象的发生。IEEE802.11提供了如下解决方案。在参数配置中,若使用RTS/CTS协议,同时设置传送上限字节数----一旦待传送的数据大于此上限值时,即启动RTS/CTS握手协议:首先,A向B发送RTS信号,表明A要向B发送若干数据,B收到RTS后,向所有基站发出CTS信号,表明已准备就绪,A可以发送,而其余欲向B发送数据的基站则暂停发送;双方在成功交换RTS/CTS信号(即完成握手)后才开始真正的数据传递,保证了多个互不可见的发送站点同时向同一接收站点发送信号时,实际只能是收到接收站点回应CTS的那个站点能够进行发送,避免了冲突发生。即使有冲突发生,也只是在发送RTS时,这种情况下,由于收不到接收站点的CTS消息,大家再回头用DCF提供的竞争机制,分配一个随机退守定时值,等待下一次介质空闲DIFS后竞争发送RTS,直到成功为止。

RTS 报文:

CTS报文:

 

 

RTS/CTS机制的基本思想是:通过短的控制包来预留出带宽。方法如下:

        ①发送方通过发送RTS请求请求发送。

        ②接收方用CTS回应发送请求

        ③CTS为发送方预留带宽的同时通告所有节点

        发送方A如果想给接受方B发送消息,那么首先要发送一个RTS控制帧。那么在发送方周围的主机,收到了这个RTS之后,就知道他周围有人要发送消息了,那么它会保持静默,不发送任何消息,直到接收到B给A发送消息确认,那么直到A给B发送消息这个过程完全结束了,这些周围的主机就可以发送了,周围主机这个沉默状态叫做NAV状态。

        接收方接收到A给他发送的RTS之后,首先它先回复一个CTS确认控制消息。B周围的机子接收到这个CTS之后,那么就知道它周围有人要接受消息,所以也设定为NAV静默状态,防止干扰到接收方B,直到接收到B回给A的ACK,确定数据发送完毕,于是它们也可以收发消息了。
示例:

 

        上面是发送方,下面是接受方。第一组节点是发送方周围的节点,它们从接收到RTS之后就开始静默,直到接收到ACK. 第二组节点是接受方周围的节点,它们收到CTS之后也开始静默,直到接收到ACK。DIFS和SIFS是帧间间隔,它们大小不同,都是无线局域网802.11所规定的,可以理解为先等一个DIFS或者SIFS再发送RTS或者CTS,至于为什么这样,需要具体去了解CSMA/CA协议。

       当其他STA收到CTS时,将延后数据包的发送。而具体延迟多久,由正在传输的MAC头中的持续时间决定(Duration ID)。

双方在成功交换RTS/CTS信号(即完成握手)后才开始真正的数据传递,保证了多个互不可见的发送站点同时向同一接收站点发送信号时,实际只能是收到接收站点回应CTS的那个站点能够进行发送,避免了冲突发生。即使有冲突发生,也只是在发送RTS时,这种情况下,由于收不到接收站点的CTS消息,大家再回头用DCF协议提供的竞争机制,分配一个随机退守定时值,等待下一次介质空闲DIFS(Distributed Inter-Frame Space)后竞争发送RTS,直到成功为止。

 总之,接收方发送的CTS和发送方的RTS能有效避免它们周围节点发送消息,从而避免隐藏节点造成的冲突,这也是RTS和CTS机制的作用。
 

;