CN117097809A - 一种用于行情实时网络传输的行情数据压缩方法 - Google Patents

一种用于行情实时网络传输的行情数据压缩方法 Download PDF

Info

Publication number
CN117097809A
CN117097809A CN202311051050.8A CN202311051050A CN117097809A CN 117097809 A CN117097809 A CN 117097809A CN 202311051050 A CN202311051050 A CN 202311051050A CN 117097809 A CN117097809 A CN 117097809A
Authority
CN
China
Prior art keywords
time
market
network transmission
data
compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311051050.8A
Other languages
English (en)
Inventor
朱文龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Yuanshen Technology Co ltd
Original Assignee
Shanghai Yuanshen Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Yuanshen Technology Co ltd filed Critical Shanghai Yuanshen Technology Co ltd
Priority to CN202311051050.8A priority Critical patent/CN117097809A/zh
Publication of CN117097809A publication Critical patent/CN117097809A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Abstract

本发明涉及一种用于行情实时网络传输的行情数据压缩方法,包括以下步骤:确定每笔行情二进制数据大小X字节以及最差容忍行情错误关联行情个数N;分别统计得到每D字节数据包网络传输耗时表、每Y笔行情压缩性能表;根据每D字节数据包网络传输耗时表、每Y笔行情压缩性能表,确定是否对行情进行压缩,若判断为是,则进一步根据每D字节数据包网络传输耗时表、每Y笔行情压缩性能表,确定出Y的最优值Ym,之后针对每Ym笔行情进行压缩处理后再传输;否则直接传输二进制行情。与现有技术相比,本发明能够有效提高压缩率、降低压缩/解压带来的性能开销。

Description

