时间戳获取方法及装置、计算机可读存储介质、终端制造方法及图纸

技术编号:37415321 阅读:16 留言:0更新日期:2023-04-30 09:39
一种时间戳获取方法及装置、计算机可读存储介质、终端,所述方法包括:确定接收到的多帧原始数据帧,每帧原始数据帧中包含原始数据、所述原始数据的标识信息以及接收所述原始数据的时间戳;根据所述原始数据的标识信息和数据长度,对各帧所述原始数据帧中的原始数据进行重组,以确定一条或多条重组数据;对各条所述重组数据进行解析,以确定多条目标业务数据,其中,每条目标业务数据归属于一条或多条所述原始数据;确定每条目标业务数据中的预设字节所属的原始数据,并将接收该所属的原始数据的时间戳作为接收所述目标业务数据的时间戳。上述方案可以从数据链路层的原始数据帧中,精准提取目标业务数据以及接收所述目标业务数据的时间戳。务数据的时间戳。务数据的时间戳。

【技术实现步骤摘要】
时间戳获取方法及装置、计算机可读存储介质、终端


[0001]本专利技术实施例涉及计算机
,尤其涉及一种时间戳获取方法及装置、计算机可读存储介质、终端。

技术介绍

[0002]在一些特定的数据传输场景中,获取计算机或服务器接收网络数据包的准确时间戳具有重要价值。以证券期货行业的实际业务场景为例,交易竞价原则是价格优先、时间优先,即同等价格下,先到先得。证券交易竞争的本质是时延的竞争。先一步的行情数据获取,成为证券市场的决胜点。因此,对于券商的行情系统,延迟指标(例如,获取行情数据的时延)是其性能指标中的重要一项,低延迟的行情系统的设计、建设和后期监控优化等,都离不开精准而科学的时延度量。
[0003]要确定行情系统的时延,不可避免涉及的问题是如何准确还原抓包格式或其他交换机格式的数据文件为目标业务数据(例如,行情数据),尤其是如何精准获取行情系统接收行情数据的时间戳。在实际应用中,该时间戳可以包括行情系统中不同程序节点、终端设备或硬件设备接收行情数据的软件时间戳(例如,计算机操作系统时间戳)或硬件时间戳(例如,交换机或网卡的硬件时间戳)。
[0004]然而,现有技术中,对于面向数据流的数据传输场景,例如,基于TCP协议进行数据传输的行情系统,尚缺乏从原始数据帧(该原始数据帧主要指的是数据链路层的原始数据帧(Frame))中精准提取出所需的行情数据并获取各条行情数据的时间戳的有效方案。

技术实现思路

[0005]本专利技术实施例解决的技术问题是如何从网络数据包中精准提取目标业务数据以及接收所述目标业务数据的时间戳。
[0006]为实现上述目的,本专利技术实施例提供一种时间戳获取方法,包括以下步骤:确定接收到的多帧原始数据帧,每帧原始数据帧中包含原始数据、所述原始数据的标识信息以及接收所述原始数据的时间戳;根据所述原始数据的标识信息和数据长度,对各帧所述原始数据帧中的原始数据进行重组,以确定一条或多条重组数据;对各条所述重组数据进行解析,以确定多条目标业务数据,其中,每条目标业务数据归属于一条或多条所述原始数据;确定每条目标业务数据中的预设字节所属的原始数据,并将接收该所属的原始数据的时间戳作为接收所述目标业务数据的时间戳。
[0007]可选的,所述确定接收到多帧原始数据帧,包括:对接收到的数据进行抓包,得到多个抓包文件;基于预设的源IP地址、目标IP地址以及目标端口标识,对所述多个抓包文件进行过滤处理,得到待解析抓包文件;对所述待解析抓包文件进行文件格式分析,以确定多帧所述原始数据帧。
[0008]可选的,所述原始数据为TCP数据,所述原始数据的标识信息为TCP序列号;根据所述原始数据的标识信息和数据长度,对各帧所述原始数据帧中的原始数据进行重组,以确
定一条或多条重组数据,包括:对各帧所述原始数据帧中的原始数据,依照所述原始数据的TCP序列号从小至大的顺序,对所述原始数据进行排序,得到排序后的原始数据;采用排序后的第一条原始数据的TCP序列号和数据长度之和,与第二条原始数据的TCP序列号进行比较,当所述第一条原始数据的TCP序列号和数据长度之和大于等于第二条原始数据的TCP序列号时,对第一条原始数据和第二条原始数据进行拼接,以得到第一条拼接数据;继续采用排序后的第n

1条原始数据的TCP序列号和数据长度之和,与第n条原始数据的TCP序列号进行比较,当所述第n

1条原始数据的TCP序列号和数据长度之和大于等于第n条原始数据的TCP序列号时,对第n

1条拼接数据和第n条原始数据进行拼接,以得到第n条拼接数据,直至第N

1条原始数据的TCP序列号和数据长度之和小于第N条原始数据的TCP序列号时,采用第N

1条拼接数据作为单条重组数据;其中,n、N为正整数,且1<n<N。
[0009]可选的,每当第n

1条原始数据的TCP序列号和数据长度之和等于第n条原始数据的TCP序列号时,对第n

