频道栏目
读书频道 > 网络 > 计算机网络:系统方法(原书第5版)
1.5.1 带宽和时延
2020-02-27 16:01:57     我来说两句
收藏   我要投稿
本书采用系统方法,将网络看作由相互关联的模块构成的交互式系统,通过丰富的因特网实例解析网络工作原理和应用设计方法。每章都以启发式问题开篇,章末辅以相关资源和习题,以完整的端到端系统为重点,不囿于传  立即去当当网订购
网络性能有两种基本度量方法:带宽(bandwidth)(也称为吞吐量(throughput))和时延(latency)(也称为延迟(delay))。网络的带宽是在一段特定的时间内网络所能传输的比特数。例如,一个网络带宽为10Mbps,就意味着每秒能传输1千万个比特。有时候,从传输每个比特所花时间长短的角度来分析带宽也是很有用的。例如,在一个10Mbps的网络上,传输每个比特用0.1μs。
 
虽然我们可以将网络的带宽作为一个整体来讨论,但有时需要更准确些,例如重点考虑一条物理链路的带宽或者一条进程到进程的逻辑信道的带宽。在物理层,带宽不断提高,无法预测它的上限。直观地说,如果将1s看作可测量的一段距离,同时把带宽看作在这段距离中可以容纳的比特数,那么就可将每个比特看作具有一定宽度的脉冲。例如,在一条1Mbps的链路上,每个比特1μs宽,而在一条2Mbps的链路上,每个比特0.5μs宽,如图1-16所示。发送和接收技术越复杂,每个比特就会变得越窄,这样,带宽就越大。对于进程到进程的逻辑信道,带宽也受其他因素的影响,包括信道实现软件必须处理并可能转换数据的每个比特的次数。
 
 
 
相关主题
 
带宽和吞吐量
 
带宽(bandwidth)和吞吐量(throughput)是网络中最容易混淆的两个词。虽然我们可以试图给每个词下一个精确的定义,但重要的是知道别人怎么使用这两个词,并且知道它们如何互换。首先,带宽的字面定义是频带宽度的度量。例如音频级电话线路,支持300~3300Hz范围内的频带,那么就说它的带宽为3300Hz-300Hz=3000Hz。如果你看到带宽一词在某个情况下以Hz为单位使用,那么它可能是指能容纳信号的范围。
 
当我们讨论通信链路的带宽时,一般是指链路上每秒所能传输的比特数,有时也称作数据率(data rate)。我们可以说一个以太网的带宽是10Mbps。但是,我们也可以做一个有用的区分,即区分链路上的可用带宽与链路中每秒实际传输的比特数。我们倾向于用吞吐量一词来表示一个系统的测量性能(measured performance)。这样,由于受到实现中各种低效率因素的影响,由一段带宽为10Mbps的链路连接的一对节点可能只达到2Mbps的吞吐量。这就意味着,一台主机上的应用程序能够以2Mbps的速度向另一台主机发送数据。
 
最后,我们经常谈论应用的带宽需求(requirement),它是应用得以执行而需要在网络上每秒传输的比特数。对某些应用来说,它可能是“所有我能获得的(带宽)”,对另一些应用来说,它可能是某个固定的数值(最好不超过可用链路带宽),而对其他应用来说,它可能是一个随时间变化的数值。本节还将提供有关这个主题的更多信息。
 
 
第二个度量性能的尺度是时延,它对应于将一条消息从网络的一端传到另一端所需花费的时间。(像解释带宽时一样,我们也可以将讨论重点放在单条链路的时延或端到端信道的时延上。)时延是严格用时间来测量的。例如,一个横贯北美大陆的网络可能有24ms的时延,即一条消息从北美的一端传到另一端将花费24ms。在很多情况下,更重要的是知道一条消息从网络的一端传到另一端并返回所花费的时间,而不只是单程的时延。我们称它为网络的往返时间(round?trip time, RTT)。
 
