一种自适配多级端到端传输行情信息流的方法和装置与流程

文档序号:24495848发布日期:2021-03-30 21:23阅读:93来源:国知局
一种自适配多级端到端传输行情信息流的方法和装置与流程

本发明涉及数据传输技术领域,特别是涉及一种自适配多级端到端提高带宽利用率传输行情信息流的方法及装置。



背景技术:

目前的证券行情主流基本上使用数据流行情来传输实时行情,下级节点按照交易所规定的登录报文格式去登录到交易所的行情网关,交易所行情网关确认登录后会发送一帧确认登录报文到下级节点,下级节点接受到这帧确认登录报文后就可以开始接收实时行情。目前存在行情信息一般都是原始未压缩行情,或者即使压缩也采用单一固定的压缩算法来进行固定上下级解压和压缩,且行情传输一般需要异地跨机房,跨专线等等,且一条专线可能需要很多业务同时使用,对带宽的限制要求很高。同时行情传输对数据延迟也比较高,减小带宽占用必定会增大延迟,但是不同的压缩算法的压缩速度和压缩率呈反比的关系,如果想要延迟减小需要提高压缩速度,提高压缩速度响应的压缩率会降低,带宽增大,如果需要减小带宽则需要提高压缩率,提高压缩率会降低压缩速度。不同的压缩算法的压缩速度和压缩率是不同的,我们可以根据压缩率从小到大分别给他们一个压缩级别1,2,3,4,但是由于可能一个节点可能同时有多个下级节点,且这些节点中包含一些未知的第三方节点,不同下级节点可能需要采用不同的压缩级别,且对于第三方节点会只接收到非压缩后的数据。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种自适配多级端到端传输行情信息流的方法和装置,通过复用交易所规定的标准的登录报文和回复确认登录报文,在登录报文和回复确认登录报文的携带其他信息字段添加压缩级别信息,以提高带宽利用率。

为达上述目的,本发明提出一种自适配多级端到端传输行情信息流的装置,包括:

本地配置单元,用于配置本地配置文件,配置相应的本地压缩级别到所述本地配置文件中;

登录模块单元,用于根据所述本地配置文件中的配置,组装携带压缩级别信息的登录报文发送到上级节点;

接收上级解压缩单元,用于接收上级回复的登录确认报文,从报文中取出上级的压缩级别,并根据压缩级别使用对应的压缩算法解压接收到的数据报文;

接收下级报文单元,用于监听本地端口,接收下级发送的登录报文,以给压缩传输单元建立连接;

压缩传输单元,用于给下级节点回复携带本地压缩级别的确认登录包,并根据登录报文类型选择使用或不使用本地配置的压缩级别配置的压缩算法对所要传送的数据进行压缩,传输到下级节点。

优选地,所述登录模块单元复用交易所规定的标准的登录报文,在所述标准的登录报文的选填信息字段配置本地配置文件中配置的本地压缩级别作为压缩级别字段。

优选地,所述登录模块单元在组装携带压缩级别信息的登录报文时,判断所述本地配置文件中的连接上级判断是否为交易所行情网关,若连接上级为交易所行情网关,则不将本地配置文件中的本地压缩级别配置到所述登录报文的压缩级别字段中,所述登录报文中的压缩级别字段仍然默认为0,若连接上级不是交易所行情网关,则从本地配置文件中获取本地配置的本地压缩级别配置到所述登录报文中的压缩级别字段。

优选地,所述接收上级解压缩单元接收的上级回复的登录确认报文的选填信息字段用于由上级节点告诉下级节点自己的压缩级别字段,根据压缩级别使用对应的压缩算法解压接收到的数据报文。

优选地,若上级为交易所行情网关,则其回复的登录确认报文默认压缩类型为0,代表压缩类型为不压缩,所述接收上级解压缩单元从交易所行情网关接收到的数据不解压,为原始数据,并将数据存入缓存队列;如果上级回复的登录确认报文中的压缩级别字段不为0,则所述接收上级解压缩单元从上级接收到的压缩行情报文选择对应压缩级别的压缩算法进行解压缩,然后把解压缩后的数据存入缓存队列,等待压缩或者直接发送到下级节点。

