用于时延测试的分布式机箱板卡间时钟同步系统及方法与流程

文档序号:22749623发布日期:2020-10-31 09:42阅读:239来源:国知局
用于时延测试的分布式机箱板卡间时钟同步系统及方法与流程

本发明属于数据网络通信技术领域,具体涉及一种用于时延测试的分布式机箱板卡间时钟同步系统及方法。



背景技术:

网络设备时延测试时将发送时间减去接受时间的计算时间间隔,存储转发或直通交换的时延单位数量级都很小,实际测试时对测试设备的时钟要求较高,因此要求发送端和接收端必须有精确的时钟同步。对于单板卡的机箱,发送和接收可以使用相同的时钟源,不需要进行时钟同步。在分布式机箱中,发送端和接收端可能位于不同的板卡中,因此就需要不同的板卡必须要精确的时钟同步。

ptp(precisiontimeprotocol)协议是ieee-1588中定义的一种精密时钟同步协议,ptp协议主要针对于相对本地化和网络化的系统,子网较好,内部组件相对稳定的环境设计的。由于ptp协议实现简单,占用的网络和计算资源少等优点使其广泛应用于分布式系统中。

ptp协议可以采用硬件实现,也可以采用软件实现。当采用硬件实现时可以达到纳秒级的精度,采用软件实现时通常可以达到毫秒级的精度。当在网络中采用软件实现亚毫秒的精度时,存在多种因素的影响造成了时间同步的不可靠。包括网络的不平稳性、网卡对信息包的缓存效应以及操作系统进程调度的影响,这些因素通常不可预测并且无法控制,造成时钟同步最终的失效,从而导致测试出的时延误差较大。



技术实现要素:

本发明的目的是为了解决现有时钟同步方法不足的问题,提出了一种用于时延测试的分布式机箱板卡间时钟同步系统及方法。

本发明的技术方案是:一种用于时延测试的分布式机箱板卡间时钟同步系统包括n块板卡、机箱交换网络和seders;

n块板卡通过seders和机箱交换网络通信连接;每块板卡之间均通过分布式机箱内部网络通信连接。

本发明的有益效果是:本分布式机箱结构包括多块板卡,板卡间通过机箱内部交换网络互联,板卡和机箱交换网络之间通过seders相连。网卡芯片中包含精度大于微秒级的网卡时钟,同时该时钟支持时钟校准功能,为分布式机箱中的各个板卡提供高精度的同步时钟,为网络设备时延测试提供精度保障。

进一步地,每块板卡的内部结构相同,均包括cpu和网卡芯片;cpu内置cpu时钟;网卡芯片支持ieee1588协议且内置网卡时钟;

cpu和网卡芯片通信连接;网卡芯片通过seders和机箱交换网络通信连接。

上述进一步方案的有益效果是:在本发明中,分布式机箱中各个板卡的cpu上可运行时钟同步程序,主板卡和从板卡之间用于进行时钟同步。

基于以上系统,本发明还提出一种用于时延测试的分布式机箱板卡间时钟同步方法,包括以下步骤:

s1:对各个板卡的时钟同步程序进行协商,确定主板卡和从板卡;

s2:对主cpu时钟和主网卡时钟进行校准;

s3:将校准后的主cpu时钟和主网卡时钟进行同步;

s4:对主网卡时钟和从网卡时钟进行校准;

s5:将校准后的主网卡时钟和从网卡时钟进行同步;

s6:对主cpu时钟和从cpu时钟进行同步,完成分布式机箱板卡间时钟同步。

本发明的有益效果是:本发明提出的时钟同步方法消除了采用软件时钟同步方法时网络的不平稳性、网卡对信息包的缓存效应以及操作系统进程调度等对时钟同步精度的影响,为网络设备时延测试提供了十微妙级别的高精度时钟。

进一步地,步骤s1中,主板卡内设置有主cpu时钟和主网卡时钟,从板卡内设置有从cpu时钟和从网卡时钟。

进一步地,步骤s2包括以下子步骤:

s21:将主网卡的时钟计数器清零,完成主网卡时钟的初始化;

s22:通过汇编指令读取主cpu时钟的第一时间戳t1和初始化后主网卡时钟的第一时间戳t2;

s23:在间隔10μs后,通过汇编指令再次读取主cpu时钟的第二时间戳t3和主网卡时钟的第二时间戳t4;

