一种数据传输的方法、系统、控制服务器及客户端与流程

文档序号:11843234阅读:184来源:国知局
一种数据传输的方法、系统、控制服务器及客户端与流程

本申请涉及互联网通信技术领域,特别涉及一种数据传输的方法、系统、控制服务器及客户端。



背景技术:

随着互联网通信技术的发展,数据传输技术越来越成熟。数据传输的过程可以理解为存储有数据包的服务器响应于客户端的下载请求,将数据包传输给客户端的过程。

传统的数据传输系统可以包括一个服务器和多个客户端。服务器中可以存储有各种各样的数据包,当客户端向服务器发起下载数据包的请求时,服务器便可以响应于该请求,将客户端需求的数据包传输至客户端中。上述传统的数据传输系统会存在这样的问题:当多个客户端同时向服务器发起下载请求时,服务器需要同时向这些客户端传输数据包。然而服务器总的传输速度是有限制的,当同时进行下载的客户端数量过多时,每个客户端被分配到的传输速度就会比较小,从而可能导致数据包传输的过程比较漫长。

为解决上述传统数据传输系统存在的问题,现有技术往往可以采用一种比特下载的系统来进行数据包的传输。在比特下载系统中,数据包可以被分割为若干个数据块。客户端可以在获取到数据包所有的数据块后,将这些数据块整合为一个完成的数据包。客户端在获取数据包之前,往往需要先获取该数据包对应的一个种子文件。通过该种子文件,客户端可以向种子服务器获取存储有该数据包中某个或者某几个数据块的其他客户端的信息。这些存储有该数据包中数据块的其他客户端可以作为该客户端的资源共享方。该客户端从种子服务器获取到资源共享方的信息后,可以向这些资源共享方发起数据交互请求。资源共享方可以响应于该客户端发起的数据交互请求,向该客户端返回数据包的信息。通过这些返回的数据包信息,客户端可以获知各个资源共享方分别拥有该数据包的哪个或者哪几个数据块。进一步地,客户端可以选择与哪个或者哪几个资源共享方建立连接,并且选择分别从这些资源共享方处获取该数据包的哪个或者哪几个“数据块”。

比特下载系统允许客户端之间进行数据包的共享,可以较好地减缓服务器的压力,也能够保证客户端具备较快的下载速度。然而,在比特下载系统中,数据交互请求、资源共享方的选择以及数据块的选择均是由下载该数据包的客户端完成的,这样会大大地增加客户端的负载以及运算复杂程度。



技术实现要素:

本申请实施例的目的在于提供一种数据传输的方法、系统、控制服务器及客户端,以减缓客户端在下载数据包过程中的负载以及运算复杂程度。

本申请实施例提供的一种数据传输的方法、系统、控制服务器及客户端是这样实现的:

一种数据传输的方法,包括:

客户端向控制服务器发起第一数据包的传输请求;

所述控制服务器响应于所述第一数据包的传输请求,指定第一数据包共享组中的第一共享方,所述第一共享方具有第一数据包中的第一数据块;

所述控制服务器将第一共享方的网络地址及第一数据块的标识发送至所述客户端;

所述客户端根据所述控制服务器发来的网络地址及第一数据块的标识,与第一共享方建立第一数据块的传输进程。

一种数据传输的方法,包括:

控制服务器响应于客户端发来的第一数据包的传输请求,指定第一数据包共享组中的第一共享方,所述第一共享方具有所述第一数据包中的第一数据块;

所述控制服务器将第一共享方的网络地址及第一数据块的标识发送至所述客户端。

一种数据传输的方法,包括:

客户端向控制服务器发起第一数据包的传输请求;

所述客户端根据所述控制服务器发来的第一共享方的网络地址及第一数据块的标识,与第一共享方建立第一数据块的传输进程。

一种数据传输的系统,包括控制服务器和客户端,其中:

所述控制服务器,用来响应于客户端发来的第一数据包传输请求,指定第一数据包共享组中的第一共享方,所述第一共享方具有所述第一数据包中的第一数据块;将第一共享方的网络地址及第一数据块的标识发送至所述客户端;

