CN112422489B - 业务数据传输方法、装置、计算机设备和存储介质 - Google Patents
业务数据传输方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112422489B CN112422489B CN202010165424.9A CN202010165424A CN112422489B CN 112422489 B CN112422489 B CN 112422489B CN 202010165424 A CN202010165424 A CN 202010165424A CN 112422489 B CN112422489 B CN 112422489B
- Authority
- CN
- China
- Prior art keywords
- data
- source
- service data
- data packet
- service
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种业务数据传输方法、装置、计算机设备和存储介质。所述方法包括:接收业务分发系统发送的源数据包;源数据包包括相应的业务数据;当与本地连接的终端的数量大于预设数量时,将源数据包缓存至第一缓冲流中,并确定第一缓冲流中缓存的源数据包的总数据长度;当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,对第一缓冲流中的源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息;对压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将业务数据包发送到终端。采用本方法能够提高业务数据的传输效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种业务数据传输方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,各行各业都需要对网络数据进行传输,且传输的网络数据大小不一,因而出现了提升网络数据传输效率的技术,传统的提升网络数据传输效率的方法是对网络数据进行压缩,如服务端接收到要传输的网络数据后,先对该网络数据进行压缩,后进行封装,进而将封装后的网络数据发送给客户端。
然而,采用传统的提升网络数据传输效率的办法进行压缩时,对网络数据小包的压缩率很低,比如对证券行业中的业务数据进行压缩时,由于该业务数据中包含高频率的虚拟资源的交易数据,如股票、基金和债券的买入卖出等。且这些业务数据占用的字节数很少,使得对这些业务数据进行压缩处理时,计算得到的压缩率很低。因而存在网络传输效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高传输效率的业务数据传输方法、装置、计算机设备和存储介质。
一种业务数据传输方法,所述方法包括:
接收业务分发系统发送的源数据包;所述源数据包包括相应的业务数据;
当与本地连接的终端的数量大于预设数量时,将所述源数据包缓存至第一缓冲流中,并确定所述第一缓冲流中缓存的所述源数据包的总数据长度;
当所述第一缓冲流中的源数据包的总数据长度大于等于所述预设长度时,对所述第一缓冲流中的所述源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息;
对所述压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将所述业务数据包发送到终端。
一种业务数据传输装置,所述装置包括:
接收模块,用于接收业务分发系统发送的源数据包;所述源数据包包括相应的业务数据;
缓存模块,用于当与本地连接的终端的数量大于预设数量时,将所述源数据包缓存至第一缓冲流中,并确定所述第一缓冲流中缓存的所述源数据包的总数据长度;
压缩模块,用于当所述第一缓冲流中的源数据包的总数据长度大于等于所述预设长度时,对所述第一缓冲流中的所述源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息;
发送模块,用于对所述压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将所述业务数据包发送到终端。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述业务数据传输的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述业务数据传输的步骤。
上述业务数据传输方法、装置、计算机设备和存储介质,将业务分发系统发送的源数据包缓存至第一缓冲流中,当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,对源数据包中的业务数据进行压缩和封装处理,通过这样对业务数据进行先缓冲后压缩封装的方式,可提高业务数据小包的压缩率,从而提高传输效率。通过将业务数据缓存至缓冲流,也就是将业务数据小包和大包进行融合,可减少各协议首部资源的浪费,因而节省网络带宽资源的成本,大大提高了业务数据的传输效率。
附图说明
图1为一个实施例中业务数据传输方法的应用环境图;
图2为一个实施例中业务数据传输方法的流程示意图;
图3为一个实施例中业务数据传输方法的逻辑图;
图4为一个实施例中定时传输业务数据的步骤的流程示意图;
图5为一个实施例中分配缓冲流的步骤的流程示意图;
图6为一个实施例中业务数据传输装置的结构框图;
图7为另一个实施例中业务数据传输装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的业务数据传输方法,可以应用于如图1所示的应用环境中。其中,业务分发系统110通过网络与服务器120进行通信,服务器120通过网络与终端130进行通信。其中,业务分发系统110具体可以通过终端或服务器实现,其中服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现,终端130可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
可以理解,服务器120可接收业务分发系统110发送的源数据包,源数据包包括相应的业务数据。当与本地连接的终端130的数量大于预设数量时,服务器120将源数据包缓存至第一缓冲流中,并确定第一缓冲流中缓存的源数据包的总数据长度。当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,服务器120对第一缓冲流中的源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信。服务器120对压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将业务数据包发送到终端130。
在一个实施例中,如图2所示,提供了一种业务数据传输方法,以该方法应用于上述图1中的服务器120为例进行说明,该业务数据传输方法包括以下步骤:
S202,接收业务分发系统发送的源数据包;源数据包包括相应的业务数据。
其中,业务分发系统是对业务数据分发过程进行针对性支持的信息系统,能够为业务数据的分发提供有力的工具支撑,如文件分发系统、消息分发系统或者行情分发系统等。源数据包是业务分发系统中待发送的业务数据形成的数据包,如图像数据包、音频数据包或文本数据包等。业务数据是源数据包中用于支持业务分发系统的数据,如图像数据、音频数据或文本数据等。
具体地,服务器可通过TCP(Transmission Control Protocol,传输控制协议)与业务分发系统进行网络通信,使得服务器可接收业务分发系统发送的源数据包。其中,TCP是一种面向连接的、且支持全双工传输的协议,且具有差错控制、拥塞控制和流量控制等功能。
在一个实施例中,服务器与业务分发系统建立连接,业务分发系统按照发送的先后顺序对每个源数据包进行序号分配,并按照序号依次向服务器发送源数据包,如先发送1号源数据包,再发送2号源数据包。使得服务器可按先后顺序接收业务分发系统发送的源数据包。
在一个实施例中,服务器接收到业务分发系统发送的源数据包后,可反馈给业务分发系统相应的确认信息,如ACK=1,表示服务器确认接收到相应的源数据包。当在预设的往返时延内,如1ms(Millisecond,毫秒),服务器未发送确认信息或者业务分发系统未接收到反馈的确认信息,则判定为源数据包丢失,业务分发系统会对丢失的源数据包进行重新发送。
在一个实施例中,业务分发系统可实时向服务器发送源数据包,使得服务器可实时接收业务分发系统发送的源数据包。
在一个实施例中,服务器可定时接收业务分发系统发送的源数据包。如服务器可定时向业务分发系统发送获取请求,业务分发系统接收到获取请求后,可按预设周期定时向服务器发送源数据包,使得服务器可定时接收业务分发系统发送的源数据包。
在一个实施例中,该业务数据传输方法中的业务分发系统包括虚拟资源交易行情分发系统;源数据包包括虚拟资源交易数据包;业务数据包括虚拟资源的交易数据。
在一个实施例中,服务器可接收虚拟资源交易行情分发系统发送的源数据包。其中,虚拟资源可以是股票、基金或证券等资源。因此,服务器可接收证券交易行情分发系统发送的证券交易数据包,其中,证券交易数据包包括证券交易数据,如证券的买入和卖出等交易数据。
上述实施例中,与服务器连接的业务分发系统包括虚拟资源交易行情分发系统,业务分发系统发送的源数据包包括虚拟资源交易数据包,与源数据包相应的业务数据包括虚拟资源的交易数据。因而该业务数据传输方法可应用于对虚拟资源交易数据的传输。
S204,当与本地连接的终端的数量大于预设数量时,将源数据包缓存至第一缓冲流中,并确定第一缓冲流中缓存的源数据包的总数据长度。
其中,缓冲流是包括缓冲区的流。缓冲流用于对数据进行缓冲,如对源数据流中的数据包进行缓存,直至生成一个大数据包后再发送。因而通过缓冲流可减少数据资源的读写次数,以此来加快业务数据的传输效率。
第一缓冲流是当与本地连接的终端的数量大于预设数量时,对源数据包进行缓存的缓冲流。预设数量是预先设置的终端的数量。数据长度是源数据包的字节数量,如200B(Byte,字节)。
在一个实施例中,当与本地连接的终端的数量大于预设数量时,服务器将源数据包以二进制的形式,并按照接收源数据包的先后顺序依次发送到第一缓冲流中进行缓存。
在一个实施例中,当与本地连接的终端的数量大于预设数量,如终端的数量为五个,预设数量为三个时,服务器预配置一个缓冲流作为第一缓冲流,并将接收到的源数据包缓存至第一缓冲流中,服务器可分别记录每个缓存的源数据包的字节数量,通过统计缓存的源数据包的总字节数量,来确定第一缓冲流中缓存的源数据包的总数据长度。
S206,当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,对第一缓冲流中的源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息。
其中,压缩信息是将业务数据进行压缩处理后的压缩数据的大小,以及根据业务数据的数据类型,所采用的压缩算法的信息,如压缩算法的名称和类型等信息。压缩算法如ZSTD(Zstandard,一种无损数据压缩算法)算法、ZLIB(一种无损压缩算法)算法或LZW(Lempel-Ziv-Welch Encoding,一种无损压缩算法)算法。本申请实施例对此不做限定。
具体地,当第一缓冲流中的源数据包的总字节长度大于等于预设字节长度时,服务器根据源数据包中的业务数据的数据类型来分配相应的压缩算法,服务器通过分配的压缩算法对源数据包中的业务数据进行压缩处理,并得到压缩数据以及相应的压缩信息。
S208,对压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将业务数据包发送到终端。
其中,封装处理是将数据封装在一组协议的头和尾的过程。业务数据包指一组传输的业务数据,包括传送的路由信息及业务数据本身。
具体地,服务器依次对压缩数据增加各层协议首部以进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,服务器通过网络与终端连接,并将业务数据包发送到终端。
在一个实施例中,服务器将生成的业务数据包发送到远程终端。该远程终端可与服务器分别部署在不同的地理区域,比如,服务器部署在深圳,而终端部署在上海。在一个具体地实施例中,业务分发系统可以是深交所行情分发系统。因而,深圳的服务端接收深交所行情分发系统发送的行情源数据包,并对行情源数据包进行缓冲、压缩以及封装处理,从而生成相应的行情数据包,将行情数据包发送给上海的客户端,因而业务数据可在服务端和客户端之间实现远距离传输,且保证业务数据包的传输效率。
参考图3,在一个实施例中,该业务数据传输方法的逻辑图包含以下步骤:数据源向服务器发送源数据包,其中,数据源可以是深交所行情分发系统。服务器(也称服务端)接收深交所行情分发系统发送的行情源数据包,并对行情源数据包进行缓存。当缓存的源数据包的字节数量超过预设阈值时,预设阈值如8KB,服务端对所有缓存的行情源数据包进行压缩和封装处理,服务端根据压缩和封装后的数据和信息,生成相应的行情数据包并发送给客户端,以提高业务数据的处理效率。
上述业务数据传输方法中,将业务分发系统发送的源数据包缓存至第一缓冲流中,当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,对源数据包中的业务数据进行压缩和封装处理,通过这样对业务数据进行先缓冲后压缩封装的方式,可提高业务数据小包的压缩率,从而提高传输效率。通过将业务数据缓存至缓冲流,也就是将业务数据小包和大包进行融合,可减少各协议首部资源的浪费,因而节省网络带宽资源的成本,大大提高了业务数据的传输效率。
参考图4,在一个实施例中,该业务数据传输方法还包括定时传输业务数据的步骤,该定时传输业务数据的步骤具体包括:
S402,计算在当前业务数据传输周期内,首次接收到源数据包的时间点至当前时间点之间的数据缓存时间段。
其中,业务数据传输周期是完成一次业务数据的传输所花费的时间,比如从接收到首个源数据包的时间点,到将第一缓冲流中所有源数据包发送给终端的时间点之间的时间。数据缓存时间段是以服务器首次接收到源数据包的时间点为起点,以当前时间点为终点的时间段。
在一个实施例中,当服务器开始新的业务数据传输周期时,自动清空上一个业务数据传输周期内缓存在第一缓冲流中的业务数据,以使得第一缓冲流中有足够的空间对新的源数据包进行缓存。
S404,当数据缓存时间段达到预设缓存周期、且第一缓冲流中的源数据包的总数据长度小于预设长度时,对源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息。
其中,预设缓存周期是预设的一个时间长度,如5ms。
具体地,当数据缓存时间段达到预设缓存周期、且第一缓冲流中的源数据包的总字节数量小于预设字节数量时,服务器根据源数据包中的业务数据的数据类型来分配相应的压缩算法,服务器通过分配的压缩算法对源数据包中的业务数据进行压缩处理,并得到压缩数据以及相应的压缩信息。
在一个实施例中,服务器可预设缓存周期和时间间隔,如预设缓存周期为5ms,时间间隔为1ms。在服务器清空缓存流中业务数据包的情况下,以服务器接收到第一个源数据包的时间点为起点,服务器每隔1ms确定当前的数据缓存时间段,若数据缓存时间段达到预设缓存周期,则对第一缓冲流中的源数据包进行压缩处理。
在一个实施例中,当数据缓存时间段达到预设缓存周期,如数据缓存时间段为2ms,预设缓存周期为2ms。且第一缓冲流中的源数据包的总数据长度小于预设长度,如源数据包的总数据长度为6KB,预设长度为8KB,服务器对第一缓冲流中总数据长度为6KB的源数据包进行压缩处理,并得到压缩数据以及相应的压缩信息。
在一个实施例中,当数据缓存时间段达到预设缓存周期,如数据缓存时间段为1ms,预设缓存周期为2ms。且第一缓冲流中的源数据包的总数据长度达到预设长度,如源数据包的总数据长度为8KB,预设长度为8KB,服务器对第一缓冲流中总数据长度为8KB的源数据包进行压缩处理,并得到压缩数据以及相应的压缩信息。
S406,对压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将业务数据包发送到终端。
具体地,服务器依次对压缩数据增加各层协议首部以进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,服务器通过网络将业务数据包发送到终端。
上述实施例中,当服务器计算的数据缓存时间段达到预设缓存周期,且第一缓冲流中的源数据包的总数据长度小于预设长度时,对源数据包中的业务数据进行压缩和封装处理,并生成相应的业务数据包以发送给终端。通过这样预设缓存周期的方式,可在长期接收字节数量少的源数据包的情况下,确保源数据包在第一缓冲流中的缓存时间不会过长,从而保证了传输源数据包的时效性。
参考图5,在一个实施例中,该业务数据传输方法还包括分配缓冲流的步骤,该分配缓冲流的步骤具体包括:
S502,当终端的数量小于等于预设数量时,分配具有与终端的数量相同数量的第二缓冲流,并分别将各第二缓冲流与各终端进行一一关联处理。
其中,第二缓冲流是当与服务器连接的终端数量小于等于预设数量时,对源数据包进行缓存的缓冲流。第二缓冲流不具有唯一性,可以是一个或者多个,第二缓冲流的数量与关联的终端的数量相同。
具体地,当与服务器相连接的终端的数量小于等于预设数量时,服务器预配置与终端数量相同的第二缓冲流,并将第二缓冲流分别与对应的终端相互关联。
在一个实施例中,服务器为各终端分配对应的终端标识,并配置与终端数量相同的第二缓冲流,服务器分别为第二缓冲流分配相对应的缓冲流标识,且将各终端标识与相匹配的缓冲流标识进行关联,以将第二缓冲流分别与对应的终端进行关联。
在一个实施例中,当与服务器连接的终端数量小于等于预设数量,如终端的数量两个,预设数量为三个时,服务器预配置两个第二缓冲流,并将两个第二缓冲流分别与两个终端进行一一关联处理,以使得每个终端分配到一个对应的第二缓冲流。
S504,当接收到源数据包时,确定与接收的源数据包对应的终端,并将各源数据包分别缓存至与相应终端对应的第二缓冲流。
具体地,当服务器接收到业务分发系统发送的源数据包时,服务器可通过获取各源数据包的目的端地址信息,来确定各源数据包分别对应的终端,并将各源数据包缓存到与相应终端关联的第二缓冲流中。
举例说明,终端数量为2,预设数量为3,将终端分为终端A1和终端B1,且分别对应第二缓冲流A2和第二缓冲流B2。服务器接收业务分发系统发送的源数据包,如用源数据包X表示,源数据包X包含的目的端地址信息对应终端A1,则将该源数据包缓存至与终端A1关联的第二缓冲流A2。
S506,分别对各第二缓冲流中的源数据包的流量进行控制。
其中,流量是单位时间内,在第二缓冲流中进行流通的源数据包的字节数量。
具体地,服务器通过TCP滑动窗口机制,分别对在第二缓冲流中进行流通的源数据包的数量进行控制。比如,服务器与终端建立TCP通信连接时,服务器与对应的终端各自分配一个滑动窗口,其中,终端上用于接收数据的是接收窗口,服务器上用于发送数据的是发送窗口。通过终端的接收窗口大小来控制服务器的发送窗口大小,以使得服务器发送的数据包都能被终端接收到,避免数据包丢失现象。其中,窗口的单位是字节。
在一个实施例中,服务器通过终端反馈的接收窗口的大小,来确定发送窗口的大小,如终端A1的接收窗口值为400字节,那么将服务器的发送窗口值设为400字节,且服务器从与终端A1关联的第二缓冲流A2中,读取总数据长度为400字节的源数据包进行相应的处理。
S508,将相应流量满足流量平衡条件的第二缓冲流中缓存的源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息,并对压缩数据进行封装处理后生成业务数据包,将业务数据包发送到与相应第二缓冲流对应的终端。
其中,流量平衡条件是服务器上第二缓冲流中缓存的源数据包的总数据长度,与对应的终端的接收业务数据包的数据长度相同。
具体地,服务器通过接收相应的终端的接收窗口信息,来确定满足流量平衡条件的第二缓冲流中缓存的源数据包的数据长度,并对源数据包中的业务数据进行压缩处理和封装处理,通过结合相应的压缩信息共同生成业务数据包,服务器将生成的业务数据包发送到与相应第二缓冲流相关联的终端。
上述实施例中,当终端的数量小于预设数量时,每个终端都与对应的第二缓冲流进行关联处理。服务器通过对第二缓冲流中源数据包进行流量控制,可以减少源数据包因缓存而带来的延时,使得终端可快速接收业务数据包,在保证压缩效率的情况下,减少带宽资源的占用,从而提高传输效率。
在一个实施例中,步骤S506,也就是分别对各第二缓冲流中的源数据包的流量进行控制的步骤,具体包括:确定终端各自的接收窗口值;接收窗口值表示终端接收业务数据包的数据长度;根据接收窗口值,确定各第二缓冲流中与各接收窗口值相等的发送窗口值;当第二缓冲流中缓存的源数据包的数据长度与相应发送窗口值相同时,确定第二缓冲流当前的流量满足流量平衡条件。
在一个实施例中,服务器通过接收终端反馈的确认消息,来确定终端的接收业务数据包的数据长度,其中,大写ACK的值表示是否确认接收,小写ack的值表示确认接收的字节,如ACK=1表示终端接收到业务数据包,ack=400表示终端接收到业务数据包的字节为400。
在一个实施例中,服务器根据接收业务数据包的数据长度,如ack=400,将对应的发送窗口值设为400字节,即服务器接收的、且由业务分发系统发送到第二缓冲流缓存的源数据包的数据长度为400字节。
在一个实施例中,服务器可根据终端反馈的不同的确认消息,来确定不同的接收业务数据包的数据长度,从而修改相应的发送窗口值。如当终端反馈的确认信息是ack=200,表示终端只能接收200字节的业务数据包,那么将发送窗口值改为200字节,即服务器所接收的、且由业务分发系统发送到第二缓冲流缓存的源数据包的数据长度改为200字节。
在一个实施例中,当第二缓冲流中缓存的源数据包的数据长度与相应发送窗口值相同时,即服务器接收的源数据包的流量与对应的终端接收的业务数据包的流量相同,则表示满足流量平衡条件,从而使得服务器所接收的、且由业务系统发送的源数据包可及时发送到对应的终端,提高了传输效率。
上述实施例中,服务器通过将第二缓冲流缓存的源数据包的数据长度设置为对应的终端接收的业务数据的长度,从而使得服务器所接收的、且由业务分发系统发送的源数据包都能发送到对应的终端,避免了在传输过程中丢失业务数据包,提高传输效率。也减少了源数据包因缓存而带来的延时,且在保证压缩效率的情况下,减少带宽资源的占用,从而提高传输效率。
在一个实施例中,步骤S206,也就是当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,对第一缓冲流中的源数据包中的业务数据进行压缩处理的步骤,具体包括:当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,获取第一缓冲流中的源数据包中的业务数据;根据业务数据的数据类型,分配相应的压缩算法;根据分配的压缩算法对源数据包中业务数据进行压缩处理。
在一个实施例中,当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,服务器可通过从第一缓冲流中读取缓存的源数据包,从而获取源数据包中相应的业务数据。
在一个实施例中,服务器可根据业务数据的类型,业务数据如文本数据、图像数据或音频数据等,分配与业务数据类型相匹配的压缩算法。压缩算法如ZSTD算法、ZLIB算法或LZW算法。本申请实施例对此不做限定。
在一个实施例中,源数据包可以是虚拟资源交易数据包,如股票、基金或债券等交易数据包,业务数据可以是虚拟资源的交易数据,如股票、基金或债券等的买入卖出数据。服务器可根据股票的买入卖出数据,分配对应的ZSTD压缩算法,并根据ZSTD算法对股票交易数据包中的股票买入卖出数据进行压缩处理。其中,ZSTD算法是一种开源无损数据压缩算法,ZSTD算法通过表格来显示各数据间的近似概率,从而将概率计算转换成表格查询,以提高压缩速率。
上述实施例中,服务器通过根据业务数据的数据类型,分配相应的压缩算法来对业务数据进行压缩处理,使得多个源数据小包在第一缓冲流中生成一个业务数据大包,因而在业务数据大包和小包混合传输的场景下,保证各类型的业务数据的压缩率,从而提高传输效率。
在一个实施例中,步骤S208,也就是对压缩数据进行封装处理的步骤,具体包括:依次对压缩数据增加各层协议首部,以将压缩数据转换成对应的压缩数据帧;将压缩数据帧作为封装后的压缩数据。
具体地,服务器通过采用压缩算法对源数据包中的业务数据进行压缩,以获取相应的压缩数据,并依次将该压缩数据传入协议栈,通过对压缩数据增加各层协议首部,以将压缩数据转换成相应的压缩数据帧。且服务器将压缩数据帧作为封装后的压缩数据。
在一个实施例中,服务器可通过压缩处理后产生的压缩信息来获取压缩数据的数据大小。当压缩数据的数据大小小于预设压缩阈值时,对压缩数据进行相应的封装处理。其中,当压缩数据是压缩的虚拟资源的交易数据,如压缩的股票、基金或债券等的买入卖出数据时,对应的预设压缩阈值可以是8KB,即当压缩的股票买入卖出数据的大小达到8KB时,对压缩的股票买入卖出数据进行封装处理。
在一个实施例中,服务器将压缩数据传入协议栈时,压缩数据需依次通过应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link),因而压缩数据依次增加应用首部、TCP首部、IP(Internet Protocol,网络协议)首部和以太网首部,以对压缩数据进行封装处理。其中,TCP首部包括接收端端口和发送端端口,IP首部包括接收端IP地址和发送端IP地址,以太网首部包括接收端MAC(Media Access Control,物理地址)地址和发送端MAC地址。
在一个实施例中,服务器将压缩数据传入协议栈,当压缩数据进入传输层时,压缩数据转换为压缩数据段;当压缩数据段进入网络层时,压缩数据段转换为压缩数据报;当压缩数据报进入链路层时,压缩数据报转换为压缩数据帧。因而对压缩数据进行封装处理也就是将压缩数据转换成对应的压缩数据帧,且将压缩数据帧作为封装后的压缩数据。
在一个实施例中,服务器对压缩数据进行封装时所增加的TCP首部、IP首部和以太网首部都无法被压缩,且TCP首部占用20-60字节、IP首部占用20-60字节,以太首部占用14字节,以及一些相应的字段,如以太网帧的前导码和帧校验序列(FCS)也无法被压缩。其中,前导码是一种时钟信号,以0和1的形式来表示,前导码占用8字节。FCS是以太网帧的尾部,用于存储CRC(Cyclic Redundancy Check,循环冗余校验)结果,FCS占用4字节。因而封装后的压缩数据至少包括66字节。
上述实施例中,服务器通过依次对压缩数据增加各层协议首部,从而对压缩数据进行封装处理,以得到相应的封装后的压缩数据。通过这样的封装方式,使得压缩数据可以业务数据包的形式进行传输,从而提高传输的效率。
应该理解的是,虽然图2、图4和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4和图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种业务数据传输装置600,包括:接收模块601、缓存模块602、压缩模块603和发送模块604,其中:
接收模块601,用于接收业务分发系统发送的源数据包;源数据包包括相应的业务数据。
缓存模块602,用于当与本地连接的终端的数量大于预设数量时,将源数据包缓存至第一缓冲流中,并确定第一缓冲流中缓存的源数据包的总数据长度。
压缩模块603,用于当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,对第一缓冲流中的源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息。
发送模块604,用于对压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将业务数据包发送到终端。
在一个实施例中,压缩模块603还用于当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,获取第一缓冲流中的源数据包中的业务数据;根据业务数据的数据类型,分配相应的压缩算法;根据分配的压缩算法对源数据包中业务数据进行压缩处理。
在一个实施例中,发送模块604还用于依次对压缩数据增加各层协议首部,以将压缩数据转换成对应的压缩数据帧;将压缩数据帧作为封装后的压缩数据。
在一个实施例中,业务分发系统包括虚拟资源交易行情分发系统;源数据包包括虚拟资源交易数据包;业务数据包括虚拟资源的交易数据。
参考图7,在一个实施例中,该业务数据传输装置600还包括定时模块605,用于计算在当前业务数据传输周期内,首次接收到源数据包的时间点至当前时间点之间的数据缓存时间段;当数据缓存时间段达到预设缓存周期、且第一缓冲流中的源数据包的总数据长度小于预设长度时,对源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息;对压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将业务数据包发送到终端。
在一个实施例中,该业务数据传输装置600还包括分配模块606,用于当终端的数量小于等于预设数量时,分配具有与终端的数量相同数量的第二缓冲流,并分别将各第二缓冲流与各终端进行一一关联处理;当接收到源数据包时,确定与接收的源数据包对应的终端,并将各源数据包分别缓存至与相应终端对应的第二缓冲流;分别对各第二缓冲流中的源数据包的流量进行控制;将相应流量满足流量平衡条件的第二缓冲流中缓存的源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息,并对压缩数据进行封装处理后生成业务数据包,将业务数据包发送到与相应第二缓冲流对应的终端。
在一个实施例中,分配模块606还用于确定终端各自的接收窗口值;接收窗口值表示终端接收业务数据包的数据长度;根据接收窗口值,确定各第二缓冲流中与各接收窗口值相等的发送窗口值;当第二缓冲流中缓存的源数据包的数据长度与相应发送窗口值相同时,确定第二缓冲流当前的流量满足流量平衡条件。
上述业务数据传输装置,将业务分发系统发送的源数据包缓存至第一缓冲流中,当第一缓冲流中的源数据包的总数据长度大于等于预设长度时,对源数据包中的业务数据进行压缩和封装处理,通过这样对业务数据进行先缓冲后压缩封装的方式,可提高业务数据小包的压缩率,从而提高传输效率。通过将业务数据缓存至缓冲流,也就是将业务数据小包和大包进行融合,可减少各协议首部资源的浪费,因而节省网络带宽资源的成本,大大提高了业务数据的传输效率。
关于业务数据传输装置的具体限定可以参见上文中对于业务数据传输方法的限定,在此不再赘述。上述业务数据传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储业务数据传输数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务数据传输方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述业务数据传输方法的步骤。此处业务数据传输方法的步骤可以是上述各个实施例的业务数据传输方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述业务数据传输方法的步骤。此处业务数据传输方法的步骤可以是上述各个实施例的业务数据传输方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种业务数据传输方法,所述方法包括:
接收业务分发系统发送的源数据包;所述源数据包包括相应的业务数据;
当与本地连接的终端的数量大于预设数量时,将所述源数据包缓存至第一缓冲流中,并确定所述第一缓冲流中缓存的所述源数据包的总数据长度;
当所述第一缓冲流中的源数据包的总数据长度大于等于预设长度时,对所述第一缓冲流中的所述源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息;
对所述压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将所述业务数据包发送到终端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
计算在当前业务数据传输周期内,首次接收到所述源数据包的时间点至当前时间点之间的数据缓存时间段;
当所述数据缓存时间段达到预设缓存周期、且所述第一缓冲流中的源数据包的总数据长度小于所述预设长度时,对所述源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息;
对所述压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将所述业务数据包发送到终端。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述终端的数量小于等于所述预设数量时,分配具有与所述终端的数量相同数量的第二缓冲流,并分别将各所述第二缓冲流与各终端进行一一关联处理;
当接收到源数据包时,确定与接收的所述源数据包对应的终端,并将各所述源数据包分别缓存至与相应终端对应的第二缓冲流;
分别对各所述第二缓冲流中的源数据包的流量进行控制;
将相应流量满足流量平衡条件的第二缓冲流中缓存的源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息,并对所述压缩数据进行封装处理后生成业务数据包,将所述业务数据包发送到与相应第二缓冲流对应的终端;
所述分别对各所述第二缓冲流中的源数据包的流量进行控制,包括:
确定所述终端各自的接收窗口值;所述接收窗口值表示所述终端接收业务数据包的数据长度;
根据所述接收窗口值,确定各所述第二缓冲流中与各所述接收窗口值相等的发送窗口值;
当所述第二缓冲流中缓存的源数据包的数据长度与相应发送窗口值相同时,确定所述第二缓冲流当前的流量满足流量平衡条件。
4.根据权利要求1所述的方法,其特征在于,所述当所述第一缓冲流中的源数据包的总数据长度大于等于所述预设长度时,对所述第一缓冲流中的所述源数据包中的业务数据进行压缩处理,包括:
当所述第一缓冲流中的源数据包的总数据长度大于等于所述预设长度时,获取所述第一缓冲流中的源数据包中的业务数据;
根据所述业务数据的数据类型,分配相应的压缩算法;
根据分配的压缩算法对所述源数据包中业务数据进行压缩处理。
5.根据权利要求1所述的方法,其特征在于,所述对所述压缩数据进行封装处理,包括:
依次对所述压缩数据增加各层协议首部,以将所述压缩数据转换成对应的压缩数据帧;
将所述压缩数据帧作为封装后的压缩数据。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述业务分发系统包括虚拟资源交易行情分发系统;所述源数据包包括虚拟资源交易数据包;所述业务数据包括虚拟资源的交易数据。
7.一种业务数据传输装置,其特征在于,所述装置包括:
接收模块,用于接收业务分发系统发送的源数据包;所述源数据包包括相应的业务数据;
缓存模块,用于当与本地连接的终端的数量大于预设数量时,将所述源数据包缓存至第一缓冲流中,并确定所述第一缓冲流中缓存的所述源数据包的总数据长度;
压缩模块,用于当所述第一缓冲流中的源数据包的总数据长度大于等于预设长度时,对所述第一缓冲流中的所述源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息;
发送模块,用于对所述压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将所述业务数据包发送到终端。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
定时模块,用于计算在当前业务数据传输周期内,首次接收到所述源数据包的时间点至当前时间点之间的数据缓存时间段;当所述数据缓存时间段达到预设缓存周期、且所述第一缓冲流中的源数据包的总数据长度小于所述预设长度时,对所述源数据包中的业务数据进行压缩处理,得到压缩数据和对应的压缩信息;对所述压缩数据进行封装处理,并根据封装后的压缩数据以及相应的压缩信息生成业务数据包,将所述业务数据包发送到终端。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010165424.9A CN112422489B (zh) | 2020-03-11 | 2020-03-11 | 业务数据传输方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010165424.9A CN112422489B (zh) | 2020-03-11 | 2020-03-11 | 业务数据传输方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112422489A CN112422489A (zh) | 2021-02-26 |
CN112422489B true CN112422489B (zh) | 2021-11-02 |
Family
ID=74844036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010165424.9A Active CN112422489B (zh) | 2020-03-11 | 2020-03-11 | 业务数据传输方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422489B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113301123B (zh) * | 2021-04-30 | 2024-04-05 | 阿里巴巴创新公司 | 一种数据流处理方法、设备及存储介质 |
CN113222765B (zh) * | 2021-05-31 | 2021-11-19 | 深圳华云信息系统有限公司 | 行情数据推送方法、装置、电子设备及存储介质 |
CN114786074B (zh) * | 2022-06-20 | 2022-09-09 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种风洞测压数据的传输方法及传输系统 |
CN116166830B (zh) * | 2023-04-21 | 2023-08-11 | 北京象帝先计算技术有限公司 | 数据处理系统、电子组件、电子设备及数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307186A (zh) * | 2011-07-27 | 2012-01-04 | 深圳市纽泰克电子有限公司 | 急救医疗信息数据传输处理方法及装置 |
US10148496B2 (en) * | 2015-05-05 | 2018-12-04 | Citrix Systems, Inc. | Systems and methods for configuring a device via a software-defined networking controller |
CN109743158A (zh) * | 2019-01-04 | 2019-05-10 | 青岛方寸微电子科技有限公司 | 用于实现高性能sm3算法的系统及高性能sm3算法实现方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9838683B2 (en) * | 2012-07-10 | 2017-12-05 | Cisco Technology, Inc. | Support for variable number of picture buffers in decoded picture buffer |
CN108092908B (zh) * | 2016-11-23 | 2020-06-26 | 华为技术有限公司 | 控制流量的方法和发送端设备 |
CN108429761B (zh) * | 2018-04-10 | 2020-06-16 | 北京交通大学 | 智慧协同网络中资源适配解析服务器DDoS攻击检测防御方法 |
-
2020
- 2020-03-11 CN CN202010165424.9A patent/CN112422489B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307186A (zh) * | 2011-07-27 | 2012-01-04 | 深圳市纽泰克电子有限公司 | 急救医疗信息数据传输处理方法及装置 |
US10148496B2 (en) * | 2015-05-05 | 2018-12-04 | Citrix Systems, Inc. | Systems and methods for configuring a device via a software-defined networking controller |
CN109743158A (zh) * | 2019-01-04 | 2019-05-10 | 青岛方寸微电子科技有限公司 | 用于实现高性能sm3算法的系统及高性能sm3算法实现方法 |
Non-Patent Citations (1)
Title |
---|
"面向网络通信的高实时压缩引擎设计";任秀江等;《计算机工程与科学》;20180430;第40卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112422489A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112422489B (zh) | 业务数据传输方法、装置、计算机设备和存储介质 | |
US7355971B2 (en) | Determining packet size in networking | |
JP4425277B2 (ja) | ネットワーク内の動的リアルタイム・ストリーム集約のための方法、システムおよび装置 | |
Moraes et al. | Performance comparison of IoT communication protocols | |
US7027450B2 (en) | Frame batching and compression for IP transmission | |
US7079501B2 (en) | Method and system for efficiently delivering content to multiple requesters | |
US10367873B2 (en) | Method of communicating data packets within data communication systems | |
WO2013102179A1 (en) | High capacity network communication link using multiple cellular devices | |
CN109327513B (zh) | 交互方法、装置及计算机可读存储介质 | |
CN110312147A (zh) | 业务数据传输的方法、系统与存储介质 | |
CN101360046B (zh) | 一种带宽资源的节约方法 | |
CN102710765A (zh) | 一种cdn服务器实现透明代理的方法、装置及系统 | |
CN103200072A (zh) | 一种基于网络的数据传输方法、装置及系统 | |
CN108900433B (zh) | 一种传输lora报文的方法、终端和服务器 | |
CN111884946B (zh) | 多种无线接入系统中的数据分流传输方法、装置、计算机设备及存储介质 | |
CN111884899A (zh) | 发送数据的方法和转发设备 | |
JP2018196053A (ja) | 通信装置、通信方法、およびプログラム | |
CN108809549B (zh) | 一种传输数据的方法及设备 | |
CN104683353A (zh) | 一种车联网安全信息自适应通信系统 | |
WO2021031092A1 (zh) | 报文处理方法及网络设备 | |
EP3672189B1 (en) | Data transmission method, device and system | |
CN114666836A (zh) | 数据传输方法、装置、电子设备和计算机可读存储介质 | |
CN114615347A (zh) | 基于udp gso的数据传输方法和装置 | |
US7290055B2 (en) | Multi-threaded accept mechanism in a vertical perimeter communication environment | |
WO2021036189A1 (zh) | Rdma数据发送及接收方法、电子设备及可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room 2301, building 5, Shenzhen new generation industrial park, 136 Zhongkang Road, Meidu community, Meilin street, Futian District, Shenzhen City, Guangdong Province Patentee after: Shenzhen Huarui Distributed Technology Co.,Ltd. Address before: Room 2301, building 5, Shenzhen new generation industrial park, 136 Zhongkang Road, Meidu community, Meilin street, Futian District, Shenzhen City, Guangdong Province Patentee before: SHENZHEN ARCHFORCE FINANCIAL TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |