【发布时间】:2014-08-06 10:34:42
【问题描述】:
通道的吞吐量是实际通过通道的数据量的度量。为什么它大大小于通道的带宽?
【问题讨论】:
-
对此有动画解释。请参考youtube.com/watch?v=VWxGtl5J7WM
标签: networking network-protocols
通道的吞吐量是实际通过通道的数据量的度量。为什么它大大小于通道的带宽?
【问题讨论】:
标签: networking network-protocols
带宽是可以通过“通道”传输的最大数据量。
吞吐量是实际成功通过“通道”的数据量。这可能会受到大量不同因素的限制,包括延迟以及您使用的协议。
【讨论】:
虽然这个问题的答案已经很少了但是我认为有些人仍然可能对实际可视化有疑问差异b/w 吞吐量和带宽 就像我曾经拥有的一样 ;) 直到我在 quora 上读到这个类比(完整的学分),这证明真的很有帮助
考虑
一条高速公路,其容量可以移动,例如,200 辆车一次
但是
在随机时间有人只注意到,例如,有 150 辆车穿过它。
说是因为中间有些堵车……
即
容量为 200,但并非一直都被充分利用,实际流量仅为 200 中的 150。
即 带宽为每单位时间200,但实际吞吐量仍为150 ...
我认为它可能会对某人有所帮助......
【讨论】:
链路的带宽是理论上可以通过该通道发送的最大数据量,而不考虑实际考虑。例如,您可以通过 Cat-6e 或光纤电缆在千兆以太网链路上以每秒 10^9 位的速度泵送。不幸的是,这将是一个完全未格式化的比特流。
为了使其真正有用,在任何实际数据位之前有一个帧序列的开始,在末尾有一个用于错误检测的帧检查序列以及传输帧之间的空闲期。所有这些都占用了所谓的“位时间”,即通过线路传输一位所需的时间。这都是必要的开销,但会从链路的总带宽中减去。
这仅适用于将原始数据填充到网络上的最低级别协议。一旦开始添加 MAC 地址、IP 标头和 TCP 或 UDP 标头,就会增加更多开销。
查看http://en.wikipedia.org/wiki/Ethernet_frame。其他传输媒体也存在类似问题。
【讨论】:
这是另一个示例,可帮助您想象不同情况下的差异。
想象
知道,理论上(假设没有数据丢失,没有大的协议开销,连接到云存储服务提供至少相同的带宽等),您可以通过1 Gbps 连接大致为:1MB / 1 Gbps = 1 x 10^3 x 8 / 1x10^9 大约需要 8x10^-6 秒,或者说大约 10 毫秒。现在,您有 1 个文件要上传到 3 个目的地,您的连接带宽足够大,因此您可以同时将同一个文件传输到 3 个目的地(我们也可以假设您有一台配备多核的现代笔记本电脑CPU,因此可以并行完成通过 3 个连接到 Google Drive、MS OneDrive 和 Dropbox 的数据传输)。因此,无需等待 30 毫秒即可将同一个文件传输到 3 个不同的目的地,您只需等待 10 毫秒,因为您的带宽非常好。
现在让我们考虑一下正在使用的协议以及它带来的影响。当您使用浏览器上传文件时,正在使用的协议是 HTTP/S,它在 TCP 协议之上运行。 TCP 协议的一个重要特性是,它确保在发送下一批数据之前,一批数据已成功到达任何目的地。这是由 TCP 发送方在开始发送第二批数据之前等待第一批数据已收到的确认(简称 ACK)完成的。这意味着如果一个方向传输1批数据需要0.5s,然后收到ACK需要0.5s,那么您需要等待1秒,直到传输1批数据并成功确认已收到(再次,假设没有数据丢失,因此不需要重新传输同一批次)。由于 TCP 协议需要这种往返行程,因此似乎存在一个阻止程序。阻塞是您在一次往返中遇到的延迟,其中包括传输 1 批数据及其成功确认。考虑到这一点,我们需要看看一批数据有多大。这可能会有所不同,但通常为 64KB。因此,您到 1 个目的地的实际流量(即 吞吐量)受此延迟(即 latency)和批处理大小的约束,公式如下:
throughput = batch size / latency
在我们的示例中,吞吐量为 64KB/s,由于我们可以将 1 MB 拆分为大约 15.6 批 64 KB 大小,因此传输 1 MB 文件大约需要 15.6 秒。与我们早期进行的仅基于带宽的计算相比,这是一个重大的放缓。
【讨论】:
相对于每单位工作的时间(速度/延迟)。
网络工程堆栈交换中的这个问题包含很好的答案: https://networkengineering.stackexchange.com/questions/10504/what-is-the-difference-between-data-rate-and-latency
【讨论】:
在大多数情况下,“带宽”和“吞吐量”都过于复杂了;就像试图在一天内学习微积分一样。在大多数情况下,当引用“带宽”和“吞吐量”时,不需要这样做。
在大多数情况下,您需要知道的是:
“MB”表示兆“BYTES”;或 8 位与 8 位与 8 位等;正在下线。 Mb 表示兆“位”。或单个位和位和位等;下线。
示例:如果您的运营商说这是“6 Mb 线路”;这意味着这是最大带宽。更简洁地说,这意味着您只能从每秒 750 KB 的“吞吐量”中受益。现在为什么?因为该行仅发送一系列“位”,它使用 8 位/秒来创建一个字节。因此;您必须将比特/秒除以 8 才能得到字节/秒。因此:一条 6Mb 的线路只能传输 75 万字节/秒。
另一个例子:我刚从 A T & T 买了一条光纤线;他们喜欢谈论“比特”。因此,他们宣传“每秒 100 兆比特”的惊人数字。大不了。因为那只有 12.5 兆字节/秒。
请记住,键盘上或屏幕上打印的每个“字符”等都需要 8 位;让另一端“区分”它是什么字符,等等。
因此,即使我有一条被吹捧为“100Mb”的“Gargantuan”光纤线;它实际上只有每秒 12.5 MBytes(字符)(100 除以 8)。
更糟糕的是:大多数情况下会互换术语“MB”和“Mb”。更糟糕的是;甚至在我家安装光纤线路和路由器的技术人员也不知道这些术语是什么意思。他是这么想的,他的同事(据他说)也这么认为。 IE:那条 100Mb 的线路是一条 100MB 的线路。这很可悲。
电话上的 T & T 代表也很少知道其中的区别。甚至他们的一些主管也不知道。更难过。
总结:“带宽”使用“位”。 “吞吐量”使用“字节”。并且...一个字节占用 8 位。再说一遍:100Mb 的线路(带宽)只能产生 12.5 MBytes/sec(吞吐量)。
不惜一切代价。
【讨论】:
这样想象: 一辆邮车每次可以运送5000张纸,所以它的带宽是5000。这是否意味着它每次可以运送5000封信?好吧,从理论上讲,如果每封信都不需要信封来告诉我们它来自哪里,那么也需要一个信封,并且拥有付款证明(信封 = 协议页眉和页脚)。但他们这样做了,所以每封信(1 张纸)都需要一个信封(= 大约 1 张纸)才能到达目的地。所以在最坏的情况下(所有信封只有一页信),卡车将只携带 2500 张吞吐量(我们想要从源>目的地发送的数据,THE LETTERS)并且将有 2500 张开销(页眉/页脚我们需要从来源>目的地获取信件,但收件人不会阅读信封)。吞吐量,2500 个字母 + 开销,2500 个信封 = 带宽,5000 张纸。更大的信件(4 页)仍然只需要 1 个信封,这样可以提高吞吐量与开销的比率(即巨型帧)并提高效率,所以如果所有信件都是 4 页信件,吞吐量将变为 4000,开销将减少到 1000,加起来等于卡车的 5000 带宽。
【讨论】:
因为存在协议开销,并且因为网络中还有其他用户。
【讨论】:
三个值表征传输介质的质量;带宽、吞吐量和延迟。
【讨论】: