CN117498987A - 一种应用于大规模网络数据传输的方法 - Google Patents
一种应用于大规模网络数据传输的方法 Download PDFInfo
- Publication number
- CN117498987A CN117498987A CN202410001070.2A CN202410001070A CN117498987A CN 117498987 A CN117498987 A CN 117498987A CN 202410001070 A CN202410001070 A CN 202410001070A CN 117498987 A CN117498987 A CN 117498987A
- Authority
- CN
- China
- Prior art keywords
- bit
- data
- sequence
- transmitted
- byte
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 9
- 230000006835 compression Effects 0.000 claims abstract description 8
- 238000007906 compression Methods 0.000 claims abstract description 8
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 3
- 238000012916 structural analysis Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 5
- 238000004458 analytical method Methods 0.000 abstract description 3
- 230000004044 response Effects 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/4906—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种应用于大规模网络数据传输的方法。该方法通过动态语言运行时完成待传输数据的存取和类型识别绑定;对待传输数据进行位存储编码,以将待传输数据分割为多个独立的位,并经过位操作、位压缩、位序列处理后形成位序列,并存储在介质中;将位序列组成字节序列,并将由位序列组成的字节序列传输至目标系统中;读取由位序列组成的字节序列,将字节序列转化为位序列,每一字节的位序列拆分为组成其的8个位,然后将位解码为原始的表示形式;将解码后的位重新组合成待传输数据的定义和顺序,并保存在缓存地址中。本发明数据体积小,传输效率高;解析时间短,响应速度快;支持跨系统和多语言应用,满足异构系统通信需求。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种应用于大规模网络数据传输的方法。
背景技术
在计算机系统中,需要将数据存储在文件、数据库或网络中,并在不同的系统之间传输。序列化和反序列化提供了一种使数据在存储和传输过程中保持完整性的方式,先进的序列化和反序列化技术能够大幅提升数据传输效率。
序列化和反序列化技术在分布式系统、网络数据传输和持久化等领域起到了重要的作用,提供了灵活、高效的数据交换和存储方式。通用的网络数据序列化和反序列化技术包括:
1、JSON序列化
使用JSON(JavaScript Object Notation)格式将对象序列化为字符串,常用于Web应用程序和跨平台通信。缺点:1)数据冗余,字符串数据比原始数据占用更多的存储空间;2)解析耗时,在进行反序列化将字符串数据解析为相对应的数据结构时耗时较长;
2、XML序列化
使用XML(eXtensible Markup Language)格式将对象序列化为字符串,常用于数据交换和配置文件。缺点:1)增加数据体积和传输开销,降低数据存储的效率;2)可调式性差,在处理大型或复杂结构的数据时,对数据的理解和调试更加困难;
3、Protocol序列化
Google开发的二进制序列化格式,具有高效的编解码性能和较小的数据体积。缺点:1)开发和维护复杂,需要使用对应的编译器进行编写和维护,需要开发者专门学习使用,提高了开发门槛;2)不适用动态数据传递,因为protocol数据定义和编译过程是静态的,不太适用需要动态生成和操作的数据结构场景;3)可扩展性差,每一个数据类都会生成对应Proto文件,如果某个类发生修改,需要重新编写和生成文件,不利于系统快速更新和调整;
4、Java的序列化
Java语言提供的一种将对象序列化和反序列化为字节流的机制。缺点:1)数据冗余,且传输效率低;2)兼容性差,其他计算机语言无法识别和对接,无法满足跨系统通信需求。
发明内容
本发明的目的是针对现有技术存在的不足,提供一种应用于大规模网络数据传输的方法。
为实现上述目的,本发明提供了一种应用于大规模网络数据传输的方法,包括:
通过定义的动态语言运行时完成待传输数据的存取和类型识别绑定;
对所述待传输数据进行结构分析,以确定所述待传输数据中的每个数据项的大小和位序;
对所述待传输数据进行位存储编码,以将所述待传输数据分割为多个独立的位,每个位由0或1进行表示,并将多个独立的位经过位操作、位压缩、位序列处理后形成位序列,并存储在介质中,且以8个位存储为一个字节;
将所述位序列组成字节序列,并将由位序列组成的字节序列传输至目标系统中;
从所述目标系统的存储介质或传输的字节流中读取由位序列组成的字节序列;
将字节序列转化为位序列,每一字节的位序列拆分为组成其的8个位,然后将位解码为原始的表示形式;
将解码后的位重新组合成待传输数据的定义和顺序,并保存在缓存地址中。
进一步的,所述动态语言运行时通过以下方式完成待传输数据的存取和类型识别绑定:
创建表达式树,以使用树形结构的表达式树来表示语言语义,扩展表达式树,使其包含控制流、分配和其他语言建模节点;
创建并调用站点缓存,并根据缓存记录数据类型和有关操作数据建立站点位置;
创建一组表示动态对象和操作的类和接口,便于通过API直接快速识别和绑定对象类型。
进一步的,所述位压缩的具体方式为:
采用二进制中的一位来表示数据中一个状态。
进一步的,所述位操作的具体方式为:
通过位的与、或、非、异或、左移、右移在位级别上对多个独立的位进行处理、控制和优化。
进一步的,所述位序列处理的具体方式为:
采用自左向右顺序将位记录的数据依次逐位的存放在缓存地址单元中,以组成顺序序列,用以表示各种类型的数据。
进一步的,采用大端序将位序列组合成字节序列和将读取后的字节序列拆分成位序列,并使用网络套接字库发送、接收和读取由位序列组成的字节序列。
有益效果:1、本发明开发出的Fast极速序列化和Fast反序列化技术,适用于大规模网络数据传输,可直接通过API(应用程序编程接口)调用而不需要使用额外的编译器,就将数据对象序列化成二进制格式,以二进制形式进行数据流传输,其内部采用动态语法支持动态编译指定的数据类型,不仅适用于网络通信和数据传输,也适用于分布式异构系统、远程过程调用、数据缓存和持久化等应用场景;
2、数据体积小,传输效率高;
3、解析时间短,响应速度快;
4、支持跨系统和多语言应用,满足异构系统通信需求;
5、可扩展性和兼容性强,可通过API直接调用;
6、采取Dynamic动态语言运行时来识别数据类型,避免在对相同类型的数据对象,连续执行相同代码时进行大量消耗资源的绑定计算。
附图说明
图1是本发明实施例的应用于大规模网络数据传输的方法的示意图;
图2是通过动态语言运行时实现待传输数据的存取和类型识别绑定的示意图;
图3是将待发送数据的原始类型转化为二进制数据类型的示意图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,本实施例在以本发明技术方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。
如图1所示,本发明实施例提供了一种应用于大规模网络数据传输的方法,包括Fast极速序列化过程和Fast极速反序列化过程,其中,Fast极速序列化过程具体如下:
通过定义的Dynamic动态语言运行时完成待传输数据(数据A)的存取和类型识别绑定。通过Dynamic动态语言运行时标识待传输数据的数据类型并缓存到站点,而不必在设计时就指定对象的类型,因此可以快速动态的调度和调用相同类型对象,减少大量因重复绑定相同类型对象造成的资源开销。
具体的,参见图2,Dynamic动态语言运行时通过以下方式完成待传输数据的存取和类型识别绑定:
创建表达式树,以使用树形结构的表达式树来表示语言语义,扩展LINQ表达式树,使其包含控制流、分配和其他语言建模节点。
创建并调用站点缓存,并根据缓存记录数据类型和有关操作数据建立站点位置。如果之前已经执行过此类操作,则会从缓存中检索所有的必要数据以实现快速调度,避免因重复绑定造成的资源开销。
创建一组表示动态对象和操作的类和接口,便于通过API直接快速识别和绑定对象类型。
对待传输数据进行结构分析,以确定待传输数据中的每个数据项的大小和位序。
参见图3,对待传输数据进行位存储编码,以将所述待传输数据分割为多个独立的位,每个位由0或1进行表示,并将多个独立的位经过位操作、位压缩、位序列处理后形成位序列,并存储在介质中,且以8个位存储为一个字节。由于是将任意类型的待传输数据转化为二进制数据类型,只需要进行简单的逻辑运算即可完成数据编码,因此极大提高数据的压缩率和运行效率。
具体的,位压缩的具体方式为:采用二进制中的一位来表示数据中一个状态。比如ushort值只需要用一个字节8位中的两位来记录,int值只需要用一个字节8位中的三位来记录,long值只需要用一个字节8位中的四位来记录等,因此将对象类型转化为二进制类型。
位操作的具体方式为:通过位的与、或、非、异或、左移、右移在位级别上对多个独立的位进行处理、控制和优化。
位序列处理的具体方式为:
采用自左向右顺序将位记录的数据依次逐位的存放在缓存地址单元中,以组成顺序序列,用以表示各种类型的数据。
将位序列组成字节序列,并将由位序列组成的字节序列传输至目标系统中。具体的,采用大端序将位序列组合成字节序列和将读取后的字节序列拆分成位序列,并使用网络套接字(Socket)库发送由位序列组成的字节序列。上述大端序即高位字节存储在缓存低位地址,低位字节存储在缓存高位地址,以此将位序列组合成字节序列。
Fast极速反序列化过程具体如下:
从目标系统的存储介质或传输的字节流中读取由位序列组成的字节序列。同样使用网络套接字(Socket)库接收并读取发送来的字节序列。
将字节序列转化为位序列,每一字节的位序列拆分为组成其的8个位,然后将位解码为原始的表示形式。期间,同样使用大端序将读取后的字节序列拆分成位序列,进而将二进制的位序列按照自左向右顺序重组成原始类型。
将解码后的位重新组合成待传输数据的定义和顺序,并保存在缓存地址中。
以下为一个具体实施案例,具体实施过程如下:
开发环境:使用Visual Studio2019版本的软件工具作为开发和使用环境,在Net框架下使用C#语言作为开发语言。
1)定义一个数据类Config,用来记录需要存储和传送的数据。
2)调用Fast极速序列化的API(DynamicBuild方法),生成.cs格式的数据绑定类ConfigBuild类文件,里面保存有Config类全部的数据和数据类型,并保存在开发项目的根目录下。
3)将生成的ConfigBuild类导入到项目开发环境中。
4)调用Fast极速序列化的API(Write方法),将ConfigBuild类的数据转化为二进制格式的序列化数据,并自动保存在缓存中。
5)在设备A使用网络套接字(Socket)类库Send方法发送序列化数据。
6)在设备B使用网络套接字(Socket)类库Receive方法接受由设备A发送来的序列化数据。
7)调用Fast极速序列化的API(Read方法),读取二进制格式的序列化数据,并还原出ConfigBuild类的原始数据类型格式,并自动保存在缓存中,以此可得到Config类中记录的全部数据。
通过测试10万次500B(字节)数据序列化对比,主要参数对比如下:
随着数据量传输越大,本发明实施例进行数据传输的效率提升越发显著。经测试,在进行大规模网络数据传输时,本发明实施例能够将原数据对象的大小压缩80%以上,其传输效率是采用二进制数据格式序列化技术(如protocol和Java序列化)的3-5倍,是采用字符串数据格式序列化技术(如XML和Json序列化)的10-30倍。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,其它未具体描述的部分,属于现有技术或公知常识。在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种应用于大规模网络数据传输的方法,其特征在于,包括:
通过定义的动态语言运行时完成待传输数据的存取和类型识别绑定;
对所述待传输数据进行结构分析,以确定所述待传输数据中的每个数据项的大小和位序;
对所述待传输数据进行位存储编码,以将所述待传输数据分割为多个独立的位,每个位由0或1进行表示,并将多个独立的位经过位操作、位压缩、位序列处理后形成位序列,并存储在介质中,且以8个位存储为一个字节;
将所述位序列组成字节序列,并将由位序列组成的字节序列传输至目标系统中;
从所述目标系统的存储介质或传输的字节流中读取由位序列组成的字节序列;
将字节序列转化为位序列,每一字节的位序列拆分为组成其的8个位,然后将位解码为原始的表示形式;
将解码后的位重新组合成待传输数据的定义和顺序,并保存在缓存地址中。
2.根据权利要求1所述的一种应用于大规模网络数据传输的方法,其特征在于,所述动态语言运行时通过以下方式完成待传输数据的存取和类型识别绑定:
创建表达式树,以使用树形结构的表达式树来表示语言语义,扩展表达式树,使其包含控制流、分配和其他语言建模节点;
创建并调用站点缓存,并根据缓存记录数据类型和有关操作数据建立站点位置;
创建一组表示动态对象和操作的类和接口,便于通过API直接快速识别和绑定对象类型。
3.根据权利要求1所述的一种应用于大规模网络数据传输的方法,其特征在于,所述位压缩的具体方式为:
采用二进制中的一位来表示数据中一个状态。
4.根据权利要求1所述的一种应用于大规模网络数据传输的方法,其特征在于,所述位操作的具体方式为:
通过位的与、或、非、异或、左移、右移在位级别上对多个独立的位进行处理、控制和优化。
5.根据权利要求1所述的一种应用于大规模网络数据传输的方法,其特征在于,所述位序列处理的具体方式为:
采用自左向右顺序将位记录的数据依次逐位的存放在缓存地址单元中,以组成顺序序列,用以表示各种类型的数据。
6.根据权利要求1所述的一种应用于大规模网络数据传输的方法,其特征在于,采用大端序将位序列组合成字节序列和将读取后的字节序列拆分成位序列,并使用网络套接字库发送、接收和读取由位序列组成的字节序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410001070.2A CN117498987B (zh) | 2024-01-02 | 2024-01-02 | 一种应用于大规模网络数据传输的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410001070.2A CN117498987B (zh) | 2024-01-02 | 2024-01-02 | 一种应用于大规模网络数据传输的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117498987A true CN117498987A (zh) | 2024-02-02 |
CN117498987B CN117498987B (zh) | 2024-03-15 |
Family
ID=89673050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410001070.2A Active CN117498987B (zh) | 2024-01-02 | 2024-01-02 | 一种应用于大规模网络数据传输的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117498987B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981841A (zh) * | 2011-11-08 | 2013-03-20 | 微软公司 | 外部序列化和去序列化 |
US20150205584A1 (en) * | 2014-01-17 | 2015-07-23 | Microsoft Corporation | Lightweight optionally typed data representation of computation |
CN106648817A (zh) * | 2016-12-09 | 2017-05-10 | 北京酷我科技有限公司 | 一种跨平台的数据对象传输方法 |
CN110399125A (zh) * | 2019-07-25 | 2019-11-01 | 南京数睿数据科技有限公司 | 一种基于Java技术的多维度多条件的动态查询方法 |
CN114020272A (zh) * | 2021-09-23 | 2022-02-08 | 微梦创科网络科技(中国)有限公司 | 一种序列化编码、解码方法、装置及电子设备 |
CN114153896A (zh) * | 2021-11-23 | 2022-03-08 | 计易数据科技(上海)有限公司 | 序列化与反序列化方法及其装置、设备和介质 |
US20220215094A1 (en) * | 2020-12-31 | 2022-07-07 | Virsec Systems, Inc. | Protecting Against Memory Deserialization Attacks |
CN115630614A (zh) * | 2022-12-23 | 2023-01-20 | 深圳曼顿科技有限公司 | 数据传输方法、装置、电子设备与介质 |
CN116382692A (zh) * | 2022-12-30 | 2023-07-04 | 云车智途(重庆)科技有限公司 | 一种c++对象序列化及反序列化方法 |
-
2024
- 2024-01-02 CN CN202410001070.2A patent/CN117498987B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981841A (zh) * | 2011-11-08 | 2013-03-20 | 微软公司 | 外部序列化和去序列化 |
US20150205584A1 (en) * | 2014-01-17 | 2015-07-23 | Microsoft Corporation | Lightweight optionally typed data representation of computation |
CN106648817A (zh) * | 2016-12-09 | 2017-05-10 | 北京酷我科技有限公司 | 一种跨平台的数据对象传输方法 |
CN110399125A (zh) * | 2019-07-25 | 2019-11-01 | 南京数睿数据科技有限公司 | 一种基于Java技术的多维度多条件的动态查询方法 |
US20220215094A1 (en) * | 2020-12-31 | 2022-07-07 | Virsec Systems, Inc. | Protecting Against Memory Deserialization Attacks |
CN114020272A (zh) * | 2021-09-23 | 2022-02-08 | 微梦创科网络科技(中国)有限公司 | 一种序列化编码、解码方法、装置及电子设备 |
CN114153896A (zh) * | 2021-11-23 | 2022-03-08 | 计易数据科技(上海)有限公司 | 序列化与反序列化方法及其装置、设备和介质 |
CN115630614A (zh) * | 2022-12-23 | 2023-01-20 | 深圳曼顿科技有限公司 | 数据传输方法、装置、电子设备与介质 |
CN116382692A (zh) * | 2022-12-30 | 2023-07-04 | 云车智途(重庆)科技有限公司 | 一种c++对象序列化及反序列化方法 |
Non-Patent Citations (1)
Title |
---|
简书: ""关于FastJSON 使用serializeUsing自定义序列化"", Retrieved from the Internet <URL:https://www.jianshu.com/p/ee2ce1daf49d> * |
Also Published As
Publication number | Publication date |
---|---|
CN117498987B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9892144B2 (en) | Methods for in-place access of serialized data | |
US11087203B2 (en) | Method and apparatus for processing data sequence | |
CN113177034B (zh) | 一种跨平台统一的分布式图数据处理方法 | |
US7958133B2 (en) | Application conversion of source data | |
CN109902274A (zh) | 一种将json字符串转化为thrift二进制流的方法及系统 | |
CN112328257A (zh) | 代码转换方法及装置 | |
CN114492781A (zh) | 一种硬件加速器及数据处理方法、系统、设备、介质 | |
CN110941655A (zh) | 一种数据格式转换方法及装置 | |
CN110046132B (zh) | 一种元数据请求处理方法、装置、设备及可读存储介质 | |
CN113434147B (zh) | 基于ProtoBuf协议的消息解析方法及装置 | |
CN117498987B (zh) | 一种应用于大规模网络数据传输的方法 | |
WO2021013047A1 (zh) | 一种文件管理方法及装置 | |
US7856503B2 (en) | Method and apparatus for dynamic content generation | |
CN112989123A (zh) | 一种基于dds的动态数据类型通信方法及装置 | |
CN109597611B (zh) | 前端数据流控制组件开发系统、方法、设备及存储介质 | |
US20230186024A1 (en) | Text Processing Method, Device and Storage Medium | |
CN108762762B (zh) | 会话信息管理方法、装置、设备和计算机存储介质 | |
CN113592701B (zh) | 将梯度压缩算法开发注册到深度学习框架中的方法及系统 | |
KR102610431B1 (ko) | 인공지능 분석 기반 프로그램 소스코드의 요약문 생성 장치 및 방법 | |
US11797277B2 (en) | Neural network model conversion method server, and storage medium | |
CN115240654A (zh) | 语音识别模型训练方法、装置、设备及存储介质 | |
CN113835904A (zh) | 一种远程过程调用控制方法、装置、设备及存储介质 | |
CN118277686A (zh) | 页面渲染方法、装置和电子设备 | |
CN116452951B (zh) | 基于中央数据池的遥感信息提取模型分布式训练方法 | |
CN111752602B (zh) | 一种生成在GO语言中运行的protobuf文件的方法 |
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 |