基于FPGA的证券行情TCP应用层报文处理方法与流程

文档序号:23011437发布日期:2020-11-20 12:10阅读:202来源:国知局

本发明属于金融行业网络协议领域,涉及一种基于fpga的证券行情tcp应用层报文处理方法。



背景技术:

随着我国金融市场进一步与国际接轨,量化交易,高频交易等工具越来越多的应用到金融从业者的策略方案中。

传统的计算机策略虽然具有准确性,稳定性和及时性等特点,但是随着从业人员对交易延迟性的要求,交易系统的延迟指标一直是对该系统评估的重要指标。

tcp协议的解析一般是通过操作系统的tcp协议栈进行,解析完毕后还需要根据应用层协议的规则进行组包和解析,此过程在计算机中会存在大量的时间延迟。



技术实现要素:

1、所要解决的技术问题:

现有的tcp协议的解析完毕后还需要根据应用层协议的规则进行组包和解析,此过程在计算机中会存在大量的时间延迟。

2、技术方案:

为了解决以上问题,本发明提供了一种基于fpga(fieldprogrammablegatearray现场可编程逻辑门阵列)的证券行情tcp应用层报文处理方法,包括以下步骤:步骤1,接收到应用层协议的报文,设所述报文的报文头数为x,确定所述应用层协议的报文长度在报文字节流中的位置;步骤2:记长度在报文中的文字节流中的位置为n,收到的报文字节首先放入长度字节寄存器中,当长度字节寄存器中的字节数大于等于n时停止;步骤3:将报文长度计算出来,并将n个字节输出,标记数据开始,记录此时的存入ram的地址:如果长度字节寄存器中还有数据,则将数据直接输出;步骤4:直到报文长度减少到0,首先将最后几个字节的数据进行输出并标记数据结束,将完整报文个数加1,再将剩下的数据放到长度字节寄存器中用于长度判定,重复步骤2,依次循环。

在步骤2中,所述长度字节寄存器的字节数为n+x-1。

在实施例中,所述x的值为8。

在步骤3中,根据报文长度取数据,将输入的数据直接输出。

在步骤3中,如果遇到tcp数据结束,并且此时有错误信号,则将ram地址清0,返回步骤1,没有错误信号则跳转步骤4。

3、有益效果:

本发明提供的基于fpga的证券行情tcp应用层报文处理方法所需要的延迟仅仅根据报文的长度所决定,延时低而且功耗也低。

具体实施方式

下面结合实施例来对本发明进行详细说明。

一种基于fpga的证券行情tcp应用层报文处理方法,步骤1,接收到应用层协议的报文,设所述报文的报文头数为x,确定所述应用层协议的报文长度在报文字节流中的位置;步骤2:记长度在报文中的文字节流中的位置为n,收到的报文字节首先放入长度字节寄存器中,当长度字节寄存器中的字节数大于等于n时停止;步骤3:此时长度字节寄存器中的数据已经包含了一个报文头,将报文长度计算出来,并将n个字节输出,标记数据开始,记录此时的存入ram的地址,如果长度字节寄存器中还有数据,根据报文长度取数据,将输入的数据直接输出;如果遇到tcp数据结束,并且此时有错误信号,则将ram地址清0,返回步骤1,没有错误信号则跳转步骤4;步骤4:直到报文长度减少到0,首先将最后几个字节的数据进行输出并标记数据结束,将完整报文个数加1,再将剩下的数据放到长度字节寄存器中用于长度判定,重复步骤2,依次循环。

实施例

以ftd(期货互换数据协议)协议为例,ftd协议的报文头是8个字节,0200_00c7_0100_044c这是一个标准的ftd报文头,0200_00c7是报文长度,所以这里的n等于4。这里需要一个4+8-1字节的长度字节寄存器缓存,当收到的字节在长度字节寄存器中大于4个字节的时候,提取长度,此时长度为c7,也就是十进制的199;先将长度字节寄存器中前四个字节,也就是0200_00c7输出,标记为数据开始,之后再将长度字节寄存器中剩余的数据输出;后面的数据直接从接口读入再输出,直到报文长度从199减少到0,将最后一组数据输出,假设下一组数据紧跟在刚刚处理完毕的报文后面,并且有6个字节的报文头;将这6个字节放入长度字节寄存器中,依次循环。

虽然本发明已以较佳实施例公开如上,但它们并不是用来限定本发明的,任何熟习此技艺者,在不脱离本发明之精神和范围内,自当可作各种变化或润饰,因此本发明的保护范围应当以

本技术:
的权利要求保护范围所界定的为准。



技术特征:

1.一种基于fpga的证券行情tcp应用层报文处理方法,包括以下步骤:步骤1,接收到应用层协议的报文,设所述报文的报文头数为x,确定所述应用层协议的报文长度在报文字节流中的位置;步骤2:记长度在报文中的文字节流中的位置为n,收到的报文字节首先放入长度字节寄存器中,当长度字节寄存器中的字节数大于等于n时停止;步骤3:将报文长度计算出来,并将n个字节输出,标记数据开始,记录此时的存入ram的地址:如果长度字节寄存器中还有数据,则将数据直接输出;步骤4:直到报文长度减少到0,首先将最后几个字节的数据进行输出并标记数据结束,将完整报文个数加1,再将剩下的数据放到长度字节寄存器中用于长度判定,重复步骤2,依次循环。

2.如权利要求1所述的方法,其特征在于:在步骤2中,所述长度字节寄存器的字节数为n+x-1。

3.如权利要求1或2所述的方法,其特征在于:所述x的值为8。

4.如权利要求1或2所述的方法,其特征在于:在步骤3中,根据报文长度取数据,将输入的数据直接输出。

5.如权利要求4所述的方法,其特征在于:在步骤3中,如果遇到tcp数据结束,并且此时有错误信号,则将ram地址清0,返回步骤1,没有错误信号则跳转步骤4。


技术总结
一种基于FPGA的证券行情TCP应用层报文处理方法,包括以下步骤:步骤1,接收到报文,确定所述应用层协议的报文长度在报文字节流中的位置;步骤2:收到的报文字节放入长度字节寄存器中,当长度字节寄存器中的字节数大于等于N时停止;步骤3:将报文长度计算出来,并将N个字节输出,标记数据开始,如果长度字节寄存器中还有数据,则将数据直接输出;步骤4:直到报文长度减少到0,首先将最后几个字节的数据进行输出并标记数据结束,将完整报文个数加1,再将剩下的数据放到长度字节寄存器中用于长度判定,重复步骤2,依次循环。本发明提供的基于FPGA的证券行情TCP应用层报文处理方法所需要的延迟仅仅根据报文的长度所决定,延时低而且功耗也低。

技术研发人员:秦轶轩;夏滢
受保护的技术使用者:南京艾科朗克信息科技有限公司
技术研发日:2020.08.19
技术公布日:2020.11.20
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1