数据的传输方法和装置与流程

文档序号:13673283阅读:110来源:国知局
技术领域本发明涉及数据处理领域,具体而言,涉及一种数据的传输方法和装置。

背景技术:
在现有的互联网中,具有多条并行接入链路的多宿主主机越来越普遍,多宿主主机之间具有多条可达路径,这一特性为提升现有传输协议的性能提供了新的思路。而目前广泛使用的两种传输协议传输控制协议(TransmissionControlProtocol,简称TCP)和用户数据包协议(UserDatagramProtocol,简称UDP)在主流操作系统(例如,Linux系统)的实现都是仅能够使用数据发送端和数据接收之间的一条可达路径来传输数据,不能充分利用多宿主主机的多路径特性来提高传输性能。因而,出现一些多路径传输方案,如开源社区的MPTCP协议,该协议通过修改Linux系统的内核TCP协议栈来实现多路径传输,使得TCP多路径的传输对应用层透明,但上述方法也存在以下弊端:缺点一、通过该方案在Linux系统内核层面实现TCP多路径传输时,需修改内核TCP协议栈的实现,并与内核深度耦合。但是,如要使用上述方法必须升级内核,然而升级内核还未进入Linux内核主线,也未被商用,进而,无法保证可靠性,若是采用上述方法必然给系统带来风险,同时增加运维的工作量;缺点二、由于TCP协议天然的线头阻塞(HeadofLine,简称HOL)特性,若多条传输路径中的任意一条路径(称为子流,为一条普通的TCP连接)出现丢包或者链路中断,则必须等待该路径恢复才能重传传输报文,或者通过其它路径重传报文;缺点三、由于TCP协议要求严格的数据按序传输,报文需要在数据发送端按路径重新编号,并在数据接收端重新映射成数据原来的序号。然而不同路径在带宽、延迟和丢包率等方面存在差异,因此接收端必须缓存大量乱序到达的报文并进行重排序,这必然增加系统的内存和CPU开销。针对上述的问题,目前尚未提出有效的解决方案。

