TCP拥塞控制的响应时间

网络工程 tcp 潜伏 拥塞
2022-02-28 13:51:13

我想知道 TCP 拥塞控制的整体延迟以适应不同的网络条件。具体来说,我的问题是:

  1. 在可用带宽和/或往返时间 (RTT) 发生变化后,系统的反应速度有多快?通过反应,我的意思是修改发送速率以匹配新的网络条件?
  2. 系统需要多长时间才能测量网络状况的变化?据我了解,默认情况下,TCP 仅通过查看 ACK 中的序列号来测量 RTT。这是否意味着系统需要一个 RTT 才能对网络条件的任何变化做出反应?
  3. 是否有针对低延迟应用程序开发的特定 TCP 拥塞控制算法?我相信这对于新一代应用程序(例如远程操作、虚拟现实)将很重要,假设 TCP 可以用于此类应用程序。对最近的拥塞控制算法的快速搜索将我从 Google带到了BBR 。然而,BBR 的主要目的似乎是通过更接近最佳操作点(由 Kleinrock 定义)来最大化 TCP 吞吐量。我在他们的论文中没有看到任何关于延迟的考虑。

对不起,如果有些问题没有多大意义。网络新手到这里,刚刚开始了解TCP拥塞控制的细节。我将不胜感激任何可以帮助我更好地理解该主题的帮助或指导。谢谢!

1个回答

TCP 拥塞控制过于复杂,无法在此处详细介绍。首先,请查看https://en.wikipedia.org/wiki/TCP_congestion_control对通道参数的反应可能与 RTT 一样快,但可能会更慢,这取决于几个因素。

通常,您必须根据您的要求选择传输协议。TCP 提供了良好的拥塞控制、流量控制和保证按顺序交付。您必须权衡这些好处与您的其他要求。

TCP 机制排除了实时、最低延迟的传输——如果这是您的要求,您需要选择另一个传输协议,例如 RTP 或 RTSP。在极端情况下,您可以使用即发即弃的 UDP 传输并在此之上实现您的要求,在实际应用程序层下方的子层中。