s23:根据主cpu时钟的第一时间戳为t1、主网卡时钟的第一时间戳为t2、主cpu时钟的第二时间戳为t3和主网卡时钟的第二时间戳为t4计算主cpu时钟和主网卡时钟的偏差值t,其计算公式为:

t=[(t3-t1)-(t4-t2)]/(t3-t1);

s24:将主cpu时钟和主网卡时钟的偏差值t写入校准寄存器,完成主cpu时钟和主网卡时钟的校准。

进一步地步骤s3中,同步校准后的主cpu时钟和主网卡时钟的方法为:读取主cpu的时间戳,并将其写入主网卡时钟计数器中,完成主cpu时钟和主网卡时钟的同步。

上述进一步方案的有益效果是:在本发明中,使用cpu上的软件时钟同步程序读取主cpu的时间戳,主cpu时钟和主网卡时钟对于时钟同步程序来说都是可以直接访问的,便于完成其同步。

进一步地,步骤s4包括以下子步骤:

s41:利用主板卡向从板卡发送ptpsync报文,并记录第一发送时间戳t5;

s42:利用从板卡接收ptpsync报文,并记录第一接收时间戳t6;

s43:利用主板卡向从板卡发送携带有第一发送时间戳t5的ptpfollow_up报文;

s44:利用从板卡接收ptpfollow_up报文,并保存ptpfollow_up报文的第一发送时间戳t5;

s45:利用主板卡再次向从板卡发送ptpsync报文,并记录再次发送时间戳t7;

s46:利用从板卡再次接收ptpsync报文,并记录再次接收时间戳t8;

s47:利用主板卡再次向从板卡发送携带有再次发送时间戳t7的ptpfollow_up报文;

s48:利用从板卡再次接收ptpfollow_up报文,并保存ptpfollow_up报文的再次接收时间戳t8;

s49:根据第一发送时间戳t5、第一接收时间戳t6、再次发送时间戳t7和再次接收时间戳t8计算主从网卡时钟的第一偏差值t′,其计算公式为:

t′=[(t7-t5)-(t8-t6)]/(t7-t5);

s410:将主从网卡时钟的第一偏差值t′写入从网卡校准寄存器,完成主网卡时钟和从网卡时钟的校准。

上述进一步方案的有益效果是:在本发明中,从板卡得到了t1、t2、t3和t4四个时间戳,(t3–t1)–(t4–t2)即为从网卡时钟在(t3–t1)时间内与主网卡时钟的偏差值,便于完成主从网卡时钟的校准。本发明中设计主从板卡进行报文交互时,报文的收发时间戳都是在网卡芯片中记录的,这样做消除了网卡对信息包的缓存效应以及操作系统进程调度的影响,极大的提升了时钟同步的精度。

进一步地,步骤s5包括以下子步骤:

s51:利用主板卡向从板卡发送ptpsync报文,并记录第二发送时间戳t9;

s52:利用从板卡接收ptpsync报文,并记录第二接收时间戳t10;

s53:利用主板卡向从板卡发送携带了第二发送时间戳t9的ptpfollow_up报文;

s54:利用从板卡接收ptpfollow_up报文,并保存ptpfollow_up报文的第发送二时间戳t9;

s55:利用从板卡发送ptpdelay报文,并记录第三发送时间戳t11;

s56:利用主板卡接收ptpdelay报文,并记录第三接收时间戳t12;

s57:利用主板卡向从板卡发送携带了第三接收时间戳t12的ptpdelay_req报文;

s58:利用从板卡接收ptpdelay_req报文,保存ptpdelay_req报文中的第三接收时间戳t12;

s59:根据第二发送时间戳t9、第二接收时间戳t10、第三发送时间戳t11和第三接收时间戳t12计算主从网卡时钟的第二偏移值t'',其计算公式为:

t''=[(t10-t9)-(t11-t12)]/2;

s510:将主从网卡时钟的第二偏移值t''写入从网卡时钟,完成主网卡时钟和从网卡时钟的同步。

进一步地,步骤s6包括以下子步骤:

s61:利用从板卡同时读取从cpu时钟戳t13和从网卡时钟戳t14;