优选地,所述接收下级报文单元建立一个监听线程,以监听下级节点,接收下级的登录模块单元发送的登录报文。

优选地,所述压缩传输单元根据接收到的下级的登录报文类型,区分下级是本节点类型还是第三方节点类型,选择使用或不使用本地配置的压缩级别配置的压缩算法对所要传送的数据进行压缩,传输到下级节点。

优选地,若为本节点类型则在回复携带本节点压缩级别登录确认包到下级后,采用作为上级的当前节点配置的压缩级别进行压缩后发到下级节点,若为第三方节点,则在回复携带本节点压缩级别登录确认包到下级节点后,不进行压缩,把缓存队列中解压后的原始数据发送到下级节点。

优选地,下级若是本节点类型,则其接收上级解压缩单元根据回复确认包中携带的压缩级别,进行解压,若是第三方节点则回复登录确认包中携带的压缩级别默认被忽略。

为达到上述目的,本发明还提供一种自适配多级端到端传输行情信息流的方法,包括如下步骤:

步骤s1,网关下级节点按照交易所规定的标准登录报文格式进行登录,接收交易所行情网关回复的标准回复确认登录报文,并接收到交易所行情网关发送的原始数据存入缓存队列,等待压缩或者直接发送到下级节点;

步骤s2,下级节点根据本地配置文件中,组装携带压缩级别信息的登录报文发送到上级节点,上级节点根据下级节点的登录报文类型区分下级节点类型,给下级节点回复携带本地压缩级别的确认登录包,选择使用或不使用本地配置的压缩级别配置的压缩算法进行压缩数据,传输到下级节点;

步骤s3,下级节点根据接收到的回复确认包判断是否对接收的数据进行解压处理。

与现有技术相比,本发明一种自适配多级端到端传输行情信息流的装置及方法通过复用交易所规定的标准的登录报文和回复确认登录报文,在登录报文和回复确认登录报文的携带其他信息字段添加压缩级别信息,根据登录报文将本地的压缩级别发送到上级,由上级根据该压缩级别区分是否利用本地配置的压缩算法压缩后发送到下级,根据回复确认登录报文将上级的压缩级别发送到下级,再由下级根据具体压缩级别来进行解压,实现了自适配多级端到端传输行情信息流的目的,提高了系统的带宽利用率。

附图说明

图1为本发明一种自适配多级端到端传输行情信息流的装置的系统架构图;

图2为本发明具体实施例中自适配多级端到端提高带宽利用率传输行情信息流的报文格式字段说明示意图;

图3为本发明一种自适配多级端到端传输行情信息流的方法的步骤流程图;

图4为本发明一实施例之一种自适配多级端到端传输行情信息流的方法的流程图;

图5为本发明实施例中一种自适配多级端到端提高带宽利用率传输行情信息流的完整节点拓扑图;

图6为本发明另一实施例之一种自适配多级端到端传输行情信息流的方法的流程图;

图7为本发明实施例中自适配多级端到端提高带宽利用率传输行情信息流一个节点内部各模块之间调用图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种自适配多级端到端传输行情信息流的装置的系统架构图。如图1所示,本发明一种自适配多级端到端传输行情信息流的装置,应用于各节点,包括:

本地配置单元101,用于配置本地配置文件,根据客户需要的压缩级别配置相应的本地压缩级别到本地配置文件中。

在本发明中,在现有的本地配置文件基础上,根据客户需要的压缩级别填写相应的压缩级别到本地配置文件。一般地,现有的本地配置文件至少会配置有本地节点的连接上级、登录上级节点需要的用户名,密码,ip,端口等信息等,本地配置单元101则在此基础上根据客户需要的压缩级别配置相应的本地压缩级别至本地配置文件中。

登录模块单元102,用于根据本地配置单元101生成的本地配置文件中的配置,组装携带压缩级别信息的登录报文发送到上级节点或交易所网关。