所述客户端,用来向控制服务器发起第一数据包的传输请求;根据所述控制服务器发来的第一共享方的网络地址及第一数据块的标识,与第一共享方建立第一数据块的传输进程。

一种数据传输的控制服务器,包括:

共享方指定单元,用来响应于客户端发来的第一数据包的传输请求,指定第一数据包共享组中的第一共享方,所述第一共享方具有所述第一数据包中的第一数据块;

发送单元,用来将第一共享方的网络地址及第一数据块的标识发送至所述客户端。

一种数据传输的客户端,包括:

传输请求发起单元,用来向控制服务器发起第一数据包的传输请求;

传输进程建立单元,用来根据所述控制服务器发来的第一共享方的网络地址及第一数据 块的标识,与第一共享方建立第一数据块的传输进程。

本申请实施例提供的一种数据传输的方法、系统、控制服务器及客户端,利用控制服务器来组建数据包共享组,通过将客户端加入该数据包共享组,并且指定该数据包共享组中的共享方给客户端进行数据包的传输,能够减缓客户端在下载数据包过程中的负载以及运算复杂程度。另外,相比于现有技术中以客户端为主要运算单元的系统,本申请中的运算主要是由控制服务器完成的,这样能够便于对整个系统进行维护和管理。

附图说明

图1为本申请实施例提供的一种数据传输的系统框架图;

图2为本申请实施例提供的一种数据传输的方法流程图;

图3为本申请一实施例提供的以控制服务器为主体的数据传输的方法流程图;

图4为本申请一实施例提供的以客户端为主体的数据传输的方法流程图;

图5为本申请一实施例提供的一种数据传输的系统功能模块图;

图6为本申请一实施例提供的一种数据传输的控制服务器的功能模块图;

图7为本申请一实施例提供的一种数据传输的客户端的功能模块图。

具体实施方式

本申请实施例提供一种数据传输的方法、系统、控制服务器及客户端。为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都应当属于本申请保护的范围。

在本申请实施例中,客户端需要下载的数据包同样可以事先被分为若干数据块。客户端通过将该数据包中每个数据块传输到本地后,可以将这些数据块重新整合成完整的数据包。图1为本申请实施例提供的一种数据传输的系统框架图。如图1所示,所述数据传输的系统包括控制服务器与客户端。其中,控制服务器可以将下载同一数据包的各个客户端组成数据包共享组,并且通过控制指令,可以分配数据包共享组中某一客户端去另一客户端处获取所述数据包的某个或者某些数据块。图2为本申请实施例提供的一种数据传输的方法流程图。如图2所示,所述方法包括:

S100:客户端向控制服务器发起第一数据包的传输请求。

所述第一数据包的传输请求至少可以包括第一数据包的标识以及所述客户端的最大传输并发数。数据包事先可以被分为若干个数据块,客户端可以同时传输该数据包中的多个数 据块。所述客户端的最大传输并发数则可以代表该客户端能够同时传输数据块的数量。所述的第一数据包标识可以包括该数据包的HTTP地址或者其它能够查找到该数据包的信息中的至少一种,在本申请中对于数据包的标识并不做限定。所述客户端的标识可以为该客户端的网络地址或者其他能够查找到该客户端的通信地址中的至少一种。

S200:所述控制服务器响应于所述第一数据包的传输请求,指定第一数据包共享组中的第一共享方,所述第一共享方具有第一数据包中的第一数据块。

在本申请实施例中,可以将与所述控制服务器相连接,并且传输同一个数据包的多个客户端作为该数据包的共享组。在该数据包共享组中,每个客户端都可以作为共享方。

在某些实施例中,所述客户端向控制服务器发起第一数据包的传输请求之后,所述控制服务器可以响应于该第一数据包的传输请求,指定第一数据包共享组中的第一共享方。具体地,所述控制服务器可以提取所述第一数据包的传输请求中的第一数据包标识,并根据该第一数据包标识,查找到第一数据包的资源代码。通过第一数据包的资源代码,所述控制服务器可以从众多的数据包共享组中辨识出第一数据包共享组。在第一数据包共享组中的共享方均可以具有第一数据包中的某个或者某几个数据块。所述控制服务器可以指定第一数据包共享组中的第一共享方,该第一共享方可以具有第一数据包中的第一数据块。所述控制服务器指定了第一共享方后,可以将第一共享方的相关信息发送至所述客户端。这样,所述客户端便可以从第一共享方处获取第一数据块。