s62:根据cpu时钟戳t13和从网卡时钟戳t14计算主从cpu时钟的偏差值t''',完成主cpu时钟和从cpu时钟的同步,其计算公式为:

t″'=t13-t14。

附图说明

图1为分布式机箱板卡间时钟同步系统的结构图;

图2为分布式机箱板卡间时钟同步方法的流程图;

图3为主从时钟校准的流程图;

图4为主从时钟同步的流程图;

图中,1、板卡;2、机箱交换网络;3、seders。

具体实施方式

下面结合附图对本发明的实施例作进一步的说明。

如图1所示,本发明提供了一种用于时延测试的分布式机箱板卡间时钟同步系统n块板卡1、机箱交换网络2和seders3;

n块板卡1通过seders3和机箱交换网络2通信连接;每块板卡1之间均通过分布式机箱内部网络通信连接。

在本发明实施例中,如图1所示,每块板卡1的内部结构相同,均包括cpu和网卡芯片;cpu内置cpu时钟;网卡芯片支持ieee1588协议且内置网卡时钟;

cpu和网卡芯片通信连接;网卡芯片通过seders3和机箱交换网络2通信连接。分布式机箱中各个板卡的cpu上可运行时钟同步程序,主板卡和从板卡之间用于进行时钟同步。

cpu为通用处理器,可以采用intel的志强系列处理器或飞腾ft1500a处理器,cpu上包含精度大于微秒级的cpu时钟,可以采用2ghz的志强处理器,其cpu时钟的精度为0.5纳秒级别。网卡芯片为支持ieee1588和seders接口的千兆以太网网卡芯片,网卡芯片中包含精度大于微秒级的网卡时钟,可以采用inteli350或intel82580等网卡芯片,同时该时钟支持时钟校准功能。机箱中各个板卡的cpu上运行时钟同步程序,首先各个板卡上的时钟同步程序进行协商,其中一块板卡协商为主板卡,其余板卡协商为从板卡。主板卡分别与所有从板卡进行时钟同步,同步完成后,所有的板卡时钟即为同步的时钟。所有板卡使用板卡上的cpu时钟为板卡时钟。

基于以上系统,本发明还提出一种用于时延测试的分布式机箱板卡间时钟同步方法,如图2所示,包括以下步骤:

s1:对各个板卡的时钟同步程序进行协商,确定主板卡和从板卡;

s2:对主cpu时钟和主网卡时钟进行校准;

s3:将校准后的主cpu时钟和主网卡时钟进行同步;

s4:对主网卡时钟和从网卡时钟进行校准;

s5:将校准后的主网卡时钟和从网卡时钟进行同步;

s6:对主cpu时钟和从cpu时钟进行同步,完成分布式机箱板卡间时钟同步。

在本发明实施例中,如图3所示,步骤s1中,主板卡内设置有主cpu时钟和主网卡时钟,从板卡内设置有从cpu时钟和从网卡时钟。

在本发明实施例中,如图3所示,步骤s2包括以下子步骤:

s21:将主网卡的时钟计数器清零,完成主网卡时钟的初始化;

s22:通过汇编指令读取主cpu时钟的第一时间戳t1和初始化后主网卡时钟的第一时间戳t2;

s23:在间隔10μs后,通过汇编指令再次读取主cpu时钟的第二时间戳t3和主网卡时钟的第二时间戳t4;

s23:根据主cpu时钟的第一时间戳为t1、主网卡时钟的第一时间戳为t2、主cpu时钟的第二时间戳为t3和主网卡时钟的第二时间戳为t4计算主cpu时钟和主网卡时钟的偏差值t,其计算公式为:

t=[(t3-t1)-(t4-t2)]/(t3-t1);

s24:将主cpu时钟和主网卡时钟的偏差值t写入校准寄存器,完成主cpu时钟和主网卡时钟的校准。

在本发明实施例中,如图4所示,步骤s3中,同步校准后的主cpu时钟和主网卡时钟的方法为:读取主cpu的时间戳,并将其写入主网卡时钟计数器中,完成主cpu时钟和主网卡时钟的同步。在本发明中,使用cpu上的软件时钟同步程序读取主cpu的时间戳,主cpu时钟和主网卡时钟对于时钟同步程序来说都是可以直接访问的,便于完成其同步。

在本发明实施例中,如图2所示,步骤s4包括以下子步骤:

s41:利用主板卡向从板卡发送ptpsync报文,并记录第一发送时间戳t5;

s42:利用从板卡接收ptpsync报文,并记录第一接收时间戳t6;

s43:利用主板卡向从板卡发送携带有第一发送时间戳t5的ptpfollow_up报文;

s44:利用从板卡接收ptpfollow_up报文,并保存ptpfollow_up报文的第一发送时间戳t5;

s45:利用主板卡再次向从板卡发送ptpsync报文,并记录再次发送时间戳t7;

s46:利用从板卡再次接收ptpsync报文,并记录再次接收时间戳t8;

s47:利用主板卡再次向从板卡发送携带有再次发送时间戳t7的ptpfollow_up报文;

s48:利用从板卡再次接收ptpfollow_up报文,并保存ptpfollow_up报文的再次接收时间戳t8;

s49:根据第一发送时间戳t5、第一接收时间戳t6、再次发送时间戳t7和再次接收时间戳t8计算主从网卡时钟的第一偏差值t′,其计算公式为:

t′=[(t7-t5)-(t8-t6)]/(t7-t5);

s410:将主从网卡时钟的第一偏差值t′写入从网卡校准寄存器,完成主网卡时钟和从网卡时钟的校准。

在本发明中,从板卡得到了t1、t2、t3和t4四个时间戳,(t3–t1)-(t4–t2)即为从网卡时钟在(t3–t1)时间内与主网卡时钟的偏差值,便于完成主从网卡时钟的校准。本发明中设计主从板卡进行报文交互时,报文的收发时间戳都是在网卡芯片中记录的,这样做消除了网卡对信息包的缓存效应以及操作系统进程调度的影响,极大的提升了时钟同步的精度。

在本发明实施例中,如图2所示,步骤s5包括以下子步骤:

s51:利用主板卡向从板卡发送ptpsync报文,并记录第二发送时间戳t9;

s52:利用从板卡接收ptpsync报文,并记录第二接收时间戳t10;

s53:利用主板卡向从板卡发送携带了第二发送时间戳t9的ptpfollow_up报文;

s54:利用从板卡接收ptpfollow_up报文,并保存ptpfollow_up报文的第发送二时间戳t9;

s55:利用从板卡发送ptpdelay报文,并记录第三发送时间戳t11;

s56:利用主板卡接收ptpdelay报文,并记录第三接收时间戳t12;

s57:利用主板卡向从板卡发送携带了第三接收时间戳t12的ptpdelay_req报文;

s58:利用从板卡接收ptpdelay_req报文,保存ptpdelay_req报文中的第三接收时间戳t12;

s59:根据第二发送时间戳t9、第二接收时间戳t10、第三发送时间戳t11和第三接收时间戳t12计算主从网卡时钟的第二偏移值t'',其计算公式为:

t''=[(t10-t9)-(t11-t12)]/2;

s510:将主从网卡时钟的第二偏移值t''写入从网卡时钟,完成主网卡时钟和从网卡时钟的同步。

在本发明实施例中,如图2所示,步骤s6包括以下子步骤:

s61:利用从板卡同时读取从cpu时钟戳t13和从网卡时钟戳t14;

s62:根据cpu时钟戳t13和从网卡时钟戳t14计算主从cpu时钟的偏差值t''',完成主cpu时钟和从cpu时钟的同步,其计算公式为:

