Page 26 - Web性能权威指南
P. 26
的应用必须在几百 ms 之内响应。这几乎没有给我们——特别是网络,留出多少出
错的余地。若要成功,必须认真对待网络延迟,在每个开发阶段都为它设立明确的
标准。
CDN(Content Delivery Network,内容分发网络)服务的用途很多,但最
重要的就是通过把内容部署在全球各地,让用户从最近的服务器加载内容,
大幅降低传播分组的时间。
或许我们不能让数据传输得更快,但我们可以缩短服务器与用户之间的距
离!把数据托管到 CDN 能够显著提高性能。
1.4 延迟的最后一公里
你说怪不怪,延迟中相当大的一部分往往花在了最后几公里,而不是在横跨大洋或
大陆时产生的,这就是所谓的“最后一公里”问题。为了让你家或你的办公室接入
互联网,本地 ISP 需要在附近安装多个路由收集信号,然后再将信号转发到本地的
路由节点。连接类型、路由技术和部署方法五花八门,分组传输中的这前几跳往往
要花数十 ms 时间才能到达 ISP 的主路由器!根据美国联邦通信委员会(FCC)发
布于 2012 年年中的《美国宽带测量报告》(Measuring Broadband America),在通
信高峰的几个小时内:
光纤入户服务的平均往返时间为 18 ms,有线电视线路上网平均为 26 ms,
DSL 专线平均为 43 ms。
——FCC,2012 年 7 月
这里 18~43 ms 的延迟测量的还只是 ISP 核心网络中与用户最近的节点,此时分组甚
至都还没有启程呢! FCC 的报告只反映了美国的情况,但最后一公里的延迟却是世
界任何一个角落的互联网提供商共同面临的问题。如果你好奇,那只要一条简单的
traceroute 命令,就能知道上网服务商的拓扑结构和速度。
$> traceroute google.com
traceroute to google.com (74.125.224.102), 64 hops max, 52 byte packets
1 10.1.10.1 (10.1.10.1) 7.120 ms 8.925 ms 1.199 ms ❶
2 96.157.100.1 (96.157.100.1) 20.894 ms 32.138 ms 28.928 ms
3 x.santaclara.xxxx.com (68.85.191.29) 9.953 ms 11.359 ms 9.686 ms
4 x.oakland.xxx.com (68.86.143.98) 24.013 ms 21.423 ms 19.594 ms
5 68.86.91.205 (68.86.91.205) 16.578 ms 71.938 ms 36.496 ms
6 x.sanjose.ca.xxx.com (68.86.85.78) 17.135 ms 17.978 ms 22.870 ms
7 x.529bryant.xxx.com (68.86.87.142) 25.568 ms 22.865 ms 23.392 ms
8 66.208.228.226 (66.208.228.226) 40.582 ms 16.058 ms 15.629 ms
9 72.14.232.136 (72.14.232.136) 20.149 ms 20.210 ms 18.020 ms
10 64.233.174.109 (64.233.174.109) 63.946 ms 18.995 ms 18.150 ms
11 x.1e100.net (74.125.224.102) 18.467 ms 17.839 ms 17.958 ms ➋
延迟与带宽 | 7