返回

网络传输最后一公里的容灾与优化方案详解

后端



在网络传输的最后一公里,如何优雅地进行容灾,以及如何提高接入成功率一直以来都是亟待解决的问题。本文将结合 ZEGO 业务中的具体实践,介绍一种在 SDK 侧感知异常并进行自动容灾切换的方案,帮助您轻松应对网络传输的各种突发状况。




容灾是指在系统出现故障时,能够快速、可靠地将业务切换到备份系统,以保证服务的连续性。在网络传输的最后一公里,容灾主要包括以下几个步骤:

  1. 感知异常: 系统通过各种手段感知网络异常,如丢包、时延、抖动等。
  2. 决策切换: 系统根据感知到的异常情况,决定是否需要进行容灾切换。
  3. 切换执行: 系统执行容灾切换,将业务切换到备份系统。


在 ZEGO 的业务中,我们面临着各种各样的网络异常情况,如丢包、时延、抖动等。为了保证服务的连续性,我们设计了一套完整的容灾方案,该方案主要包括以下几个方面:

1. 感知异常

感知异常是容灾方案的关键步骤。我们主要通过以下几种手段来感知网络异常:

  • 丢包率: 丢包率是指在一定时间内,从发送方发送到接收方的数据包中,丢失的数据包所占的比例。丢包率过高,会严重影响网络传输的质量。
  • 时延: 时延是指数据包从发送方发送到接收方所花费的时间。时延过长,会造成网络传输的延迟。
  • 抖动: 抖动是指数据包传输时延的波动情况。抖动过大,会造成网络传输的不稳定。

2. 决策切换

在感知到网络异常后,系统需要根据异常情况的严重程度,决定是否需要进行容灾切换。我们主要考虑以下几个因素:

  • 异常持续时间: 异常持续的时间越长,越需要进行容灾切换。
  • 异常影响范围: 异常影响的范围越大,越需要进行容灾切换。
  • 业务重要性: 业务越重要,越需要进行容灾切换。

3. 切换执行

在决定进行容灾切换后,系统需要执行切换操作。我们主要有以下几种切换方式:

  • CDN 切换: 将业务流量从一个 CDN 节点切换到另一个 CDN 节点。
  • QoS 切换: 将业务流量从一个 QoS 等级切换到另一个 QoS 等级。
  • DNS 切换: 将业务流量从一个 DNS 解析结果切换到另一个 DNS 解析结果。


除了容灾方案外,我们还设计了一系列优化方案来提高最后一公里网络传输的成功率。这些优化方案主要包括:

1. DNS 预解析: 在用户访问我们的服务之前,提前解析 DNS,避免在访问时出现 DNS 解析延迟。

2. TCP Fast Open: 使用 TCP Fast Open 技术,在建立 TCP 连接时减少握手次数,提高连接速度。

3. 多路径传输: 使用多路径传输技术,将业务流量分散到多条路径上,提高传输的可靠性。

4. 拥塞控制: 使用拥塞控制算法,避免网络拥塞,提高网络传输的效率。



本文介绍了 ZEGO 业务中使用的最后一公里网络传输容灾与优化方案。该方案通过在 SDK 侧感知异常并进行自动容灾切换,有效保证了服务的连续性。同时,通过使用各种优化方案,提高了最后一公里网络传输的成功率。如果您也面临着类似的挑战,希望本文能够为您提供一些有益的借鉴。