高性能浏览器网络之网络部分 -- 延迟和带宽入门

后面准备抽时间对大作High Performance Browsing Networking进行翻译,主要是自己看的慢,所以就边看边翻译,权当学习。

水平有限,欢迎围观、指正、批评~~

------------------------------------------------------------------------------------------------------------------------------------

第一部分 网络


第一章 延迟和带宽入门


速度是一个功能(Speed Is a Feature)

过去几年,WTO(web performance optimization)行业的出现和快速发展释放了一个明显的信号,速度越来越重要,用户要求更快的用户体验。在我们不断加速和连接的世界中,这不是简单的对速度需求的强迫症,而是由对很多在线业务最低性能需求测量而得的实证结果驱动的需求。
  • 更快的网站带来更好的用户参与度
  • 更快的网站带来更好的用户保留率
  • 更快的网站带来更高的用户转换率
简言之,速度是一个功能。为了实现这个功能,我们需要理解与之相关的各种因素和基本的限制。本章,我们将把重点放在决定网络流通性能的两个关键因素:延迟和带宽(图1)。
延迟
     从源端发出包到目标端收到包的时间间隔
带宽
     一个逻辑或物理通信链路的最大吞吐量


对延迟和带宽如何协同作用有了更好的理解之后,我们就有信心深挖TCP, UDP,和所有基于这两个协议的应用层协议的内部结构和性能特征。

通过Hibernia Express降低横跨大西洋的延迟
延迟是金融市场上很多高频交易算法的一个重要标准,一个几毫秒的微弱差别可能导致数百万的损失,也可能带来数百万的利润。
2011年初,华为和Hibernia Atlantic(美国宽带服务商)开始部署一条新的横跨大西洋的3000英里光纤,以连接伦敦和纽约。新光纤的唯一目标是节约5毫秒的交易延迟。
部署好之后,这条电缆将只给金融机构使用。整个工程花费 4亿美元,换句话说是,节约一毫秒需要花费8000万美元!延迟是相当昂贵的 -- 名副其实。

延迟的构成(The Many Components of Latency)

延迟是一个消息,或一个数据包从发送端到达接收端所花费的时间。这是一个简单而且有用的定义,但也隐藏了很多有用的信息 -- 每一个系统都包含多个源,或组件,它们会影响到消息发送的整体时间,理解有哪些组件和它们的性能的决定因素是很重要的。

让我们进一步看看,互联网上,用于中继消息的典型的路由器,一般有哪些的部分影响到延迟。

传播延迟
     一个消息从发送端传输到接收端所需要的时间,与传播距离正相关。
传输延迟
     把所有数据包的bits推送进链路所需要的时间,与数据包长度和链路的数据传输率有关。
处理延迟
     处理包头,检查位错误,决定包的目的地总共需要的时间
排队延迟
     能够被处理前,在队列中等待的时间

客户端与服务器之间的延迟是如上所列所有延迟的总和。传播延迟由信号传输的介质和距离决定 -- 我们将会看到,传播速度通常是比光速小一些。另一方面,传输延迟由传输链路的可用数据传输率决定,与客户端和服务器之间的距离无关。举个例子,假设我们要通过两条链路:一条1Mbps,一条100Mbps, 传输一个10Mb的文件。把整个文件放入1Mbps的链路,需要10秒,而放入100Mbps的链路只需要0.1秒。

下一步,当数据包到达路由器时,路由器必须检查包头来决定输出路由,而且还要对数据做其它的检查 -- 这也花时间。许多这类逻辑现在常常由硬件完成,所以延迟会很小,但确实存在。最后,如果数据包到达的速度比路由器处理的快,它们就要在输入缓冲中排队等待。数据在缓冲中等待的时间,毫无疑问,就是所谓的排队延迟。

每一个在网络上传输的包,都会遇到许多这些延迟的实例。客户端与服务器之间的距离越远,花在传播上的时间就越长。沿途遇到的中间路由器越多,每个包的处理和传输延迟就越大。最后,传输路径上的负载越高,包被阻塞在输入缓冲中的概率就越大。

你的本地路由器中的缓冲膨胀(Bufferbloat)
Bufferbloat是一个由Jim Gettys在2010年杜撰并普及的术语,它是一个说明排队延迟对网络整体性能影响的很好的例子。
潜在的问题是,在应该不惜代价避免丢包的假设下,如今的路由器都配备了很大的输入缓冲。但这破坏了TCP的拥塞避免机制,给网络引入了高且可变的延迟。
好消息是,为了解决这一个问题,已经提出了一个新的CoDel主动式队列管理算法,而且目前已经在Linux 3.5内核中实现。更详细了解,请参考 "Controlling Queue Delay"。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章