PTP是英文 “Precision Timing Protocol” 的缩写,即“精确时间协议”。IEEE 1588标准中对它进行了描述,它是一种通过分组网络分配时间的协议,主时钟发送报文到从时钟,告诉从时钟主时钟所处的时间在这个过程中,报文延迟是个棘手的问题,而精确时间协议(PTP)大部分都致力于解决这个问题。
例如,我发了一封包含寄出时间和日期的信函,如果接收方不知道这封信中途需要多久才能送达,寄出时间对他们来说,也就没什么意义。不过,如果接收方知道我选的是“次日达”,他们就可以正确设置日历,确定收货日期。但是没有送达所需的时间,他们依旧不能设置手表上的分秒,确定收货时间。知道准确的延时,才可设定准确的时间。
精确时间协议 (PTP) 双向交换称为“事件报文”的时间概念报文,从而较为容易地计算出“往返过程中的延迟”,然后协议将往返延迟减半来估算单向报文延迟。不过这也是这个协议致命的弱点,它假设了往返的延迟是一致的,没有正确计算单向延迟所需信息。如果在网络中出现“不对称问题”,也就是可能发生的正向和反向传递消息花费的时间不同,那么估算的时间将会是错误的。
协议使用三种关键技术来减少延迟估计中的误差:
1. 硬件时间戳 —— 精确记录事件报文通过物理接口的时间。这消除了识别和处理报文所涉及的软件延迟。
2. 边界时钟 —— 这类时钟恢复网络中间点的时间,并将时间转发到新的一组报文中。这些时钟通常可在网络中的交换机和路由器中找到,它们有助于减小网络延迟变化所带来的影响,列队延迟等因素都有可能导致这类影响。
3. 透明时钟 —— 这类时钟也可在网络中的交换机和路由器中找到。不同的是,它并不恢复并转发时间,而是记录报文通过交换机或路由器的时间。当报文最终到达从时钟时,透明时钟包含报文通过网络所累积的延迟信息,使得从时钟更准确地将其本地时间与主时钟对齐。
继续阅读: