Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于可编程数据平面的精确时间同步方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国传媒大学

摘要:一种基于可编程数据平面的精确时间同步方法涉及时间同步技术领域。本发明的出现是由于在工业自动化、分布式多点同步系统、超高清视音频制播网络等应用场景中,对网络中的时间同步精度非常敏感,这就要求相应的技术以使网络支持更高的时间同步精度。本发明基于可编程数据平面技术,提出了网卡和P4交换机时间同步结合技术,实现了纳秒级的时间同步,并优化了在不同链路条件下的同步精度。此外本发明提出了一个全新的框架:将原有的网卡接收包加速技术与基于数据平面时间同步技术结合,采用机器学习的方法,对取得的同步误差参数进行优化,从而减少同步误差,优化同步模式,从而选择出在不同场景下,最合适的精准时间同步模式。

主权项:1.一种基于可编程数据平面的精确时间同步的方法,其特征在于,包括在可编程数据平面处理数据包;采用DPDK+Lua脚本语言框架来对网卡收发数据包进行加速;采用机器学习的方法对同步延迟,链路延迟进行预测,优化整个同步系统;当从网络交换机生成请求数据包时,请求响应时间轴开始,并在主交换机接收到相应的响应数据包时结束,设计两个主从P4交换机,从交换机向主交换机发送一个同步请求数据包,主交换机收到数据包后会将自己数据平面的时间戳信息写入到同步请求数据包,然后生成响应数据包,发送给从交换机;从交换机收到响应数据包后,提取数据包中携带的时间戳信息,其中包含请求-响应数据包模型中涉及到的各种延迟组件;所述在可编程数据平面对处理数据包括如下步骤:步骤201,部署两台交换机,SW1为从交换机,用于进行时钟的校准,SW2为主交换机,用于确定参考时间;步骤202,主交换机SW2从外部时钟源获得时间戳值TExt,作为当前数据平面从交换机SW1的参考时钟TRefsw,同时把在数据平面SW2内部获得的进入入端口流水线的时间戳TRespIg存入寄存器中,记录当前时间戳为Toffset且Toffset=TRespIg;步骤203,x比特计数器在2^x-1秒的时间段内保持不清零,为了保证获得更长时间来避免计数器清零,需增加一个寄存器,当计数器即将清零的时候,寄存器会记录清零之前的时间,这个时间信息记为Tera;步骤204,在主交换机SW2收到一个同步请求数据包时,会读取从外部获得的时钟源时间戳值TRefsw、所在的时间段对应寄存器的时间戳Tera以及在入端口流水线的时间偏移变量Toffset;步骤205,同时主交换机SW2在出端口流水线时,会读取当前的出端口时间戳TRespEg;步骤206,利用下列公式计算加入参考时间TRefsw后的当前时间戳TNowsw,此时的TNowsw是从入端口流水线的时间戳Toffset开始计算的,则当前的时间戳值为: 步骤207,由于变量TNowsw为了避免出端口队列产生延时,使用出端口流水线TRespEg时间值计算不准确,所以每当交换机收到来自其他交换机的请求包,会重复步骤206利用TRespEg来计算TNowsw变量值;步骤208,从交换机SW1在TReqTx时刻发送请求数据包;请求数据包被主交换机SW2在TReqRx时刻收到;在主交换机SW2会读取从外部获得的时钟源时间戳值TRefsw2;步骤209,在数据平面,主交换机SW2通过执行动作匹配表与流表匹配,将TRefsw2、TReqRx和TRespEg时间变量嵌入到请求数据包中,请求数据包此时作为响应数据包被主交换机发送出去,并重新转发回从交换机SW1;步骤210,从交换机SW1在TRespRx时刻收到响应数据包,重复步骤206,计算出主交换机SW2的当前时间TNowsw2;步骤211,从交换机SW1在TRespIg时刻开始处理响应数据包,此时通过数据平面寄存器,把TRespIg写入到寄存器中,记为Toffset;步骤212,计算当前从交换机的参考时钟,从交换机SW1还需要收到数据包在主交换机时准确的发出时间,因此主交换机SW2后续会发送一个Follow_up包,该数据包中包含所需的主交换机准确发出响应数据包的时间戳,记为TRespTx;步骤213,从交换机SW2获取TRespTx变量值后,利用公式计算总延迟为RespD: 步骤214,所述主交换机SW2的当前时间TNowsw2,和总延迟RespD,可以通过以下公式准确的计算出从交换机SW1的同步时间: 步骤215,重复执行步骤201~步骤214;采用DPDK+Lua脚本语言框架来对网卡收发数据包进行加速,采用DPDK在硬件上对网卡收发数据包进行加速,同时采用Lua脚本语言在软件上实现同步请求包的初始化和发送;采用DPDK+Lua脚本语言框架来对网卡收发数据包进行加速包括如下步骤:步骤301,在主机上安装DPDK,配置大页内存Hugepages,加载内核模块;步骤302,采用Lua脚本语言定义同步请求包,定义数据包发送规则;步骤303,在初始化阶段,当链路中没有交叉流量存在时,主机会先向可编程交换机发送DPTP探测包,从交换机向主机回复各个时间戳TNowsw,TRespRx,TReqTx,TReqRx,TRespTx;TNowsw为当前从交换机时间,TRespRx为响应包到达网卡的时间,TReqTx为主机发送探测包时间,TReqRx为从交换机接收探测包时间,TRespTx为出端口发送响应包时间;步骤304,在初始化阶段,此时链路速率R=0%,根据下列公式计算此时的链路延迟NicWireDelay:NicWireDelay=TRespRx-TReqTx-TRespTx-TReqRx步骤305,在同步阶段,根据下列公式计算出主机的参考时间RespD,TRespTx为交换机发出响应包时间,TRespEg为响应数据包从交换机出端口流水线出来的时间:RespD=OWD+TRespTx-TRespEg步骤306,判断未计算的延迟OWD,若在同步阶段,链路速率R约等于0%,此时OWD=NicWireDelay2,一旦R不为0%,此时的NicWireDelay就会成线性增加,为了保证同步的精准以及主机上的时钟是与交换机同步的,所以需要使用在步骤303初始化阶段空闲链路中计算的NicWireDelay,此时记作AvgNicWireDelay,来计算OWD;按照下列公式计算OWD: 步骤307,利用步骤305和306公式,计算出主机的参考时间RespD,达到主机和可编程交换机同步;步骤308,重复步骤301~步骤307。

全文数据:

权利要求:

百度查询: 中国传媒大学 一种基于可编程数据平面的精确时间同步方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。