一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、装置、电子设备及存储介质与流程

2022-09-11 00:26:46 来源:中国专利 TAG:


1.本发明涉及无线通信技术领域,尤其涉及数据传输方法、装置、电子设备及存储介质。


背景技术:

2.利用滑动窗口机制,可以实现数据在点对点的设备间的快速传输,但在多个设备构建的链路网络中,跨节点传输数据需要节点与节点之间传输完整数据后,再由中间节点向下个节点传输,数据传输效率较低。


技术实现要素:

3.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种数据传输方法,提升数据传输效率。
4.根据本发明第一方面实施例的数据传输方法,所述方法应用于执行节点,所述方法包括:
5.获取所述执行节点与目标节点之间多条传输路径的路径信息;
6.基于所述多条传输路径的路径信息,确定所述执行节点的多个下级节点中每个下级节点与所述目标节点之间的传输路径数目;
7.基于所述传输路径数目,确定所述多个下级节点分别对应的数据包分配比例;
8.将所述执行节点的待发送数据划分为多个数据包,并将所述多个数据包按照所述数据包分配比例分别同步发送至所述多个下级节点。
9.根据本发明实施例的数据传输方法,将执行节点的待发送数据按比例分散至多条传输路径进行同步传输,数据传输时间随着路径数量的增大而相应减小,可以有效减少跨节点的数据传输时间,提升跨节点传输的传输效率。
10.根据本发明的一个实施例,在所述获取所述执行节点与目标节点之间多条传输路径的路径信息之后,在所述将所述多个数据包按照所述数据包分配比例分别同步发送至所述多个下级节点之前,所述方法还包括:
11.基于所述多条传输路径的路径信息,确定所述待发送数据的数据量阈值和所述数据包的传输时长阈值中至少一个;
12.将所述数据量阈值和所述传输时长阈值中至少一个发送至所述目标节点。
13.根据本发明的一个实施例,所述基于所述多条传输路径的路径信息,确定所述待发送数据的数据量阈值,包括:
14.基于所述多条传输路径的路径信息,确定所述多条传输路径的路径数量和目标路径的节点数量,所述目标路径为所述多条传输路径中节点数量最多的路径;
15.基于所述多条传输路径的路径数量和所述目标路径的节点数量,确定所述数据量阈值。
16.根据本发明的一个实施例,所述基于所述多条传输路径的路径信息,确定所述数
据包的传输时长阈值,包括:
17.基于所述多条传输路径的路径信息,确定目标路径的节点数量,所述目标路径为所述多条传输路径中节点数量最多的路径;
18.基于所述目标路径的节点数量,确定所述传输时长阈值。
19.根据本发明的一个实施例,所述将所述执行节点的待发送数据划分为多个数据包,包括:
20.将所述待发送数据划分为n个第一数据段,n为大于1的正整数;
21.基于所述n个第一数据段,得到n个第一数据包;
22.将每个第一数据段划分为前后两半段数据,将第i个第一数据段的后半段数据与第i 1个第一数据段前半段数据组合,得到n个第二数据段,第1个第一数据段的前半段数据与第n个第一数据段的后半段数据组合,i为1至n的正整数;
23.基于所述n个第二数据段,得到n个第二数据包。
24.根据本发明第二方面实施例的数据传输方法,所述方法应用于目标节点,所述方法包括:
25.接收执行节点与所述目标节点之间多条传输路径传输的多个数据包,所述多条传输路径中每条传输路径传输的数据包的数目相同;
26.基于所述多个数据包,确定目标数据。
27.根据本发明实施例的数据传输方法,目标节点无需等待中间节点接收完全部的数据即可陆续收到数据包,大大减少跨节点的数据传输时间,有效提升跨节点传输的传输效率。
28.根据本发明的一个实施例,所述基于所述多个数据包,确定目标数据,包括:对所述多个数据包中的n个第一数据包进行校验,n为大于1的正整数;
29.确定所述第一数据包校验通过,将所述第一数据包的第一数据段作为所述目标数据缓存于所述目标节点的接收缓冲区。
30.根据本发明的一个实施例,在所述对所述多个数据包中的n个第一数据包进行校验之后,所述方法还包括:
31.确定所述n个第一数据包中校验不通过的目标数据包;
32.提取所述目标数据包的第一数据段分段后对应的第二数据包的第二数据段,对所述目标数据包的第一数据段进行补充,并将补充后的数据段作为所述目标数据缓存于所述接收缓冲区。
33.根据本发明的一个实施例,在所述接收执行节点与所述目标节点之间多条传输路径传输的多个数据包之前,所述方法还包括:
34.接收所述执行节点发送的数据量阈值;
35.基于所述数据量阈值,确定所述目标节点的接收缓冲区的数据容量;
36.和/或,
37.接收所述执行节点发送的传输时长阈值;
38.基于所述传输时长阈值,确定所述目标节点接收所述多个数据包的判定时间信息。
39.根据本发明第三方面实施例的数据传输装置,所述装置应用于执行节点,所述装
置包括:
40.获取模块,用于获取所述执行节点与目标节点之间多条传输路径的路径信息;
41.第一处理模块,用于基于所述多条传输路径的路径信息,确定所述执行节点的多个下级节点中每个下级节点与所述目标节点之间的传输路径数目;
42.第二处理模块,用于基于所述传输路径数目,确定所述多个下级节点分别对应的数据包分配比例;
43.第三处理模块,用于将所述执行节点的待发送数据划分为多个数据包,并将所述多个数据包按照所述数据包分配比例分别同步发送至所述多个下级节点。
44.根据本发明第四方面实施例的数据传输装置,所述装置应用于目标节点,所述装置包括:
45.接收模块,用于接收执行节点与所述目标节点之间多条传输路径传输的多个数据包,所述多条传输路径中每条传输路径传输的数据包的数目相同;
46.第四处理模块,用于基于所述多个数据包,确定目标数据。
47.根据本发明第五方面实施例的电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述数据传输方法。
48.根据本发明第六方面实施例的非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据传输方法。
49.根据本发明第七方面实施例的计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据传输方法。
50.本发明实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
51.执行节点把发送窗口的待发送数据分成多个数据包,分别同步发送至执行节点的多个下级节点,再由多个下级节点将多个数据包传输给目标节点,通过多路径的传输,将执行节点发送窗口的数据分散同步传输,执行节点无需将全部数据都完整发送至中间节点,可以有效减少跨节点的数据传输时间,提升跨节点传输的传输效率。
52.进一步的,执行节点将待发送数据的数据量阈值和数据包的传输时长阈值这两个关键参数通知目标节点,目标节点再根据待发送数据的数据量阈值和数据包的传输时长阈值确定接收缓冲区的数据容量大小以及接收多个数据包的判定时间信息等传输参数。
53.更进一步的,执行节点将待发送数据进行分段处理,得到第一数据包和第二数据包两种类型的数据包,可以有效保证执行节点和目标节点间数据传输的准确度。
54.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
55.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
56.图1是本发明实施例提供的数据传输方法的流程示意图之一;
57.图2是本发明实施例提供的多个数据包的传输路径示意图;
58.图3是本发明实施例提供的数据包的结构示意图之一;
59.图4是本发明实施例提供的数据包的结构示意图之二;
60.图5是本发明实施例提供的数据传输方法的流程示意图之二;
61.图6是本发明实施例提供的数据传输装置的结构示意图之一;
62.图7是本发明实施例提供的数据传输装置的结构示意图之二;
63.图8是本发明实施例提供的电子设备的结构示意图。
具体实施方式
64.下面结合附图和实施例对本发明的实施方式作进一步详细描述。以下实施例用于说明本发明,但不能用来限制本发明的范围。
65.在本发明实施例的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
66.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
67.滑动窗口是一种数据传输机制,滑动窗口分为发送窗口和接收窗口,发送窗口用来发送数据,接收窗口用来接收数据,可以相互通信的设备都有一个发送窗口和接收窗口。
68.在利用滑动窗口机制进行数据传输时,滑动窗口中的发送窗口会最大化地利用连接间隔期间传输数据,可以实现数据在点对点的设备间的快速传输,但在多个设备构建的链路网络中,跨节点传输数据需要节点与节点之间传输完整数据后,再由中间节点向下个节点传输,数据传输效率较低。
69.需要说明的是,在节点与节点相互连接构成的链路网络中,执行节点是发送数据的节点,目标节点是接收数据的节点,执行节点与目标节点之间存在多个中间节点,执行节点与目标节点通过中间节点传输数据,每个节点对应一个设备。
70.低功耗蓝牙(bluetooth low energy,ble),在保持同等通信范围的同时能够有效降低蓝牙的功耗和成本,被广泛应用于可穿戴设备和物联网装置,成本低、体积小且兼容性强,低功耗蓝牙设备间也可通过滑动窗口机制进行数据传输。
71.下面结合图1至图4描述本发明实施例的数据传输方法,该方法应用于执行节点。
72.在本发明实施例中,执行节点、中间节点和目标节点所对应的设备可以为低功耗蓝牙设备。
73.如图1所示,本发明实施例的数据传输方法包括步骤110至步骤140,该方法的执行主体可以为执行节点对应设备的控制器,或者云端,或者边缘服务器。
74.步骤110、获取执行节点与目标节点之间多条传输路径的路径信息。
75.执行节点与目标节点之间存在多个中间节点,执行节点与目标节点通过中间节点
传输数据,传输路径指执行节点通过中间节点连接目标节点的链路。
76.在实际执行中,执行节点可以通过1个中间节点连接目标节点,例如,如图2所示,节点a为执行节点,节点b为目标节点,节点a通过节点c这1个中间节点,将数据传输至节点b。
77.执行节点可以通过多个中间节点连接目标节点,例如,如图2所示,节点a为执行节点,节点b为目标节点,节点a依次通过节点d、节点f和节点g,将数据传输至节点b。
78.在该实施例中,执行节点与目标节点之间存在多个中间节点,相应地,执行节点与目标节点之间存在多条传输路径。
79.在该步骤中,获取执行节点与目标节点之间的多条传输路径的路径信息,其中,路径信息包括执行节点与目标节点之间的多条传输路径的数目、每条传输路径上中间节点的节点数目以及每条传输路径上中间节点的设备信息等信息。
80.在实际执行中,执行节点可以通过遍历通往目标节点的多条传输路径的方式,获取执行节点与目标节点之间的多条传输路径的路径信息。
81.步骤120、基于多条传输路径的路径信息,确定执行节点的多个下级节点中每个下级节点与目标节点之间的传输路径数目。
82.执行节点的下级节点是指执行节点通往目标节点的传输路径中,执行节点直接与之连接的节点,也即,执行节点与下级节点间无需通过其他中间节点传输数据,执行节点之间将数据输出至执行节点的下级节点。
83.例如,如图2所示,节点a为执行节点,节点b为目标节点,节点a通往节点b的传输路径有3条,分别为:节点a-节点c-节点b、节点a-节点d-节点e-节点b以及节点a-节点d-节点f-节点g-节点b。
84.其中,节点a直接与节点c和节点d连接,节点c和节点d称为节点a的下级节点。
85.在该步骤中,根据执行节点通往目标节点的多条传输路径的路径信息,可以确定出执行节点的多个下级节点中每一个下级节点与目标节点之间的传输路径数目。
86.在该实施例中,当下级节点直接与目标节点连接,该下级节点与目标节点之间的传输路径只有1条;当下级节点通过其他中间节点与目标节点连接,该下级节点与目标节点之间的传输路径可能有1条或多条。
87.例如,如图2所示,节点a为执行节点,节点b为目标节点,节点c和节点d为节点a的下级节点。
88.节点c直接和节点b连接,其传输路径只有1条;节点d通过节点e、节点f和节点g三个中间节点与节点b连接,节点d与节点b之间的传输路径有2条,分别为:节点d-节点e-节点b和节点d-节点f-节点g-节点b。
89.步骤130、基于传输路径数目,确定多个下级节点分别对应的数据包分配比例。
90.在该步骤中,根据执行节点的多个下级节点中每一个下级节点的传输路径数目,确定多个下级节点分别对应的数据包分配比例,也即确定多个下级节点中每一个下级节点的数据包分配比例。
91.在该实施例中,每一个下级节点对应的数据包分配比例为该下级节点与目标节点之间的传输路径数目与多个下级节点与目标节点之间的传输路径总数的比值。
92.例如,如图2所示,节点a为执行节点,节点b为目标节点,节点c和节点d为节点a的
下级节点,节点d与节点b之间的传输路径有2条,节点c与节点b之间的传输路径有1条。
93.其中,节点d对应的数据包分配比例为2/(1 2),节点c对应的数据包分配比例为1/(1 2)。
94.步骤140、将执行节点的待发送数据划分为多个数据包,并将多个数据包按照数据包分配比例分别同步发送至多个下级节点。
95.在实际执行中,可以根据执行节点与目标节点之间多条传输路径的数目对待发送数据进行划分,例如,执行节点与目标节点之间有m条传输路径,可以将待发送数据划分为m
×
n个数据包,n为大于0的正整数。
96.在该步骤中,将执行节点的发送窗口准备发送的待发送数据进行划分,得到多个数据包,并将待发送数据划分得到的多个数据包按照每一个下级节点对应的数据包分配比例发送至对应的下级节点。
97.在该实施例中,执行节点把发送窗口的待发送数据分成多个数据包,分别同步发送至执行节点的多个下级节点,再由多个下级节点将多个数据包传输给目标节点,通过多路径的传输,将执行节点发送窗口的数据分散同步传输,执行节点无需将全部数据都完整发送至中间节点,可以有效减少跨节点的数据传输时间,提升跨节点传输的传输效率。
98.可以理解的是,将执行节点发送窗口的数据分散同步传输,数据传输时间随着路径数量的增大而相应减小,例如,执行节点发送窗口需要发送10mb大小的数据,按1mb/s的速度传输,有2条传输路径时,需要5s完成数据传输,有5条传输路径时,需要2s完成数据传输。
99.下面介绍一个具体的实施例。
100.如图2所示,节点a为执行节点,节点b为目标节点,节点c和节点d为节点a的下级节点,节点d与节点b之间的传输路径有2条,节点c与节点b之间的传输路径有1条。
101.节点a通往节点b的传输路径共有3条,将节点a的发送窗口的待发送数据可以划分为6个数据包。
102.按照节点d对应的数据包分配比例为2/(1 2),节点c对应的数据包分配比例为1/(1 2),节点a按照2/(1 2)的数据包分配比例将6个数据包中的4个数据包发送给节点d,并按照1/(1 2)的数据包分配比例将其余2个数据包发送给节点c。
103.节点a向节点c数据包1,同步向节点d数据包2和数据包3,然后节点a再向节点c数据包4,并同步向节点d数据包5和数据包6,以此类推,直至待发送数据划分得到的多个数据包发送完毕。
104.可以理解的是,节点d在向节点b发送数据时,可以将节点d作为执行节点,节点e、节点f和节点g为节点d通往节点b的中间节点,节点d的2个下级节点为节点e和节点f,节点d与节点b之间的传输路径有2条,节点e和节点f分别对应1条传输路径。
105.在该实施例中,节点d按照1/2的数据包分配比例将4个数据包中的2个数据包发送给节点e,并同步将另外2个数据包发送给节点f。
106.根据本发明实施例提供的数据传输方法,将执行节点的待发送数据按比例分散至多条传输路径进行同步传输,数据传输时间随着路径数量的增大而相应减小,可以有效减少跨节点的数据传输时间,提升跨节点传输的传输效率。
107.可以理解的是,在低功耗蓝牙设备所对应的执行节点、中间节点和目标节点构成
的链路网络中,将执行节点的待发送数据按比例分散至多条传输路径进行同步传输,保证数据传输的低功耗设计的同时,有效提升跨节点传输的传输效率。
108.上述应用于执行节点的数据传输方法,在步骤110获取执行节点与目标节点之间多条传输路径的路径信息之后,步骤140将多个数据包按照数据包分配比例分别同步发送至多个下级节点之前,还包括:
109.基于多条传输路径的路径信息,确定待发送数据的数据量阈值和数据包的传输时长阈值中至少一个;
110.将数据量阈值和传输时长阈值中至少一个发送至目标节点。
111.待发送数据的数据量阈值是指执行节点的发送窗口中待发送数据的数据最大长度,待发送数据的数据量阈值表征了执行节点的发送窗口发送数据的最大容量。
112.数据包的传输时长阈值是指执行节点输出的多个数据包中传输历时最长的数据包的传输时长,数据包的传输时长表征了执行节点的多个数据包分散传输至目标节点所需要的最大时长。
113.在该实施例中,根据执行节点与目标节点之间的多条传输路径的数目、每条传输路径上中间节点的节点数目以及每条传输路径上中间节点的设备信息等路径信息,确定待发送数据的数据量阈值和数据包的传输时长阈值这两个关键参数。
114.执行节点将待发送数据的数据量阈值和数据包的传输时长阈值这两个关键参数通知目标节点,目标节点再根据待发送数据的数据量阈值和数据包的传输时长阈值确定接收缓冲区的数据容量大小以及接收多个数据包的判定时间信息等传输参数。
115.下面介绍待发送数据的数据量阈值和数据包的传输时长阈值这两个关键参数的计算过程。
116.其一、基于多条传输路径的路径信息,确定待发送数据的数据量阈值。
117.在该实施例中,基于多条传输路径的路径信息,确定多条传输路径的路径数量和目标路径的节点数量,目标路径为多条传输路径中节点数量最多的路径;
118.基于多条传输路径的路径数量和目标路径的节点数量,确定数据量阈值。
119.执行节点将待发送数据划分为多个数据包,通过多条传输路径传输至目标节点,执行节点与目标节点间的传输路径越多,执行节点的发送窗口所能发送的数据量越大,也即待发送数据的数据量阈值与执行节点与目标节点间的传输路径的数量成正比。
120.可以理解的是,每条传输路径上中间节点的数目不同,数据包在各传输路径上传输时经由的中间节点的数目不同,为保证数据包传输的准确度,保证数据传输的有效性,预防中间节点传输时发生丢包情况,根据中间节点的数目,对每条传输路径上一次传输的数据包的数据量的大小进行限制,也即待发送数据的数据量阈值与多条传输路径中节点数量最多的路径的节点数量成反比。
121.在实际执行中,可以应用公式:待发送数据的数据量阈值=多条传输路径的路径数目/目标路径的节点数目
×
第一目标数值,待发送数据的数据量阈值的单位可以为字节(bytes)。
122.其中,第一目标数值可以是根据实验数据得到的数值,第一目标数值为大于0的正整数,在基于低功耗蓝牙的数据传输过程中,第一目标数值的取值范围可以为200至400,上述公式中的第一目标数值可以保证在目标路径上数据包传输的准确度,有效预防中间节点
传输时发生丢包情况。
123.例如,节点a为执行节点,节点b为目标节点,节点a通往节点b的传输路径有3条,目标路径为节点a-节点d-节点f-节点g-节点b,目标路径共有5个节点。
124.待发送数据的数据量阈值=3/5
×
256(bytes),在实际执行中,待发送数据的数据量阈值需要取整,可以向上取整为154(bytes),也可以向下取整为153(bytes),也可以是根据四舍五入的规则进行取整。
125.其二、基于多条传输路径的路径信息,确定数据包的传输时长阈值。
126.在该实施例中,基于多条传输路径的路径信息,确定目标路径的节点数量,目标路径为多条传输路径中节点数量最多的路径;
127.基于目标路径的节点数量,确定传输时长阈值。
128.可以理解的是,执行节点将待发送数据划分为多个数据包,通过多条传输路径同步传输至目标节点,每条传输路径上传输的数据包的数量是相同的,每条传输路径的传输速度差异不大,数据包的传输时长阈值取决于节点数量最多的目标路径,也即,当节点数量最多的目标路径完成数据包的传输时,其他传输路径也完成了数据包的传输。
129.需要说明的是,每条传输路径在传输数据包时,传输时长包括数据在节点与节点间的传输时长以及数据在节点处的停留时长。
130.数据在节点与节点间的传输时长,也即节点间的连接间隔,指节点与节点间的单位通信时间。
131.在该实施例中,数据包的传输时长阈值与节点连接间隔以及目标路径的节点数目成正比。
132.在实际执行中,可以应用公式:数据包的传输时长阈值=目标路径的节点连接间隔总和 目标路径的节点数量
×
第二目标数值,数据包的传输时长阈值的单位可以为毫秒(ms)。
133.其中,第二目标数值用于表征数据在节点处的停留时长,第二目标数值可由各个节点进行设置更改,与各个节点进行数据处理的物理性能相关。
134.例如,节点a为执行节点,节点b为目标节点,节点a通往节点b的传输路径有3条,目标路径为节点a-节点d-节点f-节点g-节点b,目标路径共有5个节点。
135.数据包的传输时长阈值=(连接间隔ad 连接间隔df 连接间隔fg 连接间隔gb) 5
×
8,第二目标数值为8,每个节点的停留时间相同。
136.上述数据传输方法步骤140将执行节点的待发送数据划分为多个数据包,包括:
137.将待发送数据划分为n个第一数据段,n为大于1的正整数;
138.基于n个第一数据段,得到n个第一数据包;
139.将每个第一数据段划分为前后两半段数据,将第i个第一数据段的后半段数据与第i 1个第一数据段前半段数据组合,得到n个第二数据段,第1个第一数据段的前半段数据与第n个第一数据段的后半段数据组合,i为1至n的正整数;
140.基于n个第二数据段,得到n个第二数据包。
141.在该实施例中,将执行节点发送窗口的待发送数据划分为n个第一数据段,分别对每一个第一数据段标识相应的序号,同时计算相应的校验码,组合为第一数据包。
142.可以理解的是,待发送数据划分为n个第一数据段封装得到的n个第一数据包中,
每个第一数据包内都包括节点源地址、节点目标地址、待发送数据的数据id、单包帧序号、第一数据段、上帧数据校验码以及下帧数据校验码等信息。
143.每个第一数据包可看作一帧数据,节点源地址指执行节点的地址,节点目标地址指目标节点的地址,待发送数据的数据id指该第一数据包是执行节点发送窗口的多个待发送数据中的那一个待发送数据封装得到的,单包帧序号指该第一数据包在n个第一数据包中的序号。
144.在该实施例中,利用待发送数据划分的n个第一数据段封装得到的n个第一数据包,并将n个第一数据段中每个第一数据段划分为前后两半段数据,将第i个第一数据段的后半段数据与第i 1个第一数据段前半段数据组合,得到n个第二数据段。
145.例如,将每个第一数据段划分为前后两半段数据,将第2个第一数据段的后半段数据与第3个第一数据段前半段数据组合,得到一个第二数据段,将第3个第一数据段的后半段数据与第4个第一数据段前半段数据组合,再得到一个第二数据段,依此类推。
146.需要说明的是,在实际执行中,对于首尾两个第一数据段,将第1个第一数据段的前半段数据与第n个第一数据段的后半段数据组合。
147.在该实施例中,利用n个第一数据段中每个第一数据段划分为前后两半段数据,进行组合得到n个第二数据段,进一步根据n个第二数据段进行相应的封装得到n个第二数据包。
148.可以理解的是,每个第二数据包内也都包括节点源地址、节点目标地址、待发送数据的数据id、单包帧序号、第二数据段、上帧数据校验码以及下帧数据校验码等信息。
149.在实际执行中,第一数据包和第二数据包在进行封装时,可以以不同的方式生成校验码,以提升数据包的安全性。
150.在该实施例中,执行节点发送窗口的待发送数据划分得到的多个数据包,包括n个第一数据包和n个第二数据包。
151.下面介绍一个具体的实施例。
152.如图4所述,执行节点发送窗口的待发送数据划分得到的3个第一数据包,分别为:第1帧第一数据包411、第3帧第一数据包412和第5帧第一数据包413。
153.待发送数据划分得到的3个第二数据包,分别为:第2帧第一数据包421、第4帧第一数据包422和第6帧第一数据包423。
154.如图3所示为第3帧第一数据包412的数据结构,1帧chechksum310是第1帧第一数据包411的校验码,5帧chechksum330是第5帧第一数据包411的校验码,第3帧第一数据包412的第一数据段cd320分为前后两半段数据。
155.第3帧第一数据包412的第一数据段的前半段数据c与第1帧第一数据包411的第一数据段的后半段数据b,组成第2帧第一数据包421的第二数据段bc,以此类推。
156.在实际执行中,将执行节点发送窗口的待发送数据划分为n个第一数据段时,可以标识上奇数序号,同时计算上个奇数帧与下个奇数帧的校验码,将其组合成一个第一数据包,其中,第1帧第一数据包411的上帧校验码和最后一帧第5帧第一数据包413的下帧校验码为0。
157.在该实施例中,将每个第一数据段分为前后两段数据,将后半段数据与下一个奇数帧的前半段数据共同组成偶数帧数据,也即第二数据段,最后一个偶数帧数据为最后的
奇数帧后半段数据与第一段奇数帧数据前半段数据,也即第1个第一数据段的前半段数据与第n个第一数据段的后半段数据组合。
158.计算上个偶数帧数据与下个偶数帧的校验码,将其组合成一个第二数据包,其中,首个偶数帧第2帧第一数据包421的上帧校验码与最后的偶数帧第6帧第一数据包423的下帧校验码为-1,标识为f。
159.在该实施例中,将n个第一数据包和n个第二数据包按照每个下级节点的数据包分配比例分别同步发送至各下级节点,再由各个下级节点将这些数据包传输至目标节点。
160.下面结合图5描述本发明实施例的数据传输方法,该方法应用于目标节点。
161.如图5所示,本发明实施例的数据传输方法包括步骤510和步骤520,该方法的执行主体可以为目标节点对应设备的控制器,或者云端,或者边缘服务器。
162.步骤510、接收执行节点与目标节点之间多条传输路径传输的多个数据包,多条传输路径中每条传输路径传输的数据包的数目相同。
163.在该实施例中,目标节点接收执行节点根据上述数据传输方法发送的多个数据包。
164.下面介绍一个具体的实施例。
165.如图2所示,节点a为执行节点,节点b为目标节点,节点c和节点d为节点a的下级节点,节点d与节点b之间的传输路径有2条,节点c与节点b之间的传输路径有1条。
166.节点a通往节点b的传输路径共有3条,将节点a的发送窗口的待发送数据可以划分为6个数据包。
167.按照节点d对应的数据包分配比例为2/(1 2),节点c对应的数据包分配比例为1/(1 2),节点a按照2/(1 2)的数据包分配比例将6个数据包中的4个数据包发送给节点d,并按照1/(1 2)的数据包分配比例将其余2个数据包发送给节点c。
168.节点a向节点c数据包1,同步向节点d数据包2和数据包3,然后节点a再向节点c数据包4,并同步向节点d数据包5和数据包6,以此类推,直至待发送数据划分得到的多个数据包发送完毕。
169.节点b接收到节点c发送的数据包1和数据包4以及节点d通过2条传输路径发送的数据包2、数据包3、数据包5和数据包6。
170.步骤520、基于多个数据包,确定目标数据。
171.在该步骤中,目标节点在接收到多个数据包后,对多个数据包中所包含的数据段进行提取,并将提取到的数据段作为目标数据缓存于目标节点的接收缓冲区。
172.可以理解的是,目标节点完成所有数据包的数据提取后,得到的所有数据段组合成的目标数据,与执行节点的发送窗口的待发送数据相同,以完成执行节点和目标节点之间的数据传输。
173.根据本发明实施例提供的数据传输方法,执行节点通过多路径的传输,将待发送数据分散同步传输至目标节点,目标节点无需等待中间节点接收完全部的数据即可陆续收到数据包,大大减少跨节点的数据传输时间,有效提升跨节点传输的传输效率。
174.上述数据传输方法在步骤520包括:
175.对多个数据包中的n个第一数据包进行校验,n为大于1的正整数;
176.确定第一数据包校验通过,将第一数据包的第一数据段作为目标数据缓存于目标
节点的接收缓冲区。
177.可以理解的是,执行节点接收到多个数据包后,会对多个数据包进行校验,以判断多个数据包的真伪及顺序等信息,检验通过再将数据包中的数据段进行提取,确定出目标数据。
178.在该实施例中,执行节点按照划分第一数据段,封装得到n个第一数据包,将第一数据段分为前后两半段数据,得到第二数据段,封装得到n个第二数据包,并将n个第一数据包和n个第二数据包通过多条传输路径同步分散传输至目标节点。
179.目标节点接收到n个第一数据包和n个第二数据包,先对n个第一数据包进行校验,将校验通过的第一数据包的第一数据段缓存于目标节点的接收缓冲区。
180.在实际执行中,目标节点可以将n个第一数据包中相邻第一数据包的校验码进行比对,以验证第一数据包,并确定n个第一数据包的顺序。
181.例如,如图4所示,检验第1帧第一数据包411的上帧校验码是否为0,检验第5帧第一数据包413的下帧校验码是否为0,以确定首尾两个第一数据包。
182.在该实施例中,将n个第一数据包中校验不通过的第一数据包确定为目标数据包,提取目标数据包的第一数据段分段后对应的第二数据包的第二数据段,对目标数据包的第一数据段进行补充,并将补充后的数据段作为目标数据缓存于接收缓冲区。
183.可以理解的是,目标数据包的第一数据段分为前后两半段数据,目标数据包的前半段数据与目标数据包的前一个第一数据包的后半段数据组合成第二数据段,封装为一个第二数据包,相应的,目标数据包的后半段数据与目标数据包的后一个第一数据包的前半段数据组合成另一个第二数据段,封装为另一个第二数据包。
184.根据目标数据包的第一数据段,确定出对应的第二数据包,提取第二数据包的第二数据段对目标数据包的第一数据段进行补充,并将补充后的数据段缓存于接收缓冲区,以使目标节点的接收缓冲区可以缓冲完整的执行节点发送的待发送数据,保证执行节点和目标节点间数据传输的准确度。
185.上述数据传输方法步骤510之前,还包括:
186.接收执行节点发送的数据量阈值;
187.基于数据量阈值,确定目标节点的接收缓冲区的数据容量;
188.和/或,
189.接收执行节点发送的传输时长阈值;
190.基于传输时长阈值,确定目标节点接收多个数据包的判定时间信息。
191.在该实施例中,目标节点在接收多个数据包之前,执行节点与目标节点进行协商,执行节点将待发送数据的数据量阈值和数据包的传输时长阈值这两个关键参数通知目标节点,目标节点再根据待发送数据的数据量阈值和数据包的传输时长阈值确定接收缓冲区的数据容量大小以及接收多个数据包的判定时间信息。
192.待发送数据的数据量阈值表征了执行节点的发送窗口发送数据的最大容量,目标节点根据待发送数据的数据量阈值,确定接收缓冲区的数据容量,避免出现接收缓冲区的容量不足,而导致数据拥堵或丢包情况的发生。
193.数据包的传输时长表征了执行节点的多个数据包分散传输至目标节点所需要的最大时长,目标节点根据数据包的传输时长,确定接收多个数据包的判定时间信息,以判断
目标节点当前接收到的数据包的有效性,判断是否发送数据传输中断的情况,及时反馈,保证执行节点与目标节点间的数据传输质量。
194.下面对本发明实施例提供的两种数据传输装置进行描述,下文描述的两种数据传输装置与上文描述的两种数据传输方法可相互对应参照。
195.如图6所示,本发明实施例提供应用于执行节点的数据传输装置包括:
196.获取模块610,用于获取执行节点与目标节点之间多条传输路径的路径信息;
197.第一处理模块620,用于基于多条传输路径的路径信息,确定执行节点的多个下级节点中每个下级节点与目标节点之间的传输路径数目;
198.第二处理模块630,用于基于传输路径数目,确定多个下级节点分别对应的数据包分配比例;
199.第三处理模块640,用于将执行节点的待发送数据划分为多个数据包,并将多个数据包按照数据包分配比例分别同步发送至多个下级节点。
200.根据本发明实施例提供的数据传输装置,将执行节点的待发送数据按比例分散至多条传输路径进行同步传输,数据传输时间随着路径数量的增大而相应减小,可以有效减少跨节点的数据传输时间,提升跨节点传输的传输效率。
201.在一些实施例中,第一处理模块620还用于基于多条传输路径的路径信息,确定待发送数据的数据量阈值和数据包的传输时长阈值中至少一个;
202.将数据量阈值和传输时长阈值中至少一个发送至目标节点。
203.在一些实施例中,第一处理模块620还用于基于多条传输路径的路径信息,确定多条传输路径的路径数量和目标路径的节点数量,目标路径为多条传输路径中节点数量最多的路径;
204.基于多条传输路径的路径数量和目标路径的节点数量,确定数据量阈值。
205.在一些实施例中,第一处理模块620还用于基于多条传输路径的路径信息,确定目标路径的节点数量,目标路径为多条传输路径中节点数量最多的路径;
206.基于目标路径的节点数量,确定传输时长阈值。
207.在一些实施例中,第三处理模块640用于将待发送数据划分为n个第一数据段,n为大于1的正整数;
208.基于n个第一数据段,得到n个第一数据包;
209.将每个第一数据段划分为前后两半段数据,将第i个第一数据段的后半段数据与第i 1个第一数据段前半段数据组合,得到n个第二数据段,第1个第一数据段的前半段数据与第n个第一数据段的后半段数据组合,i为1至n的正整数;
210.基于n个第二数据段,得到n个第二数据包。
211.如图7所示,本发明实施例提供应用于目标节点的数据传输装置包括:
212.接收模块710,用于接收执行节点与目标节点之间多条传输路径传输的多个数据包,多条传输路径中每条传输路径传输的数据包的数目相同,其中,多个数据包为执行节点基于上述应用于执行节点的数据传输方法发送的数据包;
213.第四处理模块720,用于基于多个数据包,确定目标数据。
214.根据本发明实施例提供的数据传输装置,执行节点通过多路径的传输,将待发送数据分散同步传输至目标节点,目标节点无需等待中间节点接收完全部的数据即可陆续收
到数据包,大大减少跨节点的数据传输时间,有效提升跨节点传输的传输效率。
215.在一些实施例中,第四处理模块720用于对多个数据包中的n个第一数据包进行校验,n为大于1的正整数;
216.确定第一数据包校验通过,将第一数据包的第一数据段作为目标数据缓存于目标节点的接收缓冲区。
217.在一些实施例中,第四处理模块720还用于确定n个第一数据包中校验不通过的目标数据包;
218.提取目标数据包的第一数据段分段后对应的第二数据包的第二数据段,对目标数据包的第一数据段进行补充,并将补充后的数据段作为目标数据缓存于接收缓冲区。
219.在一些实施例中,接收模块710还用于接收执行节点发送的数据量阈值;
220.第四处理模块720还用于基于数据量阈值,确定目标节点的接收缓冲区的数据容量;
221.在一些实施例中,接收模块710还用于接收执行节点发送的传输时长阈值;
222.第四处理模块720还用于基于传输时长阈值,确定目标节点接收多个数据包的判定时间信息。
223.图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行应用于执行节点的数据传输方法,该方法包括:获取执行节点与目标节点之间多条传输路径的路径信息;基于多条传输路径的路径信息,确定执行节点的多个下级节点中每个下级节点与目标节点之间的传输路径数目;基于传输路径数目,确定多个下级节点分别对应的数据包分配比例;将执行节点的待发送数据划分为多个数据包,并将多个数据包按照数据包分配比例分别同步发送至多个下级节点;
224.或者,以执行应用于目标节点的数据传输方法,该方法包括:接收执行节点与目标节点之间多条传输路径传输的多个数据包,多条传输路径中每条传输路径传输的数据包的数目相同;
225.基于多个数据包,确定目标数据。
226.此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
227.进一步地,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法实施例所提供的应用于执行节点的数据传输方法,该方法
包括:获取执行节点与目标节点之间多条传输路径的路径信息;基于多条传输路径的路径信息,确定执行节点的多个下级节点中每个下级节点与目标节点之间的传输路径数目;基于传输路径数目,确定多个下级节点分别对应的数据包分配比例;将执行节点的待发送数据划分为多个数据包,并将多个数据包按照数据包分配比例分别同步发送至多个下级节点;
228.或者,执行上述各方法实施例所提供的应用于目标节点的数据传输方法,该方法包括:
229.接收执行节点与目标节点之间多条传输路径传输的多个数据包,多条传输路径中每条传输路径传输的数据包的数目相同;
230.基于多个数据包,确定目标数据。
231.另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的应用于执行节点的数据传输方法,该方法包括:获取执行节点与目标节点之间多条传输路径的路径信息;基于多条传输路径的路径信息,确定执行节点的多个下级节点中每个下级节点与目标节点之间的传输路径数目;基于传输路径数目,确定多个下级节点分别对应的数据包分配比例;将执行节点的待发送数据划分为多个数据包,并将多个数据包按照数据包分配比例分别同步发送至多个下级节点;
232.或者,执行上述各方法实施例所提供的应用于目标节点的数据传输方法,该方法包括:接收执行节点与目标节点之间多条传输路径传输的多个数据包,多条传输路径中每条传输路径传输的数据包的数目相同;
233.基于多个数据包,确定目标数据。
234.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
235.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
236.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
237.以上实施方式仅用于说明本发明,而非对本发明的限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行各种组合、
修改或者等同替换,都不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献