我正在努力在延迟,带宽和吞吐量之间划清界限。
有人可以用简单的术语和简单的例子来解释我吗?
答案 0 :(得分:111)
答案 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
这值得一读吞吐量。
答案 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