web性能之延迟与带宽

所有网络通信的决定性因素是:

  • 延迟:消息(message)或分组(packet)从起点到终点经历的时间
  • 带宽:逻辑或物理通信路径最大的吞吐量

因此高速网络追求的目标就是高带宽和低延迟。

延迟

研究表明: 在软件交互中, 100~200 ms 左右的延迟,大多数人就会感觉到“拖拉”; 如果超过了 300 ms,那就会说“反应迟钝”; 而要是达到了 1000 ms(1s)这个界限, 很多用户就会在等待响应的时候分神,有人会想入非非,有人恨不得忙点别的什么事儿。

分组路由中影响延迟的因素:

  • 传播延迟(Propagation delay): 消息从发送端到接收端需要的时间,是信号传播距离和速度的函数
  • 传输延迟(Transmission delay): 把消息中的所有比特转移到链路中需要的时间,是消息长度和链路速率的函数
  • 处理延迟(Processing delay): 处理分组首部、检查位错误及确定分组目标所需的时间
  • 排队延迟(Queuing delay): 到来的分组排队等待处理的时间

分组的发送端和接收端距离越远,传播时间越长; 经过的路由器越多,分组的处理和传输延迟就会越长; 网络流量越拥挤,分组被延迟的可能性就越大。

延迟中相当大一部分往往花在了最后几公里上,而不是横跨大洋或大陆产生的, 这就是所谓的最后一公里问题, 也就是分组传输中的前几跳, 这与提供商、部署方法、网络拓补,甚至一天中哪个时段都有很大关系。

所以为了减少延迟应选择延迟最短的 ISP(Internet Service Provider,互联网服务提供商)。

我们不能让数据传输得更快,但我们可以缩短服务器与用户之间的距离, CDN(Content Delivery Network,内容分发网络)服务 通过把内容部署在全球各地,让用户从最近的服务器加载内容,大幅降低传播分组的时间。

通过将数据托管到 CDN 能够显著的解决最后一公里问题。

通过 tracetoute 命令可以检查网络路由的拓补结构和速度。

带宽

通过波分复用(WDM,Wavelength-Division Multiplexing)技术, 光纤可以同时传输很多不同波长(信道)的光,因而具有明显的带宽优势。 一条光纤连接的总带宽,等于每个信道的数据传输速率乘以可复用的信道数。

注:本文为《web 性能权威指南》笔记