CDN怎么样为移动端网站加速?

网站移动接入的最后一公里延迟较大,而cdn的缓存服务器不可能部署在基站到手机之间。导致整体的延迟无法达到最优,延迟(ping值)的确主要取决于接入端的无线那部分,但是速度并非完全取决于那个部分:

ping大于100ms就算比加大了,而用户能在3s内看到网页还是可以接受的,比如一个网页,有html, js , css 图片等:
影响用户观感的时间主要如下:
1. 连接建立需要时间,特别是多个连接的时候
2. 发送请求需要时间
3. 等待响应时间 — 这个传统cdn的cache起作用了
4. 下载内容需要时间
5. 解析(rendering)内容需要时间

改进如下问题可以做些什么呢?主要是缓存优化,网络优化(TCP协议优化,降低连接次数),内容优化(内容尺寸优化,内容压缩)三方面
缓存优化:
1. 内容针对cache 优化,比如expire header之类。没错,假如内容在客户端cache了就不需要网络访问的时间了,这个是传统cdn就很重视的技术 , 而且可以无视网络的高延迟:>

网络优化:
2. tcp优化,高延迟环境下丢包会大大增加tcp延迟和降低传输速度,tcp协议栈优化有助于改进这点, 特别是下载内容的时候 — 请google “fast tcp”
3. 减少tcp连接数量,比如利用http1.1 Persistent Connections 和 pipeline 技术。 还有网宿的利用sdk来减少连接
4. 刚才说的pipeline可以提高发送请求速度
5. 合并小文件,比如 css , js 等, 这会修改html内容。合并以后会减少请求次数
6. cdn 更改内容,将小文件内容 inline 话,比如将一些 js 脚本从独立文件改为直接放到 html 中间去,这下省了好几个包往返,很划得来

内容优化:
7. 优化内容尺寸,比如html、js优化和图片优化,这可以改善下载时间。 图片压缩(比如webP等更高压缩率的图片压缩方式等),图片文件尺寸相对较大,在不影响质量的情况下压缩个30-60%可以获得很好的效果,cdn还可以识别手机设备和浏览器的特性,来获得更高的压缩效果。
8. gzip等传输方式可以节约带宽缩短网络传输时间。
9. js 解析优化,比如js文件放到页面后面防止阻塞页面解析,这个对于前端优化不错,但是对于cdn更改页面可能会造成一些bug。

以上很多东西都和传统cdn内容透明传输的方式不一样,这是需要注意的。
另外,移动网络最后一公里的速度肯定还是能够有一定提升空间的,这要看运营商了。目前来看4G的延迟已经不算大了,考虑到4G铺开的速度,还是很值得期待的

参考阅读 – 请自行google :
1. mod_pagespeed
2. W3 Total Cache
3. Fast TCP 、 E-TCP
4. Akamai

另外说一下视频,视频的观看质量主要取决于有效带宽而非ping延时(当然带宽同时受延时和丢包率的影响),主要的一些技术手段主要就是 adaptive streaming (根据带宽自动切换码率) 还有 Persistent Connections (改进有限)

发表评论

昵称

沙发空缺中,还不快抢~