具体地,登录模块单元102根据本地配置文件按照交易所规定的标准登录报文格式,在压缩级别字段添加上本地配置文件中配置的压缩级别生成登录报文发送给上级节点或交易所网关。图2为本发明具体实施例中的登录报文格式字段说明示意图,在本发明具体实施例中,交易所规定的标准登录报文至少包含固定的报文头,用户名,密码,选填信息(默认为0),以及其他字段和报文尾的校验位,在本发明中,登录模块单元102会复用交易所规定的标准的登录报文,在其选填信息字段配置本地配置文件中配置的本地压缩级别作为压缩级别字段。

优选地,登录模块单元102在组装携带压缩级别信息的登录报文时,需根据本地配置文件中的连接上级判断是否为交易所网关,若连接上级为交易所行情网关,则不将本地配置文件中的本地压缩级别配置到登录报文的压缩级别字段中,此时登录报文中的压缩级别字段仍然默认为0,若连接上级不是交易所行情网关,则登录模块单元101从本地配置文件中获取本地配置的本地压缩级别到登录报文中的压缩级别字段,由登录模块单元102统一发送登录报文到连接上级。

接收上级解压缩单元103,用于接收上级回复的登录确认报文,从报文中取出上级的压缩级别,并根据压缩级别去使用对应的压缩算法解压接收到的报文。

在本发明中,如图2所示,上级回复的登录确认报文中包含固定的报文头,发送方代码,接收方代码,登录时间,选填信息(默认为0)和报文尾字段,其中选填信息字段用于上级节点告诉下级节点自己的压缩级别字段。若上级为交易所行情,则上级回复的登录确认报文默认压缩类型为0,代表压缩类型为不压缩,即表示接收上级解压缩单元103从交易所行情网关接收到的数据不解压,为原始数据,如图2所示,作为原始数据的原始实时行情报文包含一些报文头,股票代码,成交价格等信息;如果上级回复的登录确认报文中的压缩级别字段不为0,例如1,2,3,4中的其中一个,则表示需对上级解压缩单元103从上级接收到的压缩行情报文选择对应压缩级别的压缩算法进行解压缩,然后把解压缩后的数据存入缓存队列,等待压缩或者直接发送到下级节点,如图2所示,所述压缩行情报文中包括压缩后字节长度、压缩前字节长度以及压缩后报文,其中压缩后字节长度、压缩前字节长度均为4字节,也就是说压缩行情报文的前8个字节不采用压缩方式,下级可以直接读取为压缩后4字节,和压缩前4字节,用来校验压缩是否出错。

接收下级报文单元104,用于监听本地端口,接收下级发送的登录报文,以为压缩传输单元105建立连接。

在本发明具体实施例中,在配置完本地配置文件后,接收下级报文单元104会建立一个监听线程,以监听下级节点,接收下级的登录模块单元发送的登录报文,以将上级的压缩传输单元105与下级的压缩传输单元105建立连接。

压缩传输单元105,用于给下级节点回复携带本地压缩级别的确认登录包,以及根据登录报文类型选择使用或不使用本地配置的压缩级别配置的压缩算法进行压缩,传输到下级节点。

在本发明中,若下级为第三方节点,也是按照交易所标准的登录报文进行登录上级节点,默认其压缩级别为0,因此,压缩传输单元105可以根据接收到的下级的登录报文类型,来区分下级是本节点类型还是第三方节点类型(即判断下级节点与当前节点是否为同一类型),若为本节点类型则在回复携带本节点压缩级别登录确认包到下级节点后采用作为上级的当前节点配置的压缩级别进行压缩后发到下级,若为第三方节点,则不进行压缩,回复携带本节点压缩级别登录确认包到下级节点后,将缓存队列中解压后的原始数据发送到下级,下级节点如果是本节点类型可以根据回复确认包中携带的压缩级别,进行解压,如果是第三方节点则回复登录确认包中携带的压缩级别默认被忽略。也就是说,上级节点在接收到压缩级别为0的登录包时,在此连接上上级节点回复的确认登录包中虽仍携带上级节点的压缩级别类型,但事实上是默认第三方节点忽略该类型,上级节点将解压后的数据直接发送到第三方节点。

