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

66

通道吞吐量是衡量实际通过通道传输的数据量的一种方法。为什么它明显小于通道带宽呢?


2
这方面有一个动画解释。请参考 https://www.youtube.com/watch?v=VWxGtl5J7WM - firo
10个回答

76

带宽是指能够通过“通道”传输的最大数据量。

吞吐量是指实际成功通过“通道”传输的数据量。这可能会受到许多不同因素的限制,包括延迟和使用的协议。


13
因此,带宽是理论值,吞吐量是实际值? - GL2014
10
听起来带宽是你需要支付费用的,但吞吐量才是实际获得的。 - Lincoln Bergeson
2
延迟如何影响吞吐量? - Detached Laconian
区分这两个概念并不比区分带宽和速度容易。 - hunter_tech

72

尽管已经有几个答案解释了“吞吐量”和“带宽”之间的区别,但我认为仍然有些人可能会对实际的可视化有疑问,就像我之前一样 ;) 直到我在 Quora 上看到这个类比(完全归功于那个作者),它真的很有用。

请考虑

一条高速公路,可以同时承载200辆车

但是

在某个随机时间,有人注意到只有,例如,150辆车在通过...

比如由于中途遇到堵车...

即容量为200,但并不总是有200辆车在同时通过,实际流量只有最多200辆车中的150辆。

也就是说,带宽是每单位时间200,但实际的吞吐量只有150...

我想这可能会对某些人有所帮助...


21
链接的带宽是指在不考虑实际情况下可以发送的理论最大数据量。例如,您可以通过Cat-6e或光纤电缆将10^9比特每秒的数据泵送到千兆以太网链路上。不幸的是,这将是一个完全未格式化的比特流。
为了使其实际有用,需要在任何实际数据位之前加入起始帧序列,在结尾处加入帧检查序列进行错误检测,并在传输的帧之间加入空闲期。所有这些都占据所谓的“比特时间”,即在该线路上传输一个比特所需的时间量。这是所有必要的开销,但从链接的总带宽中扣除。
而这仅适用于将原始数据推向线路的最低级协议。一旦开始添加MAC地址、IP头和TCP或UDP头,则会增加更多开销。
请查看http://en.wikipedia.org/wiki/Ethernet_frame。其他传输介质也存在类似的问题。

延迟会影响带宽量还是吞吐量? - CMCDragonkai
吞吐量。带宽由链接本身的属性确定。延迟是数据从起始点发送到终点所需的时间、目的地的处理时间以及发送回响应所需的时间的函数。 - Chris Ryding
@ChrisRyding 感谢您解释协议如何影响吞吐量。您的回答值得更多的赞。延迟如何影响吞吐量? - Detached Laconian

14
作为类比,可以将水管视为通道。管径对应于带宽或容量,管内内容对应于吞吐量或使用量。在下面的图像中,我们可以看到三条水管(或通道),所有这些都未充分利用,因此,无需更大的水管即可增加使用量。

Bandwidth vs. throughput

6
这里有另一个例子可以帮助你想象取决于情况差异的情况。
假设你有一个1MB的文件(比如一张照片),你想要和3个朋友分享。 然而,他们每个人使用的是不同的云存储应用 - Google Drive,Microsoft OneDrive和Dropbox。因此,他们都创建了一个文件夹,并给你访问权限,以便你可以将文件上传到他们的文件夹中。
你在浏览器中打开这三个文件夹的URL(比如在3个不同的标签页中),并将文件拖放到每个标签页中以同时上传文件。你通过光纤电缆连接互联网,可以以每秒1 Gb的速度传输数据(即你的带宽 - 可以利用连接的最大容量)。
理论上(假设没有丢失数据,协议开销不大,连接到云存储服务至少提供相同的带宽等等),你可以在1 Gbps连接上传输一个1MB文件,大约需要时间:1MB / 1 Gbps = 1 x 10^3 x 8 / 1x10^9,约为8x10^-6秒或约10毫秒。现在,你有1个文件要上传到3个目的地,你的连接带宽足够大,因此你可以同时将同一个文件上传到3个目的地(我们还可以假设你有一台配备了多核CPU的现代笔记本电脑,因此可以通过3个连接向Google Drive,MS OneDrive和Dropbox并行传输数据)。因此,与等待30ms将相同的文件传输到3个不同的目的地相比,你只需等待10ms,因为你拥有非常好的带宽。
现在我们考虑使用了什么协议以及这带来的影响。当您使用浏览器上传文件时,所使用的协议是HTTP/S,该协议运行在TCP协议之上。TCP协议的一个重要属性是确保一批数据成功到达目的地后再发送下一批数据。这是通过TCP发送方等待接收确认(简称 ACK )第一批数据已被接收后才开始发送第二批数据来实现的。这意味着如果将1批数据在一个方向上传输需要0.5秒,然后等待0.5秒收到ACK,则需要等待1秒才能传输并成功确认已接收1批数据(假设没有数据丢失,因此无需重新传输相同的批次)。由于TCP协议需要的这个往返,似乎存在一个阻塞问题。该阻塞器是您在一个往返中遇到的延迟,其中包括传输1批数据及其成功确认。鉴于此,我们需要查看一批数据有多大。这可能会有所变化,但通常为64KB。因此,您到1个目标的实际流量(即吞吐量)受限于此延迟(即延迟)和批量大小,具体计算公式如下:
throughput = batch size / latency

