如何计算TCP网络速度

如何计算TCP网络速度

因此从根本上来说这是一个简单的问题,但答案却不容易。

我如何计算下载和上传速度以便在 C# 中编写程序?

我不确定如何考虑延迟。

我希望你们中的一些天才可以帮助我解决这个问题......:)

提前致谢。

答案1

简单来说,有三种情况。

1.物理接口限制吞吐量。

如果网络接口有限制,那么这就是限制(duh :p)并且正如@Ramhound所说,延迟并不重要。

2. 窗口受限

如果任一端配置的 TCP 最大窗口受到限制,则

T <= min(rwnd,cwnd)/RTT

3. 限制数据包丢失

数据包丢失也会限制吞吐量(通过限制发送窗口)。我们从TCP 拥塞避免算法的宏观行为我们可以得到吞吐量的上限

T <= (MSS / RTT) * C/sqrt(p), 

其中 p 是数据包丢失率,C 是常数(请参阅文章了解解释)。这并不准确,有许多重要的假设,不同的 TCP 类型也会影响这一点 - 但我们发现数据包丢失会影响吞吐量。

我不太明白这如何帮助你用 C# 编写程序,但希望它能给你带来一些帮助:)

相关内容