网络应用优化——时延与带宽

  1. 用户感知的“速度”

用户体验能给网站带来更多的收益,所以人们也投入了更多精力去研究它。用户体验中,除了好的交互,精美的界面,用户感知的“速度”也是重要的一环。从网络角度来讲,时延(latency)和带宽(bindwidth)是决定“速度”的重要环节。
不一样的应用对时延和带宽需求的侧重点每每不一样:
网络游戏须要更低的时延。在一些对抗激烈的FPS、MOBA类的游戏中,单次数据传输的量并不大,所以带宽要求不高。可是若你顶着延迟和别人进行对抗,那么这局比赛可能已经输了一半;
流媒体须要更高的带宽。高速带宽能让你观看高清电影,而延时就显得不那么重要,带来问题无非是在加载前等待一段时间罢了;
视频聊天须要更低的时延。更低的时延意味着你能看到更流畅的实时画面,而不会掉帧。也许只有当你想要切换更高清晰度的时候才须要选择更高的带宽。
浏览网页须要更低的时延。由于没人愿意在一个空白页面上花上几秒钟。更高的带宽经常可有可无,除非你须要流量高分辨率的图片或者高清的视频。性能优化

  1. 时延与带宽

2.1.糖果包装问题服务器

某厂某天生产了N颗糖果,须要进行包装和验收。流水线一端的工人A负责包装,包装速度为N1颗/小时,另外一端B的验收速度为N2颗/小时,二者经过协调达成某一相同的速度MIN(N1,N2)颗/小时。经过传送带传送到目的地。传送带长L米,速度为V 米/小时。从A开始计时到B验收完成,所需时间T为多少?
答:T = L / V + N / MIN(N1,N2) + 1 / MIN(N1,N2)
时间T反映了完成糖果包装并验收完成的总时间。若是糖果想象成能够须要传输的文件,那么就能够把糖果包装问题转换为一个简化的网络传输问题。
假设服务器A向用户B发送一个大小为100KB的图片(假设HTTP链接已经创建),服务器上行带宽为1Mbps,用户所在下行带宽为100Mbps。已知端对端物理距离为2000 km,光信号在光纤中的传播速度是200000 km/s,求图片从A发出到B完整接收的时间T。代入公式可得: T = 2000/200 + 100 * 8 / 1 = 810 ms(最后一项过小能够被忽略)
这个时间就是时延,具体的说是单向时延,即一个数据文件从传输到完整接收所花费的时间。
2.2.时延是什么网络

2.1中图片传输的时间叫作时延。时延并无一个确切的定义。多数状况下是指单向时延,就是在数据通讯过程当中从A发送数据的第一个比特开始到B接受到数据的最后一个比特为结束产生的时间消耗,在某些场景下也指双向时延,即从网络请求发出到收到完整响应为结束经历的时间。时延常以毫秒为单位来衡量。数据包的大小、链路上传下行速率、通讯距离、通讯介质的种类、路由器的处理能力都会影响时延。常说的时延是下列这些不一样时延的总和:
传播时延。信号在信道中传输的时间=通讯距离/传播速度。
处理时延。路由器路由、差错控制以及数据包头信息处理的时间。
队列时延。数据包在队列中等待路由器处理的时间。
发送时延。将数据包发送到信道中的时间=数据包大小/信道带宽。
减小时延每每比增长带宽须要更多的成本。2015年9月,Hibernia网络公司为了最大程度上确保纽约和伦敦的通讯延时,部署了一条名为“Hibernia Express”的海底光缆,总计耗费达3亿美圆。采用新光缆以后,纽约伦敦两地的延时为58.95ms,比现存的全部大西洋光缆少了5ms。这意味着节约的每1毫秒,价值近6千万美圆。
2.3.带宽是什么性能

带宽是指数据通讯最大的吞吐量,根据传输方向的不一样能够分为上行带宽和下行带宽,经常使用Mbps来进行衡量。对于互联网上的用户,运营商(ISP)提供的带宽就是数据通讯的最大吞吐量,而且上下行带宽每每不对称。如中国电信百兆宽带最大下行速度为100Mbps,而最大上行速度只有20Mbps。
通常来讲,核心网络(如海底光缆)的带宽每每能够达到几百Tbps。而终端用户实际可用的带宽,每每是网络服务所在服务器的上行带宽与用户下行带宽的最小值。
若某一网站部署在上行带宽为1Mbps服务器上,那么即便访问者拥有100Mbps的下行带宽,用户仍然只能以1Mbps的速度下载网页上的内容。
2.4.联系与区别优化

对终端用户而言,延时能够理解为某一网络服务的响应速度,而带宽能够理解为上传下载文件的最大速度,而实际可用的带宽,每每又是由网络服务所在服务器的上行带宽与用户下行带宽的最小值所决定。
以浏览网页为例子,若响应速度快,用户实际可用的带宽(见2.3节的定义)小,就可能致使页面上的图片以肉眼可见的速度一点点显示出来;若响应速度慢,用户实际可用的带宽大,就可能致使页面上的内容须要等待好久才能有显示,在此以前都是空白。可是当响应完成,会当即显示网页内容。
有人说带宽和时延没有关系,这句话是有问题的。由于在2.2节中介绍了发送延时,它一般由服务器的上行带宽与用户下行带宽的最小值所决定。准确的说是,目前现实场景中大部分的时延不是由带宽决定,而每每是由传播距离、网络情况等所决定。
3.性能优化网站

了解了带宽和时延,那么就能够更好地理解网站性能优化背后的本质——减小延时,增长带宽。常见的性能优化的方式有合并请求和创建内容分发网络(CDN):
合并请求。从优化角度来讲,合并请求就是在减小总时延。一个100KB的文件和 10个10KB大小的文件大小相同。若D为传播时延,T为发送10KB文件的发送时延,那么一次发送100KB文件的时延为 D + 10T,而发送10次单个10KB文件的延时为 10D+10T。相同状况下,请求次数越少,总时延就越少。
创建内容分发网络。内容分发网络经过将网站内容服务器分布在靠近用户的位置,从而使用户就近获取所需内容,减小传播延时,进而显著提高网站的响应速度。
举例来讲,高质量的视频网站必须租用高速的上行带宽,确保可以承担大规模的视频流量,由于没人愿意等待几分钟缓冲一个流媒体视频。同时它也要在各地创建大规模的内容分发网络(CDN)来下降视频内容的传播延迟,这样才不会让用户等待好久才能得到网站的响应。
4.总结视频

本文网络应用优化中最重要的两个目标:时延与带宽。经过定义并区分二者的关系,并引伸出网络服务优化的几种基本方法。和全部的教程同样,本文不可能涵盖到网络优化的全部细节,可是若能对你有所启发,那就是再好不过了。教程

相关文章
相关标签/搜索