S300:所述控制服务器将第一共享方的网络地址及第一数据块的标识发送至所述客户端。

所述控制服务器指定了第一共享方后,可以将第一共享方的网络地址以及第一数据块的标识发送至所述客户端。所述第一数据块的标识可以包括第一数据块的编号或者第一数据块的起始字节与终止字节。数据包事先被分为若干数据块时,可以给每个数据块分配唯一的编号。例如,50M的数据包被等分为50个数据块,那么则可以根据数据包流量的顺序,将0到1M的数据块的编号设置为1,将1到2M的数据块的编号设置为2,以此类推,则可以得到1到50这50个编号。另外,数据块的标识还可以为该数据块的起始字节与终止字节的组合。例如,50M的数据包被等分为50个数据块,那么第一个数据块的标识可以为(0,1024),第二个数据块的标识可以为(1024,2048),依次类推,同样可以得到50个互不相同的标识。所述控制服务器将第一共享方的网络地址及第一数据块的标识发送至所述客户端,所述客户端则可以获知从哪个共享方处传输哪个数据块。

S400:所述客户端根据所述控制服务器发来的网络地址及第一数据块的标识,与第一共享方建立第一数据块的传输进程。

所述客户端从所述控制服务器处接收到第一共享方的网络地址及第一数据表的标识后,可以与第一共享方建立第一数据块的传输过程。具体地,所述客户端可以向第一共享方所在的网络地址发起访问请求。该访问请求中可以包括请求传输指令以及第一数据块标识。第一共享方接收到所述访问请求后,可以响应其中的请求传输指令,并根据第一数据块的标识,查找到第一数据块在第一数据包中的位置。接着,第一共享方可以向客户端返回确认传输的指令,从而可以与客户端建立第一数据块的传输进程。

在本申请的某些优选实施例中,所述数据传输的方法除了可以包括上述S100至S400这四个基本步骤外,还可以包括其他步骤。下面介绍本申请另一优选实施例:

S101:客户端向控制服务器发起第一数据包的传输请求。

在本申请一实施例中,客户端在进行数据包传输之前,可以与控制服务器建立连接。具体地,客户端可以预先获取地址服务器的域名。所述地址服务器的域名可以是该地址服务器的管理方提供的或者预先存储于客户端中的。所述地址服务器中可以存储多个控制服务器的信息。所述客户端可以从所述地址服务器中获取控制服务器的列表。所述控制服务器的列表可以包括控制服务器的网络名称以及网络地址。所述控制服务器的网络名称以及网络地址可以是控制服务器被启用时,由控制服务器的管理方录入所述地址服务器的。

客户端获取到所述控制服务器列表后,可以随机选择其中的任一控制服务器,并与其建立连接。在本申请一优选实施例中,客户端获取到控制服务器列表后,可以检测所述列表中每个控制服务器与自身的网络延迟。具体地,客户端可以通过常用的网络延迟测试软件,向控制服务器发送数据包,并且检测控制服务器接收数据包以及返回数据包的响应时间,通过该响应时间便可以确定控制服务器与自身的网络延迟。

客户端检测完每个控制服务器与自身的网络延迟后,可以选择与自身网络延迟最小的控制服务器,并与其建立连接。这样做的目的在于,客户端可以优先选择与自身网络情况类似的控制服务器,这样可以避免网络延迟对后续数据包传输过程的影响。

在某些实施例中,客户端与控制服务器建立连接后,可以向所述控制服务器发起第一数据包的传输请求。所述第一数据包的传输请求至少可以包括第一数据包的标识以及所述客户端的最大传输并发数。数据包事先可以被分为若干个数据块,客户端可以同时传输该数据包中的多个数据块。所述客户端的最大传输并发数则可以代表该客户端能够同时传输数据块的数量。所述的第一数据包标识可以包括该数据包的HTTP地址或者其它能够查找到该数据包的信息中的至少一种,在本申请中对于数据包的标识并不做限定。所述客户端的标识可以为该客户端的网络地址或者其他能够查找到该客户端的通信地址中的至少一种。

