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

文档序号:27386656发布日期:2021-11-15 21:29阅读:81来源:国知局
一种数据传输方法、装置、存储介质及电子设备与流程

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


背景技术:

2.在目前的通信过程中,虽然用户能够同时连接上多个网络,例如wi

fi网络和蜂窝网络,但往往还是通过一种通信方式进行通信,例如用户在手机上,通过wi

fi网络或者蜂窝网络观看视频。
3.由于一种通信方式所能提供的带宽较低,数据传输的速率也就较低,难免影响用户体验。而如何利用用户同时连接上的多个通信方式来提供数据的传输速率,是一个亟待解决的问题。


技术实现要素:

4.本说明书提供一种数据传输方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
5.本说明书采用下述技术方案:
6.本说明书提供了一种数据传输方法,包括:
7.响应于所接收到的发送端通过用户数据报协议udp所发送的待传输数据,以指定的划分方式将所述待传输数据划分为若干子数据,其中,每个子数据中包含至少部分待传输数据;
8.针对所划分出的每个子数据,确定该子数据对应的报文头,并根据所对应的报文头对该子数据通过多径用户数据报协议mpudp进行封装;
9.通过预先建立的与目标中转设备之间的若干个通信链路,将封装后的各子数据发送至目标中转设备,以使所述目标中转设备响应于所接收到的各子数据,根据报文头中包含的数据,确定对子数据进行传输的各通信链路的传输质量,并将各子数据聚合为所述待传输数据以传输给接收端。
10.可选地,子数据对应的报文头中包括以下数据中的至少一个:
11.数据包类型、该子数据的链路序列号、该子数据的全局序列号、该子数据所属的数据流标识、该子数据的数据量、版本标识、传输状态、对子数据进行重排的选项、时间戳、传输延时、目标地址、随机数;
12.所述版本标识包括该mpudp子数据的版本标识和/或所承载的udp待传输数据的版本标识。
13.可选地,预先建立的与目标中转设备之间的若干个通信链路中,至少两个通信链路所支持的通信方式不同。
14.可选地,将封装后的各子数据发送至目标中转设备之前,所述方法还包括:
15.响应于所接收到的发送端通过传输控制协议tcp所发送的待传输数据,以指定的
划分方式将所述待传输数据划分为若干子数据,其中,每个子数据中包含至少部分待传输数据;
16.针对所划分出的每个子数据,确定该子数据对应的报文头,并根据所对应的报文头对该子数据通过多径传输控制协议mptcp进行封装,以得到封装后的各子数据。
17.可选地,通过预先建立的与目标中转设备之间的若干个通信链路,将封装后的各子数据发送至目标中转设备,具体包括:
18.确定各通信链路的传输质量;
19.针对每个子数据,根据该子数据的数据量,以及各通信链路的传输质量,为该子数据选择出对应的通信链路;
20.通过各子数据对应的通信链路,将各子数据传输至目标中转设备,其中,传输质量越高的通信链路所对应的子数据的数据量越大。
21.可选地,所述各通信链路中至少包括一个冗余链路;
22.以指定的划分方式,将所述待传输数据划分为若干子数据,具体包括:
23.根据所述待传输数据,确定出若干个包含该待传输数据中的至少部分数据的子数据,其中,所确定出的各子数据两两不同;
24.对所确定出的至少一个子数据进行复制,并将复制得到的子数据作为冗余子数据,以获得所划分出的若干子数据;
25.根据该子数据的数据量,以及各通信链路的传输质量,为该子数据选择出对应的通信链路,具体包括:
26.根据该冗余子数据的数据量,以及各冗余链路的传输质量,为该冗余子数据选择出对应的冗余链路。
27.可选地,确定各通信链路的传输质量,具体包括:
28.针对每个通信链路,根据在预设时段内通过该通信链路所接收到的目标数据的报文头,确定该通信链路的传输质量,其中,所述目标数据至少包括所述目标中转设备在历史上通过该通信链路发送的已传输数据的子数据。
29.可选地,根据在预设时段内通过该通信链路所接收到的目标数据的报文头,确定该通信链路的传输质量,具体包括:
30.确定目标数据中的报文头所包括的目标中转设备发送所述目标数据时的时间戳,并根据接收所述目标数据的时刻与所述时间戳之间的时间差,确定该通信链路的传输速率;和/或,
31.确定目标数据中的报文头所包含的传输延时,并根据所述传输延时确定出该通信链路的传输速率。
32.可选地,预先建立与目标中转设备之间的若干个通信链路,具体包括:
33.响应于所接收到的调度中心发送的设备链接指令,将所述设备链接指令中所指示的指定中转设备作为目标中转设备,并建立与所述目标中转设备之间的若干个通信链路,其中,所述目标中转设备为所述调度中心从各指定中转设备中选择出的。
34.可选地,所述方法还包括:
35.针对每个指定中转设备,建立与该指定中转设备之间的若干个通信链路;
36.若该指定中转设备为非目标中转设备,则以指定第二周期向该指定中转设备发送
心跳数据,以维持与该指定中转设备之间的通信链路。
37.本说明书提供了一种数据传输方法,包括:
38.响应于所接收到的目标中转设备通过预先建立的若干个通信链路发送的以mpudp进行封装的各子数据,确定各子数据所对应的报文头,其中,所述子数据为目标中转设备预先将发送端通过用户数据报协议udp所发送的待传输数据进行划分得到的,每个子数据中包含至少部分待传输数据;
39.根据报文头中包含的数据,将各子数据聚合为待传输数据,并将所聚合出的待传输数据发送给接收端。
40.可选地,子数据对应的报文头中包括以下数据中的至少一个:
41.数据包类型、该子数据的链路序列号、该子数据的全局序列号、该子数据所属的数据流标识、该子数据的数据量、mpudp和/或所承载的udp的版本数据、传输状态、对子数据进行重排的选项、时间戳、传输延时、目标地址数据、随机数。
42.可选地,根据报文头中包含的数据,将各子数据聚合为待传输数据,具体包括:
43.根据报文头中的子数据的全局序列号,对各子数据进行排序;
44.以所排列出的各子数据的顺序,聚合各子数据,并得到所聚合出的待传输数据。
45.可选地,预先建立的与目标中转设备之间的若干个通信链路中,至少两个通信链路所支持的通信方式不同。
46.可选地,将各子数据聚合为待传输数据之前,所述方法还包括:
47.响应于所接收到的目标中转设备通过预先建立的若干个通信链路发送的以mptcp进行封装的各子数据,确定各子数据所对应的报文头,其中,所述子数据为目标中转设备预先将发送端通过用户数据报协议tcp所发送的待传输数据进行划分得到的,每个子数据中包含至少部分待传输数据。
48.可选地,将各子数据聚合为待传输数据,具体包括:
49.针对所接收到的每个子数据,判断该子数据是否为与至少一个其他子数据中所包含的数据相同的冗余子数据;
50.若是,则从该子数据以及与该子数据所包含的数据相同的各子数据中选择出指定子数据;若否,将该子数据作为指定子数据;
51.将各指定子数据聚合为待传输数据。
52.可选地,所述方法还包括:
53.针对每个通信链路,确定通过该通信链路进行传输的目标数据的报文头,并将目标数据发送给所述目标中转设备,以使所述目标中转设备根据目标数据的报文头确定该通信链路的传输质量,其中,所述目标数据至少包括已传输数据的子数据。
54.可选地,所述报文头中包括发送所述目标数据时的时间戳,和/或,通过该通信链路接收到的所述目标中转设备发送的最后一个子数据的传输延时,其中,所述传输延时为根据接收到的最后一个子数据的时刻,与该子数据对应的报文头中所包含的时间戳的时间差确定的。
55.可选地,所述目标数据包括以指定第一周期通过该通信链路向所述目标中转设备发送的查询数据。
56.本说明书提供了一种数据传输装置,包括:
57.划分模块,用于响应于所接收到的发送端通过用户数据报协议udp所发送的待传输数据,以指定的划分方式将所述待传输数据划分为若干子数据,其中,每个子数据中包含至少部分待传输数据;
58.封装模块,用于针对所划分出的每个子数据,确定该子数据对应的报文头,并根据所对应的报文头对该子数据通过多径用户数据报协议mpudp进行封装;
59.传输模块,用于通过预先建立的与目标中转设备之间的若干个通信链路,将封装后的各子数据发送至目标中转设备,以使所述目标中转设备响应于所接收到的各子数据,根据报文头中包含的数据,确定对子数据进行传输的各通信链路的传输质量,并将各子数据聚合为所述待传输数据以传输给接收端。
60.本说明书提供了一种数据传输装置,包括:
61.聚合模块,用于响应于所接收到的目标中转设备通过预先建立的若干个通信链路发送的以mpudp进行封装的各子数据,确定各子数据所对应的报文头,其中,所述子数据为目标中转设备预先将发送端通过用户数据报协议udp所发送的待传输数据进行划分得到的,每个子数据中包含至少部分待传输数据;
62.传输模块,用于根据报文头中包含的数据,将各子数据聚合为待传输数据,并将所聚合出的待传输数据发送给接收端。
63.本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法。
64.本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据传输方法。
65.本说明书采用的上述至少一个技术方案能够达到以下有益效果:
66.在本说明书提供的数据传输系统以及数据传输方法中,第一中转设备可以将所接收到的发送端以udp发送的待传输数据划分为若干子数据,采用mpudp进行封装后,将各子数据通过与第二中转设备之间的若干通信链路传输至第二中转设备,以使第二中转设备根据各子数据的报文头将各子数据聚合为待传输数据后,传输给接收端,实现同时采用多链路以mpudp进行传输,以提高第一中转设备和第二中转设备之间的传输速率。
附图说明
67.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
68.图1为本说明书中一种数据传输系统的示意图;
69.图2为本说明书一种数据传输方法的流程示意图;
70.图3为本说明书另一种数据传输方法的流程示意图;
71.图4为本说明书提供的一种数据传输装置的示意图;
72.图5为本说明书提供的一种数据传输装置的示意图;
73.图6为本说明书提供的电子设备的结构示意图。
具体实施方式
74.当所要传输的数据为采用传输控制协议(transmission control protocol,tcp)的待传输数据时,可以通过现有的多路传输控制协议(multi

path transmission control protocol,mptcp)采用若干条通信链路进行传输。
75.采用mptcp进行传输时,需要将待传输数据封装进tcp包以tcp的方式在每个通信链路上传输,而由于tcp本身相对于用户数据报协议(user datagram protocol,udp)所固有的低带宽属性,因此,当所要传输的数据为udp封装的数据时,将待传输数据采用mptcp进行传输反而会损失传输速率。
76.为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
77.以下结合附图,详细说明本说明书各实施例提供的技术方案。
78.本说明书实施例提供了如图1所示的数据传输系统。
79.本说明书提供的数据传输系统由第一通信端、第二通信端、两个目标中转设备,以及两个目标中转设备之间的若干条通信链路构成。
80.作为区分,其中两个目标中转设备分别在图1中以目标中转设备a和目标中转设备b示出,第一链路、第二链路、第三链路则目标中转设备之间的通信链路在图1中的示意。
81.在所述数据传输系统中,第一通信端和第二通信端之间能够实现数据传输,可以理解的,本说明书实施例中所述第一通信端、第二通信端,以及两个目标中转设备分别为第一通信端和第二通信端进行数据传输这一传输过程中的四个传输节点。
82.其中,上述传输节点中的任意一个均可以为终端设备或服务器,其中,所述终端设备(以下简称终端)可以为手机、电脑等任一形式的设备,所述服务器可以为集群式服务器或分布式服务器等,本说明书对此不作限制。
83.第一通信端和第二通信端之中的任一可以作为数据的发送端,也可以作为数据的接收端。
84.需要说明的是,通过本说明书实施例所示的数据传输系统传输数据时,两个目标中转设备在数据传输的过程中所执行的功能并不相同,目标中转设备执行何种功能取决于目标中转设备所连接的通信端为发送端还是接收端。
85.因此,本说明书实施例以下部分,将目标中转设备区分为与发送端相连接的第一中转设备,以及与接收端相连接的第二中转设备,并以数据传输系统中的发送端通过与自身相连接的第一中转设备以及与接收端相连接的第二中转设备向接收端传输数据为例进行说明。
86.本说明书实施例中,并不限制发送端和第一中转设备之间如何进行数据传输,也并不限制第二中转设备和接收端之间如何进行数据传输。
87.发送端向第一中转设备发送通过udp传输的待传输数据,第一中转设备在接收到待传输数据之后,以指定的划分方式将待传输数据划分为若干子数据,其中每个子数据包含至少部分待传输数据。接着,再针对每个子数据确定出对应的报文头,并通过多径用户数据报协议(multi

path user datagram protocol,mpudp)以该子数据所对应的报文头对该
子数据进行封装,并将封装后所获得的通过mpudp进行传输的数据包作为封装后的子数据。
88.本说明书一实施例中,所述报文头之前可以还包括udp报文头,在此情形下,针对每个子数据,该子数据在通信链路上以udp方式进行传输。
89.本说明书实施例中,针对每个子数据,该子数据的报文头中至少包括以下至少一个数据:数据包类型、该子数据的链路序列号、该子数据的全局序列号、该子数据所属的数据流标识、该子数据的数据量、版本标识、传输状态、对子数据进行重排的选项、时间戳、传输延时、目标地址、随机数;所述版本标识包括该mpudp子数据的版本标识和/或所承载的udp待传输数据的版本标识。
90.其中,所述数据包类型为该报文头所属的数据包的数据包类型,类型包括:数据包和心跳包,数据包可以例如承载通信双方所要传输的通信数据,心跳包例如以固定周期发送的用于保持连接的固定数据。
91.该子数据的链路序列号是指,该子数据在传输该子数据的通信链路所传输的各子数据中的序列号,用于将通过该通信链路传输的各子数据进行排列,例如,将通过该通信链路传输的各子数据进行排序,并根据排序结果进行预聚合。此外,在该子数据传输至第二中转设备之后,第二中转设备可以根据所接收到的各子数据的链路序列号确定传输该子数据的链路的丢包率。第二中转设备还可以根据通过各通信链路接收到的各子数据的顺序与各子数据的链路序列号之间的差异来确定各通信链路传输子数据的乱序率。
92.该子数据的全局序列号是指,该子数据在各通信链路所传输的各子数据中的序列号,用于根据各子数据的全局序列号将通过各通信链路所传输的各子数据进行排序,例如,可以根据各子数据根据全局序列号的排序结果直接将各子数据聚合为待传输数据,也可以在根据上述各链路序列号的排序结果进行各通信链路所传输的子数据的预聚合之后,根据各通信链路所预聚合的子数据,以及各子数据的全局序列号聚合为待传输数据。
93.该子数据所述的数据流标识是根据所述发送端的地址和端口、接收端的地址和端口,以及划分出该子数据的待传输数据的协议类型确定的,其中,所述协议类型包括:tcp和udp,用于将该子数据所述的数据流中各子数据从发送端的地址和端口传输至接收端的地址和端口,并在接收端的端口将该数据流的各子数据重新排序聚合,本说明书实施例中,待传输数据为数据流中的至少部分数据,例如,数据流可以是一部电影对应的视频数据,待传输数据可以为该电影中某一分钟的视频数据,子数据则是这一分钟内的一帧的视频数据。
94.该子数据的数据量为该子数据所包含的数据的数据量,所述数据量可以为包括报文头本身的封装后的数据包的数据量,也可以为子数据中不包括报文头通信双方所要传输的通信数据,用于根据子数据的传输延时以及数据量确定通信链路的传输速率,例如可以将所传输的子数据的传输延时越短,子数据的数据量越大的通信链路作为传输速率越高的通信链路,也可以用于为该子数据分配通信链路,例如为传输速率越高的通信链路所对应的子数据的数据量可以越大。
95.版本标识包括该mpudp子数据的版本标识和/或所承载的udp待传输数据的版本标识,其中,该mpudp子数据的版本标识用于使第一中转设备和第二中转设备采用对应的协议版本封装和聚合子数据,所承载的udp待传输数据的版本标识用于使发送端和接收端采用对应的协议版本发送和接收待传输数据。
96.传输状态用于指示该子数据本身的传输状态,或该子数据所述的数据流的传输状
态,例如该子数据已接收、废弃,该子数据为该数据流的最后一个子数据。
97.对子数据进行重排的选项则指示当前节点是否对各子数据进行重排,用于当前节点判断通过各子数据的序列号是否能聚合出待传输数据,若否,则确定下一节点是否包含子数据重排功能,并根据对子数据进行重排的选项,以及所确定出的下一节点重排功能的确定结果,判断是否对各子数据进行重排,例如所述对子数据进行重排的选项指示为重排,并且判断下一节点不包含子数据重排功能时,则可以根据该确定结果以及所述对子数据进行重排的选项对各子数据进行重排。当然,在本说明实施例中,所述下一节点可以为第二中转设备。
98.时间戳为第一中转设备向第二中转设备发送该子数据的时刻,用于使第二中转设备确定该子数据的发送时刻,例如第二中转设备可以根据该时间戳,以及接收到该子数据的时刻确定出该子数据的传输延时。
99.传输延时指所接收到的历史上的数据包进行传输所用时间,用于确定通信链路的传输速率,例如,可以为所接收到的最后一个数据包进行传输所用的时间。
100.目标地址为发送端的地址和端口、接收端的地址和端口,用于发送和接收该子数据。
101.随机数指第一中转设备所随机生成的用于安全校验的数字,例如可以根据随机数生成对称秘钥,以便通过对称秘钥对所要传输的子数据进行加密传输。
102.封装后的子数据中至少包含该子数据对应的报文头,以及该子数据中所包含的至少部分待传输数据。
103.第一中转设备与第二中转设备之间预先建立有至少两条通信链路,在得到封装后的各子数据后,第一中转设备通过与第二中转设备之间的各通信链路中的至少两个通信链路将封装后的各子数据发送至第二中转设备。其中,传输子数据所采用的通信链路具体为哪些通信链路,本说明书不作限制,可以采用第一中转设备与第二中转设备之间的所有通信链路传输各子数据,也可以采用第一中转设备与第二中转设备之间任意的至少两条通信链路传输各子数据。
104.第二中转设备根据所接收到的各子数据,确定各子数据对应的报文头,并根据报文头中包含的数据,将各子数据聚合为待传输数据。本说明书实施例中,可以直接根据各子数据的全局序列号,确定各子数据在数据空间内的映射,从而将各子数据聚合为待传输数据。并将所聚合出的待传输数据发送给接收端。
105.当然,当发送端向第一中转设备发送以tcp进行传输的待传输数据时,在采用上述任一方式将待传输数据划分为若干包含至少部分待传输数据的子数据之后,还可以针对所划分出的每个子数据,确定该子数据对应的报文头,并根据所对应的报文头对该子数据通过mptcp进行封装。
106.具体的,可以确定出该子数据的伪报文头,所述伪报文头中至少包括该子数据的链路序列号、该子数据的全局序列号,以及该子数据的数据量。可以理解的,与上述采用mpudp方式对子数据进行封装时所确定的报文头相类似,伪报文头中所包含的数据可以与上述报文头中所包含的数据具有相同的意义。需要说明的是,在现有的mptcp技术中,所封装出的mptcp数据包除了子数据对应的伪报文头之外,还包含tcp报文头,而在采用上述方式确定出该子数据的伪报文头之后,将该伪报文头填充仅tcp报文头与封装之前包含至少
部分待传输数据的子数据之间的tcp选项中,从而得到由tcp报文头、mptcp伪报文头,以及封装前的子数据的mptcp数据包,作为采用mptcp方式所封装出的子数据。
107.接着,与传输mpudp所封装出的子数据相似地,将所封装出的mptcp数据包,可以采用上述任一方式通过第一中转设备与第二中转设备之间的至少两条通信链路将以mptcp封装出的子数据传输至第二中转设备。
108.第二中转设备则可以根据所接收到的子数据对应的伪报文头中的序列号,采用上述任一方式为各子数据排序,以按照排序将各子数据聚合为待传输数据。
109.本说明书一实施例中,分别与发送端以及接收端相连接的目标中转设备(即第一中转设备和第二中转设备)可以是调度中心从若干个指定中转设备中选择出来的。具体的,以选择第二中转设备为例,本说明书实施例所述的数据传输系统中可以包括若干个与接收端存在连接的指定中转设备,调度中心可以从各指定中转设备中选择出目标中转设备作为第二中转设备,接着,调度中心可以生成设备链接指令,并将所述设备链接指令发送给第一中转设备和/或第二中转设备,以指示与发送端相连接的第一中转设备以及与接收端相连接的第二中转设备建立起之间的若干通信链路。类似的,所述第一中转设备也可以为采用上述方式从与发送端存在连接的若干指定中转设备中选择出的目标中转设备,本说明书对此不作限制。
110.为了保持传输的稳定性,在确定出目标中转设备之后,任一目标中转设备还可以在与另一目标中转设备建立有若干通信链路的同时,也建立与另一端的各指定中转设备之间的若干个通信链路,并以指定第二周期向非目标中转设备的各指定中转设备发送心跳数据,以维持与该指定中转设备之间的通信链路。
111.例如,第一中转设备在建立与第二中转设备之间的各通信链路之后,与接收端之间存在通信链接的每个指定中转设备也可以建立与第一中转设备之间的若干个通信链路,非第二中转设备的各与接收端之间存在通信链接的指定中转设备可以以指定第二周期向第一中转设备发送心跳数据,当然,第一中转设备也可以以指定第二周期向非第二中转设备的各与接收端之间存在通信链接的指定中转设备发送心跳数据,以维持第一中转设备与非第二中转设备的各与接收端之间存在通信链接的指定中转设备之间的通信链路,从而当第一中转设备与第二中转设备之间的通信链路故障时,可以直接通过已经建立的通信链路通过指定中转设备向接收端传输数据。
112.当然,也可以通过上述方式为第二中转设备建立与非第一中转设备的各与发送端之间存在通信链接的指定中转设备之间的若干个通信链接。
113.可以根据各指定中转设备所负载的数据的传输压力从各指定中转设备中选择出目标中转设备,本说明书实施例中,例如可以以各指定中转设备所负载的数据的数据量之间的差异最小为目标选择目标中转设备。
114.第一中转设备和第二中转设备之间的若干个通信链路中,至少两个通信链路所支持的通信方式不同,具体的,所述两个链路支持的通信方式不同可以指两个通信链路由不同的运营商提供通信服务,也可以两个通信链路所采用的通信技术不同,例如可以是分别采用第四代移动通信技术(the 4th generation mobile communication technology,4g)、第五代移动通信技术(5th generation mobile communication technology,5g)以及wi

