王晓冬
摘 要:针对网络时间协议PTP在以太网上的应用,研究了PTP协议的功能和流程,提出了PTP协议在NS2平台下的实现方案,并通过仿真研究了PTP协议在以太网环境中的同步性能。研究结果表明,IEEE 1588 标准的PTP协议在以太网上具有极佳的同步性能,其同步精度可以达到ns级别,并且具有良好的抗噪能力。数值仿真结果说明了该仿真方案的有效性和可行性。
关键词:时钟同步;以太网;PTP;仿真;同步性能
The study on Clock Synchronization Technology for Ethernet
Wang Xiao-dong(Nanjing University of Posts and Telecommunications,Nanjing 210003)
Abstract:For the application of network time protocol PTP on ethernet, this paper has made researches on the fucntion and process of PTP and proposed the implemenation soltuion of PTP on NS2 platform. The synchornization performace of PTP on ethernet has been also investigated in this paper through simulation, which indicated that IEEE 1588 PTP on ethernet has excellent synchronization performance which could reach ns level resolution and has good anti-noise capability. The simulation result has proved the validity and feasibility of the proposed solution.
Key words:Time Synchronization;Ethernet;PTP;Simulation;Synchronization Performance
在工业以太网中,时钟同步是核心技术之一,现有的各种分布式系统都提供了相应的时间同步机制。随着网络应用的不断深入,在分布式网络系统中需构造时钟系统来为不同的子网络系统提供有效的时间服务。有效的时钟同步系统是分布式网络系统实时调度的前提。目前在以太网应用中,特别是在工业自动化控制领域,普遍采用的时钟同步协议是网络时间协议NTP(Network Time Protoeol)[1]。
自动化领域、军事应用领域时钟同步的需求日益迫切,无线通信领域及相关组织也对时钟同步提出了新的更高要求。尤其随着以太网应用逐渐拓展到工业自动化领域,对基于工业以太网的时钟同步的要求更为精确(精确到微秒级)。在绝大多数计算机网络应用中,普遍采用的同步协议是网络时间协议(Network Time Protocol,简称NTP)。因特网中NTP客户端的偏移通常在10到100ms之内,这显然不符合工业以太网中时钟同步的要求。在这种情况下,用于多播网络的精确时钟同步协议IEEE 1588的出现则有效地解决了这一问题。
1 以太网中的时钟同步技术
1.1 NTP网络时间同步协议
NTP是TCP/IP标准协议族的一员,其工作在IP、UDP协议之上,目的是在分散的,包括很多网关和不可靠子网的环境中提供精确的时间同步服务。另外,网络时间协议还通过统计学技术提高时间估计的有效性,通过多个时间参考源来保证时间同步应用的可靠性。NTP采用的是Client/Server结构,具有相当高的灵活性,可以适应各种互联网环境。运行NTP协议产生的网络开销较少,并具有保证网络安全的应对措施,使得NTP可以在互联网上获取可靠和精确的时间同步。NTP同时是一个跨越局域网或广域网的复杂的同步时间协议,因而它成为互联网上公认的时间同步协议。
NTP以客户机和服务器方式进行通信。每次通信包括两个数据包,即客户机发送一个请求数据包,服务器接收后回送一个应答数据包。两个数据包都带有时间戳。NTP根据这两个数据包携带的时间戳确定时间误差,并通过一系列算法来消除网络传输的不确定性的影响。
1.2 PTP精确时间协议
IEEE 1588定义的精确时间协议PTP(Precision Time Protocol)[2]是标准化的精确时间协议,同步精度可达到亚微秒级,并且有达到更高精度的潜力。PTP协议集成了网络通讯、分布式对象等多项技术,适用于所有通过支持多播的局域网进行通讯的分布式系统,特别适合于以太网,但不局限于以太网。
IEEE 1588将时钟分为两种,普通时钟(Ordinary Clock,OC)和边界时钟(Boundary Clock,BC),普通时钟定义为只有一个PTP通信端口的时钟,边界时钟定义为有一个以上PTP通信端口的时钟,每个PTP端口提供独立的PTP通信。在确定性较差的网络设备如交换机和路由器上通常使用边界时钟。从通信关系上PTP时钟还可分为主时钟和从时钟,理论上主时钟和从时钟的功能任何时钟都能实现,但一个PTP通信子网内只能有一个主时钟。
IEEE 1588协议的工作原理如图1所示:
⑴Master向Slave发送Sync报文,并记录下该时刻T1;Slave接收到报文时记录该时刻T2。
⑵Master向Slave发送Follow_Up报文,将T1包含在该报文里。endprint
⑶Slave向Master发送Delay_Req报文,记录下该时刻T3;Master收到该报文时记录下接收时刻T4。
⑷Master向Slave发送Delay_Resp报文,将T4包含在该报文里。
根据T1,T2,T3,T4这4个数据,我们可以计算出
Offset=(Slave time)–(Master time)=[(t2–t1)–(t4–t3)]/2
这就是Master和Slave之间的时刻差值,根据该值我们就可以对Slave时钟进行校准,使之和Master时钟同步。
IEEE1588标准的PTP协议为基于多播技术的标准以太网的实时应用提供了有效的解决方法,它同时使用硬件和软件配合来获得更精确的定时时戳。PTP协议不像NTP局限于应用层,比NTP多一个携带更精确时戳的报文,这些都使得PTP可以比NTP达到更高要求的精确度。
2 NS环境下精确时钟同步协议的仿真方案
2.1 NS仿真机制
NS仿真通常是在Linux或Windows这样的通用的操作系统平台实现的上,用到C++编译器。我们进行仿真前,首先要分析涉及仿真的哪一个层次。NS仿真分为两个层次:一是基于OTcl编程的配置、构造层次,利用NS已有的网络仿真元素实现仿真,无需对NS本身进行任何修改,只要编写OTcl仿真脚本。另一个是基于C++和OTcl编程的编译、配置层次,如果NS中没有所需的仿真元素,用户可通过NS提供的用户自我升级或修改协议的技术,利用OTcl和NS的接口类实现NS的更新[3]。NS仿真工作机制如图2所示。
2.2 仿真实现方案
通过上文的分析,我们决定采用新构造一个NS的Agent(PtpAgent)来实现对PTP协议的仿真[4]。PtpAgent的功能模块可分为两大类:作为Master Clock端和作为Slave Clock端,我们此次实验的系统方案如下图3所示。
其中节点0作为Master Clock,节点1作为Slave Clock,在两个节点之上都搭建的PtpAgent,两节点之间采用双向链路连接。节点0作为Master一端发送Sync报文,Follow_Up报文,接收Delay_Req报文以及发送Delay_Resp报文;节点1作为Slave一端接收Sync报文,Follow_Up报文,发送Delay_Req报文以及接收Delay_Resp报文。
初始参数设置为ts=tm+100s,DRIFT=0.5,仿真时间为100s。
DRIFT为Slave Clock的时钟频率相对于Master Clock时钟频率的快慢。其值为0.5表示Slave Clock的时钟频率为Master Clock时钟频率的1.5倍。
3 NS环境下精确时钟同步协议的仿真实现
为了分析1588协议在各种不同的网络环境下的同步性能,我们特地选取了带宽、时延、噪声三个有代表性的因素来进行实验。
3.1 链路带宽对同步性能的影响及分析
图4是分别在10M和100M带宽的情况下对PTP同步性能的测量结果。其中横坐标是PTP协议校准次数,纵坐标定义为Master Clock与Slave Clock的时间差值。比较两幅图我们可以看到链路带宽这个参数对PTP协议的性能几乎没有什么影响。通过分析PTP协议的原理我们得知,影响PTP同步性能的关键因素还是发送和接收Sync报文,Follow_Up报文,Delay_Req报文以及Delay_Resp报文的时刻是否能精确取得。而我们的仿真系统自然能精确取得产生及接收这些报文的准确时间,因此链路带宽在这一前提下并不会对PTP协议的同步性能产生大的影响。
3.2 链路时延对同步性能的影响及分析
图5是在10Mb带宽,0噪声环境下链路时延分别为2ms和10ms得到的实验数据。
观察上图我们可以发现,链路延时后使得主从时钟偏差延后了1个校准周期,在16个周期来临的时刻才进入到亚微秒级的同步区间。而产生此种变化的原因是链路时延增大后消息在主从时钟之间传递的时间增加了,从而导致校准从时钟时间的步骤增加。
然后我们可以从中看出,尽管系统到达同步的时间增加了,但是并不影响到PTP协议的收敛性及稳定性。因而我们可以得出结论,链路时延对PTP同步性能的影响很小,仅使其到达同步状态的时间稍微增加。
3.3 链路噪声对同步性能的影响及分析
通讯系统中的噪声一般是设备内部自身产生的,如元器件、线路板、自激振荡等。Slave Clock的噪声我们可以理解为时钟特性的非线性。下面的仿真实验结果说明了噪声对时钟同步协议的性能影响。
图6是在10Mb带宽,2ms延时,噪声为noise=10-8正态分布的随机变量干扰后得到的实验数据。
从图中可以看出,在有噪声的情况下PTP协议同样在15次调整的时候进入到亚微秒的收敛区间,但其后由于噪声的干扰,其收敛性不够稳定,但是同步性能仍然能维持在10ns的量级。通过上图我们可以得出结论,PTP协议的抗干扰性能优异,对Slave Clock端的时钟性能要求不高,因此具有十分广泛的应用场景。
4 结束语
以太网同步技术是近年来的研究热点之一,其应用前景十分广泛。IEEE 1588是较为成熟的以太网同步技术之一,所具有的良好同步性能、优异的可扩展性使得其推广极为迅速。本文从分析PTP协议的具体过程开始,提出了PTP协议的实现方案,分析了PTP协议在NS2仿真平台下得到的同步性能。通过所做的工作,可以看出IEEE 1588协议在以太网上具有极佳的同步性能,其同步精度可以达到ns级别,且具有良好的抗噪声能力,因此具有在复杂网络环境下部署的能力,有着极好的发展前景。
[参考文献]
[1]Mills D.Network Time Protocol(version 3)specification,implementation and analysis[S].Network Working Group Report RFC-1305,University of Delaware,1992.
[2]IEEE Std 1588.IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems.2002.
[3]魏蛟龙,肖艳华,张弛.NS体系结构及其扩展[J].计算机仿真,2004(8):181.
[4]Issariyakul,Teerawat,Hossain.Introduction to Network Simulator NS2.Springer,2009.endprint
⑶Slave向Master发送Delay_Req报文,记录下该时刻T3;Master收到该报文时记录下接收时刻T4。
⑷Master向Slave发送Delay_Resp报文,将T4包含在该报文里。
根据T1,T2,T3,T4这4个数据,我们可以计算出
Offset=(Slave time)–(Master time)=[(t2–t1)–(t4–t3)]/2
这就是Master和Slave之间的时刻差值,根据该值我们就可以对Slave时钟进行校准,使之和Master时钟同步。
IEEE1588标准的PTP协议为基于多播技术的标准以太网的实时应用提供了有效的解决方法,它同时使用硬件和软件配合来获得更精确的定时时戳。PTP协议不像NTP局限于应用层,比NTP多一个携带更精确时戳的报文,这些都使得PTP可以比NTP达到更高要求的精确度。
2 NS环境下精确时钟同步协议的仿真方案
2.1 NS仿真机制
NS仿真通常是在Linux或Windows这样的通用的操作系统平台实现的上,用到C++编译器。我们进行仿真前,首先要分析涉及仿真的哪一个层次。NS仿真分为两个层次:一是基于OTcl编程的配置、构造层次,利用NS已有的网络仿真元素实现仿真,无需对NS本身进行任何修改,只要编写OTcl仿真脚本。另一个是基于C++和OTcl编程的编译、配置层次,如果NS中没有所需的仿真元素,用户可通过NS提供的用户自我升级或修改协议的技术,利用OTcl和NS的接口类实现NS的更新[3]。NS仿真工作机制如图2所示。
2.2 仿真实现方案
通过上文的分析,我们决定采用新构造一个NS的Agent(PtpAgent)来实现对PTP协议的仿真[4]。PtpAgent的功能模块可分为两大类:作为Master Clock端和作为Slave Clock端,我们此次实验的系统方案如下图3所示。
其中节点0作为Master Clock,节点1作为Slave Clock,在两个节点之上都搭建的PtpAgent,两节点之间采用双向链路连接。节点0作为Master一端发送Sync报文,Follow_Up报文,接收Delay_Req报文以及发送Delay_Resp报文;节点1作为Slave一端接收Sync报文,Follow_Up报文,发送Delay_Req报文以及接收Delay_Resp报文。
初始参数设置为ts=tm+100s,DRIFT=0.5,仿真时间为100s。
DRIFT为Slave Clock的时钟频率相对于Master Clock时钟频率的快慢。其值为0.5表示Slave Clock的时钟频率为Master Clock时钟频率的1.5倍。
3 NS环境下精确时钟同步协议的仿真实现
为了分析1588协议在各种不同的网络环境下的同步性能,我们特地选取了带宽、时延、噪声三个有代表性的因素来进行实验。
3.1 链路带宽对同步性能的影响及分析
图4是分别在10M和100M带宽的情况下对PTP同步性能的测量结果。其中横坐标是PTP协议校准次数,纵坐标定义为Master Clock与Slave Clock的时间差值。比较两幅图我们可以看到链路带宽这个参数对PTP协议的性能几乎没有什么影响。通过分析PTP协议的原理我们得知,影响PTP同步性能的关键因素还是发送和接收Sync报文,Follow_Up报文,Delay_Req报文以及Delay_Resp报文的时刻是否能精确取得。而我们的仿真系统自然能精确取得产生及接收这些报文的准确时间,因此链路带宽在这一前提下并不会对PTP协议的同步性能产生大的影响。
3.2 链路时延对同步性能的影响及分析
图5是在10Mb带宽,0噪声环境下链路时延分别为2ms和10ms得到的实验数据。
观察上图我们可以发现,链路延时后使得主从时钟偏差延后了1个校准周期,在16个周期来临的时刻才进入到亚微秒级的同步区间。而产生此种变化的原因是链路时延增大后消息在主从时钟之间传递的时间增加了,从而导致校准从时钟时间的步骤增加。
然后我们可以从中看出,尽管系统到达同步的时间增加了,但是并不影响到PTP协议的收敛性及稳定性。因而我们可以得出结论,链路时延对PTP同步性能的影响很小,仅使其到达同步状态的时间稍微增加。
3.3 链路噪声对同步性能的影响及分析
通讯系统中的噪声一般是设备内部自身产生的,如元器件、线路板、自激振荡等。Slave Clock的噪声我们可以理解为时钟特性的非线性。下面的仿真实验结果说明了噪声对时钟同步协议的性能影响。
图6是在10Mb带宽,2ms延时,噪声为noise=10-8正态分布的随机变量干扰后得到的实验数据。
从图中可以看出,在有噪声的情况下PTP协议同样在15次调整的时候进入到亚微秒的收敛区间,但其后由于噪声的干扰,其收敛性不够稳定,但是同步性能仍然能维持在10ns的量级。通过上图我们可以得出结论,PTP协议的抗干扰性能优异,对Slave Clock端的时钟性能要求不高,因此具有十分广泛的应用场景。
4 结束语
以太网同步技术是近年来的研究热点之一,其应用前景十分广泛。IEEE 1588是较为成熟的以太网同步技术之一,所具有的良好同步性能、优异的可扩展性使得其推广极为迅速。本文从分析PTP协议的具体过程开始,提出了PTP协议的实现方案,分析了PTP协议在NS2仿真平台下得到的同步性能。通过所做的工作,可以看出IEEE 1588协议在以太网上具有极佳的同步性能,其同步精度可以达到ns级别,且具有良好的抗噪声能力,因此具有在复杂网络环境下部署的能力,有着极好的发展前景。
[参考文献]
[1]Mills D.Network Time Protocol(version 3)specification,implementation and analysis[S].Network Working Group Report RFC-1305,University of Delaware,1992.
[2]IEEE Std 1588.IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems.2002.
[3]魏蛟龙,肖艳华,张弛.NS体系结构及其扩展[J].计算机仿真,2004(8):181.
[4]Issariyakul,Teerawat,Hossain.Introduction to Network Simulator NS2.Springer,2009.endprint
⑶Slave向Master发送Delay_Req报文,记录下该时刻T3;Master收到该报文时记录下接收时刻T4。
⑷Master向Slave发送Delay_Resp报文,将T4包含在该报文里。
根据T1,T2,T3,T4这4个数据,我们可以计算出
Offset=(Slave time)–(Master time)=[(t2–t1)–(t4–t3)]/2
这就是Master和Slave之间的时刻差值,根据该值我们就可以对Slave时钟进行校准,使之和Master时钟同步。
IEEE1588标准的PTP协议为基于多播技术的标准以太网的实时应用提供了有效的解决方法,它同时使用硬件和软件配合来获得更精确的定时时戳。PTP协议不像NTP局限于应用层,比NTP多一个携带更精确时戳的报文,这些都使得PTP可以比NTP达到更高要求的精确度。
2 NS环境下精确时钟同步协议的仿真方案
2.1 NS仿真机制
NS仿真通常是在Linux或Windows这样的通用的操作系统平台实现的上,用到C++编译器。我们进行仿真前,首先要分析涉及仿真的哪一个层次。NS仿真分为两个层次:一是基于OTcl编程的配置、构造层次,利用NS已有的网络仿真元素实现仿真,无需对NS本身进行任何修改,只要编写OTcl仿真脚本。另一个是基于C++和OTcl编程的编译、配置层次,如果NS中没有所需的仿真元素,用户可通过NS提供的用户自我升级或修改协议的技术,利用OTcl和NS的接口类实现NS的更新[3]。NS仿真工作机制如图2所示。
2.2 仿真实现方案
通过上文的分析,我们决定采用新构造一个NS的Agent(PtpAgent)来实现对PTP协议的仿真[4]。PtpAgent的功能模块可分为两大类:作为Master Clock端和作为Slave Clock端,我们此次实验的系统方案如下图3所示。
其中节点0作为Master Clock,节点1作为Slave Clock,在两个节点之上都搭建的PtpAgent,两节点之间采用双向链路连接。节点0作为Master一端发送Sync报文,Follow_Up报文,接收Delay_Req报文以及发送Delay_Resp报文;节点1作为Slave一端接收Sync报文,Follow_Up报文,发送Delay_Req报文以及接收Delay_Resp报文。
初始参数设置为ts=tm+100s,DRIFT=0.5,仿真时间为100s。
DRIFT为Slave Clock的时钟频率相对于Master Clock时钟频率的快慢。其值为0.5表示Slave Clock的时钟频率为Master Clock时钟频率的1.5倍。
3 NS环境下精确时钟同步协议的仿真实现
为了分析1588协议在各种不同的网络环境下的同步性能,我们特地选取了带宽、时延、噪声三个有代表性的因素来进行实验。
3.1 链路带宽对同步性能的影响及分析
图4是分别在10M和100M带宽的情况下对PTP同步性能的测量结果。其中横坐标是PTP协议校准次数,纵坐标定义为Master Clock与Slave Clock的时间差值。比较两幅图我们可以看到链路带宽这个参数对PTP协议的性能几乎没有什么影响。通过分析PTP协议的原理我们得知,影响PTP同步性能的关键因素还是发送和接收Sync报文,Follow_Up报文,Delay_Req报文以及Delay_Resp报文的时刻是否能精确取得。而我们的仿真系统自然能精确取得产生及接收这些报文的准确时间,因此链路带宽在这一前提下并不会对PTP协议的同步性能产生大的影响。
3.2 链路时延对同步性能的影响及分析
图5是在10Mb带宽,0噪声环境下链路时延分别为2ms和10ms得到的实验数据。
观察上图我们可以发现,链路延时后使得主从时钟偏差延后了1个校准周期,在16个周期来临的时刻才进入到亚微秒级的同步区间。而产生此种变化的原因是链路时延增大后消息在主从时钟之间传递的时间增加了,从而导致校准从时钟时间的步骤增加。
然后我们可以从中看出,尽管系统到达同步的时间增加了,但是并不影响到PTP协议的收敛性及稳定性。因而我们可以得出结论,链路时延对PTP同步性能的影响很小,仅使其到达同步状态的时间稍微增加。
3.3 链路噪声对同步性能的影响及分析
通讯系统中的噪声一般是设备内部自身产生的,如元器件、线路板、自激振荡等。Slave Clock的噪声我们可以理解为时钟特性的非线性。下面的仿真实验结果说明了噪声对时钟同步协议的性能影响。
图6是在10Mb带宽,2ms延时,噪声为noise=10-8正态分布的随机变量干扰后得到的实验数据。
从图中可以看出,在有噪声的情况下PTP协议同样在15次调整的时候进入到亚微秒的收敛区间,但其后由于噪声的干扰,其收敛性不够稳定,但是同步性能仍然能维持在10ns的量级。通过上图我们可以得出结论,PTP协议的抗干扰性能优异,对Slave Clock端的时钟性能要求不高,因此具有十分广泛的应用场景。
4 结束语
以太网同步技术是近年来的研究热点之一,其应用前景十分广泛。IEEE 1588是较为成熟的以太网同步技术之一,所具有的良好同步性能、优异的可扩展性使得其推广极为迅速。本文从分析PTP协议的具体过程开始,提出了PTP协议的实现方案,分析了PTP协议在NS2仿真平台下得到的同步性能。通过所做的工作,可以看出IEEE 1588协议在以太网上具有极佳的同步性能,其同步精度可以达到ns级别,且具有良好的抗噪声能力,因此具有在复杂网络环境下部署的能力,有着极好的发展前景。
[参考文献]
[1]Mills D.Network Time Protocol(version 3)specification,implementation and analysis[S].Network Working Group Report RFC-1305,University of Delaware,1992.
[2]IEEE Std 1588.IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems.2002.
[3]魏蛟龙,肖艳华,张弛.NS体系结构及其扩展[J].计算机仿真,2004(8):181.
[4]Issariyakul,Teerawat,Hossain.Introduction to Network Simulator NS2.Springer,2009.endprint