S201:所述控制服务器响应于所述第一数据包的传输请求,建立所述客户端对应的第一 数据包传输配置信息。

在本申请实施例中,可以将与所述控制服务器相连接,并且传输第一数据包的多个客户端作为第一数据包共享组。在该第一数据包共享组中,每个客户端都可以作为共享方。所述控制服务器接收到所述客户端发来的第一数据包传输请求后,可以响应于该传输请求,建立所述客户端对应的第一数据包传输配置信息。具体地,所述控制服务器接收到所述客户端发来的第一数据包传输请求后,可以从该传输请求中提取出第一数据包的标识,并可以通过第一数据包的标识查询到第一数据包的名称,第一数据包的大小及第一数据包中每个数据块的大小。所述控制服务器查询到第一数据包的相关信息后,可以建立第一数据包的传输配置信息。所述第一数据包的传输配置信息至少包括第一数据包中第一数据块的传输状态以及所述客户端的标识。所述数据块的传输状态可以包括准备传输,正在传输,已传输以及未传输中的至少一种。其中,准备传输可以代表客户端已经具备该数据块的数据来源,正准备进行传输;正在传输可以代表客户端已经与共享方建立数据传输的进程,正在从共享方处获取数据包中的数据;已传输可以代表该数据块已经传输至客户端中;未传输可以代表客户端中没有该数据块的数据,并且客户端未获取该数据块的数据来源,以及没有建立该数据块的传输进程。所述第一数据包传输配置信息中各个数据块的初始状态均为未传输。通过第一数据包的传输配置信息,所述控制服务器可以监控所述客户端传输第一数据包的过程。

所述控制服务器建立了所述客户端对应的第一数据包的传输配置信息后,即可以表明所述客户端也加入了上述第一数据包共享组。所述客户端可以从该第一数据包共享组中的其他共享方处,获取第一数据包中各个数据块的数据。

S301:根据所述建立的第一数据包传输配置信息,所述控制服务器指定第一数据包共享组中的第一共享方,所述第一共享方具有所述第一数据包中的第一数据块。

所述控制服务器建立了所述客户端对应的第一数据包传输配置信息后,所述控制服务器可以遍历第一数据包传输配置信息中各个数据块的传输状态。若存在状态为未传输的数据块,所述控制服务器则可以选取状态为未传输的第一数据块。所述第一数据块的状态为未传输,则可以说明所述客户端中没有该数据块的数据,并且所述客户端未获取该数据块的数据来源,以及没有建立该数据块的传输进程。所述控制服务器则可以在第一数据包共享组中,查找出已经将第一数据块传输至本地的共享方,并从这些共享方中指定第一共享方。所述控制服务器指定了第一共享方后,可以将第一共享方的相关信息发送至所述客户端。这样,所述客户端便可以从第一共享方处获取第一数据块。具体地,所述控制服务器可以遍历第一数据包共享组中各个共享方的数据包传输配置信息中数据块的传输状态,并且可以筛选出第一数据包共享组中具有状态为已传输的第一数据块的共享方。所述第一数据块的状态为已传 输,则可以说明筛选出的这些共享方已经将第一数据块传输至本地了。控制服务器筛选出上述共享方后,可以随机指定这些共享方中的一个共享方,使其作为第一共享方。

在本申请一优选实施例中,所述控制服务器筛选出上述共享方后,可以分别检测这些共享方与所述客户端之间的网络延迟,并挑选与所述客户端网络延迟最低的共享方作为第一共享方。这样可以保证所述客户端在后续与第一共享方进行数据传输时能够具备良好的传输速度。

需要说明的是,如果控制服务器在遍历第一数据包共享组中每个共享方的数据包传输状态图后,发现并不存在任何一个共享方已经将第一数据块传输至本地,那么控制服务器则可以将存储该数据包的数据服务器作为第一共享方。所述客户端则可以直接与所述存储该数据包的数据服务器建立传输第一数据块的进程。

S401:所述控制服务器将第一共享方的网络地址及第一数据块的标识发送至所述客户端。

所述控制服务器指定了第一共享方后,可以将第一共享方的网络地址以及第一数据块的标识发送至所述客户端。所述第一数据块的标识可以包括第一数据块的编号或者第一数据块的起始字节与终止字节。数据包事先被分为若干数据块时,可以给每个数据块分配唯一的编号。例如,50M的数据包被等分为50个数据块,那么则可以根据数据包流量的顺序,将0到1M的数据块的编号设置为1,将1到2M的数据块的编号设置为2,以此类推,则可以得到1到50这50个编号。另外,数据块的标识还可以为该数据块的起始字节与终止字节的组合。例如,50M的数据包被等分为50个数据块,那么第一个数据块的标识可以为(0,1024),第二个数据块的标识可以为(1024,2048),依次类推,同样可以得到50个互不相同的标识。所述控制服务器将第一共享方的网络地址及第一数据块的标识发送至所述客户端,所述客户端则可以获知从哪个共享方处传输哪个数据块。

S501:所述客户端根据所述控制服务器发来的网络地址及第一数据块的标识,与第一共享方建立第一数据块的传输进程。

所述客户端从所述控制服务器处接收到第一共享方的网络地址及第一数据表的标识后,可以与第一共享方建立第一数据块的传输过程。具体地,所述客户端可以向第一共享方所在的网络地址发起访问请求。该访问请求中可以包括请求传输指令以及第一数据块标识。第一共享方接收到所述访问请求后,可以响应其中的请求传输指令,并根据第一数据块的标识,查找到第一数据块在第一数据包中的位置。接着,第一共享方可以向客户端返回确认传输的指令,从而可以与客户端建立第一数据块的传输进程。

当所述客户端与第一共享方建立了传输进程后,可以向所述控制服务器发送准备传输第 一数据块的指令。所述控制服务器接收到该指令后,可以将第一数据包传输配置信息中第一数据块的状态设置为准备传输。

同样的,当所述客户端从第一共享方处获取到第一数据块后,可以向所述控制服务器发送第一数据块传输完毕的指令。所述控制服务器接收到所述第一数据块传输完毕的指令后,可以将第一数据包传输配置信息中第一数据块的状态设置为已传输。

如果所述客户端建立第一数据块的传输进程超时或者传输第一数据块的进程意外中止,那么所述客户端可以将传输出错的指令发送至所述控制服务器。所述控制服务器接收到传输出错的指令后,可以将第一数据包传输配置信息中第一数据块的状态设置为错误。接着,所述控制服务器可以继续指定第一数据包共享组中的另一共享方,并且将该指定的另一共享方的网络地址及第一数据块的标识发送至所述客户端。所述客户端便可以从重新制定的该共享方处获取第一数据块。

所述控制服务器在处理完第一数据块的相关操作后,可以继续遍历第一数据包传输配置信息中数据块的状态。若第一数据包传输配置信息中仍然存在状态为未传输的第二数据块,并且所述客户端正在传输的数据块数量小于该客户端的最大传输并发数,那么所述控制服务器可以按照上述步骤继续处理第二数据块。最终,所述客户端可以传输完第一数据包的所有数据块。

下面介绍本申请提供的以控制服务器为主体的数据传输方法的实施例。图3为本申请一实施例提供的以控制服务器为主体的数据传输的方法流程图。如图3所示,所述方法包括:

S110:控制服务器响应于客户端发来的第一数据包的传输请求,指定第一数据包共享组中的第一共享方,所述第一共享方具有所述第一数据包中的第一数据块;

S210:所述控制服务器将第一共享方的网络地址及第一数据块的标识发送至所述客户端。

上述第一数据包传输请求具体可以至少包括第一数据包标识以及客户端的最大传输并发数。其中,第一数据块的标识具体可以包括第一数据块的编号或者第一数据块的起始字节与终止字节。

在本申请一优选实施例中,在步骤S110之前,所述方法还可以包括:

S010:控制服务器响应于客户端发来的第一数据包的传输请求,建立所述客户端对应的第一数据包传输配置信息。

