IEEE 802.11 的编制机制定义了四种情况,由帧控制(FC)中的两个标志去往DS和来自DS的值决定。每个标志都可能是0或者是1,,其结果是得到四种不同的情况。对于mac帧中的四个地址(从地址1到地址4)的解释则取决于这些标志的值。
去往ds |
来自ds |
0 | 0 |
0 | 1 |
1 | 0 |
1 | 1 |
隐藏站和暴露站的问题:
(1)隐藏站问题:
就是某个站点(a)处于某两个站点(b,c)覆盖范围之间,这时对于站点a来说,站点b和c是相互隐藏的。隐藏站的问题会降低网络容量,应为会发生碰撞。解决方案:使用握手帧(rts,cts),如我们以前讨论的一样,来自站b的报文先到达站a,但是没有到达站c。但是由于站b,c都处于站a的范围内,所以cts帧会先到达站c,而在这个cts报文中含有从站b到a的传送时间。于是站c就知道某个隐藏站正在使用信道,从而抑制传输,直到超过改时间长度。
CSMA/CA握手时的CTS帧可以用来防止因隐藏站而带来的碰撞
1、rts
RTS(Request To Send 请求发送):用于传输PC机发往串口Modem等设备的信号,该信号表示PC机是否允许Modem发数据。
RTS=Real-Time System 实时系统;
Remote Terminal System 远程终端系统
为了解决无线网络中的隐藏终端问题,IEEE802.11协议允许站点使用一个短请求发送帧(request ti send,rts)控制帧和一个允许发送帧(clear to send,cts)控制帧来预约对信道的访问,当发送方要发送该data帧时,他能首先向ap发送一个rts帧,指出发送data帧和确认帧所需要的总时间。当ap收到rts帧后,他广播一个cts帧作为回应。该cts帧有两个目的:给发送方明确的发送允许,指示其他站点在预约期内不要发送。
rts帧和cts帧的使用可以在两个重要方面提升性能:
(1) 隐藏终端问题被减轻了,因为长data帧只有在信道预约后才能被发送;
(2)因为rts帧和cts帧较短,涉及rts帧和cts帧的碰撞将仅持续很短的rts帧或cts帧持续期。一旦rts帧和cts帧被正确传输,后续的data帧和ack帧应当能无碰撞的发送。
2、cts
CTS:Clear to send,在计算机UART引脚中定义表示为允许发送, 很多文章翻译成清除发送,是不正确的。在计算机中常与RTS( request to send, 请求发送信号 )一起被提到,是UART通讯过程中flow control的两个引脚,是成对出现的。
(2)暴露站问题:
即站c暴露在了站a传送到站b的通道之中,也许我们希望发送过程中的rts请求发送帧,cts允许发送帧,对着问题能有所帮助。但是,他们也无能为力。站c听到了来自站a的rts但是听不到来自站b的cts。站c在听到来自站a的rts之后会等待一会儿,在此期间来自站b的cts到达了站a,然后站c向站d发送了一个rts标识自己想要与站d通信。站d和站a都有可能听到这个rts,但是站a在发送状态。站d会用一个cts来响应。问题就在这里,如果站a已经开始发送数据了,站c就会因为碰撞而听不到来自站d的cts,于是他就无法将数据发送给站d,站c始终处于暴露状态,直至站a发送数据结束为止。