NTP时钟同步与WebRTC的端到端延迟

1. 背景

在许多应用中,不可避免地遇到多个系统之间的时钟同步,在RTC中也不例外。很多地方不是简单地使用NTP时间,而是会用到这个思想来解决很多问题。举几个常见的使用例子:

  • 两个客户端之间的端到端延迟计算:因为大多数音视频系统都需要经过SFU,不是简单地端到端,如果能够对齐两端NTP,那么计算端到端延迟就会变得非常简单。
  • 使用时钟同步思想计算端到端延迟(仅P2P):WebRTC标准里面借用了NTP时钟同步的思想,通过XR来计算端到端延迟。
  • 统一整个RTC系统时钟方便分析问题:在分析音视频端到端问题时,很容易遇到的一个问题就是两个客户端以及server之间的时钟不同步,在需要精确到毫秒的场景时会比较麻烦。对于端到端问题自动分析工具来说,时钟不同步也是一个问题。
  • KTV合唱场景需要全局时间同步:如今KTV合唱也是一个非常常见的场景,多个客户端如何一起唱也是需要全局时间同步来保障的。在很多需要多端同步的场景都可以使用时钟同步解决问题。

当然,在RTC系统中,应用的地方远不止这么多,个人认为随着RTC系统演进,全局NTP时钟同步是非常必要的。

这篇文章,我们将介绍下NTP时钟同步的原理,以及在WebRTC里面,如何利用时钟同步的原理计算端到端延迟,希望这篇文章能够对大家有所启发。

2. 什么是NTP

NTP,Network Time Protocol。它是一个时钟同步协议,可以用于多个计算机之间的高精度的时钟校正(几毫秒级别)。

我们每天电脑上就自带了时钟同步的客户端,比如windows、mac系统的时间会周期性地和NTP服务器同步。那是不是同步一次就一劳永逸了?肯定不行。我们的PC系统时钟也是基于晶振,虽然说已经较为准确了,但是随着时间推移也会存在一点偏差,时间越长偏差越大。因此,我们才需要定期地和更准确的时钟源同步。这些NTP服务器提供的时钟是UTC时间,准确度也更高,我们任何时候都可以“无条件”相信这个标准时间(实际上NTP服务器也可能不准,后面会介绍如何解决)。

3. NTP时钟同步原理

3.1 基本原理

在同一时刻,有两个端分别是需要同步的端和NTP服务器,他们有各自的NTP时间,但是客户端不是准的,只有NTP服务器的才是准确的,而我们的目标就是得到这两个端的NTP offset,并使用offset校准客户端时间。这两个NTP时间都是随着时间流逝而增加,客户端的精度不是很高,但是能够在一段时间内保持不漂移;服务器的NT

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值