图3为本发明一种自适配多级端到端传输行情信息流的方法的步骤流程图。如图3所示,本发明一种自适配多级端到端传输行情信息流的方法,包括如下步骤:

步骤s1,网关下级节点按照交易所规定的标准登录报文格式进行登录,接收交易所行情网关回复的标准回复确认登录报文,并将接收到交易所行情网关发送的原始数据存入缓存队列,等待压缩或者直接发送到下级节点。

所述标准登录报文及标准回复确认登录报文格式如图2所示,这里默认压缩类型为0,代表压缩类型为不压缩,所以网关下级节点从交易所行情网关接受到的数据不解压,为原始数据。

上级交易所网关回复的登录确认包为标准的交易所定义的格式,虽然包含定义的字段,但是都是默认值为0,网关下级节点在收到这个回复的登录确认包时,会解读为交易所行情网关下发的数据为未压缩的数据,符合实际情况。

在接收交易所行情流信息后,对其进行解析,以解析出具体行情频道信息。在本发明具体实施例中,对接收到的交易所行情流信息按照协议规范进行解析,解析出具体行情频道,获得具体行情频道的频道号。

步骤s2,下级节点根据本地配置文件中,组装携带压缩级别信息的登录报文发送到上级节点,上级节点根据下级节点的登录报文类型区分下级节点类型,给下级节点回复携带本地压缩级别的确认登录包,选择使用或不使用本地配置的压缩级别配置的压缩算法进行压缩数据,传输到下级节点。

具体地说,下级节点按照交易所规定的标准登录报文格式在压缩级别字段添加上本节点配置的压缩级别登录上级节点,由于第三方节点在进行登录上级节点时默认其压缩级别为0,因此上级节点根据下级节点的登录报文类型,为0或非0,来区分是本节点类型还是第三方节点类型(即判断下级节点与当前节点是否为同一类型),如果为本节点类型则在回复携带本节点压缩级别登录确认包到下级节点后采用当前节点配置的压缩级别进行压缩后发到下级,如果为第三方节点,则在回复携带本节点压缩级别登录确认包到下级节点后,将解压后的原始数据发送到下级,同时。

也就是说,在步骤s2中,下级节点把本节点配置的压缩级别配置到登录报文中,上送到上级,上级节点根据该压缩级别选择压缩或不压缩,同时上级节点把自己的压缩级别通过回复确认登录包送到下级,下级根据这个压缩级别来进行对应的解压。上级节点只需要判断下级节点从登录确认包中携带的压缩级别为0或非0,选择使用本节点配置的压缩级别或不使用本节点配置的压缩级别就可以,不需要对压缩级别为1,2,3,4中的某一种进行仔细的区分。

步骤s3,下级节点根据接收到的回复确认包判断是否对接收的数据进行解压处理。

下级如果是本节点类型则可以根据回复确认包中携带的压缩级别,进行解压,下级如果是第三方节点则回复登录确认包中携带的压缩级别默认被忽略。

实施例1

如图4所示,在本实施例中,一种自适配多级端到端传输行情信息流的方法过程如下:

步骤s1,节点1按照交易所定义的登录报文格式去发送登录报文到交易所行情网关,交易所行情网关收到后回复一个交易所定义的确认登录报文,节点1同时根据确认登录报文中的上级压缩等级去使用具体的压缩算法进行解压,由于交易所回复的登录确认报文不携带定义的压缩等级信息默认为0所以此时不用解压,节点1再收到确认登录报文后开始接收交易所下发的实时未压缩行情数据,同时根据下级各个节点具体的登录报文的类型选择压缩或者不压缩,如果下级登录报文类型为0则在此连接上不采用压缩算法进行压缩直接传输,如果下级登录报文类型为1,2,3,4中的任一等级则在此连接上采用自己节点也就是节点1中配置文件中配置的压缩等级进行压缩传输到下级节点(一个节点可能同时包含多个本节点同类型的节点和多个第三方节点)。

