0

我正在编写一个 http3(在 quic 上运行)库,并且需要由调用者选择不同的拥塞控制算法。我做了一些研究并阅读了这个:

在连接到 Internet 的计算机操作系统的协议栈中实现的算法有多种变体和版本。

我突然注意到,除了一些抽象理论之外,我之前从未想过拥塞控制算法是如何真正工作的(在 tcp 上)。所以这里有一些我不太清楚的问题。

  1. 客户端和服务器在通信时可以使用不同的拥塞算法吗?例如客户端使用 Reno,服务器使用 CUBIC?
  2. 如果是,这是客户端和服务器使用不同算法的任何缺点吗?
  3. 如果不是,服务器和客户端如何协商拥塞控制算法?
4

1 回答 1

1
  1. 是的,拥塞控制只影响从数据发送者到接收者的路径。2 个对等点使用的拥塞控制器之间没有耦合。拥塞控制器需要正常工作的唯一事情是来自对等方的 ACK,它们的发送独立于对等方使用的拥塞控制器。
  2. 不,这很常见
  3. 不存在任何谈判(甚至没有广告)。您不会知道对等方使用什么拥塞控制器。您可能只能根据其传输行为来猜测它。
于 2021-07-02T06:01:37.737 回答