一种用于行情实时网络传输的行情数据压缩方法
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种用于行情实时网络传输的行情数据压缩方法。
背景技术
随着金融市场自动化交易用户专业化程度不断提高,股票/期货交易对性能的要求也越来越高。自动化交易程序对从行情到交易的耗时十分敏感,更低的耗时往往会在市场上产生更多的盈利机会。目前的全部耗时阶段可分为3个部分:
一、从交易所发行情到自动化交易程序接收到行情;
二、自动化交易程序内部各类运算;
三、自动化程序将交易指令提交到交易所。
其中行情通常要经过网络进行传输,占了较大的比重,因此对行情传输耗时进行优化的意义重大。行情传输的优化主要分为硬件和软件方面,硬件上通常使用低延迟网卡、万兆网络等;软件上则可通过软件Kernel By Pass、Cache Friendly等技术来降低数据包从网卡到操作系统间的耗时。此外,当前行情传输主要的几种方法如下:
1、二进制数据直接传输
大多数自动化交易程序使用自定义的行情格式,直接使用二进制格式进行传输。优点是对底层程序友好,发送和接收时无任何附加逻辑,编解码耗时为0;缺点是数据量较大,有可能因为较大的带宽产生拥堵或丢包。
2、文本形式传输
将行情数据以文本形式传输,优点是数据可读,易于抓包解析,耦合较低;缺点是行情数据与文本间的转换增加了额外的耗时,性能差于二进制数据直接传输。
3、Protobuf协议传输
基于二进制数据直接传输方法,将二进制数据使用Protobuf协议进行编码,该编码根据每个字段的类型进行数据压缩。优点是对传输的数据有一定的压缩降,且压缩/解压的耗时比文本形式提升较大、不同开发语言都有第三方库、数据内容扩展方便;缺点是语法复杂、压缩率不高、压缩/解压耗时较大。
4、FastFIX协议传输
FastFIX与Protobuf类似,但其针对金融数据特点进行了编解码优化,优点是支持标准化的FIX协议、针对金融数据进行优化;缺点是当前应用较少,FIX支持标准化的意义不大、压缩率较低、压缩/解压耗时较大、代码耦合度可维护性较差。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种用于行情实时网络传输的行情数据压缩方法,能够有效提高压缩率、降低压缩/解压带来的性能开销。
本发明的目的可以通过以下技术方案来实现:一种用于行情实时网络传输的行情数据压缩方法,包括以下步骤:
S1、确定每笔行情二进制数据大小X字节以及最差容忍行情错误关联行情个数N;
S2、分别统计得到每D字节数据包网络传输耗时表、每Y笔行情压缩性能表;
S3、根据每D字节数据包网络传输耗时表、每Y笔行情压缩性能表,确定是否对行情进行压缩,若判断为是,则执行步骤S4,否则执行步骤S5;
S4、进一步根据每D字节数据包网络传输耗时表、每Y笔行情压缩性能表,确定出Y的最优值Ym,之后针对每Ym笔行情进行压缩处理后再传输;
S5、直接传输二进制行情。
进一步地,所述步骤S2中,1≤Y≤N。
进一步地,所述步骤S2中每D字节数据包网络传输耗时表具体包括不同字节对应的网络传输耗时数据。
进一步地,所述步骤S2中每Y笔行情压缩性能表具体包括不同行情笔数对应的压缩率和平均每笔耗时数据。
进一步地,所述步骤S3具体包括以下步骤:
S31、查表获取压缩X字节数据包对应的网络传输耗时Ttrans[X];
S32、计算Y=i时的压缩后数据大小S[i];
S33、查表获取压缩后S[i]字节数据包对应的网络传输耗时Ttrans[i];
S34、查表获取Y=i时平均每笔耗时Tcomp[i];
S35、结合Ttrans[X]、Ttrans[i]和Tcomp[i],判断是否满足第一预设条件,若判断为是,则确定对行情进行压缩,否则不对行情进行压缩。
进一步地,所述步骤S32中计算S[i]的公式为:
S[i]=X*R[i]
其中,R[i]为Y=i时对应的压缩率。
进一步地,所述步骤S35中第一预设条件具体为:
Ttrans[X]>Ttrans[i]+Tcomp[i]。
进一步地,所述步骤S4具体包括以下步骤:
S41、计算Y=i时的压缩后数据大小S[i];
S42、查表获取压缩后S[i]字节数据包网络传输耗时Ttrans[i];
S43、查表获取Y=i时平均每笔耗时Tcomp[i];
S44、计算全部i对应的总耗时T[i];
S45、从全部T[i]中筛选出最小值对应的i,即为Y的最优值Ym。
进一步地,所述步骤S44中计算T[i]的公式为:
T[i]=Ttrans[i]+Tcomp[i]。
进一步地,所述步骤S4具体是采用基于字典的LZ4压缩算法进行压缩处理。
与现有技术相比,本发明具有以下优点:
一、本发明通过统计得到每D字节数据包网络传输耗时表、每Y笔行情压缩性能表,再通过查表计算,以确定是否对行情进行压缩、以及确定出Y的最优值Ym,之后才针对每Ym笔行情进行压缩处理后传输,即根据行情数据的关键指标来判断是否对行情数据进行压缩、以及确定最优压缩行情笔数,由此能够有效提高行情数据压缩率,进而降低压缩/解压带来的性能开销。
二、本发明利用数据包大小与网络延迟之间的关系,一方面通过查表获取压缩后S[i]字节数据包网络传输耗时Ttrans[i],另一方面通过查表获取Y=i时平均每笔耗时Tcomp[i],能够可靠地确定出最优压缩行情笔数。
三、本发明充分考虑行情数据可靠性要求,故设计了容忍行情错误关联行情个数N,从而能够在可量化的一定容忍范围内,允许丢包、错包,且不影响行情数据的可靠性。
四、本发明考虑到行情数据具有重复率高的特点,故采用字典压缩算法中性能最快的压缩算法LZ4,进一步提高压缩率、降低压缩/解压带来的性能开销。
附图说明
图1为本发明的方法流程示意图;
图2为实施例中平均每笔行情压缩率示意图;
图3为实施例中平均每笔行情压缩时间示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
如图1所示,一种用于行情实时网络传输的行情数据压缩方法,包括以下步骤:
S1、确定每笔行情二进制数据大小X字节以及最差容忍行情错误关联行情个数N;
S2、分别统计得到每D字节数据包网络传输耗时表、每Y笔行情压缩性能表;
S3、根据每D字节数据包网络传输耗时表、每Y笔行情压缩性能表,确定是否对行情进行压缩,若判断为是,则执行步骤S4,否则执行步骤S5;
S4、进一步根据每D字节数据包网络传输耗时表、每Y笔行情压缩性能表,确定出Y的最优值Ym,之后针对每Ym笔行情进行压缩处理后再传输;
S5、直接传输二进制行情。
本实施例应用上述技术方案,使用基于字典的LZ4压缩算法,根据行情数据的几个关键指标对行情数据进行压缩。主要分为两个步骤:
一、输入参数计算
(1)确定每笔行情二进制数据大小X字节;
(2)确定最差容忍行情错误关联行情个数N;
(3)统计得到每D字节数据包网络传输耗时表Ttrans;
(4)统计每Y笔行情(取值范围在1-N,含边界)压缩性能表,包含笔数Y、压缩率R、平均每笔耗时Tcomp;
(5)输出是否可采用本方案优化Flag,算法如下(i取值范围在1-N,含边界):
①查表获取压缩X字节数据包网络传输耗时Ttrans[X];
②计算Y=i时的压缩后数据大小S[i]:S[i]=X*R[i];
③查表获取压缩后S[i]字节数据包网络传输耗时Ttrans[i];
④查表获取Y=i时平均每笔耗时Tcomp[i];
⑤如果满足:Ttrans[X]>Ttrans[i]+Tcomp[i],则Flag=True,即可采用本方案优化;
⑥否则Flag=False,即不可采用本方案优化;
(6)若可采用本方案优化,则进一步计算Y的最优值,算法如下(i取值范围在1-N,含边界),上一步中使Ttrans[i]+Tcomp[i]值最小的i即为Y的最优值:
①计算Y=i时的压缩后数据大小S[i]:S[i]=X*R[i];
②查表获取压缩后S[i]字节数据包网络传输耗时Ttrans[i];
③查表获取Y=i时平均每笔耗时Tcomp[i];
④计算全部i对应的总耗时T[i]:T[i]=Ttrans[i]+Tcomp[i];
⑤全部T[i]中最小值对应的i即为Y的最优值;
二、实时压缩
(1)装填输入参数计算中得到的否可采用本方案优化Flag;
(2)装填输入参数计算中得到的最优Y值;
(3)若Flag为False,则直接传输二进制行情,不压缩;
(4)若Flag为True,则每Y笔行情进行一次算法初始化,每笔行情使用LZ4算法压缩;
(5)接收端使用LZ4算法解压。
本实施例中,每笔行情大小X=392字节,每Y笔行情压缩(Y取值1~999)的平均每笔行情压缩率和压缩时间变化曲线如图2和图3所示,表明采用本方案方法能够有效提高压缩率、降低压缩时间。

