RTT 即 Round Trip Time(往返时间),也称往返延迟,是衡量网络数据包从发送方传输到接收方,再从接收方返回到发送方所花费的时间的指标。
RTT = 延迟(客户端到服务器)+ 服务器处理时间+ 延迟(服务器到客户端)
这是往返时间的简要说明。

从上图可以看出,从客户端发出请求到客户端收到响应之间的时间就是往返时间。除了延迟,它还可能包括一点服务器处理延迟。
在测量 RTT 时,我们最好发送一个涉及最少处理和资源的请求,如 ping。这样可以确保服务器处理时间最小化,我们的 RTT 值主要包括两端的延迟。
如何测量 RTT
要测量 RTT,可以在 Mac 或 Linux 上打开终端,或在 Windows 上打开命令提示符/Powershell。对任意域名或 IP 使用 ping 命令。
ping example.com
下面是一个显示 google.com 的 ping 命令的示例。

可以使用 -c
来限制发送请求的数量。处理完成后,您将得到 RTT 的摘要。它将列出 RTT 的最小值、平均值、最大值和标准偏差。距离物理服务器(或 CDN 的接入点)越远,RTT 值就越高。
RTT、TTFB 和延迟
这三者非常相似,很容易混淆。为了更好地理解它们之间的区别,让我们从最简单的延迟开始。
延迟只是单向延迟。它是网络数据包从发送方传输到接收方(或从接收方传输到发送方)所需的时间。
RTT(往返时间)是双向延迟。它是网络数据包从发送方传输到接收方,再从接收方返回发送方所需的时间。
延迟与 RTT 密切相关,但又不同。许多因素可能会影响服务的延迟。延迟并不明确等于 RTT 的一半,因为延迟在任何两个给定端点之间可能是不对称的。RTT 包括响应端点处的处理延迟。
TTFB(首字节时间)是一项与往返时间非常相似的指标,但它是针对 HTTP 请求进行测量的,包含服务器处理延迟和往返时间。
影响 RTT 的常见因素有哪些?
某些因素会导致 RTT 值发生巨大变化。具体如下:
- 距离:是信号从请求到达服务器到响应到达浏览器的长度,
- 传输介质:用于路由信号的介质,有助于更快地传输请求。
- 网络跳数:是服务器处理信号所需的时间,随着跳数的增加,RTT 也会增加。
- 流量级别:当网络流量巨大时,往返时间通常会增加,这会导致低流量时的 RTT 也会减少。
- 服务器响应时间:这是服务器响应请求所需的时间,主要取决于处理请求的能力,有时也取决于请求的性质。
减少 RTT 的措施
使用内容分发网络 (CDN) 可以显著降低 RTT。CDN 是指由多个服务器组成的网络,每个服务器都获取特定网站上内容的副本。它通过以下方式解决影响 RTT 的因素:
- 接入点(PoP)
- Web 缓存
- 负载分配
- 可扩展性
- 一级访问权限
CDN 在降低 RTT 值方面取得了巨大成功,因此可以实现 RTT 降低 50%。
RTT 如何影响 RTC 服务?
在RTC(实时音视频)服务中,我们必须考虑网络拓扑结构对 RTT 的影响。与 peer-to-peer 相比,任何基于基础设施的拓扑都会引入增量延迟。当媒体由 MCU、SFU 或TURN 服务器锚定时,会发生额外的处理、排队和编码延迟。但是,更重要的是,基础架构拓扑可能会增加显着的传播延迟,具体取决于服务器相对于端点的位置。
根据经验,RTT 越低,会话的媒体质量就越高。RTC 重点是提供实时、高度互动的服务和对话。要做到这一点,需要从用户说话到目标接收者听到所说的话的低延迟。
如何打造毫秒级超低延迟的 RTC 服务?助力业务快速增长!欢迎跟我们探讨👇
