【问题标题】:What is the difference between latency, bandwidth and throughput?延迟、带宽和吞吐量之间有什么区别?
【发布时间】:2023-03-24 23:58:01
【问题描述】:

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

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

【问题讨论】:

    标签: performance bandwidth latency throughput


    【解决方案1】:

    水比喻:

    • 延迟是通过管道所需的时间。
    • 带宽是管子的宽度。
    • 水的流速是吞吐量

    车辆类比:

    • 车辆从源头到目的地的行驶时间是延迟。
    • 道路类型是带宽。
    • 行驶的车辆数量是吞吐量。

    【讨论】:

    • 延迟是通过管道所需的时间,而不是长度:dslreports.com/faq/694。然而,它是作为管子长度的函数来测量的。
    • 如果水流过管子的速度更快,那么水流会自动增加,对吧?所以如果一个(延迟)增加,那么另一个(吞吐量)肯定也会增加?
    • @firstpostcommenter 如果水流速度很快,那么它会花费更少的时间来移动,从而减少延迟并增加吞吐量
    • @firstpostcommenter 不一定,例如考虑将管道减半,现在这会减少水从 A 点到达 B 点的时间,但它不会让您的水桶(在 B 点)更快地装满。
    • 水流的速率就是吞吐量。
    【解决方案2】:

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

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

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

    在谈到吞吐量时,我听到的最多的是与应用程序相关的内容,即 1Gbit 吞吐量示例,我假设在堆栈中的某个层进行了压缩,我们在那里测量了吞吐量。实际网络的吞吐量没有变化,但应用程序的吞吐量却发生了变化。有时吞吐量是在谈论actual throughput,即100Mbit 连接是理论带宽,也是理论吞吐量(以bps 为单位),但极不可能是您实际得到的。

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

    请注意,特别是带宽还有其他常见含义,我假设网络是因为这是 stackoverflow,但如果是数学或业余无线电论坛,我可能完全在谈论其他东西。

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

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

    这是值得一读的吞吐量。

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

    【讨论】:

      【解决方案3】:

      这是我能理解的语言的一点点

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

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

      让我们做一些数学运算:

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

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

      【讨论】:

        【解决方案4】:

        我想补充已经写好的答案,延迟吞吐量的另一个区别,与流水线的概念有关。为此,我将举一个日常生活中的例子,关于衣服的准备:为了准备好它们,我们必须(i)洗涤它们,(ii)干燥它们(iii)熨烫它们。这些任务中的每一个都需要一定的时间,例如 A、B 和 C。每一批衣服都需要一共A+B+C的时间才能做好。这是整个过程的延迟。但是,由于 i、ii 和 iii 是独立的子流程,您可以开始洗涤第三批衣服,而第二批衣服正在烘干,第一批正在熨烫,等等(管道)。然后,第一批之后的每批衣服,将在 max(A,B,C) 时间后准备好。吞吐量将以每次衣服的批次来衡量,等于 1/[max(A,B,C)]。

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

        【讨论】:

          【解决方案5】:

          延迟:事件经过的时间。

          例如。从 A 点走到 B 点需要一分钟,延迟是一分钟。

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

          例如。带宽是吞吐量的衡量标准。

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

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

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

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

          【讨论】:

            猜你喜欢
            • 2014-08-06
            • 2022-12-25
            • 2015-04-16
            • 2018-12-14
            • 2021-04-16
            • 1970-01-01
            • 2012-06-09
            • 1970-01-01
            • 2019-08-27
            相关资源
            最近更新 更多