t″'=t13-t14。

本发明的工作原理及过程为:分布式机箱中各个板卡的cpu上运行时钟同步程序,首先各个板卡上的时钟同步程序进行协商,其中一块板卡协商为主板卡,其余板卡协商为从板卡。主板卡分别与所有从板卡进行时钟同步,同步完成后,所有的板卡时钟即为同步的时钟。所有板卡使用板卡上的cpu时钟为板卡时钟。主从板卡时钟同步流程主要为:首先对主cpu时钟和主网卡时钟校准,并将主cpu时钟和主网卡时钟进行同步;然后对主网卡时钟和从网卡时钟进行校准,并将主网卡时钟和从网卡时钟进行同步,最后从板卡通过计算从cpu时钟和从网卡时钟的偏移,完成主从cpu时钟的同步。因为cpu时钟频率和标称频率可能存在一定偏差,所以时钟同步需要在一定时间间隔内重复的进行来消除偏差。

本发明的有益效果为:本分布式机箱结构包括多块板卡,板卡间通过机箱内部交换网络互联,板卡和机箱交换网络之间通过seders相连。网卡芯片中包含精度大于微秒级的网卡时钟,同时该时钟支持时钟校准功能,为分布式机箱中的各个板卡提供高精度的同步时钟,为网络设备时延测试提供精度保障。本发明提出的时钟同步方法消除了采用软件时钟同步方法时网络的不平稳性、网卡对信息包的缓存效应以及操作系统进程调度等对时钟同步精度的影响,为网络设备时延测试提供了十微妙级别的高精度时钟。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1