Networking 带宽延迟产品背后的原理是什么

Networking 带宽延迟产品背后的原理是什么,networking,tcp,Networking,Tcp,我的理解是,带宽延迟积是指在两个端点之间的任何时间点“传输中”的最大数据量 我不明白的是,为什么带宽乘以RTT。带宽是底层介质的函数,如铜线、火光等,RTT是中间节点繁忙程度的函数,在中间节点上应用的任何调度、距离等。RTT可以改变,但出于实际目的,带宽可以视为固定的。那么,将一个常量(容量又称带宽)乘以波动值(RTT)如何表示传输中的数据总量呢 基于此,真的很慢会有很大的容量吗?RTT的“原因”很可能开始下降。看看这些单位: [带宽]=字节/秒 [往返时间]=秒 [数据量]=字节 [数据量

我的理解是,带宽延迟积是指在两个端点之间的任何时间点“传输中”的最大数据量

我不明白的是,为什么带宽乘以RTT。带宽是底层介质的函数,如铜线、火光等,RTT是中间节点繁忙程度的函数,在中间节点上应用的任何调度、距离等。RTT可以改变,但出于实际目的,带宽可以视为固定的。那么,将一个常量(容量又称带宽)乘以波动值(RTT)如何表示传输中的数据总量呢

基于此,真的很慢会有很大的容量吗?RTT的“原因”很可能开始下降。

看看这些单位:

  • [带宽]=字节/秒
  • [往返时间]=秒
  • [数据量]=字节
[数据量]=[带宽]*[往返时间]

就单位而言,这是正确的。语义上,

什么是带宽*往返时间?它是在发送方收到第一次确认之前离开发送方的数据量。也就是说,带宽*往返时间=理想条件下所需的窗口大小

如果往返时间是从最后一个数据包开始测量的,并且发送方的出站带宽是完全稳定和充分利用的,那么测量的窗口大小将精确计算传输中的数据包数(数据和ack加在一起)。如果只需要一个方向,请将数量除以二

由于往返时间是一个测量的量,因此它自然会波动(并变得平滑)。测量的带宽也可能波动,因此传输中的估计数据总量也会波动

请注意,传输中的数据量可能随数据传输速率而变化。如果瓶颈是线路延迟,那么RTT可以认为是常数,传输中的数据量将与发送到网络的速度成正比


当然,如果往返时间突然急剧增加,估计传输中的最大数据量也会增加,但这是正确的。如果没有伴随的数据包丢失,滑动窗口需要扩展。如果存在数据包丢失,您需要重新考虑带宽估计值(带宽延迟乘积也相应下降)。

要补充Jan Dvorak的答案,您可以将“大胖管”视为花园软管。我们对管道里有多少水感兴趣。因此,我们计算它的“带宽”,即它输送水的速度,对于一根软管来说,这取决于它的横截面积,然后乘以它的长度,它对应于RTT,即一滴水从一端到另一端需要多长时间。结果是软管的体积、管道的体积以及“管道中”的数据量。

首先,BDP是性能调整中使用的计算值,用于确定可能未确认/未确认的数据上限。这几乎总是不代表“在途”数据的数量,而是应用调整参数的目标。如果它总是表示“传输中”数据,那么就没有性能调优的空间

RTT实际上是波动的。这就是为什么在计算中使用预期的最坏情况RTT。通过调整到最坏的情况,当RTT最差时,吞吐量效率将达到最大。如果RTT得到改善,我们将更快地获得出色的ACK,管道将保持满,并保持最大吞吐量(效率)

“满管”用词不当。目标是保持Tx端满,因为Rx包含的Ack数据包通常比发送的数据包小


RTT还聚合了不对称的上行和下行带宽(ADSL、卫星调制解调器、电缆调制解调器等)。

我实际上考虑过这个类比。太糟糕了,当你停止喂食时,数据包不会停止在网络中流动。因此,在这个类比中,软管的“带宽”是它能容纳的总水量?@Imray否,带宽是横截面积。我已经说过了。所需的窗口大小不应该是
带宽*往返时间的一半吗?@skrtbhtngr然后你将花费RTT的一半发送你的带宽,然后你的第一个数据包到达并发送一个ACK,然后你将花费RTT的一半什么也不做,只是等待那个ACK。然后在RTT的后半段发送数据(第二个窗口)与传入的ACK同步,然后等待第二个窗口到达的ACK。。。