当吞吐量不是优先考虑因素时,如何优化 TCP 堆栈以实现低延迟?

当吞吐量不是优先考虑因素时,如何优化 TCP 堆栈以实现低延迟?

我有一个无线链路,数据包丢失率高达 10%。它必须承载一个 rtp 流,没有其他东西。流的数据速率小于 100kb/s,因此 wlan (802.11b) 提供的最低数据速率 (1 mbit/s) 已经足够了。为了解决数据包丢失问题,我想尝试利用 tcp 提供的 arq 算法。设置如下所示:因此,一台机器(作为 rtp 流的源)将运行 tcp 服务器(tcp 会话的第一个端点)和软 ap(在 linux 上运行的 hostapd)。与第一台机器相同的第二台机器将是 tcp 会话的端点和 linux 上的 wlan 客户端(运行 wpa_supplicant)。因此,tcp 会话不会跨越任何路由器或交换机,只有一条无线链路。由于中间没有路由器/交换机,拥塞控制不会有太大作用,但希望也不会造成任何影响。由于两台机器完全相同,并且具有足够强大的流量控制,因此也不成问题。尤其是当 rtp 流的数据速率相当低(< 100kb/s)时。

所以我的问题是:我应该调整哪些参数/变量(/proc/sys/net/ipv4/tcp*)以实现尽可能低的延迟(例如确认每个数据包并立即发送数据,即使是小数据包,也不等待收集足够的数据……)我不在乎吞吐量是否受到影响。我还遗漏了什么?

相关内容