如何解决客户端和服务器在通信时可以使用不同的拥塞算法吗?
我正在编写一个 http3(在 quic 上运行)库,并且要求调用者选择不同的拥塞控制算法。我做了一些研究并阅读了这个:
该算法有多种变体和版本 在计算机操作系统的协议栈中实现 连接到互联网。
我突然注意到,除了一些抽象理论之外,我之前从未想过拥塞控制算法是如何工作的(在 tcp 上)。所以这里有一些我不太清楚的问题。
- 客户端和服务器在通信时可以使用不同的拥塞算法吗?例如客户端使用 Reno,服务器使用 CUBIC?
- 如果是,客户端和服务器使用不同的算法有什么缺点吗?
- 如果不是,服务器和客户端如何协商拥塞控制算法?
解决方法
- 是的,拥塞控制仅影响从数据发送方到接收方的路径。两个对等方使用的拥塞控制器之间没有耦合。拥塞控制器唯一需要正常工作的是来自对等方的 ACK,这些 ACK 的发送与对等方使用的拥塞控制器无关。
- 没有。很常见
- 不存在任何协商(甚至没有广告)。你不会知道对方使用什么拥塞控制器。您可能只能根据其传输行为来猜测它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。