我们通常认为时延有三个组成部分。第一个是光速传播延迟,发生这种延迟的原因是没有什么(包括电线上的一个比特)能比光的传播速度更快。如果知道两点间的距离,就可以计算出光速的时延,然而必须注意光在不同介质中以不同的速度传播:它在真空中以3.0×108m/s的速度传播,而在电缆中的传播速度是2.3×108m/s,在光纤中的传播速度是2.0×108m/s。第二个是发送一个数据单元花费的时间,它是网络带宽和运载数据的分组的大小的函数。第三个是网络内部的排队延迟,因为分组交换机在将分组转发出去之前通常需要将它存储一段时间,如1.2.3节讨论的那样。因此,我们定义总时延为:
 
Latency=Propagation+Transmit+Queue
Propagation=Distance/SpeedOfLight
Transmit=Size/Bandwidth
 
其中,Distance是数据需要穿越的线路长度,SpeedOfLight是光在线路中的有效速度,Size是分组的大小,Bandwidth是传输分组的带宽。注意,假设消息只包括1比特且我们讨论单条链路(而不是整个网络)的情况,那么Transmit和Queue的定义就无关紧要了,时延只与传播延迟有关。
 
带宽和时延结合起来定义了一个给定链路或信道的性能特征,然而它们的相对重要性是依赖于应用的。对有些应用来说,时延比带宽重要。例如,客户发送1字节消息给服务器并接收返回的1字节消息是受时延限制的。假设在准备应答的过程中没有大量的计算,那么应用程序在一个横贯大陆的100ms RTT的信道上与在一个穿过房间的1ms RTT信道上的执行有很大不同。尽管信道是1Mbps还是100Mbps相对来说并不重要,但是前者意味着传输1字节的时间(Transmit)是8μs,而后者的传输时间是0.08μs。
 
对比之下,考虑一个数字化图书馆程序要获取一幅25MB的图像,带宽越宽,向用户返回图像的速度也就越快。这里,信道的带宽决定性能。为了说明这种情况,假设信道带宽为10Mbps,那么它将花20s((25×106×8bit)÷(10×106Mbps)=20s)完成图像传输,而图像是在1ms还是100ms的信道上传输相对来说并不重要,20.001s与20.1s的响应时间之间的差别是可以忽略的。
 
图1-17显示了在不同的情况下时延或带宽如何决定性能。在RTT为1 ~100ms的范围内,链路速度是1.5Mbps或10Mbps的网络中转移不同大小的对象(1B、2KB、1MB)所花的时间。
 
我们用对数比例来说明相对性能。对于1字节的对象(如一次击键),时延基本等于RTT,因此无法区别1.5Mbps和10Mbps的网络。对于2KB的对象(如一封电子邮件),链路速度对1ms RTT网络的影响较大,而对100ms RTT网络的影响可忽略。而对于1MB的对象(如一幅数字图像),RTT没有任何影响,即无论RTT是多少,都是链路速度决定性能。
 
注意,本书始终按惯例使用术语时延(latency)和延迟(delay),即用它们来描述完成某一功能的时间,如传输一条消息或转移一个对象所花的时间。当我们特指一个信号从链路的一端传播到另一端所用的时间时,我们使用术语传播延迟(propagation delay)。此外,我们要在讨论的上下文中分清是指单程时延还是往返时间。
 
另外,计算机正变得如此之快,以至于当我们将其连到网络上时,有时候按指令数/英里(instructions per mile)来考虑(哪怕是象征性的)也是有用的。考虑一个每秒执行10亿条指令的计算机向一条RTT为100ms的信道发出一条消息,情况将会怎样。(为了使计算更容易,假设消息穿越5 000英里的距离。)如果计算机在等待应答信息的100ms内保持空闲,那么它就少执行1亿条指令,或者说每英里少执行20 000条指令。网络上的这种浪费是很值得我们反思的。
 
 
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.5 性能
下一篇:1.5.2 延迟带宽积
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 第一门户--致力于做实用的IT技术学习网站