1条拼接数据和第n条原始数据直接进行拼接,得到第n条拼接数据;其中,n、N为正整数,且1<n<N。
[0010]可选的,每当第n

1条原始数据的TCP序列号和数据长度之和大于第n条原始数据的TCP序列号时,确定第n

1条原始数据与第n条原始数据的交集,截取掉第n条原始数据中的所述交集,并对第n

1条拼接数据和截取后的第n条原始数据进行拼接,得到拼接数据;其中,n、N为正整数,且1<n<N。
[0011]可选的,所述重组数据存储于缓存中;所述确定每条目标业务数据中的预设字节所属的原始数据,包括:确定所述目标业务数据中的预设字节的缓存地址;自所述重组数据的缓存首地址起,逐个判断所述重组数据中的每条原始数据的结束地址是否大于等于所述缓存地址;当存在结束地址大于等于所述缓存地址时,将所述结束地址所属的原始数据,作为所述目标业务数据中的预设字节所属的原始数据。
[0012]可选的,所述预设字节为所述目标业务数据的首个字节。
[0013]本专利技术实施例还提供一种时间戳获取装置,包括:原始数据帧确定模块,用于确定接收到的多帧原始数据帧,每帧原始数据帧中包含原始数据、所述原始数据的标识信息以及接收所述原始数据的时间戳;数据重组模块,用于根据所述原始数据的标识信息和数据长度,对各帧所述原始数据帧中的原始数据进行重组,以确定一条或多条重组数据;目标业务数据确定模块,用于对各条所述重组数据进行解析,以确定多条目标业务数据,其中,每条目标业务数据归属于一条或多条所述原始数据;时间戳确定模块,用于确定每条目标业务数据中的预设字节所属的原始数据,并将接收该所属的原始数据的时间戳作为接收所述目标业务数据的时间戳。
[0014]本专利技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述时间戳获取方法的步骤。
[0015]本专利技术实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述时间戳获取方法的步骤。
[0016]与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:
[0017]本专利技术实施例提供一种时间戳获取方法,根据接收到的多帧原始数据帧中包含的原始数据的标识信息和数据长度,对各条原始数据进行重组,确定一条或多条重组数据;然
后对各条重组数据进行解析,得到多条目标业务数据;再确定每条目标业务数据中的预设字节所属的原始数据,并将接收该所属的原始数据的时间戳作为接收所述目标业务数据的时间戳。
[0018]由于数据传输中的粘包、分包等原因,导致单帧原始数据帧中可能包含一条或多条目标业务数据,也要可能包含一条目标业务数据的一部分,且还可能因传输协议本身的特点(例如面向数据流的TCP协议)或网络传输的各种因素,导致本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种时间戳获取方法,其特征在于,包括:确定接收到的多帧原始数据帧,每帧原始数据帧中包含原始数据、所述原始数据的标识信息以及接收所述原始数据的时间戳;根据所述原始数据的标识信息和数据长度,对各帧所述原始数据帧中的原始数据进行重组,以确定一条或多条重组数据;对各条所述重组数据进行解析,以确定多条目标业务数据,其中,每条目标业务数据归属于一条或多条所述原始数据;确定每条目标业务数据中的预设字节所属的原始数据,并将接收该所属的原始数据的时间戳作为接收所述目标业务数据的时间戳。2.根据权利要求1所述的方法,其特征在于,所述确定接收到多帧原始数据帧,包括:对接收到的数据进行抓包,得到多个抓包文件;基于预设的源IP地址、目标IP地址以及目标端口标识,对所述多个抓包文件进行过滤处理,得到待解析抓包文件;对所述待解析抓包文件进行文件格式分析,以确定多帧所述原始数据帧。3.根据权利要求1所述的方法,其特征在于,所述原始数据为TCP数据,所述原始数据的标识信息为TCP序列号;根据所述原始数据的标识信息和数据长度,对各帧所述原始数据帧中的原始数据进行重组,以确定一条或多条重组数据,包括:对各帧所述原始数据帧中的原始数据,依照所述原始数据的TCP序列号从小至大的顺序,对所述原始数据进行排序,得到排序后的原始数据;采用排序后的第一条原始数据的TCP序列号和数据长度之和,与第二条原始数据的TCP序列号进行比较,当所述第一条原始数据的TCP序列号和数据长度之和大于等于第二条原始数据的TCP序列号时,对第一条原始数据和第二条原始数据进行拼接,以得到第一条拼接数据;继续采用排序后的第n

1条原始数据的TCP序列号和数据长度之和,与第n条原始数据的TCP序列号进行比较,当所述第n

1条原始数据的TCP序列号和数据长度之和大于等于第n条原始数据的TCP序列号时,对第n

1条拼接数据和第n条原始数据进行拼接,以得到第n条拼接数据,直至第N

1条原始数据的TCP序列号和数据长度之和小于第N条原始数据的TCP序列号时,采用第N

1条拼接数据作为单条重组数据;其中,n、N为正整数,且1<n<N。4.根据权利要求3所述的方法,其特征在于,每当第n

1条...

【专利技术属性】
技术研发人员:戴海波高文茂史奇磊胡曜晖王晓平
申请(专利权)人:海通证券股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1