Claims (10)

1.一种用于行情实时网络传输的行情数据压缩方法,其特征在于,包括以下步骤:
S1、确定每笔行情二进制数据大小X字节以及最差容忍行情错误关联行情个数N;
S2、分别统计得到每D字节数据包网络传输耗时表、每Y笔行情压缩性能表;
S3、根据每D字节数据包网络传输耗时表、每Y笔行情压缩性能表,确定是否对行情进行压缩,若判断为是,则执行步骤S4,否则执行步骤S5;
S4、进一步根据每D字节数据包网络传输耗时表、每Y笔行情压缩性能表,确定出Y的最优值Ym,之后针对每Ym笔行情进行压缩处理后再传输;
S5、直接传输二进制行情。
2.根据权利要求1所述的一种用于行情实时网络传输的行情数据压缩方法,其特征在于,所述步骤S2中,1≤Y≤N。
3.根据权利要求1所述的一种用于行情实时网络传输的行情数据压缩方法,其特征在于,所述步骤S2中每D字节数据包网络传输耗时表具体包括不同字节对应的网络传输耗时数据。
4.根据权利要求3所述的一种用于行情实时网络传输的行情数据压缩方法,其特征在于,所述步骤S2中每Y笔行情压缩性能表具体包括不同行情笔数对应的压缩率和平均每笔耗时数据。
5.根据权利要求4所述的一种用于行情实时网络传输的行情数据压缩方法,其特征在于,所述步骤S3具体包括以下步骤:
S31、查表获取压缩X字节数据包对应的网络传输耗时Ttrans[X];
S32、计算Y=i时的压缩后数据大小S[i];
S33、查表获取压缩后S[i]字节数据包对应的网络传输耗时Ttrans[i];
S34、查表获取Y=i时平均每笔耗时Tcomp[i];
S35、结合Ttrans[X]、Ttrans[i]和Tcomp[i],判断是否满足第一预设条件,若判断为是,则确定对行情进行压缩,否则不对行情进行压缩。
6.根据权利要求5所述的一种用于行情实时网络传输的行情数据压缩方法,其特征在于,所述步骤S32中计算S[i]的公式为:
S[i]=X*R[i]
其中,R[i]为Y=i时对应的压缩率。
7.根据权利要求5所述的一种用于行情实时网络传输的行情数据压缩方法,其特征在于,所述步骤S35中第一预设条件具体为:
Ttrans[X]>Ttrans[i]+Tcomp[i]。
8.根据权利要求6所述的一种用于行情实时网络传输的行情数据压缩方法,其特征在于,所述步骤S4具体包括以下步骤:
S41、计算Y=i时的压缩后数据大小S[i];
S42、查表获取压缩后S[i]字节数据包网络传输耗时Ttrans[i];
S43、查表获取Y=i时平均每笔耗时Tcomp[i];
S44、计算全部i对应的总耗时T[i];
S45、从全部T[i]中筛选出最小值对应的i,即为Y的最优值Ym。
9.根据权利要求8所述的一种用于行情实时网络传输的行情数据压缩方法,其特征在于,所述步骤S44中计算T[i]的公式为:
T[i]=Ttrans[i]+Tcomp[i]。
10.根据权利要求1~9任一所述的一种用于行情实时网络传输的行情数据压缩方法,其特征在于,所述步骤S4具体是采用基于字典的LZ4压缩算法进行压缩处理。
CN202311051050.8A 2023-08-18 2023-08-18 一种用于行情实时网络传输的行情数据压缩方法 Pending CN117097809A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311051050.8A CN117097809A (zh) 2023-08-18 2023-08-18 一种用于行情实时网络传输的行情数据压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311051050.8A CN117097809A (zh) 2023-08-18 2023-08-18 一种用于行情实时网络传输的行情数据压缩方法

