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

文档序号:13744700阅读:96来源:国知局
本发明涉及数据处理领域,具体而言,涉及一种数据传输的方法和装置。
背景技术
:随着全球信息技术的快速发展,尤其是云计算时代的到来,互联网上的数据呈现爆炸性增长,对互联网的数据通信提出了越来越高的要求,特别是服务于云计算的大数据文件分发、同步、协作等业务场景更是受限于传统传输控制协议(TransmissionControlProtocol,简称TCP)传输协议限制,传输的效率总是不尽理想。目前常用的用于大数据传输加速的方法有以下几种:(1)专线网络加速:该方法主要通过搭建高可靠、大带宽的光纤主干网,实现带宽独享,从而达到加速传输的效果。然而,该方法成本太高,尤其是跨国专线,适用范围较小;(2)部署硬件设备加速:该方法通过在数据通信的客户端和服务端的网关部署WAN硬件加速设备,提高网络环境中的应用性能,通常这些硬件加速设备对通信网络并不透明,甚至需要特殊的安全通道,容易带来隐患;(3)应用优化加速:该方法包括应用优化和协议优化,例如通过数据压缩等。但是该方法对于不同的数据压缩效果不宜,并且仍然无法避免网络环境的限制,加速效果不甚理想;(4)通过TCP代理加速:该方法通过部署代理服务器,对TCP协议进行优化。但是由于协议优化受限于传统协议,较难实现理想的加速效果,更多的只是缓解源服务器压力。针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种数据传输的方法和装置,以至少解决现有技术中数据传输过程中加速效果较差的技术问题。根据本发明实施例的一个方面,提供了一种数据传输的方法,包括:检测客户端向目标服务器发送的数据传输请求;在检测到所述客户端向所述目标服务器发送的所述数据传输请求时,判断是否启用中转服务器,其中,所述中转服务器的传输速率高于所述目标服务器;若判断出启用所述中转服务器,则通过所述中转服务器向所述目标服务器发送所述数据传输请求所请求发送的数据。进一步地,通过所述中转服务器向所述目标服务器发送所述数据传输请求所请求发送的数据包括:根据第一传输协议建立所述客户端和所述中转服务器的第一传输通道,并根据第二传输协议建立所述中转服务器和所述目标服务器之间的第二传输通道;通过所述第一传输通道和所述第二传输通道向所述目标服务器发送所述数据传输请求所请求发送的数据。进一步地,根据所述第二传输协议建立所述中转服务器和所述目标服务器之间的第二传输通道包括:获取数据传输路径,其中,所述数据传输路径记载了从所述客户端到所述目标服务器所需的一个或者多个跳转服务器的地址和所述目标服务器的地址,所述数据传输路径由中转路由生成,其中,所述中转服务器为所述数据传输路径中记载的与所述客户端的数据传输最近的所述跳转服务器;向当前服务器发送所述数据传输路径,以在当前服务器为所述跳转服务器时,根据所述数据传输路径建立当前服务器与下一个服务器之间的子传输通道,其中,所述子传输通道为所述第二传输通道的一部分。进一步地,在当前服务器不是所述数据传输路径中与所述客户端最近的服务器时,向当前服务器发送所述数据传输路径包括:通过所述数据传输路径中与当前服务器相邻的前一个服务器向当前服务器发送所述数据传输路径;根据所述数据传输路径建立当前服务器与下一个服务器之间的子传输通道:通过所述子传输通道将所述数据传输路径由当前服务器传输到下一个服务器。进一步地,在判断是否启用中转服务器之后,所述方法还包括:在未启用所述中转服务器的情况下,根据第一传输协议建立所述客户端与所述目标服务器的第三数据传输通道,并通过所述第三数据传输通道向所述目标服务器发送所述数据传输请求所请求发送的数据。进一步地,根据第一传输协议建立所述客户端与所述目标服务器的第三数据传输通道包括:获取所述目标服务器的地址信息,其中,所述地址信息用于唯一确定所述目标服务器在网络中的位置;根据所述地址信息和所述第一传输协议建立所述第三数据传输通道。根据本发明实施例的另一方面,还提供了一种数据传输的装置,包括:检测单元,用于检测客户端向目标服务器发送的数据传输请求;判断单元,用于在检测到所述客户端向所述目标服务器发送的所述数据传输请求时,判断是否启用中转服务器,其中,所述中转服务器的传输速率高于所述目标服务器;发送单元,用于在判断出启用所述中转服务器的情况下,通过所述中转服务器向所述目标服务器发送所述数据传输请求所请求发送的数据。进一步地,所述发送单元包括:建立子单元,用于根据第一传输协议建立所述客户端和所述中转服务器的第一传输通道,并根据第二传输协议建立所述中转服务器和所述目标服务器之间的第二传输通道;发送子单元,用于通过所述第一传输通道和所述第二传输通道向所述目标服务器发送所述数据传输请求所请求发送的数据。进一步地,所述建立子单元包括:第一获取模块,用于获取数据传输路径,其中,所述数据传输路径记载了从所述客户端到所述目标服务器所需的一个或者多个跳转服务器的地址和所述目标服务器的地址,所述数据传输路径由中转路由生成,其中,所述中转服务器为所述数据传输路径中记载的与所述客户端的数据传输最近的所述跳转服务器;发送模块,用于向当前服务器发送所述数据传输路径,以在当前服务器为所述跳转服务器时,根据所述数据传输路径建立当前服务器与下一个服务器之间的子传输通道,其中,所述子传输通道为所述第二传输通道的一部分。进一步地,所述发送模块包括:发送子模块,用于在当前服务器不是所述数据传输路径中与所述客户端最近的服务器时,通过所述数据传输路径中与当前服务器相邻的前一个服务器向当前服务器发送所述数据传输路径;所述发送模块还包括:传输子模块,用于通过所述子传输通道将所述数据传输路径由当前服务器传输到下一个服务器。进一步地,所述装置还包括:建立单元,用于在判断是否启用中转服务器之后,在未启用所述中转服务器的情况下,根据第一传输协议建立所述客户端与所述目标服务器的第三数据传输通道,并通过所述第三数据传输通道向所述目标服务器发送所述数据传输请求所请求发送的数据。进一步地,所述建立单元包括:第二获取模块,用于获取所述目标服务器的地址信息,其中,所述地址信息用于唯一确定所述目标服务器在网络中的位置;建立模块,用于根据所述地址信息和所述第一传输协议建立所述第三数据传输通道。在本发明实施例中,采用检测客户端向目标服务器发送的数据传输请求;在检测到所述客户端向所述目标服务器发送的所述数据传输请求时,判断是否启用中转服务器,其中,所述中转服务器的传输速率高于所述目标服务器;若判断出启用所述中转服务器,则通过所述中转服务器向所述目标服务器发送所述数据传输请求所请求发送的数据的方式,通过在检测到数据传输请求之后,判断是否启用传输速率高于目标服务器的中转服务器,如果启用该中转服务器,则通过该中转服务器向目标服务器请求数据,相对于现有技术中直接将数据请求传输至目标服务器的方法,灵活选用传输速率高的中转服务器,达到了加速数据传输速率的目的,从而实现了无需修改任何协议就能加快数据传输速率的技术效果,进而解决了现有技术中数据传输过程中加速效果较差的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的一种数据传输的方法的流程图;图2是根据本发明可选实施例的一种数据传输的方法的流程图;图3是根据本发明可选实施例的另一种数据传输的方法的流程图;图4是根据本发明可选实施例的另一种数据传输的方法的流程图;图5是根据本发明实施例的一种数据传输的装置的示意图;以及图6是根据本发明实施例的一种数据传输速率的示意图。具体实施方式为了使本
技术领域
的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本发明实施例,提供了一种数据传输的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图1是根据本发明实施例的一种数据传输的方法的流程图,如图1所示,该方法包括如下步骤:步骤S102,检测客户端向目标服务器发送的数据传输请求。具体地,可以在客户端中安装一个SoftwareDevelopmentKit软件(简称SDK软件),进而通过该SDK软件来检测客户端向目标服务器发送的数据传输请求。需要说明的是,上述SDK软件可以为集成了大数据传输加速接口的SDK软件,并且该SDK软件可以通过代理模式的实现客户端加速,其中,该代理模式即为SDK软件代理客户端向目标服务器发送数据传输请求,代理客户端建立与目标服务器之间的传输通道。步骤S104,在检测到客户端向目标服务器发送的数据传输请求时,判断是否启用中转服务器,其中,中转服务器的传输速率高于目标服务器。具体地,中转服务器和目标服务器为不相同的服务器,该中转服务器连接于客户端和目标服务器之间,并且中转服务器的数量可以为一个,还可以为多个。每个中转服务器的带宽大于目标服务器的带宽,或者中转服务器的带宽大于客户端出口的带宽,并且每个中转服务器与客户端之间的链路不拥堵,并且中转服务器和客户端之间的连接更稳定,因此,中转服务器的传输数据的传输速率高于目标服务器传输数据的传输速率。需要说明的是,上述SDK软件可以根据数据传输请求判断是否启用中转服务器,例如,如果SDK软件检测到客户端和目标服务器之间的传输通道满足数据传输请求和数据传输请求所请求的数据所要求的传输性能,则SDK软件可以直接建立客户端与目标服务器的传输通道,不需启用中转服务器;如果SDK软件检测到客户端和目标服务器之间的传输通道出现拥堵或出现链路不通的状况,即不满足数据传输请求和数据传输请求所请求的数据所要求的传输性能,则可以启用中转服务器中的一个服务器或者多个服务器,实现数据的快速传输。其中,上述链路不通是指客户端和目标服务器之间链路访问受到了限制,例如,某些机房可能会对客户端和目标服务器之间的连接协议(例如,UDP协议)进行限制,从而导致客户端和目标服务器之间无法直接进行点对点的数据传输,此时,可以借助中转服务器来解决无法实现客户端和服务器之间点对点进行数据传输的限制。步骤S106,若判断出启用中转服务器,则通过中转服务器向目标服务器发送数据传输请求所请求发送的数据。具体地,如果SDK软件判断出启用中转服务器,则可以根据第一传输协议建立客户端和中转服务器的第一传输通道,并根据第二传输协议建立中转服务器和目标服务器之间的第二传输通道;以及通过第一传输通道和第二传输通道向目标服务器发送数据传输请求所请求发送的数据。需要说明的是,上述第一传输协议与传输控制协议(TransmissionControlProtocol,简称TCP)和用户数据协议(UserDatagramProtocol,简称UDP)均为不相同的协议,第一传输协议是一种高速传输协议,充分结合了TCP和UDP的优势,能够解决传统协议在高丢包、高延迟的网络环境下数据传输效果不佳的问题。上述第二传输协议可以是传统的TCP协议或者UDP协议,还可以是与上述第一传输协议相同的私有的高速传输协议。具体地,可以根据中转服务器和目标服务器之间的网络链路情况智能地选择第二传输协议是传统的TCP协议或者UDP协议,还是私有的高速传输协议。例如,当中转服务器和目标服务器之间的网络链路情况较稳定时,可以选择第二传输协议为传统的TCP协议或者UDP协议;当中转服务器和目标服务器之间的网络链路情况不稳定时,可以选择第二传输协议为私有的高速传输协议。在本发明实施例中,通过在检测到数据传输请求之后,判断是否启用传输速率高于目标服务器的中转服务器,如果启用该中转服务器,则通过该中转服务器向目标服务器请求数据,相对于现有技术中直接将数据请求传输至目标服务器的方法,灵活选用传输速率高的中转服务器,达到了加速数据传输速率的目的,从而实现了无需修改任何协议就能加快数据传输速率的技术效果,进而解决了现有技术中数据传输过程中加速效果较差的技术问题。可选地,根据第二传输协议建立中转服务器和目标服务器之间的第二传输通道包括以下步骤:步骤S1:获取数据传输路径,其中,数据传输路径记载了从客户端到目标服务器所需的一个或者多个跳转服务器的地址和目标服务器的地址,数据传输路径由中转路由生成,其中,中转服务器为数据传输路径中记载的与客户端的数据传输最近的跳转服务器。步骤S2,向当前服务器发送数据传输路径,以在当前服务器为跳转服务器时,根据数据传输路径建立当前服务器与下一个服务器之间的子传输通道,并在当前服务器为目标服务器时,建立中转服务器与目标服务器的第二传输通道,其中,子传输通道为第二传输通道的一部分。进一步地,在当前服务器不是数据传输路径中与客户端最近的服务器时,向当前服务器发送数据传输路径包括:通过数据传输路径中与当前服务器相邻的前一个服务器向当前服务器发送数据传输路径;根据数据传输路径建立当前服务器与下一个服务器之间的子传输通道:通过子传输通道将数据传输路径由当前服务器传输到下一个服务器。具体地,在建立中转服务器和SDK软件和目标服务器之间的第二传输通道之前,SDK软件可以通过智能路由策略选择一个中转路由,并通过该中转路由生成一个端口号,进而SDK软件和中转服务器可以通过该端口和第一传输协议建立第一传输通道。此时,SDK软件还可以将在中转路由中获取到的跳转信息转发至中转服务器,其中,该跳转信息中记载有上述数据传输路径。中转服务器在接收到该跳转信息的情况下,通过跳转信息中记载的数据传输路径确定下一个服务器是跳转服务器,还是目标服务器。如果确定下一个服务器为跳转服务器A1时,则通过第二传输协议建立中转服务器与该跳转服务器A1之间的子传输通道B1,其中,此时的第二传输协议可以为上述第一传输协议,并通过该子传输通道将数据传输路径发送至跳转服务器A1,跳转服务器A1根据该数据传输路径确定下一跳服务器是否还是跳转服务器,如果下一跳是跳转服务器A2,则通过第二传输协议建立跳转服务器A1与跳转服务器A2之间的一个子传输通道B2,其中,此时的第二传输协议可以为上述第一传输协议,并通过该子传输通道将数据传输路径发送至跳转服务器A2,以使跳转服务器A2继续确定下一跳服务器是否为跳转服务器,如果跳转服务器A2确定出下一跳服务器为目标服务器,则通过第二传输协议建立跳转服务器A2与目标服务器之间的一个子传输通道B3,其中,此时的第二传输协议可以为传统的TCP协议或者UDP协议,还可以为与上述第一传输协议相同的私有的高速传输协议,进而上述子传输通道B1、子传输通道B2和子传输通道B3构成上述第二传输通道。需要说明的是,上述跳转服务器A1和跳转服务器A2均为多个中转服务器中的一个,且该跳转服务器A1和跳转服务器A2与客户端最近的中转服务器为不相同的服务器,但是,跳转服务器A1和跳转服务器A2的传输数据的速率高于目标服务器。可选地,在判断是否启用中转服务器之后,上述方法还包括如下步骤:在未启用中转服务器的情况下,根据第一传输协议建立客户端与目标服务器的第三数据传输通道,并通过第三数据传输通道向目标服务器发送数据传输请求所请求发送的数据。进一步地,根据第一传输协议建立客户端与目标服务器的第三数据传输通道包括如下步骤:步骤S3,获取目标服务器的地址信息,其中,地址信息用于唯一确定目标服务器在网络中的位置。步骤S4,根据地址信息和第一传输协议建立第三数据传输通道。具体地,如果SDK软件根据获取到的数据传输请求判断出不需要启用中转服务器的情况下,可以通过第一传输协议建立客户端和目标服务器之间的第三数据传输通道,形成一个高速的数据传输通道(即,上述第三传输通道),进而,客户端数据通过该高速的数据传输通道点对点直接传输到目标服务器。其中,在通过第一传输协议建立客户端和目标服务器之间的第三数据传输通道之前,SDK软件先获取目标服务器的IP地址和端口号,进而,客户端可以根据该IP地址查找目标服务器,并通过该端口号和第一传输协议建立与目标服务器的第三数据传输通道。需要说明的是,本发明实施例中,上述目标服务器的端口号为用于建立第三传输通道的虚拟端口号。目标服务器在接收到数据传输请求之后,可以将数据传输请求的请求应答消息发送至客户端,客户端在接收该请求应答消息之后,本次数据传输结束。图2是根据本发明可选实施例的一种数据传输的方法的流程图,如图2所示,该方法包括如下步骤:步骤S202,嵌入SDK软件集成包至用户客户端。本发明实施例中SDK软件为嵌入在客户端中的软件,并且在该SDK软件中集成了数据传输加速接口,能够建立客户端和目标服务器之间的高速数据传输通道。步骤S204,客户端启动,并与SDK软件建立本地连接。在SDK软件嵌入至客户端之后,当客户端启动时,即可与客户端建立本地代理连接,相对于现有技术中通过协议端口监听数据传输请求的方式,采用SDK软件建立客户端和目标服务器之间的高速数据传输通道,使得数据的传输更加稳定、可靠。步骤S206,通过启动SDK软件启动加速客户端进程,并通过私有传输协议与目标服务器建立连接,形成高速的数据传输通道。在SDK软件与客户端的本地连接建立完成之后,在客户端启动时,则与SDK关联的客户端传输加速进程被启动,并与服务端(即,上述目标服务器)通过私有传输协议建立传输通道,形成私有高速传输通道,成功实现根据原有的TCP协议或者UDP协议建立的传统传输通道的代理,其中,当启用中转服务器时,该私有传输协议为第一传输协议和第二传输协议,该私有高速传输通道为第一传输通道和第二传输通道;当未启用中转服务器时,该私有传输协议为第一传输协议,该私有高速传输通道为第三传输通道。步骤S208,通过高速的数据传输通道进行数据的传输操作。步骤S210,目标服务器成功接收数据传输请求后,向客户端发送数据传输请求所请求的数据。图3是根据本发明可选实施例的另一种数据传输的方法的流程图,如图3所示,该方法包括如下步骤:步骤S302,客户端启动,发送数据传输请求。步骤S304,客户端与SDK软件建立本地连接。具体地,SDK软件已嵌入至客户端中,当客户端启动后,能够与SDK软件自动建立本地代理连接,进而SDK软件通过本地连接获取客户端的数据传输请求,并代理客户端向目标服务器发送数据传输请求。步骤S306,SDK软件判断是否需要启用中转服务器,如果判断出不需要启用中转服务器,则执行步骤S308;如果判断出需要启用中转服务器,则执行步骤S312。具体地,SDK软件可以根据客户端发送的数据传输请求所请求的数据判断是否启用中转服务器。例如,根据所请求的数据来检验客户端和目标服务器之间的数据传输通道是否拥挤,如果客户端和目标服务器之间的数据传输通道拥挤,则可以选用中转服务器来传输数据,如果客户端和目标服务器之间的数据传输通道不拥挤,则可以直接将数据传输至目标服务器。步骤S308,客户端与目标服务器建立高速传输通道,其中,可以通过私有传输协议(即上述第一传输协议)建立客户端和目标服务器之间的高速传输通道,即上述第三传输通道。步骤S310,客户端通过高速传输通道点对点直接传输到目标服务器。具体地,如果SDK软件判断出不需要启用中转服务器,则客户端通过SDK与目标服务器建立点对点高速传输通道,客户端的数据传输请求通过该高速数据通道直接发送到目标服务器,其中,SDK软件可以与目标服务器通过私有传输协议(即,上述第一传输协议)建立高速数据通道(即,上述第三传输通道),该第一传输协议与TCP和UDP协议均不相同。步骤S312,SDK软件与中转服务器建立连接,形成高速传输通道。步骤S314,中转服务器与目标服务器建立连接。具体地,如果SDK软件判断出需要启用中转服务器,则客户端通过SDK软件与中转服务器建立高速传输通道(即,上述第一传输通道),同时中转服务器与目标服务器建立本地连接(即,第二传输通道),其中,SDK软件可以与中转服务器通过私有的高速传输协议(即,上述第一传输协议)建立第一传输通道,中转服务器和目标服务器通过第二传输协议建立第二传输通道。其中,第二传输协议可以是传统的TCP协议或者UDP协议,还可以是与上述第一传输协议相同的私有的高速传输协议,可以根据中转服务器和目标服务器之间的网络链路情况智能地选择第二传输协议是传统的TCP协议或者UDP协议,还是私有的高速传输协议;建立第二传输通道的过程在上述实施例已经进行了相应地描述,此处不再赘述。步骤S316,客户端的数据传输请求通过第一传输通道达到中转服务器。步骤S318,中转服务器将数据传输请求转发给目标服务器。具体地,在第一传输通道建立完成之后,可以通过该第一传输通道将数据传输请求发送至中转服务器,进而中转服务器根据第二传输通道将该数据传输请求发送至目标服务器。步骤S320,客户端接收目标服务器的结果响应。具体地,目标服务器收到数据后,回复输出结果响应给客户端,客户端收到响应结果后,本次数据传输结束。图4是根据本发明可选实施例的另一种数据传输的方法的流程图,如图4所示,该方法包括如下步骤:步骤S402,SDK软件通过本地连接与客户端建立连接请求。步骤S404,SDK软件通过本地连接成功代理接收客户端所有请求数据。具体地,SDK软件已嵌入至客户端中,当客户端启动后,能够与SDK软件自动建立本地代理连接,进而SDK软件通过本地连接获取客户端的数据传输请求,并代理客户端向目标服务器发送数据传输请求。步骤S406,SDK工具根据客户端请求数据,判断是否需要启用中转加速模块。如果不启用中转加速模块则执行步骤S408,否则执行步骤S414。具体地,SDK软件可以根据客户端发送的数据传输请求所请求的数据判断是否启用中转加速模块。例如,根据所请求的数据来检验客户端和目标服务器之间的数据传输通道是否拥挤,如果拥挤,则可以启用中转加速模块,如果不拥挤,则可以选择不启用中转加速模块。需要说明的是,在本发明实施例中,判断是否需要启用中转加速模块即为判断是否需要启用中转服务器,因为,中转服务器为具有中转加速功能的服务器。步骤S408,SDK软件获取请求目标服务器的IP地址和端口号,并通过私有协议与目标服务器建立第三传输通道接。具体地,SDK软件可以根据获取目标服务器的IP地址和端口号(即,上述数据传输端口),进而根据IP地址查找目标服务器,并通过该端口号和私有传输协议(即,上述第一传输协议)与目标服务器建立第三传输通道。步骤S410,SDK软件将接收到的请求数据通过第三传输通道点对点传输到目标服务器。步骤S412,目标服务器回复传输结果码,并原路返回给客户端。其中,客户端在收到传输回复后,结束本次数据传输操作。如果SDK软件判断出需要启用中转加速模块的情况下,执行下述步骤。步骤S414,SDK软件获取请求目标服务器的IP地址和端口号,并通过智能路由策略选择中转路由,并随机生成代理端口号。具体地,SDK可以根据目标服务器的IP地址查找目标服务器,并根据端口号(即,上述数据传输端口)与目标服务器建立连接。SDK软件还可以根据路由智能策略选择一个中转路由,并根据该中转路由生成代理端口号,该代理端口号用于SDK软件用于在多个中转服务器中查找建立第一传输通道的中转服务器。步骤S416,SDK软件与中转服务器通过端口号和私有协议建立第一传输通道,并将请求数据和跳转信息转发给中转服务器。具体地,SDK软件在查找到用于建立第一传输通道的中转服务器的情况下,通过中转路由生成的端口号和私有协议(即,第一传输协议)建立第一传输通道,并通过第一传输通道将客户端的数据请求和跳转信息发送给中转服务器,其中,跳转信息用于确定数据传输路径。步骤S418,判断下一个服务器是否为中转服务器。中转服务器根据接收到的跳转信息确定中转服务器的下一个服务器是否还是中转服务器,如果确定出下一个服务器还是中转服务器,执行步骤S420,如果确定出下一个服务器不是中转服务器,执行步骤S422。步骤S420,中转服务器与下一个中转服务器建立高速传输通道。具体地,如果中转服务器的下一个服务器还是中转服务器,则通过第一传输协议建立中转服务器和下一个中转服务器之间的高速传输通道(即,上述子传输通道),以使中转服务器并将客户端的数据请求和跳转信息转发至下一个中转服务器,并返回步骤S418,下一个服务器继续判断下一个服务器是否还是中转服务器。步骤S422,中转服务器与目标服务器建立本地连接。具体地,如果中转服务器的下一个服务器为目标服务器的情况下,中转服务器与目标服务器建立第二传输通道,并将客户端的数据传输请求转发至目标服务器,并转入步骤S412。本发明实施例还提供了一种数据传输的装置,该传输装置主要用于执行本发明实施例上述内容所提供的数据传输的方法,以下对本发明实施例送提供的数据传输的装置做具体介绍。图5是根据本发明实施例的一种数据传输的装置的示意图,如图5所示,该数据的传输装置主要包括检测单元51、判断单元53和发送单元55,其中:检测单元51,用于检测客户端向目标服务器发送的数据传输请求。具体地,可以在客户端中安装一个SoftwareDevelopmentKit软件(简称SDK软件),进而通过该SDK软件来检测客户端向目标服务器发送的数据传输请求。需要说明的是,上述SDK软件可以为集成了大数据传输加速接口的SDK软件,并且该SDK软件可以通过代理模式的实现客户端加速,其中,该代理模式即为SDK软件代理客户端向目标服务器发送数据传输请求,代理客户端建立与目标服务器之间的传输通道。判断单元53,用于在检测到客户端向目标服务器发送的数据传输请求时,判断是否启用中转服务器,其中,中转服务器的传输速率高于目标服务器。具体地,中转服务器和目标服务器为不相同的服务器,该中转服务器连接于客户端和目标服务器之间,并且中转服务器的数量可以为一个,还可以为多个。每个中转服务器的带宽大于目标服务器的带宽,或者中转服务器的带宽大于客户端出口的带宽,并且每个中转服务器与客户端之间的链路不拥堵,并且中转服务器和客户端之间的连接更稳定,因此,中转服务器的传输数据的传输速率高于目标服务器传输数据的传输速率。需要说明的是,上述SDK软件可以根据数据传输请求判断是否启用中转服务器,例如,如果SDK软件检测到客户端和目标服务器之间的传输通道满足数据传输请求和数据传输请求所请求的数据所要求的传输性能,则SDK软件可以直接建立客户端与目标服务器的传输通道,不需启用中转服务器;如果SDK软件检测到客户端和目标服务器之间的传输通道出现拥堵或链路不通的状况,即不满足数据传输请求和数据传输请求所请求的数据所要求的传输性能,则可以启用中转服务器中的一个服务器或者多个服务器,实现数据的快速传输。其中,上述链路不通是指客户端和目标服务器之间链路访问受到了限制,例如,某些机房可能会对客户端和目标服务器之间的连接协议(例如,UDP协议)进行限制,从而导致客户端和目标服务器之间无法直接进行点对点的数据传输,此时,可以借助中转服务器来解决无法实现客户端和服务器之间点对点进行数据传输的限制。发送单元55,用于在判断出启用中转服务器的情况下,通过中转服务器向目标服务器发送数据传输请求所请求发送的数据。具体地,如果SDK软件判断出启用中转服务器,则可以根据第一传输协议建立客户端和中转服务器的第一传输通道,并根据第二传输协议建立中转服务器和目标服务器之间的第二传输通道;以及通过第一传输通道和第二传输通道向目标服务器发送数据传输请求所请求发送的数据。需要说明的是,上述第一传输协议与传输控制协议(TransmissionControlProtocol,简称TCP)和用户数据协议(UserDatagramProtocol,简称UDP)均为不相同的协议,第一传输协议是一种高速传输协议,充分结合了TCP和UDP的优势,能够解决传统协议在高丢包、高延迟的网络环境下数据传输效果不佳的问题。上述第二传输协议可以是传统的TCP协议或者UDP协议,还可以是与上述第一传输协议相同的私有的高速传输协议。具体地,可以根据中转服务器和目标服务器之间的网络链路情况智能地选择第二传输协议是传统的TCP协议或者UDP协议,还是私有的高速传输协议。例如,当中转服务器和目标服务器之间的网络链路情况较稳定时,可以选择第二传输协议为传统的TCP协议或者UDP协议;当中转服务器和目标服务器之间的网络链路情况不稳定时,可以选择第二传输协议为私有的高速传输协议。在本发明实施例中,通过在检测到数据传输请求之后,判断是否启用传输速率高于目标服务器的中转服务器,如果启用该中转服务器,则通过该中转服务器向目标服务器请求数据,相对于现有技术中直接将数据请求传输至目标服务器的方法,灵活选用传输速率高的中转服务器,达到了加速数据传输速率的目的,从而实现了无需修改任何协议就能加快数据传输速率的技术效果,进而解决了现有技术中数据传输过程中加速效果较差的技术问题。可选地,发送单元55包括:建立子单元,用于根据第一传输协议建立客户端和中转服务器的第一传输通道,并根据第二传输协议建立中转服务器和目标服务器之间的第二传输通道;发送子单元,用于通过第一传输通道和第二传输通道向目标服务器发送数据传输请求所请求发送的数据。可选地,建立子单元包括:第一获取模块,用于获取数据传输路径,其中,数据传输路径记载了从客户端到目标服务器所需的一个或者多个跳转服务器的地址和目标服务器的地址,数据传输路径由中转路由生成,其中,中转服务器为数据传输路径中记载的与客户端的数据传输最近的跳转服务器;发送模块,用于向当前服务器发送数据传输路径,以在当前服务器为跳转服务器时,根据数据传输路径建立当前服务器与下一个服务器之间的子传输通道,其中,子传输通道为第二传输通道的一部分。可选地,在当前服务器不是数据传输路径中与客户端最近的服务器时,发送模块包括:发送子模块,用于通过数据传输路径中与当前服务器相邻的前一个服务器向当前服务器发送数据传输路径;根据数据传输路径建立当前服务器与下一个服务器之间的子传输通道包括:通过子传输通道将数据传输路径由当前服务器传输到下一个服务器。可选地,在判断是否启用中转服务器之后,装置还包括:建立单元,用于在未启用中转服务器的情况下,根据第一传输协议建立客户端与目标服务器的第三数据传输通道,并通过第三数据传输通道向目标服务器发送数据传输请求所请求发送的数据。可选地,建立单元包括:第二获取模块,用于获取目标服务器的地址信息,其中,地址信息用于唯一确定目标服务器在网络中的位置;建立模块,用于根据地址信息和第一传输协议建立第三数据传输通道。在一个可选的实施例中,采用本发明上述实施例中的数据传输的方法或者数据传输的装置,在深圳和南非之间、深圳和马来西亚之间进行数据的传输。下述表1为使用SDK软件的前后客户端传输大文件数据的对比统计结果。通过选取带宽为30Mbps的环境下,从深圳数据中心传输100MB文件到南非和马来西亚,传输次数为1500次,传输覆盖一天24小时。如表1所示,在采用本发明上述实施例提供的数据传输的方法之前,深圳传输南非和马来西亚的耗时分别为1202.85S和7165.51S,平均速度分别为0.083MB/S和0.140MB/S,成功率分别为75.1%和77.8%。在采用本发明上述实施例提供的数据传输的方法之后,深圳传输南非和马来西亚的耗时分别为34.97S和38.64S,平均速度分别为2.860MB/S和2.588MB/S,成功率分别为99.9%和100%。从以上测试效果来看,在使用了SDK软件后,客户端和目标服务器之间的文件传输性能有大幅度的提升,并且传输成功率在99.9%以上,更加稳定和可靠。图6所示为使用SDK软件代理后对客户端进行实时测试的数据图,如图6所示,从实时测试数据图可以看出,数据传输的性能十分平稳,数据的传输速度较稳定。表1上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1