技术实现要素:
本发明实施例提供了一种数据的传输方法和装置,以至少解决现有技术中数据传输效率较低的技术问题。根据本发明实施例的一个方面,提供了一种数据的传输方法,包括:接收数据发送端通过第一目标传输路径发送的目标报文,其中,所述第一目标传输路径为第一时刻数据接收端与所述数据发送端之间建立的多个传输路径中的最优传输路径,所述目标报文用于表示所述数据发送端发送的原始数据中存在丢失的数据;判断所述目标报文是否为预设报文,其中,所述预设报文为所述数据发送端发送的原始数据经过前向纠错编码后的报文;如果判断出所述目标报文为所述预设报文,则对所述目标报文进行解析,得到解析信息,并将所述解析信息发送至所述数据发送端,其中,所述解析信息用于通知所述数据发送端重新传输所述解析信息所指示的数据。进一步地,所述解析信息包括第一解码信息和第二解码信息,对所述目标报文进行解析,得到解析信息,并将所述解析信息发送至所述数据发送端包括:将所述目标报文进行前向纠错解码操作;判断对所述目标报文的前向纠错解码操作是否成功;如果判断出所述前向纠错解码操作成功,得到所述第一解码信息,并将所述第一解码信息发送至所述数据发送端,其中,所述第一解码信息用于通知所述数据发送端传输所述原始数据中丢失的数据;如果判断出所述前向纠错解码操作不成功,得到所述第二解码信息,并将所述第二解码信息发送至所述数据发送端,其中,所述第二解码信息用于通知所述数据发送端重新传输所述原始数据。进一步地,在接收数据发送端通过第一目标传输路径发送的目标报文之前,所述方法还包括:基于所述数据发送端的多个初始IP地址信息或多个初始数据传输端口建立所述多个传输路径。进一步地,所述方法还包括:获取所述数据发送端的第一IP地址更新信息,和/或,获取第二IP地址更新信息;根据所述第一IP地址更新信息更新所述数据发送端的第一IP地址信息库,以及根据所述第二IP地址更新信息更新第二IP地址信息库,得到目标地址信息库;根据所述目标地址信息库建立与所述数据发送端的所述多个传输路径。根据本发明实施例的另一个方面,还提供了一种数据的传输方法,包括:在接收到数据发送请求的情况下,对原始数据进行前向纠错编码,得到目标报文;通过第一目标传输路径发送所述目标报文至数据接收端,其中,所述数据接收端在接收到所述目标报文之后,对所述目标报文进行解码操作,所述第一目标传输路径为第一时刻数据接收端与所述数据发送端之间建立的多个传输路径中的最优传输路径;接收所述数据接收端发送的解析信息;根据所述解析信息通过第二目标传输路径向所述数据接收端重新传输所述解析信息所指示的数据,其中,所述第二目标传输路径为第二时刻与所述数据接收端的多个传输路径中的最优传输路径,所述第二时刻与所述第一时刻为不相同的时刻。进一步地,所述解析信息包括第一解码信息和第二解码信息,根据所述解析信息通过第二目标传输路径向所述数据接收端重新传输所述解析信息所指示的数据包括:根据第一解码信息通过所述目标传输路径向所述数据接收端发送传输所述原始数据中丢失的数据;或者根据第二解码信息通过所述目标传输路径向所述数据接收端重新发送所述原始数据。进一步地,所述方法还包括:每隔预设时间向所述多个传输路径中每个传输路径发送探测信息,其中,探测信息用于探测所述传输路径的传输性能;基于所述探测信息获取所述传输路径的传输性能信息;根据所述传输性能信息在所述多个传输路径中选择当前时间段内的最优传输路径作为所述目标传输路径。进一步地,在接收到数据发送请求之前,所述方法还包括:基于所述数据接收端的多个初始IP地址信息或多个初始数据传输端口建立所述多个传输路径。进一步地,所述方法还包括:获取所述数据接收端的第二IP地址更新信息,和/或,获取第一IP地址更新信息;根据所述第二IP地址更新信息更新所述数据发送端的第二IP地址信息库,以及根据所述第一IP地址更新信息更新第二IP地址信息库,得到目标地址信息库;根据所述目标地址信息库建立与所述数据发送端的所述多个传输路径。根据本发明实施例的另一方面,还提供了一种数据的传输装置,包括:第一接收单元,用于接收数据发送端通过第一目标传输路径发送的目标报文,其中,所述第一目标传输路径为第一时刻数据接收端与所述数据发送端之间建立的多个传输路径中的最优传输路径,所述目标报文用于表示所述数据发送端发送的原始数据中存在丢失的数据;判断单元,用于判断所述目标报文是否为预设报文,其中,所述预设报文为所述数据发送端发送的原始数据经过前向纠错编码后的报文;解析单元,用于在判断出所述目标报文为所述预设报文的情况下,则对所述目标报文进行解析,得到解析信息,并将所述解析信息发送至所述数据发送端,其中,所述解析信息用于通知所述数据发送端重新传输所述解析信息所指示的数据。进一步地,所述解析信息包括第一解码信息和第二解码信息,所述解析单元包括:解码模块,用于将所述目标报文进行前向纠错解码操作;判断模块,用于判断对所述目标报文的前向纠错解码操作是否成功;第一发送模块,用于在判断出所述前向纠错解码操作成功的情况下,得到所述第一解码信息,并将所述第一解码信息发送至所述数据发送端,其中,所述第一解码信息用于通知所述数据发送端传输所述原始数据中丢失的数据;第二发送模块,用于在判断出所述前向纠错解码操作不成功的情况下,得到所述第二解码信息,并将所述第二解码信息发送至所述数据发送端,其中,所述第二解码信息用于通知所述数据发送端重新传输所述原始数据。根据本发明实施例的另一方面,还提供了一种数据的传输装置,包括:编码单元,用于在接收到数据发送请求的情况下,对原始数据进行前向纠错编码,得到目标报文和编码后的原始数据;第一发送单元,用于通过第一目标传输路径发送所述目标报文至数据接收端,其中,所述数据接收端在接收到所述目标报文之后,对所述目标报文进行解码操作,所述第一目标传输路径为第一时刻数据接收端与所述数据发送端之间建立的多个传输路径中的最优传输路径;第二接收单元,用于接收所述数据接收端发送的解析信息;第二发送单元,用于根据所述解析信息通过所述目标传输路径向所述数据接收端重新发送所述原始数据或传输所述原始数据中丢失的数据。进一步地,所述解析信息包括第一解码信息和第二解码信息,第二发送单元包括:第一发送模块,用于根据第一解码信息通过所述目标传输路径向所述数据接收端发送传输所述原始数据中丢失的数据;或者第二发送模块,用于根据第二解码信息通过所述目标传输路径向所述数据接收端重新发送所述原始数据。在本发明实施例中,采用接收数据发送端通过第一目标传输路径发送的目标报文,其中,所述第一目标传输路径为第一时刻与所述数据发送端的多个传输路径中的最优传输路径,所述目标报文用于表示所述数据发送端发送的原始数据中存在丢失的数据;判断所述目标报文是否为预设报文,其中,所述预设报文为所述数据发送端发送的原始数据经过前向纠错编码后的报文;如果判断出所述目标报文为所述预设报文,则对所述目标报文进行解析,得到解析信息,并将所述解析信息发送至所述数据发送端,其中,所述解析信息用于通知所述数据发送端重新传输所述解析信息所指示的数据的方式,通过目标传输路径接收数据发送端发送的目标报文,如果接收到的目标报文是经过前向纠错编码之后的报文,则可以对接收到的目标报文进行前向纠错解码,进而根据解码信息通知数据发送端重新传输解析信息所指示的数据,相对于现有技术中若在数据传输过程中出现丢包或者链路中断的问题还需重新传输数据的方案,达到了减少数据重新传输的目的,从而实现了加快数据传输速度的技术效果,进而解决了现有技术中数据传输效率较低的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的一种数据的传输方法的流程图;图2是根据本发明实施例的一种可选的数据的传输方法的流程图;图3是根据本发明实施例的另一种可选的数据的传输方法的流程图;图4是根据本发明实施例的一种数据发送端和数据接收端之间传输路径更新方法的流程图;图5是根据本发明实施例的一种数据的传输装置的示意图;图6是根据本发明实施例的一种可选的数据的传输装置的示意图;图7是根据本发明实施例的另一种可选的数据的传输装置的示意图;以及图8是根据本发明实施例的另一种可选的数据的传输装置的示意图。具体实施方式为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本发明实施例,提供了一种数据的传输方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图1是根据本发明实施例的一种数据的传输方法的流程图,如图1所示,该方法包括如下步骤:步骤S102,接收数据发送端通过第一目标传输路径发送的目标报文,其中,第一目标传输路径为第一时刻数据接收端与数据发送端之间建立的多个传输路径中的最优传输路径,目标报文用于表示数据发送端发送的原始数据中存在丢失的数据。在本发明实施例中,在数据发送端向数据接收端发送原始数据的时刻(即,上述第一时刻),可以根据待发送的原始数据在多个传输路径中选择一个最优传输路径来传输该原始数据。选择最优的传输路径可以加快数据传输的速率,防止数据传输路径的拥堵造成的数据传输阻塞。上述数据发送端和数据接收端可以通过UDP协议建立多个传输路径。采用UDP协议建立多个传输路径时,不需要修改数据发送端或者数据接收端的内核协议栈的实现,由于该协议与内核解耦,因此,不需要维护一个特殊的内核版本,同时,基于UDP的协议实现多个传输路径的建立时,不会出现线头阻塞的问题,即,不会因为某个报文的丢失而阻塞。需要说明的是,上述数据接收端和数据发送端均为多宿主主机,其中,多宿主主机是指具有多条并行链路的主机。步骤S104,判断目标报文是否为预设报文,其中,预设报文为数据发送端发送的原始数据经过前向纠错编码后的报文。具体地,数据发送端在向数据接收发送原始数据时,可以通过前向纠错技术(ForwardErrorCorrection,简称FEC)预先对原始数据进行前向纠错编码。因此,当数据接收端接收到数据发送端发送的报文时,可以判断该报文是否经过FEC编码之后的报文。步骤S106,如果判断出目标报文为预设报文,则对目标报文进行解析,得到解析信息,并将解析信息发送至数据发送端,其中,解析信息用于通知数据发送端重新传输解析信息所指示的数据。具体地,如果判断出该报文即为预设报文(即,FEC报文),可以对该报文进行前向纠错解码,并将解码处理之后的解析信息返回至数据发送端,其中,数据发送端可以根据数据接收端反馈的解析信息确定是否重新上传原始数据,或者是否上传数据传输过程中丢失的数据。在本发明实施例中,通过目标传输路径接收数据发送端发送的目标报文,如果接收到的目标报文是经过前向纠错编码之后的报文,则可以对接收到的目标报文进行前向纠错解码,进而根据解码信息通知数据发送端重新传输解析信息所指示的数据,相对于现有技术中若在数据传输过程中出现丢包或者链路中断的问题还需重新传输数据的方案,达到了减少数据重新传输的目的,从而实现了加快数据传输速度的技术效果,进而解决了现有技术中数据传输效率较低的技术问题。在本发明实施例中,上述数据发送端和数据接收端可以为任一种移动终端,例如手机。此时,两个手机之间的数据传输路径可以为2G/3G/4G网络和WLAN链路,在两个手机之间进行数据传输时,可以通过上述两个传输路径传输数据,例如,2G/3G/4G路径不堵塞时,可以通过该路径传输数据,如果该路径出现了堵塞,则可以选择WLAN链路进行数据的重新传输。可选地,如果上述解析信息包括第一解码信息和第二解码信息,则可以通过下述方式对目标报文进行解析,得到解析信息,并将解析信息发送至数据发送端:将目标报文进行前向纠错解码操作;判断对目标报文的前向纠错解码操作是否成功;如果判断出前向纠错解码操作成功,得到第一解码信息,并将第一解码信息发送至数据发送端,其中,第一解码信息用于通知数据发送端传输原始数据中丢失的数据;如果判断出前向纠错解码操作不成功,得到第二解码信息,并将第二解码信息发送至数据发送端,其中,第二解码信息用于通知数据发送端重新传输原始数据。具体地,在本发明实施例中,可以通过数据接收端中的FEC编解码模块对报文进行前向纠错解码,并在前向纠错解码成功的情况下,得到第一解码信息,以及在前向纠错解码不成功的情况下,得到第二解码信息,然后通过数据接收端中的收发模块将得到的第一解码信息或者第二解码信息发送至数据发送端。如果数据发送端接收到第一解码信息,则可以通过数据发送端中的收发模块根据第一解码信息中反馈的丢包或者乱序信息重新上传报文,同时,还可以根据解码之后数据按照在原始数据中的顺序进行排序,并将排序之后的数据发送至上层应用;如果数据发送端接收到第二解码信息,则根据第二解码信息将原始数据重新传输。需要说明的是,上述数据发送端根据第一解码信息重新上传报文或者根据第二解码信息重新上传原始数据的所有报文,均可以根据当前时刻(即,下述第二时刻)的多个传输路径中的最优传输路径来传输,其中,该时刻的最优传输路径与第一目标传输路径可以为相同的路径,还可以为不相同的路径。在本发明实施例中,上述数据接收端在接收到进行FEC编码的报文之后,对报文进行前向纠错解码,并根据第一解码信息按照当前时刻的最优传输路径重新传输丢失、乱序的报文,或者根据第二解码信息重新传输报文全部报文的方式,能够加快数据接收端和数据发送端之间的传输速率,避免了传输卡死的问题,提高了传输的成功率。可选地,在接收数据发送端通过目标传输路径发送的报文之前,可以通过下述方式建立多个传输路径:基于数据发送端的多个初始IP地址信息或多个初始数据传输端口建立多个传输路径。具体地,可以根据数据接收端和数据收发端的多个初始IP地址信息建立多个传输路径,例如,当数据接收端有n个初始IP地址信息,数据发送端有m个初始IP地址信息时,根据初始IP地址信息建立的多个传输路径为n×m个。除上述根据多个初始IP地址信息建立多个传输路径之外,还可以利用不同的数据传输端口来建立多个传输路径。假设,数据接收端和数据发送端均只有一个IP,如果网络环境的时延波动比较大,则通过该IP地址建立的传输路径传输数据时,丢包率比较高,数据传输速率就会比较慢,而且可能出现由于持续的丢包造成传输断流的情况,此时,本发明通过多个数据传输端口来创建多个传输路径,其中,本发明实施例中的数据传输端口为实现数据接收端和数据发送端之间的数据传输的虚拟端口。通过多个数据传输端口建立多个传输路径时,由于多个传输路径之间的源端口和目的端口不一样,因此,中间路由器会认为是不同的连接,在选择传输路径时会选择不同的路径。因此,就可以避免数据传输过程中持续的丢包造成传输断流的情况。同时由于传输路径的不同,因此,在时延波动比较大的情况下可以总是选择最优的路径进行传输,提高了数据的传输性能。可选地,由于数据发送端和数据接收端的IP地址信息可能会出现变化,此时,该方法还包括:获取数据发送端的第一IP地址更新信息,和/或,获取第二IP地址更新信息;根据第一IP地址更新信息更新数据发送端的第一IP地址信息库,以及根据第二IP地址更新信息更新第二IP地址信息库,得到目标地址信息库;根据目标地址信息库建立与数据发送端的多个传输路径。具体地,上述第一IP地址更新信息为数据发送端的IP地址更新信息,第二IP地址更新信息为数据接收端的IP地址更新信息,其中,IP地址更新信息可以为IP地址的删除和增加。在本发明实施例中,上述数据接收端和数据发送端可以向系统注册一个链路变化感知接口,进而,数据接收端中的路径管理模块以及数据发送端中的路径管理模块可以通过该变化感知接口收集本端的IP地址变化信息。例如,数据接收端可以通过该变化感知接口获知本端的IP地址变化信息(即,第二IP地址更新信息),并将该第二IP地址更新信息发送给对端(即,数据发送端);同时,数据接收端还可以接收对端(即,数据发送端)发送的第一IP地址更新信息。数据接收端可以根据获取到的第一IP地址更新信息更新对端(即,数据发送端)的第一IP地址信息库,还可以根据第二IP地址更新信息更新本端(即,数据接收端)的第二IP地址信息库,得到目标IP地址信息库。进而,本端(即,数据接收端)可以根据目标IP地址信息库中已更新的IP地址信息重新建立多个传输路径。图2是根据本发明实施例的另一种数据的传输方法的流程图,如图2所示,该方法包括如下步骤:步骤S202,在接收到数据发送请求的情况下,对原始数据进行前向纠错编码,得到目标报文。具体地,如果数据发送端开启前向纠错编码FEC功能,则可以对原始数据进行前向纠错编码,并将编码之后的目标报文发送至对端(即,数据接收端)。步骤S204,通过第一目标传输路径发送目标报文至数据接收端,其中,数据接收端在接收到目标报文之后,对目标报文进行解码操作,第一目标传输路径为第一时刻数据接收端与数据发送端之间建立的多个传输路径中的最优传输路径。步骤S206,接收数据接收端发送的解析信息。具体地,如果本端(即,数据发送端)向数据接收端发送的目标报文为原始数据经过前向纠错编码之后的报文,则数据接收端可以对该目标报文进行前向纠错解码,得到解析信息,然后,将该解析信息发送给数据接收端。步骤S208,根据解析信息通过第二目标传输路径向数据接收端重新传输解析信息所指示的数据,其中,第二目标传输路径为第二时刻与数据发送端的多个传输路径中的最优传输路径,第二时刻与第一时刻为不相同的时刻。具体地,数据发送端可以根据解析信息通过第二目标传输路径重新发送解析信息所指示的数据。其中,第二时刻为重新传输目标报文的时刻,上述第一时刻为数据发送端向数据接收端发送原始数据的时刻,第一时刻的最优传输路径(即,第一目标传输路径)与第二时刻的最优传输路径(即,第二传输路径)可以为相同的路径,还可以为不相同的路径。因此,在本发明提供的数据的传输方法中,数据发送端进行报文重传时,可以选择当前时刻的最优的路径进行重传,而不一定是原报文传输的路径。在现有的方法中,当系统发现报文丢失时会进行重传,目前的实现方式是在原路径上进行重传,这种方式会有一个问题是原路径已经出现拥塞了,如果继续进行重传的话,可能引起更大的拥塞,报文还是有很大的概率丢失,这样系统便会进行退避,拉长重传的时间间隔,直到拥塞解除,显然会延长传输时间。因此,本发明提出了当进行报文重传时可以重新选择路径一个最优路径,并使用当前最优的路径进行重传,进行快速的丢包恢复,保证数据的传输速率不因丢包而出现大幅下滑。在本发明实施例中,通过目标传输路径接收数据发送端发送的目标报文,如果接收到的目标报文是经过前向纠错编码之后的报文,则可以对接收到的目标报文进行前向纠错解码,进而根据解码信息通知数据发送端重新传输解析信息所指示的数据,相对于现有技术中若在数据传输过程中出现丢包或者链路中断的问题还需重新传输数据的方案,达到了减少数据重新传输的目的,从而实现了加快数据传输速度的技术效果,进而解决了现有技术中数据传输效率较低的技术问题。在本发明实施例中,上述数据发送端和数据接收端可以为任一种移动终端,例如手机。此时,两个手机之间的数据传输路径可以为2G/3G/4G网络和WLAN链路,在两个手机之间进行数据传输时,可以通过上述两个传输路径传输数据,例如,2G/3G/4G路径不堵塞时,可以通过该路径传输数据,如果该路径出现了堵塞,则可以选择WLAN链路进行数据的重新传输。可选地,如果解析信息包括第一解码信息和第二解码信息,那么根据解析信息通过第二目标传输路径向数据接收端重新发送原始数据可以包括:根据第一解码信息通过第二目标传输路径向数据接收端发送传输原始数据中丢失的数据;或者根据第二解码信息通过第二目标传输路径向数据接收端重新发送原始数据。具体地,如果数据发送端接收到第一解码信息,则根据第一解码信息中反馈的丢包或者乱序信息通过第二目标传输路径重新上传报文;如果数据发送端接收到第二解码信息,则通过第二目标传输路径将原始数据重新传输。可选地,上述方法还包括:每隔预设时间向多个传输路径中每个传输路径发送探测信息,其中,探测信息用于探测传输路径的传输性能;基于探测信息获取传输路径的传输性能信息;根据传输性能信息在多个传输路径中选择当前时间段内的最优传输路径作为目标传输路径。本发明提供的数据传输方法除了充分利用IP地址信息和数据传输端口来创建多个传输路径外,还可以通过数据发送端的路径管理模块定期(例如,预设时间)的在每条传输路径上发送探测信息(例如,探测报文)来评估路径的性能,动态采集更新路径时延、丢包等信息,并选择一条最优的传输路径来传输报文,这样报文总是在最优的路径上传输,从而,避免在时延大丢包率高的路径上进行不断的报文传输,不但消耗带宽,还会加剧链路的拥塞。例如,当数据发送端为手机设备时,可以根据3G/4G网络和Wifi双链路来传输数据,但是上述两条传输路径都又不太稳定。假如其中一条路径出现拥塞或者掉线,数据传输就不得不终止,等路径上线时重新再建立连接进行传输。然而,通过本发明实施例,可以使数据的传输在两条链路进行平滑的切换,保证数据传输的稳定性。如果数据发送端为跨海外设备时,在数据传输的过程中可能使用多运营商链路,由于每家运营商链路特点不一样,有的时延长但非常稳定,有的时延短但是抖动非常大。通过本发明实施例,可以充分的利用链路的特点,及时的切换链路,尽量减少带宽消耗,提供传输速率,同时保持传输的可靠性。可选地,在接收到数据发送请求之前,上述方法还包括:基于数据接收端的多个初始IP地址信息或多个初始数据传输端口建立多个传输路径。具体地,可以根据数据接收端和数据收发端的多个初始IP地址信息建立多个传输路径,例如,当数据接收端有n个初始IP地址信息,数据发送端有m个初始IP地址信息时,根据初始IP地址信息建立的多个传输路径为n×m个。除上述根据多个初始IP地址信息建立多个传输路径之外,还可以利用不同的数据传输端口来建立多个传输路径。可选地,由于数据发送端和数据接收端的IP地址信息可能会出现变化,此时,上述方法还包括:获取数据接收端的第二IP地址更新信息,和/或,获取第一IP地址更新信息;根据第二IP地址更新信息更新数据发送端的第二IP地址信息库,以及根据第一IP地址更新信息更新第二IP地址信息库,得到目标地址信息库;根据目标地址信息库建立与数据发送端的多个传输路径。具体地,上述第一IP地址更新信息为数据发送端的IP地址更新信息,第二IP地址更新信息为数据接收端的IP地址更新信息,其中,IP地址更新信息可以为IP地址的删除和增加。在本发明实施例中,上述数据接收端和数据发送端可以向系统注册一个链路变化感知接口,进而,可以通过该变化感知接口收集本端的IP地址变化信息。例如,数据接收端可以通过该变化感知接口获知本端的IP地址变化信息(即,第二IP地址更新信息),并将该第二IP地址更新信息发送给对端(即,数据发送端);同时,数据接收端还可以接收对端(即,数据发送端)发送的第一IP地址更新信息。数据接收端可以根据获取到的第一IP地址更新信息更新对端(即,数据发送端)的第一IP地址信息库,还可以根据第二IP地址更新信息更新本端(即,数据接收端)的第二IP地址信息库,得到目标IP地址信息库。进而,本端(即,数据接收端)可以根据目标IP地址信息库中已更新的IP地址信息重新建立多个传输路径。图3是根据本发明实施例的另一种数据的传输方法的流程图,如图3所示,该方法包括如下步骤:步骤S302,数据发送端收到原始数据发送请求。步骤S304,数据发送端判断是否开启FEC功能;其中,如果判断出开启FEC功能,则执行步骤S306,如果判断出未开启FEC功能,则执行步骤S308。其中,如果数据发送端未开启FEC功能,无需对原始数据进行FEC编码,直接将原始数据交给路径管理模块。步骤S306,数据发送端将原始数据交给FEC编解码模块,其中,FEC编解码模块为数据发送端中的模块,该模块用于对接收到的原始数据进行FEC编码,在FEC编解码模块对原始数据进行编码之后,执行步骤S308。步骤S308,数据发送端将原始数据交给路径管理模块,其中,路径管理模块为数据发送端的模块,该模块用于在多个传输路径中选择当前时刻的最优传输路径,以使数据发送端通过该最优传输路径将编码之后的原始数据发送至对端(即,数据接收端)。步骤S310,路径管理模块选择一条最优的路径将报文发送给数据接收端。步骤S312,数据接收端接收到报文。步骤S314,数据接收端判断报文是否为FEC报文;如果数据接收端判断报文为FEC报文,则执行步骤S316,如果数据接收端判断报文不是FEC报文,则执行步骤S320。数据接收端在接收到数据发送端发送的报文之后,判断该报文是否为FEC报文,即判断原始数据是否经过FEC编码,如果不是FEC报文,执行步骤S320,即对接收到报文按照数据的顺序进行排序,并将排序之后的报文上传至上层应用;如果是FEC报文,执行步骤S316至步骤S322。步骤S316,将报文交给FEC编解码模块,其中,该FEC编解码模块为数据接收端的模块,该模块用于对接收到的FEC报文进行解码。步骤S318,判断报文的FEC解码是否成功,其中,如果判断出解码成功的情况下,执行步骤S320,如果判断出解码不成功的情况下,执行步骤S322。步骤S320,对报文进行重排序,将按序报文交给上层应用,其中,如果FEC编解码模块对解码成功,则对解码成功的报文按照对数据编码的顺序进行排序,并将排序之后的报文发送至上层应用(例如,安装在数据接收端的客户端软件)。步骤S322,同时反馈丢包和乱序信息给数据发送端,其中,如果FEC解码模块对FEC报文解码的成功下,得到第一解码信息,该第一解码信息中可能包含数据的丢包或者乱序信息,数据发送端在接收到第一解码信息之后,可以根据第一解码信息中包含的丢包或者乱序信息重新上传报文;如果FEC解码模块对FEC报文解码不成功,得到第二解码信息,以使数据发送端重新发送原始数据至数据接收端。图4是根据本发明实施例的一种传输路径更新方法的流程图。如图4所示,当数据接收端和数据发送端组成的数据传输系统启动之后,数据接收端和数据发送端可以分别向操作系统注册链路变化感知接口,进而,通过该链路变化感知接口收集本端的链路更新信息(即,上述第一IP地址更新信息),并根据链路更新信息更新本端的链路信息库(即,上述内容中的第一IP地址信息库),同时将本端的链路更新信息通告给对端,以使对端能够及时更新本端的链路信息,其中,当本端为数据接收端时,数据发送端为对端,当本端为数据发送端时,数据接收端为对端,上述第一IP地址更新信息可以为IP地址的增加或者删除。进一步地,本端还可以实时接收对端的链路更新信息,如果接收到对端的链路更新信息(即,上述内容中的第二IP地址更新信息),则可以更新对端的链路信息库(即,上述内容中的第二IP地址信息库)。进而,本端可以根据对端通告的链路更新信息进行路径信息的更新,新增或删除路径信息。需要说明的是,当本端获取到本端的链路更新信息时,或者获取到本端和对端的链路更新信息时,又或者获取到对端的链路更新信息时,均按照更新的本端的链路信息库和/或对端的链路信息库重新建立本端和对端的多个传输路径。本发明实施例还提供了一种数据的传输装置,该传输装置主要用于执行本发明实施例上述内容所提供的数据的传输方法,以下对本发明实施例送提供的数据的传输装置做具体介绍。图5是根据本发明实施例的一种数据的传输装置的示意图,如图5所示,该数据的传输装置主要包括第一接收单元51、判断单元53和解析单元55,其中:第一接收单元51,用于接收数据发送端通过第一目标传输路径发送的目标报文,其中,第一目标传输路径为第一时刻数据接收端与数据发送端之间建立的多个传输路径中的最优传输路径,目标报文用于表示数据发送端发送的原始数据中存在丢失的数据;判断单元53,用于判断目标报文是否为预设报文,其中,预设报文为数据发送端发送的原始数据经过前向纠错编码后的报文;解析单元55,用于在判断出目标报文为预设报文的情况下,则对目标报文进行解析,得到解析信息,并将解析信息发送至数据发送端,其中,解析信息用于通知数据发送端重新传输解析信息所指示的数据。在本发明实施例中,通过目标传输路径接收数据发送端发送的目标报文,如果接收到的目标报文是经过前向纠错编码之后的报文,则可以对接收到的目标报文进行前向纠错解码,进而根据解码信息通知数据发送端重新传输解析信息所指示的数据,相对于现有技术中若在数据传输过程中出现丢包或者链路中断的问题还需重新传输数据的方案,达到了减少数据重新传输的目的,从而实现了加快数据传输速度的技术效果,进而解决了现有技术中数据传输效率较低的技术问题。可选地,解析信息包括第一解码信息和第二解码信息,解析单元包括:解码模块,用于将目标报文进行前向纠错解码操作;判断模块,用于判断对目标报文的前向纠错解码操作是否成功;第一发送模块,用于在判断出前向纠错解码操作成功的情况下,得到第一解码信息,并将第一解码信息发送至数据发送端,其中,第一解码信息用于通知数据发送端传输原始数据中丢失的数据;第二发送模块,用于在判断出前向纠错解码操作不成功的情况下,得到第二解码信息,并将第二解码信息发送至数据发送端,其中,第二解码信息用于通知数据发送端重新传输原始数据。可选地,在接收数据发送端通过目标传输路径发送的报文之前,该传输装置还包括:第一建立单元,用于基于数据发送端的多个初始IP地址信息或多个初始数据传输端口建立与数据发送端的多个传输路径。可选地,该传输装置还包括:第一获取单元,用于获取数据发送端的第一IP地址更新信息,和/或,获取第二IP地址更新信息;第一更新单元,用于根据第一IP地址更新信息更新数据发送端的第一IP地址信息库,以及根据第二IP地址更新信息更新第二IP地址信息库,得到目标地址信息库;第二建立单元,用于根据目标地址信息库建立与数据发送端的多个传输路径。图6是根据本发明实施例的另一种数据的传输装置的示意图,如图6所示,该数据的传输装置主要包括编码单元61、第一发送单元63、第二接收单元65和第二发送单元67,其中:编码单元61,用于在接收到数据发送请求的情况下,对原始数据进行前向纠错编码,得到目标报文和编码后的原始数据;第一发送单元63,用于通过第一目标传输路径发送目标报文至数据接收端,其中,数据接收端在接收到目标报文之后,对目标报文进行解码操作,第一目标传输路径为第一时刻数据接收端与数据发送端之间建立的多个传输路径中的最优传输路径;第二接收单元65,用于接收数据接收端发送的解析信息;第二发送单元67,用于根据解析信息通过目标传输路径向数据接收端重新发送原始数据或传输原始数据中丢失的数据。在本发明实施例中,通过目标传输路径接收数据发送端发送的目标报文,如果接收到的目标报文是经过前向纠错编码之后的报文,则可以对接收到的目标报文进行前向纠错解码,进而根据解码信息通知数据发送端重新传输解析信息所指示的数据,相对于现有技术中若在数据传输过程中出现丢包或者链路中断的问题还需重新传输数据的方案,达到了减少数据重新传输的目的,从而实现了加快数据传输速度的技术效果,进而解决了现有技术中数据传输效率较低的技术问题。可选地,解析信息包括第一解码信息和第二解码信息,第二发送单元包括:第一发送模块,用于根据第一解码信息通过目标传输路径向数据接收端发送传输原始数据中丢失的数据;或者第二发送模块,用于根据第二解码信息通过目标传输路径向数据接收端重新发送原始数据。可选地,该传输装置包括:第三发送单元,用于每隔预设时间向多个传输路径中每个传输路径发送探测信息,其中,探测信息用于探测传输路径的传输性能;第二获取单元,用于基于探测信息获取传输路径的传输性能信息;确定单元,用于根据传输性能信息在多个传输路径中选择当前时间段内的最优传输路径作为目标传输路径。可选地,在接收到数据发送请求之前,该传输装置还包括:第三建立单元,用于基于数据接收端的多个初始IP地址信息或多个初始数据传输端口建立多个传输路径。可选地,该传输装置还包括:第三获取单元,用于获取数据接收端的第二IP地址更新信息,和/或,获取第一IP地址更新信息;第二更新单元,用于根据第二IP地址更新信息更新数据发送端的第二IP地址信息库,以及根据第一IP地址更新信息更新第二IP地址信息库,得到目标地址信息库;第四建立单元,用于根据目标地址信息库建立与数据发送端的多个传输路径。下面结合图7和图8对本发明实施例进行说明。如图7所示的为数据发送端和数据接收组成的数据传输系统中数据发送端或者数据接收端的传输结构的示意图。图8为数据发送端和数据接收端组成的数据传输系统的结构示意图。如图7所示,上述数据接收端和数据发送端均包括以下模块:FEC编解码模块、收发模块、配置管理模块、路径管理模块、多个数据传输端口,例如,数据传输端口1至数据传输端接口3。如图8所示,收发模块1、FEC模块1、路径管理模块1为数据发送端中的模块;收发模块2、FEC模块2、路径管理模块2均为数据接收端中的模块。上述数据接收端和数据发送端通过内核协议栈中的协议与服务器进行通信连接。如图8所示,收发模块1将上层应用实际希望发送的原始数据交由FEC编解码模块1进行编码;然后将编码后的原始数据提交给路径管理模块1,路径管理模块1在多个传输路径中选择一个最优传输路径,并通过该最优传输路径发送编码后的原始数据至数据接收端,其中,数据发送端在向数据接收端发送数据时,均以报文的形式进行发送;数据接收端将接收到的FEC报文转交至FEC编解码模块2进行解码,并将解码后的报文转发给收发模块2,并通过收发模块2将解码后的数据进行重排后交给上层应用,同时收发模块2还可以将丢包或者乱序信息发送至数据发送端。以使数据发送端在接收到该丢包或者乱序信息之后,收发模块1通过路径管理模块1选择的最优传输路径进行报文的重传。由于数据接收端和数据发送端的IP地址信息可能发生变化,因此,可以通过路径管理模块1和路径管理模块2进行路径信息交换。例如,可以通过路径管理模块1或者路径管理模块2感知本端的链路变化信息,同时还可以接收对端的链路变化信息,进而,根据本端的更新后的链路信息和对端更新后的路径信息更新多个传输路径。进一步地,路径管理模块1或路径管理模块2还可以定时发送探测报文,根据探测报文探测多个传输路径的传输性能,进而,从多个传输路径中选择一条最优传输路径。优选地,由于数据发送端主要完成数据的发送,因此,可以设置路径管理模块1向多个传输路径发送探测报文,以选择最优传输路径,避免了资源的浪费。同时,采用上述数据的传输方法,不需要修改图7中所示的内核协议栈,因此不需要去维护一个特殊的内核版本。如图7所示,上述数据接收端或者数据发送端的配置管理模块用于配置本端的路径信息,例如,多个传输路径中禁用的传输路径,多个传输路径优先级,向多个传输路径发送探测时间的间隔(即,预设时间),以及在没有多个IP地址来建立多个传输路径的情况下确定通过多个数据传输端口建立多个传输路径;配置管理模块还可以用于控制本端开启FEC功能;配置管理模块还可以用于确定本端的属性,即本端是数据发送端还是数据接收端,以及配置对端的IP地址信息。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1