Publications (1)

Publication Number Publication Date
CN117097809A true CN117097809A (zh) 2023-11-21

Family

ID=88782343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311051050.8A Pending CN117097809A (zh) 2023-08-18 2023-08-18 一种用于行情实时网络传输的行情数据压缩方法

Country Status (1)

Country Link
CN (1) CN117097809A (zh)

Similar Documents

Publication Publication Date Title
US10419021B2 (en) Systems and methods of data compression
US7777651B2 (en) System and method for data feed acceleration and encryption
CN109902274B (zh) 一种将json字符串转化为thrift二进制流的方法及系统
US20230281385A1 (en) Fpga-based fast protocol decoding method, apparatus, and device
US8683320B2 (en) Processing module, a device, and a method for processing of XML data
CN108876628A (zh) 金融量化分析数据传输方法
CN106851733A (zh) 一种针对移动网络应用的自适应http消息压缩方法
CN113067674B (zh) 网络文本数据的传输方法、系统、电子设备及存储介质
WO2022063058A1 (zh) 基于netconf协议的传输方法、设备及存储介质
CN117097809A (zh) 一种用于行情实时网络传输的行情数据压缩方法
US7925721B2 (en) Method and apparatus for converting the modality of multimedia contents to support the quality of service according to media resource
CN112291041A (zh) 一种基于fpga的数据解码装置、方法
CN115499506B (zh) 一种基于lzw算法的mqtt信息传输数据压缩方法及服务器
CN112017049B (zh) 一种证券行情转发系统和方法
CN113507467B (zh) 一种基于区块链的隐蔽信息传输系统及方法
CN111490984B (zh) 一种网络数据编码及其加密算法
AU2019100084A4 (en) System and method for transmitting adaptive text stream data in network environment
CN101064842A (zh) 一种绘图动作传递方法
CN115334169B (zh) 一种节省网络带宽的通信协议编码方法
JPS62209948A (ja) デ−タ圧縮伝送方法
CN114416331A (zh) 微服务之间的数据传输方法、装置、计算机设备及存储介质
CN117709300A (zh) 一种基于json格式的证券行情数据压缩传输算法
CN115037417A (zh) 一种用于北斗三号rdss链路优化的数据丢包重传方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination