往返时间是一个重要的指标,可以表明两个端点之间可用的通信质量。这是我们团队经常与客户讨论的一个指标,因为它直接关系到用户体验到的服务质量。往返时间可以受到一系列设计决策的影响,特别是关于网络拓扑结构。 然而,对于究竟什么是往返时间,它如何影响你的服务,以及你如何改善它,存在着一些困惑。
什么是往返时间?
往返时间 (RTT) 是数据包从发送端点到接收端点再返回所花费的时间。影响RTT的因素有很多,包括传播延迟、处理延迟、排队延迟和编码延迟。对于给定的一对通信端点,这些因素通常是恒定的。此外,网络拥塞可以为 RTT 添加一个动态组件。
传播延迟是两个端点之间的网络距离。它是数据跨越各种网络,通过不同的网络交换机和路由器从发送端点到达接收端点所采取的路由。有时,这与地理距离一致,有时则不然。传播延迟通常是 RTT 中的主要成分。它的范围从几毫秒到几百毫秒不等,具体取决于端点是相距几公里还是相隔整个海洋。
其余组件(处理、排队和编码延迟)可能因网络连接端点的节点数而异。当只有几个路由器跃点将端点分开时,这些因素可以忽略不计。跳数越多,延迟就越高,因为每个这样的网络节点都需要接收、处理数据并将数据路由到下一跳,从而将自己的毫秒延迟添加到总 RTT 计算中。
在实时通信中,我们必须考虑网络拓扑结构对RTT的影响。与对等连接相比,任何基于基础设施的拓扑都会引入增量延迟。当媒体由MCU、SFU或TURN服务器锚定时,会发生额外的处理、排队和编码延迟。但是,更重要的是,基础架构拓扑可能会增加显着的传播延迟,具体取决于服务器相对于端点的位置。
当媒体被锚定在一个与终端在地理上相距甚远的地方时,就会出现发散现象,与对等连接相比,会增加大量的传播延迟。这就是为什么基础设施的安置对于提供低 RTT 和高质量的用户体验至关重要。媒体服务器离发送和接收端点越远,RTT 值越高,服务质量越低。
澄清一些误解
往返时间和 ping 时间通常被认为是同义词。虽然 ping 时间可以提供良好的 RTT 估计,但它的不同之处在于大多数 ping 测试是在使用 ICMP 数据包的传输协议内执行的。相反,RTT 是在应用层测量的,包括由更高级别的协议和应用程序(例如 HTTPS)产生的额外处理延迟。在 WebRTC 中,媒体流上的 RTT 是通过查看 SRTP 数据包本身来计算的,提供了最接近会话中实际媒体在 RTT 方面的感觉的度量。
网络延迟与 RTT 密切相关,但又不同。延迟是数据包从发送端点到接收端点所花费的时间。许多因素可能会影响服务的延迟。延迟并不明确等于 RTT 的一半,因为延迟在任何两个给定端点之间可能是不对称的。RTT 包括响应端点处的处理延迟。
RTT 如何影响实时通信服务?
根据经验,RTT越低,该会话的媒体质量就越高。我们的重点是提供实时、高度互动的服务和对话。要做到这一点,需要从用户说话到目标接收者听到所说的话的低延迟。
本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/27029.html