Google web性能优化工程师和开发大使、《High-Performance Browser Networking》作者Ilya Grigorik近日发布了一篇名为《为什么CDN对移动客户端加速“没有”效果》的博客,描述了移动(无线)网络的特殊性,以及如何建设一个适用于移动CDN的构想。 Ilya首先吐槽了目前的CDN在移动客户端加速方面的不给力。从他们的移动客户端性能监控数据来看,传统CDN的优化效果非常不明显,所以他希望有一个对移动网络支持更好的、特殊的移动CDN网络。 对于传统CDN在无线网络上的效果,Ilya认为人们普遍有两种误解:1、传统CDN对移动客户端和对宽带网络的绝对优化效果差不多;2、这不是要不要“无线CDN”的问题,而是运营商网络的问题。 Ilya首先提供了一个参考数据,用于分析无线网络延迟的主要组成部分:
下图显示使用CDN时用户访问流程和延迟信息 使用一个CDN做内容分发加速CDN加速需要在世界各地对等点的各种数据中心部署CDN高速缓存服务器,并尽可能的将数据部署在离用户最近的地方。换句话说,在最理想的情况下,CDN服务器会立即定位客户端所在的ISP/运营商网络,客户端发起请求,所引发的last-mile延迟时长为:客户端断开ISP/运营商网络和命中时CDN服务器立即返回的响应时间。因此:
继续前面的例子,假设CDN服务器进行了网络优化配置(东海岸到西海岸的延迟时间不是50ms而是5ms)和我们请求CDN未命中源站的情况下客户端到CDN节点的延迟是5ms。对于采用光纤的客户端,新的总时间为last-mile往返加CDN响应时间的总和:18+5+5+5+18,即51ms。因此,增加CDN的好处就是将我们总的请求时间由186ms降低到了51ms:在总延迟上有365%的改善。 我们可以来看下不使用CDN和使用CDN加速时相关的性能数据,如下表所示:
采用同样的方法重复计算每个连接的基本信息,就可以得到一个不幸的趋势:
CDN帮助减少数据传播和服务端响应延迟时间。如果你衡量优化前后的对比,就会发现CDN几乎没有做移动客户端的优化:例如,3G用户普遍获得33%的优化效果。 在边缘节点上的运营和业务维护成本一个很明显的策略是:移动缓存服务器到更靠近客户的位置以提高终端到终端的延迟,而不是将节点部署在运营商网络之外。那么,我们是否可以将节点部署在运营商内部?原则上是可以的,现在许多运营商已经部署了自己的缓存服务器。然而在现实中,存在如下问题:
最近的新闻报道说Verizon收购了EdgeCast,如果能将其应用于生产环境,这将有利于Verizon的客户解决这个问题。 除了业务和运营成本之外,CDN在移动客户端上没有任何特殊的优化。问题的根源在于:移动运营商的last-mile延迟是很糟糕的。这才是我们需要解决的问题,而不是推动将缓存服务器部署在靠近用户的边缘。我们需要公开地进行网络的优化,我们需要更多的运营商参与竞争,从根本上解决last-mile性能问题。 在国内,运营商环境更为复杂,大大小小运营商有很多家,其中以北方网通、南方电信、移动为主。但伴随着互联网的发展,小型运营商通过控制入口并以2、3级城市为主逐渐扩大了规模,例如:电信通、华数科技、长城宽带等。还包括一些城域网,这些我们通常统称为小运营商。 由于各运营商之间存在着网间费用结算,因此运营商会想尽一切办法将内容存在自己的网内,这就造就了现在市场上比较混乱的"劫持",而劫持技术也是越发越"高科技"。 国内的CDN环境竞争也日益加剧,几大CDN厂家如网宿科技、蓝讯、快网、帝联也纷纷与运营商进行合作。例如:蓝汛与中国电信宣布共建CDN网络,而网宿科技则是发布MAA移动应用加速解决方案,正式宣布进军移动互联网市场。再加上大公司自建CDN的加入,并有公司将CDN与云服务进行整合加入竞争,使得市场愈发激烈。 环境的复杂,导致用户访问的问题更加难以解决。有些观点表示,只有等到互联网关于运营商的改革,这些局面才会得以改善,但我认为只要各大运营商与公司紧密合作,合作更加深入,用户的访问质量肯定会节节攀升。 |