CN112968907A - 数据传输方法、数据存储方法、数据查询方法、介质及设备 - Google Patents
数据传输方法、数据存储方法、数据查询方法、介质及设备 Download PDFInfo
- Publication number
- CN112968907A CN112968907A CN202110322209.XA CN202110322209A CN112968907A CN 112968907 A CN112968907 A CN 112968907A CN 202110322209 A CN202110322209 A CN 202110322209A CN 112968907 A CN112968907 A CN 112968907A
- Authority
- CN
- China
- Prior art keywords
- data
- path
- data transmission
- transmission packet
- packet
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及一种数据传输方法、数据存储方法、数据查询方法、介质及设备,包括:针对待发送的数据链构造多个数据传输包,多个数据传输包中包括首数据传输包、尾数据传输包、中间传输包,中间传输包与数据链中首数据之后的每一数据一一对应,中间传输包包括对应的数据和数据在数据链中的上一个数据,首数据传输包包括首数据包和首包标识,尾数据传输包包括数据链中的尾数据和尾包标识;将多个数据传输包发送给数据接收端,首数据传输包、尾数据传输包、中间传输包用于对数据链中的数据进行完整性验证。这样,基于构造的首数据传输包、尾数据传输包和中间传输包对数据链中的数据进行完整性验证,可以提高数据传输完整性验证的便捷性和准确性。
Description
技术领域
本公开涉及数据传输技术领域,具体地,涉及一种数据传输方法、数据存储方法、数据查询方法、介质及设备。
背景技术
在P2P网络中,数据接收方在接收到数据以后需要对接收额数据进行完整性验证,若数据完整性验证不成功,则需要请求数据发送方在再次发送该数据,知道数据完整性验证成功,并且,在数据完整性验证成功的情况下,需要对完整的数据进行存储,以便于利于用户画像建立等操作时,调用存储的数据。
在相关技术中,数据接收方将数据的同态签名集合作为元数据,根据公钥以及挑战请求生成认证元数据集合,并将认证元数据集合发送到相应的数据发送方,由数据发送方根据认证元数据集合中的公钥、进行完整性验证。并且,在数据接收方进行数据存储时,基于接收数据的先后顺序,顺序写入接收的数据。
发明内容
本公开的目的是提供一种数据传输方法、数据存储方法、数据查询方法、介质及设备,以解决相关技术中数据传输的完整性验证便捷性较低的问题。
为了实现上述目的,本公开实施例第一方面,提供一种数据传输方法,应用于数据发送端,包括:
针对待发送的数据链,构造多个数据传输包,所述多个数据传输包中包括首数据传输包、尾数据传输包、中间传输包,其中,所述中间传输包与所述数据链中首数据之后的每一数据一一对应,所述中间传输包包括对应的所述数据以及所述数据在所述数据链中的上一个数据,所述首数据传输包包括所述首数据包以及首包标识,所述尾数据传输包包括所述数据链中的尾数据以及尾包标识;
将所述多个数据传输包发送给数据接收端,其中,所述首数据传输包、所述尾数据传输包、所述中间传输包用于所述数据接收端对所述数据链中的数据进行完整性验证,以在验证通过后确定所述数据链发送完成。
本公开实施例第二方面,提供一种数据传输方法,应用于数据接收端,所述方法包括:
接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据第一方面中的任一项所述的方法发送给所述数据接收端的;
在接收到的数据传输包中包括所述首包标识的情况下,确定该数据传输包为首数据传输包;
在接收到的数据传输包中包括所述尾包标识的情况下,确定该数据传输包为尾数据传输包,并基于所述尾数据传输包中包括的尾数据判断所述数据接收端是否已接收到所述尾数据对应的数据传输包;
在接收到的数据传输包不包括所述首包标识以及所述尾包标识的情况下,确定该数据传输包为中间传输包,并基于所述中间传输包中包括的所述上一数据判断所述数据接收端是否已接收到所述上一数据对应的数据传输包;
在所述数据接收端接收到的数据传输包中包括所述首数据传输包、所述尾数据传输包、所述尾数据对应的数据传输包、所述上一数据对应的数据传输包的情况下,确定所述数据链发送完成。
本公开实施例第三方面,提供一种数据存储方法,所述方法包括:
接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据第一方面中的任一项所述的方法发送给所述数据接收端的;
在对所述数据接收端接收到的各数据传输包进行完整性验证通过的情况下,对所述各数据传输包进行排序,得到至少一条待存储的数据传输包链;
对所述数据传输包链进行拆分去重处理,得到待存储数据链,所述待存储数据链是以所述首包标识为首节点、所述数据链中的各个数据为中间节点、所述尾包标识为尾节点的链式数据;
分别以所述待存储数据链中的每一节点作为起始点,遍历得到所述起始点对应的路径数据,所述路径数据包括从所述起始点向前步进0~N步得到的每一路径以及每一所述路径对应的步进步数,其中,N为所述起始点到所述待存储数据链的尾数据的步长;
针对每一所述路径,以所述路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径,其中,所述路径存储表的存储结构中包括路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元;
在所述路径存储表中存在相同的存储路径的情况下,对所述路径存储表中对应所述存储路径的边访问次数执行加一操作;
在所述路径存储表中不存在相同的存储路径的情况下,按照所述路径存储表的存储结构对所述存储路径进行存储。
本公开实施例第四方面,提供一种数据查询方法,所述方法用于查询根据第三方面所述的方法存储的数据,所述方法包括:
根据查询信息,确定查询起始点和查询步进步数;
以所述查询起始点为目标从所述路径存储表中查找目标存储路径;
以所述目标存储路径的起始点为所述查询起始点且以所述查询步进步数为目标步进步数,展开所述目标存储路径对应的路径,得到所述查询信息对应的全顶点回路图。
本公开实施例第五方面,提供一种数据传输装置,应用于数据发送端,所述装置包括:
构造模块,被配置为针对待发送的数据链,构造多个数据传输包,所述多个数据传输包中包括首数据传输包、尾数据传输包、中间传输包,其中,所述中间传输包与所述数据链中首数据之后的每一数据一一对应,所述中间传输包包括对应的所述数据以及所述数据在所述数据链中的上一个数据,所述首数据传输包包括所述首数据包以及首包标识,所述尾数据传输包包括所述数据链中的尾数据以及尾包标识;
发送模块,被配置为将所述多个数据传输包发送给数据接收端,其中,所述首数据传输包、所述尾数据传输包、所述中间传输包用于所述数据接收端对所述数据链中的数据进行完整性验证,以在验证通过后确定所述数据链发送完成。
本公开实施例第六方面,提供一种数据传输装置,应用于数据接收端,所述装置包括:
第一接收模块,被配置为接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据第五方面所述的装置发送给所述数据接收端的;
第一确定模块,被配置为在接收到的数据传输包中包括所述首包标识的情况下,确定该数据传输包为首数据传输包;
第二确定模块,被配置为在接收到的数据传输包中包括所述尾包标识的情况下,确定该数据传输包为尾数据传输包,并基于所述尾数据传输包中包括的尾数据判断所述数据接收端是否已接收到所述尾数据对应的数据传输包;
第三确定模块,被配置为在接收到的数据传输包不包括所述首包标识以及所述尾包标识的情况下,确定该数据传输包为中间传输包,并基于所述中间传输包中包括的所述上一数据判断所述数据接收端是否已接收到所述上一数据对应的数据传输包;
第四确定模块,被配置为在所述数据接收端接收到的数据传输包中包括所述首数据传输包、所述尾数据传输包、所述尾数据对应的数据传输包、所述上一数据对应的数据传输包的情况下,确定所述数据链发送完成。
本公开实施例第七方面,提供一种数据存储装置,所述装置包括:
第二接收模块,被配置为接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据第五方面所述的装置发送给所述数据接收端的;
排序模块,被配置为在对所述数据接收端接收到的各数据传输包进行完整性验证通过的情况下,对所述各数据传输包进行排序,得到至少一条待存储的数据传输包链;
拆分模块,被配置为对所述数据传输包链进行拆分去重处理,得到待存储数据链,所述待存储数据链是以所述首包标识为首节点、所述数据链中的各个数据为中间节点、所述尾包标识为尾节点的链式数据;
遍历模块,被配置为分别以所述待存储数据链中的每一节点作为起始点,遍历得到所述起始点对应的路径数据,所述路径数据包括从所述起始点向前步进0~N步得到的每一路径以及每一所述路径对应的步进步数,其中,N为所述起始点到所述待存储数据链的尾数据的步长;
第一查询模块,被配置为针对每一所述路径,以所述路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径,其中,所述路径存储表的存储结构中包括路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元;
执行模块,被配置为在所述路径存储表中存在相同的存储路径的情况下,对所述路径存储表中对应所述存储路径的边访问次数执行加一操作;
存储模块,被配置为在所述路径存储表中不存在相同的存储路径的情况下,按照所述路径存储表的存储结构对所述存储路径进行存储。
本公开实施例第八方面,提供一种数据查询装置,所述装置用于查询根据第七方面所述的装置存储的数据,所述装置包括:
第二查询模块,被配置为根据查询信息,确定查询起始点和查询步进步数;
查找模块,被配置为以所述查询起始点为目标从所述路径存储表中查找目标路径数据;
展开模块,被配置为以所述目标存储路径的起始点为所述查询起始点且以所述查询步进步数为目标步进步数,展开所述目标存储路径对应的路径,得到所述查询信息对应的全顶点回路图。
本公开实施例第九方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述数据传输方法的步骤,或者该程序被处理器执行时实现第二方面所述传输方法的步骤,或者该程序被处理器执行时实现第三方面所述数据存储方法的步骤,或者该程序被处理器执行时实现第四方面中任一项所述数据查询方法的步骤。
本公开实施例第十方面,一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面中任一项所述数据传输方法的步骤,或者实现第二方面所述传输方法的步骤,或者实现第三方面所述数据存储方法的步骤,或者实现第四方面中任一项所述数据查询方法的步骤。
通过上述技术方案,至少可以达到以下技术效果:
通过针对待发送的数据链构造多个数据传输包,多个数据传输包中包括首数据传输包、尾数据传输包、中间传输包,中间传输包与数据链中首数据之后的每一数据一一对应,中间传输包包括对应的数据和数据在数据链中的上一个数据,首数据传输包包括首数据包和首包标识,尾数据传输包包括数据链中的尾数据和尾包标识;将多个数据传输包发送给数据接收端,首数据传输包、尾数据传输包、中间传输包用于对数据链中的数据进行完整性验证。这样,基于构造的首数据传输包、尾数据传输包和中间传输包对数据链中的数据进行完整性验证,可以提高数据传输完整性验证的便捷性和准确性,进而可以提高数据传输的稳定性,有效地避免数据传输过程中丢失。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性示出的一种数据传输方法的流程图。
图2是根据一示例性示出的一种实现图1中步骤S12的流程图。
图3是根据一示例性示出的另一种数据传输方法的流程图。
图4是根据一示例性示出的一种数据存储方法的流程图。
图5是根据一示例性示出的一种数据查询方法的流程图。
图6是根据一示例性示出的一种实现图5中步骤S53的流程图。
图7是根据一示例性示出的一种展开目标存储路径得到全顶点回路图的示意图。
图8是根据一示例性示出的另一种展开目标存储路径得到全顶点回路图的示意图。
图9是根据一示例性示出的一种数据传输装置120的框图。
图10是根据一示例性示出的另一种数据传输装置130的框图。
图11是根据一示例性示出的的一种数据存储装置140的框图。
图12是根据一示例性示出的一种数据查询装置150的框图。
图13是根据一示例性实施例示出的一种电子设备700的框图。
图14是根据一示例性实施例示出的一种电子设备1900的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
需要说明的是,在本公开中,说明书和权利要求书以及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必理解为描述特定的顺序或先后次序,同理,术语“S32”、“S33”等是用于区别类似的步骤,而不必理解为描述特定的顺序或先后次序。
相关场景中,由数据发送方基于数据接收方发送的认证元数据集合对发送的数据进行完整性验证,需要在数据发送方和数据接收方之间多次传输数据,增加了认证元数据集合到攻击或者网络异常发送错误的风险,并且认证元数据集合发送与接收占用了数据接收方和数据发送方的资源,例如,打包资源、加密资源等,导致便捷性较低以及资源浪费;并且,顺序写入待存储的数据,若存储的数据相同,则只有最后一个存储的该数据为有效数据,其他存储块中存储的相同数据均为无效数据,并且该存储区的存储块不支持删除操作,容易导致该存储区出现大量无效数据碎片,因而可能造成存储资源利用率不高。
有鉴于此,本公开提供一种数据传输方法、数据存储方法、数据查询方法、介质及设备,以解决相关技术中存在的问题,可以在数据传输时提高数据传输完整性验证的便捷性和准确性,并且减少数据存储过程中无效数据碎片的产生,进而降低无效资源对存储区的占用,提高存储资源利用率,以及提高数据查询的便捷性。
图1是根据一示例性示出的一种数据传输方法的流程图,应用于数据发送端,参考图1所示,所述方法包括以下步骤。
在步骤S11中,针对待发送的数据链,构造多个数据传输包。
其中,多个数据传输包中包括首数据传输包、尾数据传输包、中间传输包,其中,中间传输包与数据链中首数据之后的每一数据一一对应,中间传输包包括对应的数据以及数据在数据链中的上一个数据,首数据传输包包括首数据包以及首包标识,尾数据传输包包括数据链中的尾数据以及尾包标识。
在步骤S12中,将多个数据传输包发送给数据接收端,首数据传输包、尾数据传输包、中间传输包用于数据接收端对数据链中的数据进行完整性验证,以在验证通过后确定数据链发送完成。
具体地,可以根据预设数据传输包的字节大小对待发送的数据链进行拆分,得到多个待发送数据包,进而根据每一待发送数据包构造多个数据传输包。例如,以预设数据传输包的字节大小对待发送的数据链进行拆分,得到多个包含548字节大小有效数据的待发送数据包,并根据每一待发送数据包构造多个数据传输包。
可选地,数据发送端可以根据终端标识生成首包标识和尾包标识,例如,根据终端名称生成首包标识和尾包标识,首包标识和尾包标识的内容固定,每一数据发送端具有唯一首包标识和唯一尾包标识;也可以在终端标识的基础上,根据数据链拆分时间节点生成首包标识和尾包标识,每一数据链具有唯一首包标识和唯一尾包标识。
其中,中间传输包中包括的该数据在数据链中的上一个数据,上一个数据作为中间传输包的验证标识,在一种实现方式中,在验证标识与数据之间通过固定标识进行隔离区分。
示例地,将待发送的数据链拆分为a,b,c,d,e,f六个待发送数据包,其中,a为首数据包,f为尾数据。进而根据首数据包a以及首包标识s构造首数据传输包“s-a”;根据尾数据f以及尾包标识bg构造尾数据传输包“f-bg”;根据数据包b以及其上一个数据包a;构造中间传输包“a-b”;根据数据包c以及其上一个数据包b,构造中间传输包“b-c”;根据数据包d以及其上一个数据包c,构造中间传输包“c-d”;根据数据包e以及其上一个数据包d,构造中间传输包“d-e”;根据数据包f以及其上一个数据包e,构造中间传输包“e-f”。其中,“-”为固定标识,用于隔离区分验证标识与数据。这样,每一个数据传输包均有一个完整性验证标识,并且每一个数据链均有一个首包标识和一个尾包标识。
可选地,若数据接收端接收到数据传输端针对待发送的数据链发送的验证通过信息,则确定待发送的数据链发送完成。或者,若数据接收端在预设时长内未接收到数据传输端针对待发送的数据链发送的重传请求,则确定待发送的数据链发送完成。
上述技术方案,通过针对待发送的数据链构造多个数据传输包,多个数据传输包中包括首数据传输包、尾数据传输包、中间传输包,中间传输包与数据链中首数据之后的每一数据一一对应,中间传输包包括对应的数据和数据在数据链中的上一个数据,首数据传输包包括首数据包和首包标识,尾数据传输包包括数据链中的尾数据和尾包标识;将多个数据传输包发送给数据接收端,首数据传输包、尾数据传输包、中间传输包用于对数据链中的数据进行完整性验证。这样,基于构造的首数据传输包、尾数据传输包和中间传输包对数据链中的数据进行完整性验证,可以提高数据传输完整性验证的便捷性和准确性,进而可以提高数据传输的稳定性,有效地避免了数据传输过程中丢失。
可选地,所述方法还包括:响应于接收到所述数据接收端发送的重传请求,根据所述重传请求再次将所述多个数据传输包发送给所述数据接收端,所述重传请求是所述数据接收端在数据完整性验证失败的情况下发送的。
具体地,数据发送端对多个数据传输包添加唯一传送标识,以便于数据接收端在完整性验证失败的情况下,根据该传送标识生成对应的重传请求,数据发送端可以根据重传请求中的传送标识查询到相应的待发送数据链,进而再次将多个数据传输包后发送给所述数据接收端。
采用上述技术方案,可以根据重传请求将所述多个数据传输包发送给所述数据接收端,提高数据传输的稳定性,有效地避免了数据传输过程中丢失。
可选地,所述多个数据传输包中的每一数据传输包还包括幂等序号,参考图2所示出的一种实现图1中步骤S12的流程图,在步骤S12中,所述将所述多个数据传输包发送给数据接收端,包括以下步骤。
在步骤S121中,根据幂等序号确定每一数据传输包中的数据在数据链中的位置信息。
在步骤S122中,根据每一数据的位置信息生成排序数据包,并将排序数据包发送到数据接收端,使得数据接收端能够根据排序数据包中的位置信息对数据接收端接收到的数据传输包排序。
沿用上述实施例进行说明,针对首数据包a构造的首数据传输包还包括幂等序号“1”,即首数据传输包为“s-a|1”;针对数据包b构造的中间传输包还包括幂等序号“2”,中间传输包为“a-b|2”;针对数据包c构造的中间传输包还包括幂等序号“3”,中间传输包为“b-c|3”;针对数据包d构造的中间传输包还包括幂等序号“4”,中间传输包为“c-d|4”,针对数据包e构造的中间传输包还包括幂等序号“5”,中间传输包为“d-e|5”;针对数据包f构造的中间传输包还包括幂等序号“6”,中间传输包为“e-f|6”;针对尾数据f构造的尾数据传输包还包括幂等序号“7”,尾数据传输包为“f-bg|7”。
可以说明的是,根据幂等序号“1”可以确定首数据传输包中的数据在数据链中的位置信息为首个数据,根据幂等序号“2”可以确定中间传输包中的数据在数据链中的位置信息为第二个数据;以此类推,根据幂等序号“7”可以确定数据传输包中的数据在数据链中的位置信息为尾数据。
进一步地,根据每一数据传输包的位置信息生成排序数据包,在一种可能实现的方式中,将排序数据包作为第一个发送的数据传输包向数据接收端发送,使得数据接收端能够根据排序数据包中的位置信息,在每接收到一个数据传输包时,确定该数据传输包中的数据在待发送数据链中的排列位置。
在一种实施方式中,若数据接收端是在数据接收完成后在对数据传输包进行排序得到数据链,数据发送端可以对已经发送的数据传输包排序,并根据排序结果生成排序数据包,在尾数据传输包发送后将排序数据包发送到数据接收端。
采用上述技术方案,数据接收端能够根据幂等序号确定数据传输包中的数据在数据链中的排列位置,避免通过例如插针法等,寻找数据传输包在数据链中的排列位置,提高了数据传输以及数据完整性验证的效率。
基于相同的发明构思,本公开实施例还提供一种数据传输方法,应用于数据接收端,图3是根据一示例性示出的一种数据传输方法的流程图,所述方法包括以下步骤。
在步骤31中,接收数据发送端发送的数据传输包。
其中,数据传输包是数据发送端根据数据传输方法中的任一项的方法发送给数据接收端的。
在步骤32中,在接收到的数据传输包中包括首包标识的情况下,确定该数据传输包为首数据传输包。
在步骤33中,在接收到的数据传输包中包括尾包标识的情况下,确定该数据传输包为尾数据传输包,并基于尾数据传输包中包括的尾数据判断数据接收端是否已接收到尾数据对应的数据传输包。
在步骤34中,在接收到的数据传输包不包括首包标识以及尾包标识的情况下,确定该数据传输包为中间传输包,并基于中间传输包中包括的上一数据判断数据接收端是否已接收到上一数据对应的数据传输包。
在步骤35中,在数据接收端接收到的数据传输包中包括首数据传输包、尾数据传输包、尾数据对应的数据传输包、上一数据对应的数据传输包的情况下,确定数据链发送完成。
在一种实施方式中,数据接收端根据接收到的数据传输包的验证标识,基于插针法将数据传输包中的验证标识和数据依次排列,得到数据链。示例地,在接收到数据传输包“s-a”的情况下,由于该数据传输包中包括首包标识,所以确定该数据传输包为首数据传输包,将该数据传输包放在首位。
进一步地,在接收到数据传输包“b-c”的情况下,由于该数据传输包不包括首包标识或者尾包标识,所以确定该数据包为中间传输包,将该数据传输包放在中间位置。
进一步地,在接收到数据传输包“a-b”的情况下,由于该数据传输包不包括首包标识或者尾包标识,所以确定该数据包为中间传输包,并且,该数据传输包中包括数据“-b”,通过验证标识“b-”确定该数据传输包在数据传输包“b-c”之前,将该数据传输包放在数据传输包“b-c”之前。同理,最终在接收完之后得到数据链“s-a a-b b-c c-d d-e e-f f-bg”。
在另一种实施方式中,若数据接收端先后接收到数据传输包b-c|3,s-a|1,a-b|2,f-bg|7,c-d|4,d-e|5,e-f|6。根据接收到的数据传输包以及排序数据包确定每一数据包的排列位置。例如,在接收到数据传输包为“b-c|3”的情况下,排序数据包表征该数据传输包排列在第三个位置,则将该数据传输包放置在第三个位置。这样,可以简化数据接收端对数据传输包的路径排序。
可选地,所述方法还包括:
在确定所述数据链未发送完成的情况下,向所述数据发送端发送重传请求,以便所述数据发送端根据所述重传请求再次将所述多个数据传输包发送给所述数据接收端。
具体地,在数据传输包中不包括首包标识或者尾包标识或者任意中间传输包未能找到验证标识,确定数据链未发送完成,根据该数据链的传送标识生成重传请求,并向数据发送端发送重传请求。
示例地,在得到数据链为“a-b b-c c-d d-e e-f f-bg”的情况下,确定数据传输包中不包括首包标识“s”,进而确定数据链未发送完成;或者,在得到数据链为“s-a a-b b-c c-d d-e e-f”的情况下,确定数据传输包中不包括尾包标识“bg”,进而确定数据链未发送完成。
又一示例,在得到数据链为“s-a a-b c-d d-e e-f f-bg”的情况下,确定数据传输包中“-b”或者“c-”未能找到验证标识,进而确定数据链未发送完成。
进一步地,在再次收到该数据链的数据传输包情况下,根据幂等序号查找在已得到的数据链中是否包括相同幂等序号的数据传输包,若已得到的数据链中包括相同幂等序号的数据传输包,则将再次收到的相同幂等序号的数据传输包剔除。
在一种方式中,可以每接收到一个数据传输包,根据该数据传输包的数量计算已接收到数据传输包的数据包总和,在接收到重发的数据传输包的情况下,将每一次数据传输包的幂等序号总和相加,得到数据链数据包总和。
进一步地,计算每一次接收到的尾数据传输包的幂等序号总和,得到尾包幂等序号总和,计算尾包幂等序号总和与数据链数据包总和之间的比值。因为数据传输包中每一个数据传输包的丢包概率是相同的,因而,可以通过尾数据传输包的幂等序号计算数据发送端和数据接收端之间数据传输的丢包率,进而用于评价当前的网络质量。
并且,经试验验证,若尾包幂等序号总和与数据链数据包总和之间的比值在千分之五以内,则数据发送端与数据接收端之间网络质量属于正常;若尾包幂等序号总和与数据链数据包总和之间的比值在百分之一点五以内,则数据发送端与数据接收端之间网络质量属于差异告警;若尾包幂等序号总和与数据链数据包总和之间的比值超过百分之五,则数据发送端与数据接收端之间网络质量属于严重报警,需要排查网络和地区情况。
采用上述技术方案,可以在提高数据传输包的完整性验证的便捷性和准确性的同时,通过尾包幂等序号总和与数据链数据包总和之间的比值,确定当前网络质量。
基于相同的发明构思,本公开实施例还提供一种数据存储方法,图4是根据一示例性示出的一种数据存储方法的流程图,所述方法包括以下步骤。
在步骤S41中,接收数据发送端发送的数据传输包。
其中,数据传输包是数据发送端根据数据传输方法中的任一项的方法发送给数据接收端的。
在步骤S42中,在对数据接收端接收到的各数据传输包进行完整性验证通过的情况下,对各数据传输包进行排序,得到至少一条待存储的数据传输包链。
在步骤S43中,对数据传输包链进行拆分去重处理,得到待存储数据链,待存储数据链是以首包标识为首节点、数据链中的各个数据为中间节点、尾包标识为尾节点的链式数据。
在步骤S44中,分别以待存储数据链中的每一节点作为起始点,遍历得到起始点对应的路径数据,路径数据包括从起始点向前步进0~N步得到的每一路径以及每一路径对应的步进步数,其中,N为起始点到待存储数据链的尾数据的步长。
在步骤S45中,针对每一路径,以路径、路径对应的起始点、以及路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径,其中,路径存储表的存储结构中包括路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元。
在步骤S46中,在路径存储表中存在相同的存储路径的情况下,对路径存储表中对应存储路径的边访问次数执行加一操作。
在步骤S47中,在路径存储表中不存在相同的存储路径的情况下,按照路径存储表的存储结构对存储路径进行存储。
可选地,去重处理可以通过数据传输包的幂等序号进行去重,即将相同幂等序号的数据传输包剔除。去重处理完成后可以删除该数据链的幂等序号,得到待存储数据链。
可选地,通过漏斗算法确定待存储数据链的全路径,对得到的待存储数据链的全路径按照全路径表进行临时存储。参见表1所示,通过如图所示的全路径表对数据链进行存储。
表1
其中,uid为发送数据链的数据发送端的用户ID;os_type为数据发送端的操作系统;channel_source为数据发送端的发送渠道,例如基于网络通过APP发送;app_version为发送渠道的版本;routing为待存储数据链的全路径,并且为便于like匹配,在每一个数据的前后均以特殊标识隔开区分,例如,在每一个数据的前后均以英文逗号隔开区分;busi_type为分区字段,具体为业务线;dt为分区字段,具体为数据链接收日期。全路径表表中所有数据的类型均为“string”。
示例地,参考表2所示,若通过操作系统为ios的设备发送数据链“abcd”,则可以得到uid为E3465D75-FF01-4155-B1A5-FB0D82BEBF24,os_type为ios;channel_source为appstore;app_version为2.73,routing为“,s,a,b,c,d,bg,”,busi_type为plumbershafa;dt为20181204的全路径表。
又一示例,若通过操作系统为android的设备发送数据链“abcdefg”,则可以得到uid为E3465D75-FF01-4155-B1A5-FB0D82ddddd4,os_type为android;channel_source为appstore;app_version为2.7.1,routing为“,s,a,b,c,d,e,f,g,bg,”,busi_type为plumbershafa;dt为20181204的全路径表。
表2
进一步地,参考表3所示的存储表,存储表包括:app_version表示存储表的版本;start_vertex表示路径对应的起始点;path表示该路径的全路径;step表示步进步数;ev表示边访问次数。其中,除step的类型为int,ev的类型为long,其他均为string。可选地,存储表还包括pre_path,表示前至路径。
类型 | 说明 | |
app_version | string | 存储表的版本 |
start_vertex | string | 路径对应的起始点 |
path | string | 路径的全路径 |
pre_path | string | 前至路径 |
step | int | 步进步数 |
ev | long | 边访问次数 |
表3
示例地,以得到4条待存储数据链为例,4条待存储数据链分别为第一待存储数据链“,s,a,b,c,d,e,bg,”、第二待存储数据链“,s,a,b,e,bg,”、第三待存储数据链“,s,b,e,f,bg,”和第四待存储数据链“,s,b,g,bg,”,具体地,执行步骤S44,以4条待存储数据链中的每一节点作为起始点,参考表4,以“s”为起始点,从起始点向前步进0步得到的路径为“s”,该路径对应的步进步数为“0”,可以理解的是,步进0步在待存储数据链中均包括“s”,因此有4个路径为“s”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数执行3次加一操作,得到边访问次数为4。
进一步地,在以“s”为起始点,从起始点向前步进1步得到的如表4中序号2和10的路径为“s,a”或者“s,b”,路径“s,a”对应的步进步数为“1”,以及路径“s,b”对应的步进步数为“1”,可以理解的是,步进1步在第一和第二待存储数据链有2个路径为“s,a”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数执行1次加一操作,得到边访问次数为2。同理,步进1步在第三和第四待存储数据链有2个路径为“s,b”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数执行1次加一操作,得到边访问次数为2。
进一步地,在以“s”为起始点,从起始点向前步进2步得到的如表4中序号3、11和14的路径为“s,a,b”、“s,b,e”或者“s,b,g”,路径“s,a,b”对应的步进步数为“2”,路径“s,b,e”对应的步进步数为“2”以及路径“s,b,g”对应的步进步数为“2”,可以理解的是,步进2步在第一和第二待存储数据链有2个路径为“s,a,b”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数执行1次加一操作,得到边访问次数为2。
同理,步进2步在第三待存储数据链有1个路径为“s,b,e”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数不执行加一操作,得到边访问次数为1。同理,步进2步在第四待存储数据链有1个路径为“s,b,g”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数不执行加一操作,得到边访问次数为1。以“s”为起始点的其他路径不再赘述。
序号 | start_vertex | path | pre_path | step | ev |
1 | s | s | 0 | 4 | |
2 | s | s,a | s | 1 | 2 |
3 | s | s,a,b | a | 2 | 2 |
4 | s | s,a,b,c | a,b | 3 | 1 |
5 | s | s,a,b,c,d | a,b,c | 4 | 1 |
6 | s | s,a,b,c,d,e | a,b,c,d | 5 | 1 |
7 | s | s,a,b,c,d,e,bg | s,a,b,c,d,e | 6 | 1 |
8 | s | s,a,b,e | a,b | 3 | 1 |
9 | s | s,a,b,e,bg | s,a,b,e | 4 | 1 |
10 | s | s,b | 1 | 2 | |
11 | s | s,b,e | b | 2 | 1 |
12 | s | s,b,e,f | b,e | 3 | 1 |
13 | s | s,b,e,f,bg | b,e,f | 4 | 1 |
14 | s | s,b,g | b | 2 | 1 |
15 | s | s,b,g,bg | s,b,g | 3 | 1 |
表4
又一示例,在以“b”为起始点,从起始点向前步进0步得到的如表5中序号1的路径为“b”,路径“b”对应的步进步数为“0”,可以理解的是,步进0步在4个待存储数据链有4个路径为“b”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数执行3次加一操作,得到边访问次数为4。
进一步地,在以“b”为起始点,从起始点向前步进1步得到的如表5中序号1的路径为“b,c”“b,e”或者“b,g”,路径“b,c”对应的步进步数为“1”,可以理解的是,步进1步在第一待存储数据链有1个路径为“b,c”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数不执行加一操作,得到边访问次数为1。
同理,步进1步在第二和第三待存储数据链有2个路径为“b,e”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数执行1次加一操作,得到边访问次数为2。步进1步在第四待存储数据链有1个路径为“b,g”,则在步骤S46中,对路径存储表中对应存储路径的边访问次数不执行加一操作,得到边访问次数为1。以“s”为起始点的其他路径不再赘述。
序号 | start_vertex | path | pre_path | step | ev |
1 | b | b | 0 | 4 | |
2 | b | b,c | b | 1 | 1 |
3 | b | b,c,d | b,c | 2 | 1 |
4 | b | b,c,d,e | b,c,d | 3 | 1 |
5 | b | b,c,d,e,bg | b,c,d,e | 4 | 1 |
6 | b | b,e | b | 1 | 2 |
7 | b | b,e,bg | b,e | 2 | 1 |
8 | b | b,e,f | b,e | 2 | 1 |
9 | b | b,e,f,bg | b,e,f | 3 | 1 |
10 | b | b,g | b | 1 | 1 |
11 | b | b,g,bg | b,g | 2 | 1 |
表5
在此说明,以其他路径为起始点的示例不再赘述,并且,序号2、序号10等是为表述清楚易理解,实际的路径储值表中可能不存在。
上述技术方案,通过路径拆分,确定每一路径的起始点、步进步数以及边访问次数,可以将相同的路径仅储存一次,可以降低存储占用的资源,并且提高了数据管理的条理性。
可选地,参考表4和表5所示,所述路径数据还包括与每一所述路径一一对应的前至路径pre_path,所述前至路径为对应的所述路径的起始点到该路径的尾节点的路径的上一路径;
在步骤S45中,针对每一所述路径,以所述路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径,包括:
针对每一所述路径,以所述路径、所述路径对应的前至路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径;
所述路径存储表的存储结构中包括路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元,包括:
所述路径存储表的存储结构中包括路径存储单元、前至路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元。
示例地,参考表4所示,以“s”为起始点,步进3步的路径为“s,a,b,c”,步进4步的路径为“s,a,b,c,d”,可见路径“s,a,b,c,d”的起始点“s”到路径“s,a,b,c,d”的尾节点“d”的路径的上一路径为“s,a,b,c”,因此路径“s,a,b,c”为路径“s,a,b,c,d”的前至路径。
可以说明的是,每一起始点步进0步时,不存在前至路径,每一包括尾包标识的路径是以全路径为前至路径,例如,以“s”“a”“b”等为起始点,步进0步的路径无前至路径,以“s”为起始点,步进6步的路径“s,a,b,c,d,e,bg”对应的前至路径为“s,a,b,c,d,e”,以“s”为起始点,步进4步的路径“s,b,e,f,bg”对应的前至路径为“s,b,e,f”。
采用上述技术方案,前至路径在数据查询时,能够降低查询到错误数据的风险,提高用户画像生成的准确性。具体如何降低查询到错误数据的风险将在数据查询方法介绍,此处不做赘述。
基于相同的发明构思,本公开实施例还提供一种数据查询方法,所述方法用于查询根据所述的数据存储方法存储的数据,图5是根据一示例性示出的一种数据查询方法的流程图,所述方法包括以下步骤。
在步骤S51中,根据查询信息,确定查询起始点和查询步进步数。
在步骤S52中,以查询起始点为目标从路径存储表中查找目标存储路径。
在步骤S53中,以目标存储路径的起始点为查询起始点且以查询步进步数为目标步进步数,展开目标存储路径对应的路径,得到查询信息对应的全顶点回路图。
具体地,查询信息可以是用户在用户界面输入的查询起始点和查询步进步数。例如,用户在用户界面输入的查询起始点为“s”、查询步进步数为“3”,则以“s”为查询起始点,从路径存储表中查询步进步数step为3的存储路径。
示例地,参见表4,以“s”为起始点,步进步数为3的存储路径为路径“s,a,b,c”、“s,a,b,e”和“s,b,g,bg”,进一步地,对路径的每一步进步数展开得到查询信息对应的全顶点回路图,例如,对路径展开第0步得到“s”,展开第1步得到“s,a”和“s,b”,展开第2步得到“s,a,b”和“s,b,g”,展开第3步得到“s,a,b,c”、“s,a,b,e”和“s,b,g,bg”。
上述技术方案,通过基于路径存储表,可以以起始点和步进步数为目标展开全顶点回路图,提高了数据查询的精确度和便捷性。
可选地,参考图6所示,在步骤S53中,所述以所述目标存储路径的起始点为所述查询起始点且以所述查询步进步数为目标步进步数,展开所述目标存储路径对应的路径,得到所述查询信息对应的全顶点回路图,包括:
在步骤S531中,以目标存储路径的起始点为查询起始点,展开目标存储路径对应的路径的下一数据。
在步骤S532中,将前至路径作为下一次查询的查询起始点,展开目标存储路径对应的路径的下一数据,直到目标步进步数达到查询步进步数,得到查询信息对应的全顶点回路图。
其中,所述前至路径为对应的所述路径的起始点到该路径的尾节点的路径的上一路径。
可选地,在步骤S51中,所述根据查询信息,确定查询起始点,包括:
在查询信息为查询边访问次数的情况下,确定路径存储表中边访问次数与查询边访问次数一致的路径的起始点为查询起始点。
可选地,在步骤S51中,所述根据查询信息,确定查询起始点,包括:
在查询信息为查询数据的情况下,确定路径存储表中与查询数据一致的路径的起始点为查询起始点。
示例地,在查询信息为边访问次数为4的情况下,参考表4,以边访问次数为4的存储路径存在2个,即以“s”为查询起始点以及以“b”为起始点的存储路径。
进一步地,参考图7所示,以“s”为查询起始点,在step=0时展开得到“s4”,在step=1时展开得到“a2”和“b2”,在step=2时展开得到“b2”、“e1”和“g1”,在step=3时展开得到“c1”、“e1”“f1”和“bg1”,在step=4时展开得到“d1”、“bg1”和“bg1”,在step=5时展开得到“e1”,在step=6时展开得到“bg1”。其中,“a2”和“b2”后的数字“2”表示边访问次数。
进一步地,参考图8所示,以“b”为查询起始点,在step=0时展开得到“b4”,在step=1时展开得到“c1”、“e2”和“g1”,在step=2时展开得到“d1”、“bg1”、“f1”和“bg1”,在step=3时展开得到“e1”和“bg1”,在step=4时展开得到“bg1”。同理,“e2”和“g1”后的数字“2”、“1”表示边访问次数。
值得说明的是,如存在数据链“s,A,B,c,d,E,bg”,若确定查询起始点为“c”,则最终查询得到的全路径回路图中,在以边访问次数为6进行查询时,可能出现“s,A,B,c,d,e”和“s,a,b,c,d,E”,则需要通过前置路径确定,不存在路径“s,A,B,c,d,e”和“s,a,b,c,d,E”,进而可以能够降低查询到错误数据的风险,提高用户画像生成的准确性。
基于相同的发明构思,本公开还提供一种数据传输装置120,应用于数据发送端,用于执行上述方法实施例提供的数据发送端数据传输方法的步骤,该装置120可以以软件、硬件或者两者相结合的方式实现数据传输。参照图9所示出的一种数据传输装置120的框图,所述装置120包括:
构造模块1201,被配置为针对待发送的数据链,构造多个数据传输包,所述多个数据传输包中包括首数据传输包、尾数据传输包、中间传输包,其中,所述中间传输包与所述数据链中首数据之后的每一数据一一对应,所述中间传输包包括对应的所述数据以及所述数据在所述数据链中的上一个数据,所述首数据传输包包括所述首数据包以及首包标识,所述尾数据传输包包括所述数据链中的尾数据以及尾包标识;
发送模块1202,被配置为将所述多个数据传输包发送给数据接收端,其中,所述首数据传输包、所述尾数据传输包、所述中间传输包用于所述数据接收端对所述数据链中的数据进行完整性验证,以在验证通过后确定所述数据链发送完成。
可选地,所述发送模块1202,还被配置为响应于接收到所述数据接收端发送的重传请求,根据所述重传请求再次将所述多个数据传输包发送给所述数据接收端,其中,所述重传请求是所述数据接收端在数据完整性验证失败的情况下发送的。
可选地,所述多个数据传输包中的每一数据传输包还包括幂等序号,所述构造模块1201,被配置为:
根据所述幂等序号确定每一所述数据传输包中的数据在所述数据链中的位置信息;
根据每一所述数据的所述位置信息生成排序数据包,并将所述排序数据包发送到所述数据接收端,使得所述数据接收端能够根据所述排序数据包中的所述位置信息对所述数据接收端接收到的数据传输包排序。
基于相同的发明构思,本公开还提供一种数据传输装置130,应用于数据接收端,用于执行上述方法实施例提供的数据接收端数据传输方法的步骤,该装置130可以以软件、硬件或者两者相结合的方式实现数据传输。参照图10所示出的一种数据传输装置130的框图,所述装置130包括:
第一接收模块1301,被配置为接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据第五方面所述的装置发送给所述数据接收端的;
第一确定模块1302,被配置为在接收到的数据传输包中包括所述首包标识的情况下,确定该数据传输包为首数据传输包;
第二确定模块1303,被配置为在接收到的数据传输包中包括所述尾包标识的情况下,确定该数据传输包为尾数据传输包,并基于所述尾数据传输包中包括的尾数据判断所述数据接收端是否已接收到所述尾数据对应的数据传输包;
第三确定模块1304,被配置为在接收到的数据传输包不包括所述首包标识以及所述尾包标识的情况下,确定该数据传输包为中间传输包,并基于所述中间传输包中包括的所述上一数据判断所述数据接收端是否已接收到所述上一数据对应的数据传输包;
第四确定模块1305,被配置为在所述数据接收端接收到的数据传输包中包括所述首数据传输包、所述尾数据传输包、所述尾数据对应的数据传输包、所述上一数据对应的数据传输包的情况下,确定所述数据链发送完成。
可选地,所述第一确定模块1302还被配置为在确定所述数据链未发送完成的情况下,向所述数据发送端发送重传请求,以便所述数据发送端根据所述重传请求再次将所述多个数据传输包发送给所述数据接收端。
基于相同的发明构思,本公开还提供一种数据存储装置140,应用于数据接收端,用于执行上述方法实施例提供的数据接收端数据存储方法的步骤,该装置120可以以软件、硬件或者两者相结合的方式实现数据存储。参照图11所示出的一种数据存储装置140的框图,所述装置140包括:
第二接收模块1401,被配置为接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据第五方面所述的装置发送给所述数据接收端的;
排序模块1402,被配置为在对所述数据接收端接收到的各数据传输包进行完整性验证通过的情况下,对所述各数据传输包进行排序,得到至少一条待存储的数据传输包链;
拆分模块1403,被配置为对所述数据传输包链进行拆分去重处理,得到待存储数据链,所述待存储数据链是以所述首包标识为首节点、所述数据链中的各个数据为中间节点、所述尾包标识为尾节点的链式数据;
遍历模块1404,被配置为分别以所述待存储数据链中的每一节点作为起始点,遍历得到所述起始点对应的路径数据,所述路径数据包括从所述起始点向前步进0~N步得到的每一路径以及每一所述路径对应的步进步数,其中,N为所述起始点到所述待存储数据链的尾数据的步长;
第一查询模块1405,被配置为针对每一所述路径,以所述路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径,其中,所述路径存储表的存储结构中包括路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元;
执行模块1406,被配置为在所述路径存储表中存在相同的存储路径的情况下,对所述路径存储表中对应所述存储路径的边访问次数执行加一操作;
存储模块1407,被配置为在所述路径存储表中不存在相同的存储路径的情况下,按照所述路径存储表的存储结构对所述存储路径进行存储。
可选地,所述路径数据还包括与每一所述路径一一对应的前至路径,所述前至路径为对应的所述路径的起始点到该路径的尾节点的路径的上一路径;
第一查询模块1405,被配置为:针对每一所述路径,以所述路径、所述路径对应的前至路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径;
所述路径存储表的存储结构中包括路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元,包括:
所述路径存储表的存储结构中包括路径存储单元、前至路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元。
基于相同的发明构思,本公开还提供一种数据查询装置150,用于执行上述方法实施例提供的数据查询方法的步骤,该装置150可以以软件、硬件或者两者相结合的方式实现数据查询。参照图12所示出的一种数据查询装置150的框图,所述装置150包括:
第二查询模块1501,被配置为根据查询信息,确定查询起始点和查询步进步数;
查找模块1502,被配置为以所述查询起始点为目标从所述路径存储表中查找目标路径数据;
展开模块1503,被配置为以所述目标存储路径的起始点为所述查询起始点且以所述查询步进步数为目标步进步数,展开所述目标存储路径对应的路径,得到所述查询信息对应的全顶点回路图。
可选地,所述展开模块1503,被配置为:以所述目标存储路径的起始点为所述查询起始点,展开所述目标存储路径对应的所述路径的下一数据;
将前至路径作为下一次查询的所述查询起始点,展开所述目标存储路径对应的所述路径的下一数据,直到所述目标步进步数达到所述查询步进步数,得到所述查询信息对应的全顶点回路图;
其中,所述前至路径为对应的所述路径的起始点到该路径的尾节点的路径的上一路径。
可选地,所述第二查询模块1501,被配置为:在所述查询信息为查询边访问次数的情况下,确定所述路径存储表中所述边访问次数与所述查询边访问次数一致的所述路径的起始点为所述查询起始点。
可选地,所述第二查询模块1501,被配置为:在所述查询信息为查询数据的情况下,确定所述路径存储表中与所述查询数据一致的路径的起始点为所述查询起始点。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
此外值得说明的是,为描述的方便和简洁,说明书中所描述的实施例均属于优选实施例,其所涉及的部分并不一定是本发明所必须的,例如,第二查询模块1501和查找模块1502,在具体实施时可以是相互独立的装置也可以是同一个装置,本公开对此不作限定。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现数据发送端所述数据传输方法的步骤,或者该程序被处理器执行时实现数据接收端所述传输方法的步骤,或者该程序被处理器执行时实现所述数据存储方法的步骤,或者该程序被处理器执行时实现任一项所述数据查询方法的步骤。
本公开实施例还一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现数据发送端所述数据传输方法的步骤,或者实现数据接收端所述传输方法的步骤,或者实现所述数据存储方法的步骤,或者实现所述数据查询方法的步骤。
图13是根据一示例性实施例示出的一种电子设备700的框图。该电子设备700可以被配置为一数据发送端或者数据接收端,如图13所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的数据传输、存储或者查询方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据传输、存储或者查询方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据传输、存储或者查询方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的数据传输、存储或者查询方法。
图14是根据一示例性实施例示出的一种电子设备1900的框图。该电子设备700可以被配置为一数据发送端或者数据接收端,参照图14,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的数据传输、存储或者查询方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据传输、存储或者查询方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的数据传输、存储或者查询方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的数据传输、存储或者查询方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (17)
1.一种数据传输方法,其特征在于,应用于数据发送端,包括:
针对待发送的数据链,构造多个数据传输包,所述多个数据传输包中包括首数据传输包、尾数据传输包、中间传输包,其中,所述中间传输包与所述数据链中首数据之后的每一数据一一对应,所述中间传输包包括对应的所述数据以及所述数据在所述数据链中的上一个数据,所述首数据传输包包括所述首数据包以及首包标识,所述尾数据传输包包括所述数据链中的尾数据以及尾包标识;
将所述多个数据传输包发送给数据接收端,其中,所述首数据传输包、所述尾数据传输包、所述中间传输包用于所述数据接收端对所述数据链中的数据进行完整性验证,以在验证通过后确定所述数据链发送完成。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到所述数据接收端发送的重传请求,根据所述重传请求再次将所述多个数据传输包发送给所述数据接收端,其中,所述重传请求是所述数据接收端在数据完整性验证失败的情况下发送的。
3.根据权利要求2所述的方法,其特征在于,所述多个数据传输包中的每一数据传输包还包括幂等序号,所述将所述多个数据传输包发送给数据接收端,包括:
根据所述幂等序号确定每一所述数据传输包中的数据在所述数据链中的位置信息;
根据每一所述数据的所述位置信息生成排序数据包,并将所述排序数据包发送到所述数据接收端,使得所述数据接收端能够根据所述排序数据包中的所述位置信息对所述数据接收端接收到的数据传输包排序。
4.一种数据传输方法,其特征在于,应用于数据接收端,所述方法包括:
接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据权利要求1-3中的任一项所述的方法发送给所述数据接收端的;
在接收到的数据传输包中包括所述首包标识的情况下,确定该数据传输包为首数据传输包;
在接收到的数据传输包中包括所述尾包标识的情况下,确定该数据传输包为尾数据传输包,并基于所述尾数据传输包中包括的尾数据判断所述数据接收端是否已接收到所述尾数据对应的数据传输包;
在接收到的数据传输包不包括所述首包标识以及所述尾包标识的情况下,确定该数据传输包为中间传输包,并基于所述中间传输包中包括的所述上一数据判断所述数据接收端是否已接收到所述上一数据对应的数据传输包;
在所述数据接收端接收到的数据传输包中包括所述首数据传输包、所述尾数据传输包、所述尾数据对应的数据传输包、所述上一数据对应的数据传输包的情况下,确定所述数据链发送完成。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在确定所述数据链未发送完成的情况下,向所述数据发送端发送重传请求,以便所述数据发送端根据所述重传请求再次将所述多个数据传输包发送给所述数据接收端。
6.一种数据存储方法,其特征在于,所述方法包括:
接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据权利要求1-3中的任一项所述的方法发送给所述数据接收端的;
在对所述数据接收端接收到的各数据传输包进行完整性验证通过的情况下,对所述各数据传输包进行排序,得到至少一条待存储的数据传输包链;
对所述数据传输包链进行拆分去重处理,得到待存储数据链,所述待存储数据链是以所述首包标识为首节点、所述数据链中的各个数据为中间节点、所述尾包标识为尾节点的链式数据;
分别以所述待存储数据链中的每一节点作为起始点,遍历得到所述起始点对应的路径数据,所述路径数据包括从所述起始点向前步进0~N步得到的每一路径以及每一所述路径对应的步进步数,其中,N为所述起始点到所述待存储数据链的尾数据的步长;
针对每一所述路径,以所述路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径,其中,所述路径存储表的存储结构中包括路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元;
在所述路径存储表中存在相同的存储路径的情况下,对所述路径存储表中对应所述存储路径的边访问次数执行加一操作;
在所述路径存储表中不存在相同的存储路径的情况下,按照所述路径存储表的存储结构对所述存储路径进行存储。
7.根据权利要求6所述的方法,其特征在于,所述路径数据还包括与每一所述路径一一对应的前至路径,所述前至路径为对应的所述路径的起始点到该路径的尾节点的路径的上一路径;
所述针对每一所述路径,以所述路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径,包括:针对每一所述路径,以所述路径、所述路径对应的前至路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径;
所述路径存储表的存储结构中包括路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元,包括:
所述路径存储表的存储结构中包括路径存储单元、前至路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元。
8.一种数据查询方法,其特征在于,所述方法用于查询根据权利要求6或7所述的方法存储的数据,所述方法包括:
根据查询信息,确定查询起始点和查询步进步数;
以所述查询起始点为目标从所述路径存储表中查找目标存储路径;
以所述目标存储路径的起始点为所述查询起始点且以所述查询步进步数为目标步进步数,展开所述目标存储路径对应的路径,得到所述查询信息对应的全顶点回路图。
9.根据权利要求8所述的方法,其特征在于,所述以所述目标存储路径的起始点为所述查询起始点且以所述查询步进步数为目标步进步数,展开所述目标存储路径对应的路径,得到所述查询信息对应的全顶点回路图,包括:
以所述目标存储路径的起始点为所述查询起始点,展开所述目标存储路径对应的所述路径的下一数据;
将前至路径作为下一次查询的所述查询起始点,展开所述目标存储路径对应的所述路径的下一数据,直到所述目标步进步数达到所述查询步进步数,得到所述查询信息对应的全顶点回路图;
其中,所述前至路径为对应的所述路径的起始点到该路径的尾节点的路径的上一路径。
10.根据权利要求8或9所述的方法,其特征在于,所述根据查询信息,确定查询起始点,包括:
在所述查询信息为查询边访问次数的情况下,确定所述路径存储表中所述边访问次数与所述查询边访问次数一致的所述路径的起始点为所述查询起始点。
11.根据权利要求8或9所述的方法,其特征在于,所述根据查询信息,确定查询起始点,包括:
在所述查询信息为查询数据的情况下,确定所述路径存储表中与所述查询数据一致的路径的起始点为所述查询起始点。
12.一种数据传输装置,其特征在于,应用于数据发送端,所述装置包括:
构造模块,被配置为针对待发送的数据链,构造多个数据传输包,所述多个数据传输包中包括首数据传输包、尾数据传输包、中间传输包,其中,所述中间传输包与所述数据链中首数据之后的每一数据一一对应,所述中间传输包包括对应的所述数据以及所述数据在所述数据链中的上一个数据,所述首数据传输包包括所述首数据包以及首包标识,所述尾数据传输包包括所述数据链中的尾数据以及尾包标识;
发送模块,被配置为将所述多个数据传输包发送给数据接收端,其中,所述首数据传输包、所述尾数据传输包、所述中间传输包用于所述数据接收端对所述数据链中的数据进行完整性验证,以在验证通过后确定所述数据链发送完成。
13.一种数据传输装置,其特征在于,应用于数据接收端,所述装置包括:
第一接收模块,被配置为接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据权利要求12所述的装置发送给所述数据接收端的;
第一确定模块,被配置为在接收到的数据传输包中包括所述首包标识的情况下,确定该数据传输包为首数据传输包;
第二确定模块,被配置为在接收到的数据传输包中包括所述尾包标识的情况下,确定该数据传输包为尾数据传输包,并基于所述尾数据传输包中包括的尾数据判断所述数据接收端是否已接收到所述尾数据对应的数据传输包;
第三确定模块,被配置为在接收到的数据传输包不包括所述首包标识以及所述尾包标识的情况下,确定该数据传输包为中间传输包,并基于所述中间传输包中包括的所述上一数据判断所述数据接收端是否已接收到所述上一数据对应的数据传输包;
第四确定模块,被配置为在所述数据接收端接收到的数据传输包中包括所述首数据传输包、所述尾数据传输包、所述尾数据对应的数据传输包、所述上一数据对应的数据传输包的情况下,确定所述数据链发送完成。
14.一种数据存储装置,其特征在于,所述装置包括:
第二接收模块,被配置为接收数据发送端发送的数据传输包,其中,所述数据传输包是所述数据发送端根据权利要求12所述的装置发送给所述数据接收端的;
排序模块,被配置为在对所述数据接收端接收到的各数据传输包进行完整性验证通过的情况下,对所述各数据传输包进行排序,得到至少一条待存储的数据传输包链;
拆分模块,被配置为对所述数据传输包链进行拆分去重处理,得到待存储数据链,所述待存储数据链是以所述首包标识为首节点、所述数据链中的各个数据为中间节点、所述尾包标识为尾节点的链式数据;
遍历模块,被配置为分别以所述待存储数据链中的每一节点作为起始点,遍历得到所述起始点对应的路径数据,所述路径数据包括从所述起始点向前步进0~N步得到的每一路径以及每一所述路径对应的步进步数,其中,N为所述起始点到所述待存储数据链的尾数据的步长;
第一查询模块,被配置为针对每一所述路径,以所述路径、所述路径对应的起始点、以及所述路径对应的步进步数为存储路径,查询路径存储表中是否存在相同的存储路径,其中,所述路径存储表的存储结构中包括路径存储单元、路径起始点存储单元、步进步数存储单元、以及边访问次数存储单元;
执行模块,被配置为在所述路径存储表中存在相同的存储路径的情况下,对所述路径存储表中对应所述存储路径的边访问次数执行加一操作;
存储模块,被配置为在所述路径存储表中不存在相同的存储路径的情况下,按照所述路径存储表的存储结构对所述存储路径进行存储。
15.一种数据查询装置,其特征在于,所述装置用于查询根据权利要求14所述的装置存储的数据,所述装置包括:
第二查询模块,被配置为根据查询信息,确定查询起始点和查询步进步数;
查找模块,被配置为以所述查询起始点为目标从所述路径存储表中查找目标路径数据;
展开模块,被配置为以所述目标存储路径的起始点为所述查询起始点且以所述查询步进步数为目标步进步数,展开所述目标存储路径对应的路径,得到所述查询信息对应的全顶点回路图。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-3中任一项所述数据传输方法的步骤,或者该程序被处理器执行时实现权利要求4或5所述传输方法的步骤,或者该程序被处理器执行时实现权利要求6或7所述数据存储方法的步骤,或者该程序被处理器执行时实现权利要求8-11中任一项所述数据查询方法的步骤。
17.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-3中任一项所述数据传输方法的步骤,或者实现权利要求4或5所述传输方法的步骤,或者实现权利要求6或7所述数据存储方法的步骤,或者实现权利要求8-11中任一项所述数据查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322209.XA CN112968907B (zh) | 2021-03-25 | 2021-03-25 | 数据传输方法、数据存储方法、数据查询方法、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322209.XA CN112968907B (zh) | 2021-03-25 | 2021-03-25 | 数据传输方法、数据存储方法、数据查询方法、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112968907A true CN112968907A (zh) | 2021-06-15 |
CN112968907B CN112968907B (zh) | 2023-04-28 |
Family
ID=76278508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110322209.XA Active CN112968907B (zh) | 2021-03-25 | 2021-03-25 | 数据传输方法、数据存储方法、数据查询方法、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112968907B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553431A (zh) * | 2022-01-27 | 2022-05-27 | 北京信息科技大学 | 一种具有记忆功能的通信方法及装置 |
CN114697279A (zh) * | 2022-03-23 | 2022-07-01 | 北京航天拓扑高科技有限责任公司 | 一种多信道分包传输数据文件的方法 |
CN114726513A (zh) * | 2022-03-18 | 2022-07-08 | 阿里巴巴(中国)有限公司 | 数据传输方法、设备、介质及产品 |
WO2023208142A1 (zh) * | 2022-04-29 | 2023-11-02 | 维沃移动通信有限公司 | 数据的处理方法及通信设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827367A (zh) * | 2016-05-06 | 2016-08-03 | 深圳市国华光电研究院 | 一种无线数据传输的方法及系统 |
CN107592655A (zh) * | 2017-09-22 | 2018-01-16 | 深圳市沃特玛电池有限公司 | 一种数据分包传输系统及方法 |
US20180316602A1 (en) * | 2017-04-28 | 2018-11-01 | International Business Machines Corporation | Path Resolution in InfiniBand and Roce Networks |
CN108737026A (zh) * | 2018-05-08 | 2018-11-02 | 深圳市心流科技有限公司 | 数据传输方法、装置及计算机可读存储介质 |
CN109286477A (zh) * | 2018-10-30 | 2019-01-29 | 佛山市瑞德物联科技有限公司 | 一种支持乱序传输的数据传输方法 |
-
2021
- 2021-03-25 CN CN202110322209.XA patent/CN112968907B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827367A (zh) * | 2016-05-06 | 2016-08-03 | 深圳市国华光电研究院 | 一种无线数据传输的方法及系统 |
US20180316602A1 (en) * | 2017-04-28 | 2018-11-01 | International Business Machines Corporation | Path Resolution in InfiniBand and Roce Networks |
CN107592655A (zh) * | 2017-09-22 | 2018-01-16 | 深圳市沃特玛电池有限公司 | 一种数据分包传输系统及方法 |
CN108737026A (zh) * | 2018-05-08 | 2018-11-02 | 深圳市心流科技有限公司 | 数据传输方法、装置及计算机可读存储介质 |
CN109286477A (zh) * | 2018-10-30 | 2019-01-29 | 佛山市瑞德物联科技有限公司 | 一种支持乱序传输的数据传输方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553431A (zh) * | 2022-01-27 | 2022-05-27 | 北京信息科技大学 | 一种具有记忆功能的通信方法及装置 |
CN114726513A (zh) * | 2022-03-18 | 2022-07-08 | 阿里巴巴(中国)有限公司 | 数据传输方法、设备、介质及产品 |
CN114697279A (zh) * | 2022-03-23 | 2022-07-01 | 北京航天拓扑高科技有限责任公司 | 一种多信道分包传输数据文件的方法 |
WO2023208142A1 (zh) * | 2022-04-29 | 2023-11-02 | 维沃移动通信有限公司 | 数据的处理方法及通信设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112968907B (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112968907A (zh) | 数据传输方法、数据存储方法、数据查询方法、介质及设备 | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
CN113343305A (zh) | 隐私数据的交集计算方法、装置、设备及存储介质 | |
CN106664308B (zh) | 注册之前的设备验证 | |
CN105009508A (zh) | 基于网络参数的完整性校验和选择性去重复 | |
US20220182241A1 (en) | Short transaction identifier collision detection and reconciliation | |
CN112685612B (zh) | 一种特征码查找和匹配方法、设备及存储介质 | |
JP2017525287A (ja) | 端末によって接続を確立するための方法、装置、及びシステム | |
CN113342854A (zh) | 一种移动设备唯一id生成方法和系统 | |
CN110708269B (zh) | 区块链数据传输方法、区块链节点和计算机可读存储介质 | |
CN110234082B (zh) | 一种移动终端的寻址方法、装置、存储介质和服务器 | |
JP2023522119A (ja) | ブロックチェーンネットワークにおけるポイズニングされたトランザクションによるブロック伝搬 | |
US20240106669A1 (en) | Methods and systems for streaming block templates with cross-references | |
CN105354499A (zh) | 一种病毒的查杀方法与装置 | |
CN111324914B (zh) | 文件的传输方法、装置、服务器、设备和介质 | |
CN113225258B (zh) | 一种报文转发方法、装置、网络设备及系统 | |
CN112434231B (zh) | 一种数据处理方法、装置及电子设备 | |
US20170169239A1 (en) | Method for file synchronization, the receiver equipment and systems | |
CN112596733A (zh) | 编译和获取文件的方法、装置、存储介质、电子设备 | |
CN113609532B (zh) | 一种数据完整性校验方法、装置、计算机设备和存储介质 | |
CN112052020A (zh) | 一种数据更新方法、装置、系统、计算机设备及存储介质 | |
WO2018232554A1 (zh) | 模式串匹配验证方法、装置、设备及存储介质 | |
CN117009992B (zh) | 升级包处理方法、装置、电子设备及存储介质 | |
US20240031128A1 (en) | Methods and systems for synchronizing a streamed template to a solved block | |
US20230421402A1 (en) | Methods and systems for compressing transaction identifiers |
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 |