问题标签 [congestion-control]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
80 浏览

linux - 为什么 Linux(较新版本)拥塞控制不遵循 RFC5681?

我只是在研究 TCP 拥塞控制。当我阅读关于慢启动的章节时,我转向RFC5681,我发现标准表明

  • 如果 SMSS > 2190 字节:IW = 2 * SMSS 字节且不得超过 2 个段
  • If (SMSS > 1095 bytes) and (SMSS <= 2190 bytes): IW = 3 * SMSS bytes and MUST NOT be more than 3 segments
  • 如果 SMSS <= 1095 字节:IW = 4 * SMSS 字节且不得超过 4 个段

但是我在我的 ubuntu 服务器上进行了测试,并在 google 上查找了资料,我发现init cwnd大约是 10。
我只是无法理解它。帮助。

0 投票
0 回答
50 浏览

tcp - 为什么在reno处于拥塞避免阶段时,在RTT之后cwnd没有立即增加?

我使用 tcpdump 通过从发件人下载文件来获取发件人的数据包。发件人使用 Tcp reno。但似乎 cwnd 在获得足够的确认后不会立即增加。见2张图片。 wireshark 中的详细信息,wireshark中的 tcptrace

cwnd 实际上正在增加,但不是立即增加。我不知道为什么。

0 投票
1 回答
36 浏览

networking - 当我们超出网络容量时会发生网络拥塞吗?

我遵循了一个教程,据说当我们的网络超载或最大网络容量时会发生网络拥塞。在这种情况下,他们将网络容量称为我们的网络带宽(最大吞吐量)。

因此,这在理论上意味着如果 VPS 提供商提供无限带宽,那么我们将永远不会出现网络拥塞。它是否正确?

0 投票
0 回答
25 浏览

networking - 谁能帮我找到在 NS_3 的 Tcp Congestion ops 算法中存储的 dupack 的位置?

我无法找到存储 ACK 编号的变量。因此,我无法在 tcp 拥塞控制算法中找到 FAST 重传和快速恢复阶段的工作。

0 投票
0 回答
27 浏览

tcp - OMNeT++ 哪些 TCP 风格支持 ECN?

我正在使用带有 INET 4.2.1 的 OMNeT++ 5.6.2,并且我正在开发 ECN。我已经看到 TCP Reno(在 TcpReno.cc 文件中)检查是否在 receivedDataAck 函数中设置了 ECE 变量,并采取相应措施。但是我在 TCP Tahoe (TcpTahoe.cc) 或 TCP NewReno (TcpNewReno.cc) 中没有发现任何类似的东西。

ECN 部分是在其他地方还是没有实现?OMNeT++ 中的 TCP Reno 是否仅支持 ECN?

谢谢你。

0 投票
0 回答
14 浏览

tcp - 我们是否根据情况切换拥塞控制协议?

由于我们有不同的拥塞控制协议,并且在不同的情况下表现出色,我们是否根据情况切换拥塞控制协议?比如一个擅长有线,另一个擅长无线,并根据连接类型在这两者之间切换,或者这究竟是如何工作的

0 投票
1 回答
60 浏览

tcp - 客户端和服务器在通信时可以使用不同的拥塞算法吗?

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

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

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

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

tcp - 这个 TCP 拥塞控制图中发生了什么?

这是传输的拥塞避免图,我知道当窗口大小大于 ssthresh 时会发生拥塞避免。当有超时丢失并且发生两件事时会发生慢启动,cwnd = 1,并且ssthresh是cwnd的一半。快速恢复类似,但 cwnd = ssthresh 和 ssthresh 为 1/2*cwnd。知道了这些,我不确定从 t=13 到最后的图表中发生了什么。

我唯一的猜测是快速恢复和慢启动同时发生。但我不确定这是否可能。 图形

0 投票
0 回答
19 浏览

linux - 如何在新的 TCP 内核模块中实现 get_info()

我正在尝试实现一个新的 TCP 拥塞控制内核模块,并希望在这里实现get_info()类似bbr_get_info()dctcp_get_info()。但是,看起来 dctcp 和 bbr info 的内容是在include/uapi/linux/inet_diag.hINET_DIAG_DCTCPINFO中定义的,并且函数中使用了类似的枚举get_info(),我的理解是如果不构建整个内核就无法更改它。所以我的问题是:有没有办法在这样的内核模块中实现get_info()(或其他类似的方法将一些信息导出到用户空间)而不构建整个内核?谢谢!

0 投票
1 回答
22 浏览

networking - 每个节点的 TCP 拥塞避免

连接到同一个路由器的每个节点是否可以实现不同的拥塞避免技术?此外,是否可以在连接到路由器的节点中完全禁用拥塞避免。谢谢。