在我们的例子中,吞吐量为64KB / s。由于我们可以将1MB大约分成15.6个64KB大小的批次,因此传输1MB文件需要约15.6秒。与我们早期基于带宽的计算相比,这是一个重大的减速。


3

1
在大多数情况下,“带宽”和“吞吐量”被过度复杂化了; 就像试图在一天内学习微积分一样。 在大多数情况下,当涉及到“带宽”和“吞吐量”时,没有必要这样做。
在大多数情况下,您需要知道的只有这个:
“MB”表示兆字节; 或者8位、8位、8位等正在沿着线路发送。 Mb表示兆比特。或者单个位和位和位等正在沿着线路发送。
例如:如果您的运营商说这是“6 Mb线路”; 这意味着这是最大带宽。更简洁地说,这意味着您只能获得每秒750千字节的吞吐量。为什么?因为该线路仅发送一系列“位”,其中使用8位/秒创建一个字节。因此,您必须将位/秒除以8才能到达字节/秒。因此:6Mb线路只能提供750千字节/秒的传输速率。
另一个例子:我刚从A T&T获得了光纤线路; 他们喜欢谈论“位”。所以他们宣传了惊人的“每秒100兆比特”。没什么大不了的。因为那只是每秒12.5兆字节。
请记住,键盘或屏幕上的每个“字符”等都需要8位;为了使另一端能够"区分"它是什么字符,等等。
所以即使我有一个被吹嘘为“100Mb”的“巨大”光纤线路;它实际上只有每秒12.5 MBytes(字符)(100除以8)。
更糟糕的是:大多数人混用“MB”和“Mb”这两个术语。更糟糕的是,甚至安装在我家中的光纤线路和路由器的技术人员也不知道这些术语的含义。所以他认为,他的同事们(根据他的说法)也是如此认为。即:100Mb的线路是100MB的线路。这非常可悲。
电话中的AT&T代表通常也不知道区别。甚至有些主管也不知道。更加悲哀。
总之:“带宽”使用“比特”,“吞吐量”使用“字节”。并且...一个字节占用8位。所以再次强调:100Mb的线路(带宽)只能产生12.5 MBytes / sec(吞吐量)。
无论价值如何。

1

想象一下: 一辆邮递车每次可以携带5000张纸,所以它的带宽是5000。这是否意味着它可以每次运送5000封信?理论上来说,如果每封信不需要一个信封告诉我们它来自哪里、去哪里,并具有付款证明(信封=协议头和脚注),那么是可以的。但它们确实需要,因此每封信(1张纸)需要一个信封(大约等于1张纸)才能到达目的地。因此,在最坏的情况下(所有信封只有一页信),卡车只会携带2500张吞吐量(我们要从源>目的地发送的数据,即信件),并且将拥有2500张开销(我们需要将信件从源>目的地发送,但收件人不会阅读,即信封)。吞吐量,2500封信+开销,2500个信封=带宽,5000张纸。更大的信件(4页)仍然只需要1个信封,因此这将使吞吐量与开销的比率更高(即巨型帧),并使其更有效率,因此如果所有信件都是4页信件,则吞吐量将变为4000,而开销将减少到1000,两者加起来等于卡车的5000带宽。

1
加上跟踪驱动程序的懒惰(硬件限制)和他愿意与路上每个人聊天的意愿(即软件限制)。 - Maxim Sagaydachny

0

因为存在协议开销,以及网络中还有其他用户。


0

传输介质的质量可以用三个值来描述:带宽、吞吐量和延迟。

  1. 如上所述,带宽是以每秒比特数(bps)测量的介质的理论传输容量。
  2. 吞吐量是实际传输介质上以每秒比特数(bps)测量的传输速率。
  3. 延迟是端到端数据(比特)传输所需的时间,通常以毫秒(ms)为单位计量。

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