需要测量 IEEE 802.11 中发生的重传次数。
您不指定 UDP 流量的方向。如果主要是从服务器到客户端,那么客户端将无法准确测量此统计数据。只有 AP 才有机会捕获此信息。
为什么?因为客户端将确认它理解/接收的第一个 802.11 帧,所以它不知道 AP 之前尝试发送帧的次数。它无法理解/接收那些先前的尝试。
如果是从客户端到服务器,您可以编写/使用可以为您提供这些统计信息的专用驱动程序,但这也可能取决于硬件。当然,只要环境条件发生变化,结果就可能会发生变化。
假设来自应用程序的 200 个数据包在 IEEE 802.11 层中重新传输了多少次?
如果不以某种方式实际测量这一点,就没有办法说,但是一些企业无线系统可以提供重传/重试统计信息(至少从 AP 到客户端)。
当发送一个 802.11 帧而没有收到 ACK 时,它会被重传一定次数。一旦达到重传阈值,则向下调整数据速率以重试。
现在,不同的供应商以略微不同的方式应用标准来尝试优化无线流量,从而使他们的产品超越竞争对手。这些优化通常只有公司内部人员知道。一些差异可能是(不要将此作为完整列表):
- 在尝试较低的数据速率之前重传多少次?
- 降低数据速率时如何选择下一个数据速率?
- 下一个最低的 MCS 值(802.11n/802.11ac)?
- 下一个最低的 SS 值(802.11ac)?
- 无论 MCS/SS 值如何,下一个最低数据速率?
- 它是否会在下降过程中跳过数据速率/MCS/SS 值?
- 以上的一些组合?
- 在完全丢弃帧之前允许进行多少次重传?
- 下一帧以哪个数据速率开始?
- 从客户端支持的最高数据速率开始(即一直积极尝试最佳数据速率)?
- 从略高于上次成功传输的值开始(即保守地增加数据速率以最少重传)?
- 维护每个客户端的统计数据并从钟形曲线的上部某处开始(即 75-90% 的成功传送帧低于该数据速率)?
- 其他一些算法或过程?
- 这些变化是否基于其他外部因素(客户数量、噪音水平等)?
这将我们带到了其他环境因素,这些因素将特定于您试图确定重传次数的答案。射频环境中的噪声有多大,它会波动吗?有多少其他设备试图在同一信道上进行通信?等等。
让任何人告诉你你将有多少次重传是不可能的。它需要被测量。
或者有什么方法可以阻止 IEEE802.11 重传功能?
从来没有见过,我怀疑你会。正如我在上面所阐述的,重传过程是如何以最佳数据速率传送帧的一部分。一些供应商允许对过程中不同点发生多少次重传的细节进行一些“调整”,但完全消除它们通常是一个非常糟糕的主意。
您可以做的最好的事情是将重传次数减少到最小阈值。例如,找到一个允许对诸如重传次数等设置进行一些“调整”的供应商。然后将客户端配置为仅支持一小部分数据速率或单个固定数据速率(这也必须是 WLAN 支持的唯一基本/基本/必需)。您必须选择较慢的数据速率,以在所有条件下提供可靠的帧传输。