RTS/CTS机制以及RTS threshold

RTS/CTS机制在无线网络中用于解决隐藏节点造成的碰撞问题,通过发送RTS和CTS帧确保数据传输的顺利进行。RTS阈值用于控制何时启动RTS/CTS过程,通常在高用量环境下启用以减少冲突。较低的RTS阈值会增加RTS/CTS帧的使用,而较高的阈值则允许直接传输数据帧。用户可以通过调整RTS阈值来优化网络性能,尤其是在不同网络规模和流量条件下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 为什么要有RTS/CTS

2. RTS threshold

1. 为什么要有RTS/CTS

在以太网络中,工作站是通过接收传输信号来行使CSMA/CD载波监听的功能。空中的介质线路中包含了信息,而且会传输到各网络节点。无线网络的界线比较模糊,有时候并不是每个节点都可以跟其他节点直接通信,如下图

节点1和节点3互为隐藏节点,节点2可以跟节点1和节点3通信。如果使用简单的transmit-and-pray协议,节点1与节点3有可能在同一时间传送数据,这会造成节点2无法辨识任何信息。此外,节点1与节点3将无从得知错误发生,因为只有节点2才知道有冲突发生。

在无线网络中,由隐藏节点所导致的碰撞问题相当难以监听,因为无线收发器通常是半双工工作模式,即无法同时收发数据。为了防止碰撞发生,802.11允许工作站使用请求发送(RTS)和允许发送(CTS)帧来清空传送区域。由于RTS与CTS帧会延长数据交易过程,因为RTS帧、CTS帧、数据帧以及最后的应答帧均被视为相同基本连接的一部分。

如上图所示,Source有个数据帧待传输,因此送出一个RTS帧启动整个过程。RTS帧本身带有两个目的:预约无线链路的使用权,并要求接收到这一消息的其他工作站停止发言。一旦收到RTS帧,接收端会以CTS帧应答。和RTS帧一样,CTS帧也会令附近的工作站保持沉默。等到RTS/CTS完成交换过程,Source即可传送上面要传送的帧,无须担心来自其他隐藏节点的干扰。 

2. RTS threshold

整个RTS/CTS 传输过程会用到好几个帧,实际开始传输数据之前的延迟也会消耗相当的频宽。因此,它通常只用在高用量的环境,以及传输竞争比较显著的场合。对低用量的环境而言,通常无此必要。

随着802.11 逐渐成熟,隐藏节点已经不成问题。在小型、不太活跃、只有几部客户端共享一个接入点的网络里,很少会有同时进行传输的情况,何况还有不少闲置频宽可供重传之用。在比较大型的网络环境里,由于覆盖范围内有相当密集的接入点,客户端就有可能坐落在好几台接入点的共同覆盖范围内。如果802.11 网卡的驱动程序支持,使用者可以通过调整RTS 门限值(RTS threshold)来控制RTS/CTS 程序。只要大于此门限值,就会进行RTS/CTS 交换程序。小于此门限值则会直接传送数据帧。

早期的802.11帧最大长度为2346,RTS threshold的范围是0-2347 bytes。

当设为0表示只要发送数据包,AP就要先发送RTS。

当设为其他值 :比如设为400, 只要一个数据包大小为410的数据包要发送时,因为410超过了400,路由就会发送RTS信号通知对方,以防信号冲突。

当设为2347,表示所有数据包直接发送,无需先发RTS。

随着HT、VHT、HE等更高吞吐量的无线模式出现,802.11帧的最大长度早已不再是2346, 所以RTS threshold也不应限制在2347。如果是一个HT的设备,它的RTS threshold最大值应该设为65536(如果是VHT,HE的设备,它的maximum A-MPDU size更大,但是802.11无线模式都是向下兼容的,RTS threshold最好也为0-65536)。

以发送1500 bytes的以太报文为例,如果AP/STA支持802.11n/ac/ax模式,RTS threshold设置为2347. 那么说明只要发送聚合报文(A-MSDU, A-MPDU),发包之前都会先发送RTS。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值