延迟,带宽和吞吐量之间有什么区别?

时间:2016-04-30 01:29:12

标签: performance bandwidth latency throughput

我正在努力在延迟带宽吞吐量之间划清界限。

有人可以用简单的术语和简单的例子来解释我吗?

5 个答案:

答案 0 :(得分:111)

类比:

enter image description here

  • 延迟是穿过电子管所需的时间。
  • 带宽是指管的宽度。
  • 水流量将是吞吐量

车辆类比:

  • 从源到目的地的集装箱旅行时间是延迟。
  • 容器大小是带宽。
  • 容器负载是吞吐量。

答案 1 :(得分:7)

当使用TCP发送SYN数据包时,它等待SYN+ACK响应,发送和接收之间的时间是延迟。它是一个变量的函数,即时间。

如果我们在100Mbit连接上执行此操作,则这是我们的理论带宽,即我们可以发送的每秒位数。

如果我将1000Mbit文件压缩到100Mbit并通过100Mbit线路发送,那么我的有效吞吐量可以被认为是每秒1Gbit。该网络的理论吞吐量和理论带宽是相同的,但为什么我说吞吐量是每秒1Gbit。

当谈到吞吐量时,我听到它与应用程序的关系最多,即1Gbit吞吐量示例我给出了堆栈中某个层的假设压缩,我们在那里测量了吞吐量。实际网络的吞吐量没有变化,但应用程序吞吐量确实如此。有时吞吐量是在谈论actual throughput,即100Mbit连接是理论带宽,理论吞吐量也是bps,但不太可能是你实际得到的。

吞吐量也用于整个系统,即每天洗涤的狗数或每小时灌装的瓶数。你不经常以这种方式使用带宽。

请注意,带宽特别具有其他常见含义,我假设网络是因为这是堆栈溢出,但如果是数学或业余无线电论坛,我可能会完全谈论其他内容。

https://en.wikipedia.org/wiki/Bandwidth

https://en.wikipedia.org/wiki/Latency

这值得一读吞吐量。

https://en.wikipedia.org/wiki/Throughput

答案 2 :(得分:3)

以下是我能理解的语言

当您购买水管时,您会看到两个完全独立的参数:管道直径及其长度。直径决定了管道的吞吐量,长度决定了潜伏期,即水滴穿过管道所需的时间。需要注意的关键点是长度和直径是独立的,因此通信信道的延迟和吞吐量也是如此。

更正式地说,吞吐量定义为每秒进入或离开管道的水量,延迟是液滴从管道的一端移动到另一端所需的平均时间。

让我们做一些数学运算:

为简单起见,假设我们的管道是4英寸x 4英寸的正方形,其长度为12英寸。现在假设每个水滴是0.1英寸×0.1英寸×0.1英寸的立方体。因此,在管道的一个横截面中,我将能够装配1600个水滴。现在假设水滴以1英寸/秒的速度传播。

吞吐量:每组液滴将在0.1秒内移入管道。因此,10组将在1秒内移动,即每秒16000个液滴将进入管道。请注意,这与管道的长度无关。 延迟:在一英寸/秒时,无论管道直径如何,液滴A从管道的一端到达另一端需要12秒。因此,延迟将是12秒。

答案 3 :(得分:1)

我想补充已经写好的答案,即 Latency Throughput 的另一个区别,与流水线的概念有关。为此,我将以日常生活中的一个例子为例,介绍衣服的准备:要准备好衣服,我们必须(i)洗衣服,(ii)晾干(iii)熨烫它们。这些任务中的每一个都需要一定的时间,分别说A,B和C。每一批衣服准备之前总共需要A + B + C时间。这是整个过程的等待时间。但是,由于i,ii和iii是独立的子过程,您可以开始洗涤第三批衣服,而第二批衣服正在烘干,第一批衣服正在熨烫,依此类推(管道)。然后,第一批之后的每批衣服将在max(A,B,C)时间之后准备好。吞吐量将按每批次衣服的数量进行测量,等于1 / [max(A,B,C)]。

话虽如此,这个答案试图强调当我们仅知道系统的延迟时,我们不一定知道其吞吐量。这些确实是不同的指标,而不仅仅是表达相同信息的另一种方式。

答案 4 :(得分:1)

延迟:事件经过的时间。

例如从A点到B点需要一分钟,而等待时间则是一分钟。

吞吐量:每单位时间可以执行的事件数。

例如带宽是吞吐量的度量。

我们可以增加带宽以提高吞吐量,但不会提高延迟。

以RPC情况为例-分布式系统中消息通信的延迟有两个组件,第一个组件是硬件开销,第二个组件是软件开销。

硬件开销取决于网络与计算机的接口方式,这主要由网络控制器管理。

我写了一个博客:) https://medium.com/@nbosco/latency-vs-throughput-d7a4459b5cdb