Speed Is a Feature
影响速度的两个关键因素:latency(延迟)和 bandwidth(带宽):
The Many Components of Latency
影响延迟的因素有很多方面,需要系统地考虑:
- Propagation delay:收发两方的距离除以速度,更重视传输材质的速度,比如光纤,传输速度一般是光速的某个常速倍。比如纽约到旧金山,用光纤要 21ms 才能到达,就是这个速度在起作用
- Transmission delay:把数据推入网络设备(比如路由器)的速度,是数据长度除以设备数据速率,与距离无关。举个例子,你有个无线速率为 1 Mbps 的路由器,那么发一个 10 Mb 的文件需要 10s;如果路由器速率 100 Mbps,那么只需要 0.1s
- Processing delay:网络设备收到包后,检查包头、校验数据、决定下一站等操作所需的时间。这个时间通常很短,但是也存在。还未被处理的包会被放在网络设备的缓冲区中,直到他们被处理
- Queuing delay:包在网络设备缓冲区中等待的时间。比如你有个性能比较差的路由,但是你向它传输了大量的数据,它可能没法处理得很快,于是包必须在缓冲区中等待一段时间
Bufferbloat in Your Local Router
Bufferbload 是一种现象,表明 queuing delay 的确在影响网络质量。因为现在新的路由往往有着更大的缓冲区,它们会尽量避免丢包。而这会影响 TCP 的拥塞控制,可能会导致更多的超时重传、更不确定的延迟。有新的算法在着力解决这类问题。
Speed of Light and Propagation Latency
光纤存在折射率(refractive index),没法达到光速,一般传输同样距离,光纤所需的时间大约是光的 1.4-1.6 倍。光纤 1s 大约能走 200,000,000 米,折射率在 1.5 左右。
光纤的传播速度、与光速进行对比:
Route | Distance | Time, light in vacuum | Time, light in fiber | Round-trip time (RTT) in fiber |
---|---|---|---|---|
New York to San Francisco | 4,148 km | 14 ms | 21 ms | 42 ms |
New York to London | 5,585 km | 19 ms | 28 ms | 56 ms |
New York to Sydney | 15,993 km | 53 ms | 80 ms | 160 ms |
Equatorial circumference | 40,075 km | 133.7 ms | 200 ms | 200 ms |
但是上图的数据是基于光纤链路是条直线来算的,事实上并没有这么乐观,链路经常是弯来倒去的。所以 New York 到 Sydney,RTT 往往需要 200-300ms 时间。
但是对用户来说,300ms 的延迟往往难以接受。所以在开发应用程序的每个阶段,网络延迟都是一个重要的考虑因素。
Note
传输的延时难以解决,但是可以通过将用户与服务器的距离拉近,来减少总的延时。CDN 就是这样做的。
Last-Mile Latency
最后一公里延时,是指在离终端用户最近的地方,往往有明显的延时(几十 ms)。这跟 ISP(网络服务供应商)对终端的部署有关系,比如你的社区如果还没有接光纤,那么很可能用的是 ADSL 这种技术,而 ADSL 在延时上(30-65ms)会明显慢于光纤(10-20ms)。而且数据包从社区的设备传输到 ISP 的骨干网(core network),往往又有明显的延时。
Bandwidth in Core Networks
光纤在带宽方面具有明显的优势,因为每根光纤都可以通过称为波分复用(wavelength-division multiplexing, WDM)的过程承载许多不同的光波长(信道)。因此,光纤链路的总带宽是 每信道数据速率 和 多路复用信道的数量 的倍数。
信道的英文叫 channel。
截至 2010 年初,研究人员已经能够复用 400 多个波长,每个信道的峰值容量为 171 Gbit/s,这意味着单个光纤链路的总带宽超过 70 Tbit/s。
Bandwidth at the Network Edge
network edge 即是指离用户近的这端。速度受限于终端的部署技术,比如拨号上网、ADSL、光纤等,同时还受限于家里的路由或者 ISP 的路由。
Speedtest 网站可以测试你到本地 ISP 服务器的延迟和带宽。但是不代表你使用其他网络服务时,也能达到相同的带宽。网络拥塞的原因多种多样。
Delivering Higher Bandwidth and Lower Latencies
未来的优化方向有很多,比如把更多链路换成光纤的,优化 WDM 技术,把数据分布到离用户近的位置等。但是光速的限制是解决不了的,现在的链路能达到 ~2/3 光速,能提升的空间也只有 30% 左右。
因此,在架构、协议设计和应用开发中,需要时刻考虑延迟和带宽因素。