TCP慢启动,拥塞避免&确定带宽

时间:2010-04-25 11:11:46

标签: language-agnostic tcp network-programming network-protocols

是否有某个公式可用于确定需要通过TCP连接传输的最小段/字节数以确定其带宽并考虑慢启动和拥塞避免?我知道pathrate tool,但是如果可能的话,我想要一些更简单的东西,我可以在一个应用程序中加入一个下降球场的数字。使用的一个例子是从网络服务器下载一些数据,以便确定自动下载一堆小文件的最佳线程数。这与我发布的上一个问题有关:TCP, HTTP and the Multi-Threading Sweet Spot

2 个答案:

答案 0 :(得分:1)

您可以启动scholar.google.com并搜索“TCP啁啾”。但是,这需要雇用计时器,如果您不编写内核tcp拥塞控制算法,则必须在用户空间重新实现TCP。而这本身可能不会给出好的结果(通用操作系统不是很擅长实时招聘计时器相关的东西,在用户空间运行)。

理论上,使用TCP啁啾,您只需要4-5个段(通常,您可以通过更长的一系列段获得更好的分辨率)来确定“最佳”带宽。

在任何情况下,由于您无法知道使用哪条路径(即前向卫星链接或电视广播),您可能需要大量数据(10+ MB,甚至1GB)才能获得任意路径上的体面测量。 (卫星可以有许多dozend MB / s带宽,但也有1000-3000 ms范围内的延迟;并且TCP需要几个往返时间来打开cwnd(我应该说在开始测量之前大约10个RTT) ...

答案 1 :(得分:0)

我认为没有必要发送固定数量的字节来确定带宽。此数字取决于网络类型和速度。

Bandwidth衡量一段时间内传输的某些资源。要获得真实数据,您需要对其进行测量。以下是some hints如何做到这一点