我不同意“如果您没有隐藏节点问题,那么更改RTS阈值将不会提高性能。” 使用CTR / RTS总是会降低数据冲突的机会。由于每次数据冲突都会导致数据损坏,因此需要重新发送数据,因此较少的冲突意味着较少的数据重新发送和较少的数据重新发送可以极大地改善WiFi性能。当然,只有在您的网络中存在大量冲突时才可以。
为了解释细节:节点总是必须等待一段时间,然后在声明自己的信道之前感知信道以进行可能的传输。仅当它不感知任何传输时,它才可能启动自己的传输。没有RTS / CTS,此传输直接是数据传输。如果现在两个节点都具有相同的想法并几乎同时开始数据传输,那么这些传输将发生冲突。结果是,传输都无法到达任何地方,因为所有其他节点和AP的所有接收数据都将被破坏。
如果使用RTS / CTS,则传输从传感后节点发送RTS数据包开始。仅当该CTS答复回答了该RTS请求时,才开始数据传输。当然,如果两个节点要同时发送,它们的RTS请求也可能产生冲突,即根本没有收到RTS。不同之处在于,整个网络从RTS冲突中恢复的速度要比从数据冲突中恢复的速度快得多。因此,与数据冲突相比,RTS冲突对整个网络性能的危害较小。
缺点是RTS / CTS本身需要一些网络带宽,并且在没有其他数据传输或RTS / CTS传输的情况下引入了新的检测时间。更糟的是,当然必须始终使用网络支持的最低速度来执行RTS / CTS,否则仅支持该速度的节点将看不到它。因此,基本上,您可以说RTS / CTS总是会降低整个网络的理论吞吐量,但是,如果您的网络遭受很多冲突,可能是由于隐藏节点问题(也可能是来自其他网络中使用相同网络的节点导致的)通道)或WiFi拥挤(随着更多的节点增加随机冲突的机会),实际上可能会增加实际吞吐量。不是隐藏节点的数量,
我读了一份研究报告(一旦能够再次找到它,我将在这里更新并添加链接),这表明除非您的网络非常小(可能少于6个节点并且仅覆盖一个很小的区域)并且不与其他网络隔离在使用相同信道的网络中,使用RTS / CTS在实践中几乎总是具有相当积极的作用。那么为什么阈值呢?如果发送数据所需的时间与RTS / CTS握手所需的时间相同,则使用RTS / CTS几乎没有收益,因为网络是必须从很小的数据冲突中恢复还是从RTS冲突中恢复都不会差异很大。从RTS冲突中获得更好的恢复是因为RTS数据包非常小,而数据数据包通常不是。但是对于非常小的数据包,RTS / CTS只会增加开销,而没有实际收益。
现在,您还知道分段阈值如何提高网络性能。一方面,它限制了发送的数据包的大小,并且如上所述,冲突中的数据包越小,网络从中恢复的速度就越快。另一方面,如果发生冲突,则仅需要重新发送受其影响的片段,而不需要重新发送整个数据包。但是,每个发送的片段都有自己的开销,因此发送的片段越多,开销就会增加,开销实际上就是浪费带宽,而带宽本来可以用于数据传输。