我正在开发一个专门的屏幕共享解决方案。要求它:
- 通过 Wi-Fi LAN 网络工作。
- 提供最小的延迟和抖动。
在编程方面我做了我所知道的一切,但我发现在不同的无线网络和设置(不同的基站、临时与托管等)中,抖动和延迟存在很大差异。
通过反复试验,我遇到了影响延迟和抖动的基站设置,例如省电模式、信标间隔和 DTIM 值,但如果我能以某种方式制定出最佳基站配置选项以实现最小延迟和抖动,我会非常感兴趣。
我当然知道这样的优化很可能会降低带宽或导致其他不良后果,但我仍然有兴趣知道应该尝试按下哪些旋钮以及它们的作用。
答案1
按重要性估计顺序:
选择一个非常干净的频道并具有良好的信号强度(-40 到 -60dBm 之间)。
确保网络上没有其他流量与您的应用争夺通话时间。尤其是多播流量,它以较低的信号速率发送,占用通话时间。不要在您自己的应用中使用多播或广播。
确保你的应用有足够的带宽。将你的链接超额配置约 33%。
禁用 802.11 省电;让所有客户端处于持续唤醒模式 (CAM)。
禁用任何可能导致无线电扫描或偏离信道的 AP 或客户端设置或软件。这些包括漫游和信道敏捷性等旧功能,以及 Wi-Fi Direct 和 Apple AirDrop 等新功能。不要在后台运行任何类型的 Wi-Fi 网络扫描仪,如 NetStumbler 或 inSSIDer。禁用基于 Wi-Fi 的位置检测。注意列出 Wi-Fi 网络的 Widgets/Gadgets/Gizmos;它们经常导致扫描。
如果使用 2.4GHz,请禁用蓝牙。
在基站上禁用 NAT。
使用低延迟 WMM (QoS) 队列。语音 (VO) 或视频 (VI)。
禁用帧聚合:A-MPDU 和 A-MSDU。
优先选择 IPv4,而不是 IPv6。至今,仍有许多设备通过硬件辅助的“快速路径”处理 IPv4,但仍然通过软件处理 IPv6。
顺便说一句,调整信标间隔和 DTIM 间隔总体上弊大于利。大多数客户端期望信标间隔约为 100 TU(802.11 时间单位;1024 微秒;有时称为 kµsec(千微秒)或 Kiusec(Kibi 微秒)),DTIM 间隔介于 0-3 个信标之间。我见过一些编写不佳的 Wi-Fi 客户端,如果您过多更改其中任何一个(例如使其中一个超过一秒),就会出现问题。
答案2
这不是一个直接的答案,但我认为拥有良好的 wifi 信号(阅读:主机站附近的接入点,该区域内没有太多 wifi 网络,网络中没有太多 wifi 主机)会比任何调整带来更大的性能改进。
此外,据我所知,虽然您可以进行一些非常小的调整,但它们对接入点/主机卡对(结果可能与其他卡不同)和网络状态(重叠网络、网络中的客户端等)很敏感。
总而言之,您可能会花费大量时间仔细调整这些参数,从而获得 1-3% 的改进,而对用户体验的影响甚至更小 - 我认为这可能是花费时间的最佳方式,您可以在其他地方获得更好的结果(例如检查其他附近的网络并确保频道不重叠,或诸如此类的东西)。
希望这可以帮助。
答案3
以下是一些一般建议:
- 禁用不使用的功能(研究并测试那些你不理解的内容)
- 禁用不需要打开的端口
- 增加超时