问题标签 [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.
c - 在套接字上设置 TCP ECN (C Linux)
有没有办法在 C linux 程序中的非特权 TCP 套接字上设置 TCP ECN?
任何可以通过 setsockopt() 设置的拥塞算法是否涉及 ECN?
谢谢!
sockets - 如何在 TCP 协议中找到“拥塞窗口大小”?
我知道 TCP 协议有一个拥塞窗口大小来控制网络拥塞。
但是,在TCP头中,只能找到接收窗口大小,找不到拥塞窗口大小
有没有人知道如何在 TCP 标头中找到拥塞窗口大小?或者如果它在 TCP 标头中不存在,我在哪里可以找到这个值?
tcp - NS3 中的 Tcp 变体比较
我已经开始研究 NS3 来比较不同的 TCP 拥塞控制机制。我正在使用一个名为 tcp-variants-comparison 的可用 TCP 示例。它使用 NS3 中的可用方法,如 Reno、NewReno 等。该示例产生 4 个不同的输出。有谁知道这 4 个 pcap 文件到底包含什么?我已经使用 WireShark 工具打开了它们,但我无法弄清楚每个文件中信息的含义。
问候,
linux - 如何编译 TCP_cubic.c
我对 Linux 内核非常陌生。我需要修改 tcp 三次算法。重新编译 tcp_cubic.c 的最佳方法是什么?下载内核源文件,重新编译整个内核?
machine-learning - 如何用神经网络实现寻路和拥塞检测?
这是一个传送系统。盒子在 A 处进入系统并移向 C 处离开系统。B->D 也是如此。
路径 A->C 上的框比框 B->D 具有更高的优先级。盒子可以在每个广场停下来等待。如果 A2 和 B2 上都有一个框,则 A2 中的那个应该首先通过 X。
如果 C2、C1、A2 和 B2 上有盒子,那么来自 B2 的盒子应该经过 X,而 A2 上的盒子应该等待,直到 C1 为空。否则它将阻塞路径 B->D。
如何用神经网络解决这个问题? 因此,对于每一轮我都想输入每个块的当前状态,因此我想从下一个框应该移动的位置到哪里。
例如:系统状态:BOX 出现在 A1 结果:A1、A2
我不知道神经网络是否是解决这个问题的好工具,但我只是好奇。感谢您的输入:)
tcp - 延迟确认如何影响 TCP 的拥塞避免阶段?
根据我的研究,CWND = CWND + MSS * (MSS/CWND)
每次收到新的确认时都会设置拥塞避免阶段。这是假设我们没有遇到重复的ACKS
or timeouts
。但是如果有延迟确认会发生什么?
以下是我对延迟确认的研究的看法(不知道这是否正确):
基本上延迟的 ACK 是在一段时间内保留 ACK 段的目的地,期望两件事之一。由于接收器收到了新的数据包,在计时器结束之前将需要发送更多的 ACK。或者接收者需要将一些数据发送回发送者,在这种情况下,它可以在该数据包上捎带消息。这如何影响拥塞避免阶段?这对于依赖于新的 Acks 来增加 CWND 的 TCP 的拥塞避免阶段是不利的。这将导致 CWND 窗口大小更改的延迟,从而导致数据包发送的延迟。这意味着当 TCP 可以向接收方发送数据包时,实际上并不是因为确认被延迟了。
tcp - BitTorrent uTP uTorrent 传输协议 ACK 策略 (BEP29)
我正在编写一个 Boost 版本的BitTorrent uTorrent 传输协议(一种基于 UDP 数据报的缓冲区敏感可靠流协议)。我的目标是拥有一个 UDP 套接字管理器,它可以发送和接收数据报,并管理许多 uTP 连接的所有拥塞和错误控制。客户端线程可以通过说创建新的 uTP 连接,utp_manager.async_connect( endpoint )
或者通过说接受入站连接utp_manager.async_accept( handler )
uTP 规范有点单薄,我看不到在以下情况下如何处理 ACK 号:
发送方是否将 DATA-1 视为 ACK,因为它收到了 ACK=2?还是会重新发送DATA-1?在这种情况下,接收者是否会发送 ACK=1,即使它已经确认了 2?
我认为规则需要是:
- 接收方总是为它收到的最高连续SEQ_NR 发送 ACK(不是它收到的最后一个数据包的 SEQ_NR,如规范所述)
- 发送方可以假设所有数据包都已收到(加上任何选择性 ACK 数据包),即使没有收到一个 ACK(如我上面的示例)
- 如果接收器有任何间隙,它将继续 ACKing 在第一个丢失数据包之前收到的最后一个数据包的 SEQ_NR(加上它所做的任何选择性 ACK)。
- 当发送方接收到 3 个重复的 ACK 或 ACK_NR 之后的 3 个数据包已通过选择性 ACK 确认时,发送方在 ACK_NR + 1 处重新传输数据包。
我知道我可以尝试设置这些场景并针对现有实现运行它们,但我认为没有任何参考实现可以保证是正确的,而且设置起来很乏味。我希望研究或实施该协议的人能够说出我是否做对了,或者我错过了什么。
networking - TCP的吞吐量
我正在研究 TCP 和多路径 TCP。有几点让我很困惑。我想知道 TCP 是积极的还是非积极的协议?如果只有一个链路而没有任何其他流量,发送方可以使用链路的所有吞吐量吗?如果我有两个 TCP 流,每个 TCP 流可以获得一半的吞吐量?
有一个目标告诉多路径 TCP 没有比路径上的 TCP 更具侵略性。基于这个目标,在下图中,多路径 TCP(两个子流一起)可以获得最大 50% 的通道? 在此处输入图像描述
3G 或 WIFI 上的 TCP 吞吐量有什么限制吗?
tcp - 拥堵和交通
我在学习 TCP 时曾在某处看到,如果网络中有流量,那么拥塞也不一定存在?计算机网络中的拥塞和流量有什么区别?
tcp - TCP TAHOE 和 TCP RENO 有什么区别
TCP TAHOE 和 TCP RENO 有什么区别。
我想知道的是关于 3-dup-ack 和超时的行为?
cwind 发生了什么 SST 发生了什么?
谢谢!