上述所述客户端对应的第一数据包传输配置信息具体可以至少包括第一数据包中第一数据块的传输状态以及所述客户端的标识。

在本申请另一优选实施例中,步骤S010具体可以由下述三个步骤实现:

S011:所述控制服务器遍历所述第一数据包传输配置信息中各个数据块的传输状态,查找到状态为未传输的第一数据块;

S012:所述控制服务器筛选出第一数据包共享组中具有状态为已传输的第一数据块的共享方;

S013:所述控制服务器从所述筛选出的共享方中指定第一共享方。

在本申请一优选实施例中,上述步骤S013具体可以包括:

S0131:所述控制服务器检测所述筛选出的共享方与所述客户端的网络延迟;

S0132:所述控制服务器指定与所述客户端网络延迟最低的共享方作为第一共享方。

在本申请另一优选实施例中,所述以控制服务器为主体的数据传输的方法除了包括步骤S110至S210外,还可以包括:

S310:所述控制服务器接收到所述客户端发来的准备传输第一数据块的指令后,将所述客户端对应的第一数据包传输配置信息中第一数据块的传输状态设置为准备传输。

在本申请另一优选实施例中,所述以控制服务器为主体的数据传输的方法除了包括步骤S110至S210外,还可以包括:

S410:所述控制服务器接收到所述客户端发来的第一数据块传输完毕的指令后,将所述客户端对应的第一数据包传输配置信息中第一数据块的传输状态设置为已传输。

下面介绍本申请以客户端为主体的数据传输方法的实施例。图4为本申请一实施例提供的以客户端为主体的数据传输的方法流程图。如图4所示,所述方法可以包括:

S120:客户端向控制服务器发起第一数据包的传输请求;

S220:所述客户端根据所述控制服务器发来的第一共享方的网络地址及第一数据块的标识,与第一共享方建立第一数据块的传输进程。

上述第一数据包传输请求具体可以包括第一数据包标识以及客户端的最大传输并发数,上述第一数据块的标识具体可以包括第一数据块的编号或者第一数据块的起始字节与终止字节。

在本申请另一优选实施例中,在所述步骤S120之前,所述方法还可以包括:

S020:客户端从地址服务器处获取控制服务器列表,并检测每个控制服务器与自身的网络延迟;

S021:客户端选择与自身网络延迟最小的控制服务器并与其建立连接。

在本申请另一优选实施例中,所述方法除了包括步骤S020至S220外,还可以包括:

S320:客户端与第一共享方建立传输进程后,向控制服务器发送准备传输第一数据块的指令。

在本申请另一优选实施例中,所述方法除了包括步骤S020至S220外,还可以包括:

S420:客户端从第一共享方处获取到第一数据块后,向控制服务器发送第一数据块传输完毕的指令。

上述以控制服务器和客户端为主体的数据传输的方法流程中涉及的具体技术方案均与步骤S101至S501相似,这里不再赘述。

本申请实施例还提供一种数据传输的系统。图5为本申请一实施例提供的一种数据传输的系统功能模块图。如图5所示,所述系统可以包括控制服务器100和客户端200,其中:

所述控制服务器100,可以用来响应于客户端发来的第一数据包传输请求,指定第一数据包共享组中的第一共享方,所述第一共享方具有所述第一数据包中的第一数据块;将第一共享方的网络地址及第一数据块的标识发送至所述客户端;

所述客户端200,可以用来向控制服务器发起第一数据包的传输请求;根据所述控制服务器发来的第一共享方的网络地址及第一数据块的标识,与第一共享方建立第一数据块的传输进程。

上述第一数据块的标识具体可以包括第一数据块的编号或者第一数据块的起始字节与终止字节。

在本申请一优选实施例中,所述系统除了包括控制服务器和客户端外,还可以包括:

地址服务器300,用来响应于客户端的请求,向客户端返回控制服务器列表。

在本申请一优选实施例中,所述控制服务器还可以用来响应于客户端发来的第一数据包的传输请求,建立所述客户端对应的第一数据包传输配置信息。

上述第一数据包传输配置信息具体可以至少包括第一数据包中第一数据块的传输状态以及所述客户端的标识。

本申请实施例还提供一种数据传输的控制服务器。图6为本申请一实施例提供的一种数据传输的控制服务器的功能模块图。如图6所示,所述控制服务器100具体可以包括:

共享方指定单元101,用来响应于客户端发来的第一数据包的传输请求,指定第一数据包共享组中的第一共享方,所述第一共享方具有所述第一数据包中的第一数据块;

发送单元102,用来将第一共享方的网络地址及第一数据块的标识发送至所述客户端。

在本申请一优选实施例中,所述控制服务器100还可以包括:

配置信息建立单元103,用来响应于客户端发来的第一数据包传输请求,建立所述客户端对应的第一数据包传输配置信息。

上述第一数据包传输请求具体可以包括第一数据包标识以及客户端的最大传输并发数。

上述第一数据块的标识具体可以包括第一数据块的编号或者第一数据块的起始字节与 终止字节。

上述第一数据包传输配置信息具体可以包括第一数据包中第一数据块的传输状态以及所述客户端的标识。

在本申请一优选实施例中,所述配置信息建立单元103具体可以包括:

数据块查找模块1031,用来遍历所述客户端对应的第一数据包传输配置信息中各个数据块的传输状态,查找到状态为未传输的第一数据块;

共享方筛选模块1032,用来筛选出第一数据包共享组中具有状态为已传输的第一数据块的共享方;

指定模块1033,用来从所述筛选出的共享方中指定第一共享方。

在本申请一优选实施例中,所述指定模块1033具体可以包括:

网络延迟检测模块10331,用来检测所述筛选出的共享方与所述客户端的网络延迟;

指定模块10332,用来指定与所述客户端网络延迟最低的共享方作为第一共享方。

在本申请一优选实施例中,所述控制服务器100除了包括上述的101至103单元外,还可以包括:

第一状态设置单元104,用来接收所述客户端发来的准备传输第一数据块的指令后,将所述客户端对应的第一数据包传输配置信息中第一数据块的状态设置为准备传输。

在本申请一优选实施例中,所述控制服务器100除了包括上述的101至103单元外,还可以包括:

第二状态设置单元105,用来接收客户端发来的第一数据块传输完毕的指令后,将所述客户端对应的第一数据包传输配置信息中第一数据块的状态设置为已传输。

本申请实施例还提供一种数据传输的客户端。图7为本申请一实施例提供的一种数据传输的客户端的功能模块图。如图7所示,所述客户端200具体可以包括:

传输请求发起单元201,用来向所述控制服务器发起第一数据包的传输请求;

传输进程建立单元202,用来根据所述控制服务器发来的第一共享方的网络地址及第一数据块的标识,与第一共享方建立第一数据块的传输进程。

在本申请一优选实施例中,所述客户端200还可以包括:

网络延迟检测模块203,用来从地址服务器获取控制服务器列表,并检测每个控制服务器与所述客户端的网络延迟;

连接建立模块204,用来选择与所述客户端网络延迟最小的控制服务器并与其建立连接。

上述第一数据包传输请求具体可以包括第一数据包标识以及客户端的最大传输并发数。

上述第一数据块的标识具体可以包括第一数据块的编号或者第一数据块的起始字节与 终止字节。

在本申请一优选实施例中,所述客户端除了包括单元201至204外,还可以包括:

第三状态设置单元205,用来当客户端与第一共享方建立传输进程后,向所述控制服务器发送准备传输第一数据块的指令。

在本申请一优选实施例中,所述客户端除了包括单元201至204外,还可以包括:

第四状态设置单元206,用来当客户端从第一共享方处获取到第一数据块后,向所述控制服务器发送第一数据块传输完毕的指令。

本申请实施例提供的一种数据传输的方法、系统、控制服务器及客户端,利用控制服务器来组建数据包共享组,通过将客户端加入该数据包共享组,并且指定该数据包共享组中的共享方给客户端进行数据包的传输,能够减缓客户端在下载数据包过程中的负载以及运算复杂程度。另外,相比于现有技术中以客户端为主要运算单元的系统,本申请中的运算主要是由控制服务器完成的,这样能够便于对整个系统进行维护和管理。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(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)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流 程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1