IEEE1588协议原理
IEEE1588精密时钟协议(PTP)将网络中的时钟分为两种:普通时钟和边界时钟。只有一个PTP通信端口的时钟叫普通时钟,而有两个或更多的PTP通信端口且每个端口均能提供独立的PTP通信的时钟叫边界时钟。但是,在系统中,根椐相互之间通信关系又可以将网络中的时钟分为主时钟和从时钟,一个PTP通信子网内只有一个主时钟,其余的是从时钟。主时钟为整个系统提供标准时钟,每隔一定的时间将其本地时间发布到网上,从时钟接收主时钟的时间信息,进行相应的计算,与主时钟同步。每个PTP端口都有9种状态,PTP系统通过最佳主时钟算法(BestMasterClock,BMC)来实时地决定PTP端口应处的状态,整个PTP系统中稳定性、精确性、确定性最好的时钟就是主时钟。
IEEE1588同步原理
IEEE1588协议定义了4种类型的报文:同步报文(Sync),跟随报文(Follow_up),延时请求报文(Delay_req),延时请求应答报文(Delay_resp)。PTP系统中的从时钟就是通过与主时钟交换上述的4种报文,从中获取时间戳,计算出与主时钟的时间偏差,根据偏差来调整自己的时间,从而达到与主时钟的时间同步。在PTP系统中,影响各时钟同步的因素大体上有两个,一是各时钟的性能所引起的时间偏差,二是由于各报文在网络中传输所引起的网络延迟,因此,PTP系统的同步过程可分为两个阶段:偏差修正阶段和延迟测量修正阶段。整个同步过程如图1所示。
IEEE1588协议的实现
用软件实现IEEE1588协议的程序主流程图如图2所示。