fi等通信技术进行信息传输的通信链路,本说明书对于各通信链路支持何种通信方式
不作限制。
115.与选择目标中转设备相类似的,第一中转设备也可以以各指定中转设备所负载的数据的传输压力之间的差异最小为目标选择目标中转设备,即采用负载均衡模式将各子数据从第一中转设备传输至第二中转设备。
116.而由于各链路对于数据的传输能力不同,在负载均衡模式下,除了可以直接根据各通信链路所传输的数据量确定传输每个子数据的通信链路,还可以针对每个子数据,根据各通信链路的传输质量,以及各子数据的数据量,为每个子数据选择出对应的通信链路,以缩短第二中转设备接收到所述待传输数据的所有子数据的传输时间。本说明书一实施例中,所确定出的传输质量越高的通信链路所对应的子数据的数据量越大。
117.本说明书实施例中,针对每个通信链路,该通信链路的传输质量可以根据该通信链路的传输速率、丢包率、以及传输子数据的乱序率确定。具体的,可以根据通过该通信链路所接收到的由第二节点在历史上的预设时段内发送的目标数据的报文头来确定该通信链路的传输速率、丢包率和传输子数据的乱序率。
118.以确定通信链路的传输速率为例,本说明书一实施例中,针对每个通信链路,可以根据通过该通信链路所接收到的由第二中转设备在历史上的预设时段内发送的目标数据的报文头来确定该通信链路的传输速率,以下,本说明书实施例示例性提供两种传输速率的确定方式:
119.第一种,可以确定目标数据中的报文头所包括的目标中转设备发送所述目标数据时的时间戳,并根据接收所述目标数据的时刻与所述时间戳之间的时间差,确定该通信链路的传输速率。
120.第二种,可以确定目标数据中的报文头所包含的传输延时,并根据所述传输延时确定出该通信链路的传输速率。
121.当然,在通过上述任一方式确定通信链路的传输速率时,除了需要根据上述时间差和传输延时,还需要根据目标数据的数据量,本说明书一实施例中,所述报文头中可以包括目标数据的数据量。具体的,可以根据所述目标数据的数据量与所述时间差或传输延时的比值确定该通信链路的传输速率,比值越大则传输速率越高。
122.本说明书一实施例中,通信链路的传输质量还可以包括丢包率和乱序率,可以通过上述任一方式,根据目标数据的报文头中所包括的链路序列号来确定。
123.本说明书实施例中,所述目标数据至少包括历史上的已传输数据的子数据,当然,在传输已传输数据的历史时刻,当前时刻的第一中转设备为第二中转设备,当前时刻的第二中转设备则为第一中转设备。在此情形下,所述传输延时可以为第二中转设备在历史上作为第一中转设备时,根据历史上的第二中转设备所发送的目标数据的时间戳与接收到目标设备时刻的时间差确定出的。
124.除此之外,所述目标数据还可以包括第二中转设备以指定第一周期通过该通信链路发送的查询数据,所述查询数据可以为因特网包探索器(packet internet groper,ping),所述查询数据可以为采用udp进行封装的数据,使得采用以udp进行封装的查询数据进行探测时,所探测出的该通信链路传输以udp进行封装的子数据的传输速率更准确。
125.本说明书书实施例提供的数据传输系统还提供以冗余模式进行数据传输。具体的,在划分子数据时,所划分出的子数据可以除了两两不同的各子数据之外,还包括至少一
个通过对其他子数据进行复制所得到的冗余子数据,此外,第一中转设备和第二中转设备之间的各通信链路中可以包括用于传输冗余子数据的冗余链路,以确定每个冗余子数据和冗余链路之间的对应关系,从而通过上述任一方式,通过对应的冗余链路,将冗余子数据传输至第二中转设备。从而在冗余子数据所复制的子数据传输过程中丢失时,以冗余子数据替代所复制的子数据融合为待传输数据。
126.第二中转设备在接收到各子数据后,可以针对所接收到的每个子数据,判断该子数据是否为与至少一个其他子数据中所包含的数据相同的冗余子数据;若是,则从该子数据以及与该子数据所包含的数据相同的各子数据中选择出指定子数据;若否,将该子数据作为指定子数据;将各指定子数据聚合为待传输数据。
127.所述冗余子数据对应的报文头中可以包括标识该子数据为冗余子数据的数据,当然,所述冗余子数据也可以与所述冗余子数据所复制的子数据具有相同的序列号,以使第二中转设备在根据序列号进行聚合时,从冗余子数据与所复制的子数据中选择出一个作为指定子数据。通常来说,第二中转设备选择序列号相同的子数据中先接收到的子数据作为指定子数据,并且可以将另一序列号相同的子数据删除。
128.通过如上述图1所示的数据传输系统,第一中转设备可以将所接收到的发送端以udp发送的待传输数据划分为若干子数据,采用mpudp进行封装后,将各子数据通过与第二中转设备之间的若干通信链路传输至第二中转设备,以使第二中转设备根据各子数据的报文头将各子数据聚合为待传输数据后,传输给接收端,实现同时采用多链路以mpudp进行传输,以提高第一中转设备和第二中转设备之间的传输速率。
129.以上为本说明书提供的一种数据传输系统,基于与该数据传输系统相同的思路,本说明书还提供了如图2所示的一种数据传输方法,应用于第一中转设备,包括:
130.s200:响应于所接收到的发送端通过用户数据报协议udp所发送的待传输数据,以指定的划分方式将所述待传输数据划分为若干子数据,其中,每个子数据中包含至少部分待传输数据。
131.本说明书一实施例中,发送端和/或接收端其中一个可以为用户的终端,另一个可以为用户所要访问的目标服务器,以发送端为用户的终端为例,第一中转设备可以为与发送端进行连接的路由设备。
132.s202:针对所划分出的每个子数据,确定该子数据对应的报文头,并根据所对应的报文头对该子数据通过多径用户数据报协议mpudp进行封装。
133.s204:通过预先建立的与目标中转设备之间的若干个通信链路,将封装后的各子数据发送至目标中转设备,以使所述目标中转设备响应于所接收到的各子数据,根据报文头中包含的数据,确定对子数据进行传输的各通信链路的传输质量,并将各子数据聚合为所述待传输数据以传输给接收端。
134.以上为本说明书提供的一种数据传输系统,基于与该数据传输系统相同的思路,本说明书还提供了如图3所示的一种数据传输方法,应用于第二中转设备,包括:
135.s300:响应于所接收到的目标中转设备通过预先建立的若干个通信链路发送的以mpudp进行封装的各子数据,确定各子数据所对应的报文头,其中,所述子数据为目标中转设备预先将发送端通过用户数据报协议udp所发送的待传输数据进行划分得到的,每个子数据中包含至少部分待传输数据。
136.对应于上述第一中转设备为路由设备的条件下,第二中转设备可以为与接收端之间存在有线连接的服务器。
137.s302根据报文头中包含的数据,将各子数据聚合为待传输数据,并将所聚合出的待传输数据发送给接收端。
138.以上为本说明书的一个或多个实施例提供的数据传输方法,基于同样的思路,本说明书还提供了相应的数据传输装置,如图4所示,包括:
139.划分模块400,用于响应于所接收到的发送端通过用户数据报协议udp所发送的待传输数据,以指定的划分方式将所述待传输数据划分为若干子数据,其中,每个子数据中包含至少部分待传输数据;
140.封装模块402,用于针对所划分出的每个子数据,确定该子数据对应的报文头,并根据所对应的报文头对该子数据通过多径用户数据报协议mpudp进行封装;
141.传输模块404,用于通过预先建立的与目标中转设备之间的若干个通信链路,将封装后的各子数据发送至目标中转设备,以使所述目标中转设备响应于所接收到的各子数据,根据报文头中包含的数据,确定对子数据进行传输的各通信链路的传输质量,并将各子数据聚合为所述待传输数据以传输给接收端。
142.可选地,子数据对应的报文头中包括以下数据中的至少一个:数据包类型、该子数据的链路序列号、该子数据的全局序列号、该子数据所属的数据流标识、该子数据的数据量、版本标识、传输状态、对子数据进行重排的选项、时间戳、传输延时、目标地址、随机数;所述版本标识包括该mpudp子数据的版本标识和/或所承载的udp待传输数据的版本标识。
143.可选地,预先建立的与目标中转设备之间的若干个通信链路中,至少两个通信链路所支持的通信方式不同。
144.可选地,将封装后的各子数据发送至目标中转设备之前,所述划分模块400还用于,响应于所接收到的发送端通过传输控制协议tcp所发送的待传输数据,以指定的划分方式将所述待传输数据划分为若干子数据,其中,每个子数据中包含至少部分待传输数据;所述封装模块402还用于针对所划分出的每个子数据,确定该子数据对应的报文头,并根据所对应的报文头对该子数据通过多径传输控制协议mptcp进行封装,以得到封装后的各子数据。
145.可选地,通过预先建立的与目标中转设备之间的若干个通信链路,将封装后的各子数据发送至目标中转设备,具体包括:确定各通信链路的传输质量;针对每个子数据,根据该子数据的数据量,以及各通信链路的传输质量,为该子数据选择出对应的通信链路;通过各子数据对应的通信链路,将各子数据传输至目标中转设备,其中,传输质量越高的通信链路所对应的子数据的数据量越大。
146.可选地,所述各通信链路中至少包括一个冗余链路;所述划分模块400具体用于,根据所述待传输数据,确定出若干个包含该待传输数据中的至少部分数据的子数据,其中,所确定出的各子数据两两不同;对所确定出的至少一个子数据进行复制,并将复制得到的子数据作为冗余子数据,以获得所划分出的若干子数据;所述封装模块402具体用于,根据该冗余子数据的数据量,以及各冗余链路的传输质量,为该冗余子数据选择出对应的冗余链路。
147.可选地,所述封装模块402具体用于,针对每个通信链路,根据在预设时段内通过
该通信链路所接收到的目标数据的报文头,确定该通信链路的传输质量,其中,所述目标数据至少包括所述目标中转设备在历史上通过该通信链路发送的已传输数据的子数据。
148.可选地,所述封装模块402具体用于,确定目标数据中的报文头所包括的目标中转设备发送所述目标数据时的时间戳,并根据接收所述目标数据的时刻与所述时间戳之间的时间差,确定该通信链路的传输速率;和/或,确定目标数据中的报文头所包含的传输延时,并根据所述传输延时确定出该通信链路的传输速率。
149.可选地,所述划分模块400具体用于,响应于所接收到的调度中心发送的设备链接指令,将所述设备链接指令中所指示的指定中转设备作为目标中转设备,并建立与所述目标中转设备之间的若干个通信链路,其中,所述目标中转设备为所述调度中心从各指定中转设备中选择出的。
150.可选地,所述划分模块400具体用于,针对每个指定中转设备,建立与该指定中转设备之间的若干个通信链路;若该指定中转设备为非目标中转设备,则以指定第二周期向该指定中转设备发送心跳数据,以维持与该指定中转设备之间的通信链路。
151.以上为本说明书的一个或多个实施例提供的数据传输方法,基于同样的思路,本说明书还提供了相应的数据传输装置,如图5所示,包括:
152.聚合模块500,用于响应于所接收到的目标中转设备通过预先建立的若干个通信链路发送的以mpudp进行封装的各子数据,确定各子数据所对应的报文头,其中,所述子数据为目标中转设备预先将发送端通过用户数据报协议udp所发送的待传输数据进行划分得到的,每个子数据中包含至少部分待传输数据;
153.传输模块502,用于根据报文头中包含的数据,将各子数据聚合为待传输数据,并将所聚合出的待传输数据发送给接收端。
154.可选地,子数据对应的报文头中包括以下数据中的至少一个:数据包类型、该子数据的链路序列号、该子数据的全局序列号、该子数据所属的数据流标识、该子数据的数据量、mpudp和/或所承载的udp的版本数据、传输状态、对子数据进行重排的选项、时间戳、传输延时、目标地址数据、随机数。
155.可选地,所述聚合模块500具体用于,根据报文头中的子数据在各通信链路所传输的各子数据中的序列号,对各子数据进行排序;以所排列出的各子数据的顺序,聚合各子数据,并得到所聚合出的待传输数据。
156.可选地,预先建立的与目标中转设备之间的若干个通信链路中,至少两个通信链路所支持的通信方式不同。
157.可选地,所述聚合模块500具体用于,响应于所接收到的目标中转设备通过预先建立的若干个通信链路发送的以mptcp进行封装的各子数据,确定各子数据所对应的报文头,其中,所述子数据为目标中转设备预先将发送端通过用户数据报协议tcp所发送的待传输数据进行划分得到的,每个子数据中包含至少部分待传输数据。
158.可选地,所述聚合模块500具体用于,针对所接收到的每个子数据,判断该子数据是否为与至少一个其他子数据中所包含的数据相同的冗余子数据;若是,则从该子数据以及与该子数据所包含的数据相同的各子数据中选择出指定子数据;若否,将该子数据作为指定子数据;将各指定子数据聚合为待传输数据。
159.可选地,所述聚合模块500还用于,针对每个通信链路,确定通过该通信链路进行
传输的目标数据的报文头,并将目标数据发送给所述目标中转设备,以使所述目标中转设备根据目标数据的报文头确定该通信链路的传输质量,其中,所述目标数据至少包括已传输数据的子数据。
160.可选地,所述报文头中包括发送所述目标数据时的时间戳,和/或,通过该通信链路接收到的所述目标中转设备发送的最后一个子数据的传输延时,其中,所述传输延时为根据接收到的最后一个子数据的时刻,与该子数据对应的报文头中所包含的时间戳的时间差确定的。
161.可选地,所述目标数据包括以指定第一周期通过该通信链路向所述目标中转设备发送的查询数据。
162.本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述数据传输方法。
163.本说明书还提供了图6所示的电子设备的结构示意图。如图6所示,在硬件层面,该电子设备包括处理器、内部总线、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述数据传输方法。
164.当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
165.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very

high

speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
166.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可
读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
167.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
168.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
169.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
170.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
171.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
172.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
173.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
174.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的
示例。
175.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
176.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
177.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
178.本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
179.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
180.以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1