延迟、带宽和吞吐量有什么区别?

46

我很难区分延迟带宽吞吐量之间的明确界限。

有人能用简单易懂的例子来解释一下吗?

6个回答

158

类比水流:

enter image description here

  • 延迟(Latency) 是水流通过管道所需的时间。
  • 带宽(Bandwidth) 是管道的宽度。
  • 水流速度即为吞吐量(Throughput)

类比车辆:

  • 从起点到终点所需的行驶时间即为延迟。
  • 道路类型即为带宽。
  • 行驶车辆数量即为吞吐量。

12
延迟是指通过管道所需的时间,而不是管道的长度:http://www.dslreports.com/faq/694。然而,它是作为管道长度的函数进行测量的。 - Mario
如果水在管道中流动得更快,那么水流量自然会增加,对吧?所以,如果一个(延迟)增加了,那么另一个(吞吐量)肯定也会增加吧? - firstpostcommenter
2
如果水流速度快,旅行时间就会缩短,延迟就会减少,吞吐量就会增加。 - Aman Jain
1
@firstpostcommenter 不一定,例如考虑你将管子切成两半,这会减少水从A点到B点的时间,但并不会让你在B点的桶更快地填满。 - sactiw
水流的速率是吞吐量。 - user207421
延迟和响应时间有什么区别? - gstackoverflow

7
当使用TCP发送SYN数据包时,它会等待SYN+ACK响应,发送和接收之间的时间是延迟。它是一个变量的函数,即时间。
如果我们在100Mbit连接上进行此操作,则这是我们拥有的理论带宽,即每秒可以发送多少位。
如果我将一个1000Mbit文件压缩到100Mbit并通过100Mbit线路发送,则我的有效吞吐量可以被认为是每秒1Gbit。在这个网络上,理论吞吐量和理论带宽是相同的,但为什么我说吞吐量是每秒1Gbit?
当谈论吞吐量时,我最常听到的是与应用程序相关的,即我给出的1Gbit吞吐量示例假定在堆栈的某个层次上进行了压缩,并且我们在那里测量了吞吐量。实际网络的吞吐量没有改变,但应用程序的吞吐量发生了变化。有时,吞吐量是指实际吞吐量,即100Mbit连接是理论带宽,也是以bps计算的理论吞吐量,但极不可能是您实际获得的结果。
吞吐量也用于整个系统的术语,例如每天洗几只狗或每小时装多少瓶子。您不经常以这种方式使用带宽。
请注意,带宽特别是具有其他常见含义,我假定这是stackoverflow的网络,但如果是数学或业余无线电论坛,我可能正在谈论完全不同的东西。
这值得阅读吞吐量相关内容。

4

以下是我能理解的内容:

当你去购买一根水管时,有两个完全独立的参数需要考虑:管道的直径和长度。直径决定了管道的吞吐量,而长度则决定了延迟时间,即水滴穿过管道所需的时间。需要注意的关键点是长度和直径是独立的,因此通信信道的延迟和吞吐量也是独立的。

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

让我们做些数学计算:

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

吞吐量:每组水滴将在0.1秒内移入管道。因此,每秒将移动10组,即每秒将有16000个水滴进入管道。请注意,这与管道的长度无关。

延迟:以1英寸/秒的速度,不考虑管道直径,需要12秒钟才能使水滴A从一端到达另一端。因此延迟时间为12秒。


1

延迟:事件经过的时间。

例如,从A点到B点步行需要一分钟,延迟为一分钟。

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

例如,带宽是吞吐量的一种度量。

我们可以增加带宽以改善吞吐量,但这不会改善延迟。

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

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

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


1
我希望补充已经写好的答案,关于“延迟”和“吞吐量”的另一个区别,与“流水线”概念相关。为此,我将使用日常生活中有关衣服准备的例子:要使它们准备好,我们必须(i)洗它们,(ii)晾干它们(iii)熨烫它们。每个任务都需要一定的时间,假设分别为A、B和C。每批衣服需要总共A+B+C的时间才能准备好。这是整个过程的延迟时间。但是,由于i、ii和iii是单独的子进程,您可以在第二批衣服正在晾干时开始洗第三批衣服,第一批衣服正在被熨烫等(“流水线”)。然后,第一批之后的每批衣服将在max(A,B,C)时间后准备好。吞吐量将以每单位时间的衣服批次数来衡量,等于1 / [max(A,B,C)]。
话虽如此,这个答案试图强调“当我们只知道系统的延迟时间时,我们并不一定知道其吞吐量”。这些确实是不同的指标,而不仅仅是表达相同信息的另一种方式。

0

带宽是数据每秒的度量,等于这些数据的时间速度乘以空间复用通道的数量,因此在水管类比中,它是流速*直径。在数字信号处理中,数据的时间速度受到信道频带和信噪比的限制。

延迟是信道的物理长度(以其能够容纳的位数为单位)除以带宽。当发射机和接收机在空间上相距越远时,延迟会增加,但带宽不会改变,因为发射机层1仍然可以以相同的速度发送。当存在间歇节点或缓冲、处理或延迟数据的接收节点时,延迟也会增加,但带宽仍然相同-可能需要一段时间才能下载的第一个数据包,但当它们到达时,希望它们能以完整的带宽传输。当然,这假设发射机协议栈不需要等待来自接收器的控制数据包,例如TCP ACK或层2 ACK。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接