1

我正在编写一个应用程序,并且能够将其吞吐量(通过网络发送的每秒比特数)设置为我希望的任何速率。但是,我想将其设置得尽可能高,只要网络上的其他流量不会受到严重影响。

问题是,我没有一个好的衡量标准来衡量这种影响。我想到了以下几个,但都不是真正“完整”的:

  1. 增加数据包的平均延迟时间
  2. 丢包增加
  3. 抖动增加
  4. 增加完成 tcp 事务的平均时间(使用 http 下载文件)

有没有标准的度量?您对如何衡量应用程序对网络的影响还有其他想法吗?

顺便说一句 - 我对网络有完全的控制权,并且可以采取我想要的任何测量来计算该指标。

谢谢,

肉里

4

3 回答 3

0

交通工程是一个相当复杂的领域。服务质量可能是解决这个问题的一个很好的起点。

于 2009-05-18T17:38:36.427 回答
0

这是可能难以以编程方式回答的问题之一。在我见过的允许这种限制的应用程序中,它一直是一个配置选项。通常很难了解您的用户网络,您所做的任何假设都可能是错误的。

于 2009-05-18T17:45:14.307 回答
0

当您超出其带宽时,不同的网络会以不同的方式运行。他们中的大多数人都有一连串的坏处:

  1. 由于某些数据包必须排队或重新传输(例如,半双工以太网或无线上的冲突),抖动将开始急剧上升。平均延迟会略有上升。
  2. 随着过饱和的继续(或在更高的过饱和水平),平均延迟将达到顶峰,因为几乎所有数据包都在排队或重新传输。如果队列大小很小,这可能会受到限制。
  3. 随着队列溢出,丢包率会增加。您驱动的带宽越高,丢失的数据包就越多。根据硬件,抖动和延迟可能会或可能不会下降。

如果使用某种形式的 QoS,不同的数据包流可能会独立地看到这些影响。例如,您可能会在应用程序连接上抽取 3 倍带宽,并且看到 ping 时间的变化相对较小。因此,您必须使用应用程序的数据包进行测量。

(1) 和 (2) 可能不会出现在给定的网络上。(3) 总会发生,无论如何。不幸的是,即使您远未达到带宽限制,这三种情况也可能发生。

于 2009-05-18T18:57:12.260 回答