步骤s2,接收交易所行情流信息,并对其进行解析,以解析出具体行情频道信息。在本发明具体实施例中,对接收到的交易所行情流信息按照协议规范进行解析,解析出具体行情频道,获得具体行情频道的频道号。

步骤s3,多级节点,其处理过程同步骤s2。

步骤s4,第三方节点按照交易所标准的登录包进行登录上级节点,根据定义,默认其压缩级别为0,所以当上级节点在接收到压缩级别为0的登录包时,在此连接上回复携带上级压缩级别类型的确认登录包,并把解压后的数据直接发送到第三方节点上,此时默认第三方登录节点忽略这个类型。

图5为本发明实施例中一种自适配多级端到端提高带宽利用率传输行情信息流的完整节点拓扑图,在本实施例中,首先节点1需要按照用户名,密码,ip,port等信息去登录到交易所的行情网关,而节点2,节点3,或节点4可以选择不同的压缩级别同时连接到节点1上,节点5,节点6,节点7,可以分别选用不同的压缩级别同时连接上节点2,节点3,节点4节点上,而第三方节点服务可以连接上节点5,节点6,节点7上

实施例2

在本实施例中,如图6所示,本发明之自适配多级端到端传输行情信息流的过程如下:

首先,根据客户需要的压缩级别配置具体的压缩级别到配置文件中,根据配置文件中填写的连接上级是否是交易所网关,如果是交易所网关,则登录模块单元不将本地的压缩级别配置到登录报文中,默认填写为0,如果不是交易所网关,则登录模块单元从配置文件中读取本地配置的压缩级别配置到登录报文中,然后由登录模块统一发送登录报文到上级,接收上级报文模块在接收到上级登录确认报文后,根据登录确认报文中压缩级别选择具体的压缩算法进行解压缩,如果为0,则对于接收到的行情数据不解压缩,如果为1,2,3,4中的其中一个,则选择对应压缩级别的压缩算法进行解压缩,然后把解压缩后的数据存入缓存队列,等待压缩或者直接发送到下级。

同时在提交配置完本地配置文件后,会建立一个监听线程,用来监听下级的连接,再连接建立后,接收到下级的登录报文后,根据下级的登录报文中的压缩级别,如果为0则对于此连接,直接从缓存队列中取出数据发送到下级,如果为1,2,3,4中的其中一个,则选择使用本地配置的压缩级别把数据发送到下级,由于再回复确认登录包的时候已经把本地配置的压缩级别发送到下级,所以下级可以根据这个压缩级别进行解压缩。

图7为本发明实施例中一个节点内部各模块之间调用图。首先本地配置模块配置本地配置文件,本地的登录模块从本地配置模块中读取所需信息组装登录报文发送到上级和上级建立连接,本地的接收下级报文模块从本地配置模块中读取所需信息建立具体的监听端口,接收上级解压缩模块根据上级的回复报文中压缩级别选择压缩或不压缩存放到缓存队列中,压缩传输模块根据登录报文中压缩级别选择是否使用本地压缩级别压缩发送到下级。

可见,本发明通过登录确认包和回复登录确认包中携带压缩级别信息,不同压缩算法有不同的压缩率和压缩速度,压缩速度和压缩率成反比,反应到结果上就是延迟和带宽成反比,用户可以根据自己需要自定义配置压缩级别,不需要去沟通上级或下级,方便了用户使用方式,调整一个节点不影响其他节点,调整一个连接不影响其他连接,再登录上后就自己适配好上下级的压缩级别,选择不同压缩级别由用户自己去规划自己的带宽和延迟的影响

综上所述,本发明一种自适配多级端到端传输行情信息流的装置及方法通过复用交易所规定的标准的登录报文和回复确认登录报文,在登录报文和回复确认登录报文的携带其他信息字段添加压缩级别信息,根据登录报文将本地的压缩级别发送到上级,由上级根据该压缩级别区分是否利用本地配置的压缩算法压缩后发送到下级,根据回复确认登录报文将上级的压缩级别发送到下级,再由下级根据具体压缩级别来进行解压,实现了自适配多级端到端传输行情信息流的目的,提高了系统的带宽利用率。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

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