客户端和服务器在通信时是否可以使用不同的拥塞算法?
Can a client and server use different congestion algorithms when communicating?
我正在写一个http3(在quic上运行)库,要求调用者选择不同的拥塞控制算法。我做了一些研究并阅读了这篇文章:
There are several variations and versions of the algorithm
implemented in protocol stacks of operating systems of computers that
connect to the Internet.
我突然发现,除了一些抽象理论之外,我以前从未想过拥塞控制算法是如何工作的(在tcp 上)。所以这里有一些我不是很清楚的问题。
- 客户端和服务器通信时是否可以使用不同的拥塞算法?例如客户端使用 Reno,服务器使用 CUBIC?
- 如果是,这是客户端和服务器使用不同算法的缺点吗?
- 如果不是,服务器和客户端如何协商拥塞控制算法?
- 是的,拥塞控制只影响从数据发送方到接收方的路径。 2 个对等体使用的拥塞控制器之间没有耦合。拥塞控制器唯一需要正常工作的是来自对等方的 ACK,这些发送独立于对等方使用的拥塞控制器。
- 没有。很常见
- 不存在任何谈判(甚至没有广告)。您不会知道对等方使用什么拥塞控制器。您可能只是能够根据其传输行为来猜测它。
我正在写一个http3(在quic上运行)库,要求调用者选择不同的拥塞控制算法。我做了一些研究并阅读了这篇文章:
There are several variations and versions of the algorithm implemented in protocol stacks of operating systems of computers that connect to the Internet.
我突然发现,除了一些抽象理论之外,我以前从未想过拥塞控制算法是如何工作的(在tcp 上)。所以这里有一些我不是很清楚的问题。
- 客户端和服务器通信时是否可以使用不同的拥塞算法?例如客户端使用 Reno,服务器使用 CUBIC?
- 如果是,这是客户端和服务器使用不同算法的缺点吗?
- 如果不是,服务器和客户端如何协商拥塞控制算法?
- 是的,拥塞控制只影响从数据发送方到接收方的路径。 2 个对等体使用的拥塞控制器之间没有耦合。拥塞控制器唯一需要正常工作的是来自对等方的 ACK,这些发送独立于对等方使用的拥塞控制器。
- 没有。很常见
- 不存在任何谈判(甚至没有广告)。您不会知道对等方使用什么拥塞控制器。您可能只是能够根据其传输行为来猜测它。