一种文件传输系统及方法

文档序号:9870399阅读:867来源:国知局
一种文件传输系统及方法
【技术领域】
[0001 ]本发明涉及互联网技术领域,特别涉及一种文件传输系统及方法。
【背景技术】
[0002]随着网络视频技术的发展,有多家视频提供者可以为用户提供视频源,如优酷、爱奇艺、搜狐等,这些网站主要基于Flash技术且通过专用的服务器向用户提供可供下载的文件。为了降低带宽成本,目前各大网站相继开始采用通过用户之间分享数据的P2P(Peer topeer,对等连接)技术,以降低专用服务器的带宽消耗,从而节省成本。但是,Flash技术与传统的基于BT模式的P2P技术并不兼容,只有通过网页插件的方式才可以实现,而大多数用户并不希望安装网页插件,因此,Adobe公司开发了一种能实现了Flash技术与P2P技术相互融合的协议,即RTMFP(Real Time Media Flow Protocol,实时多媒体流协议)ATMFP协议是Adobe公司开发的一套通信协议,该协议可以让使用Adobe Flash Player的终端用户之间进行直接通信。因为符合RTMFP协议的文件是在各终端用户之间共享,而无需向服务器所取文件,所以此方案很适合于大范围的部署。RTMFP因为采用了 UDP也提升了传送的速度。
[0003]然而,该传输方式还存在一些缺点。例如在P2P网络中,将客户端分为需要下载文件的下载客户端以及可以提供文件的上传客户端,当下载客户端向上传客户端发送文件请求时,上传客户端会根据文件请求去查找自身的本地文件,如果上传客户端只有所请求的部分文件,则该上传客户端就会放弃应答,下载客户端只好重新请求别的上传客户端,直至找到一个拥有完整文件的上传客户端。由于下载客户端所请求的文件往往来自多个上传客户端,因此采用目前的文件传输方式易造成下载客户端获得文件的时间较长,无法满足用户需求。

【发明内容】

[0004]本发明所解决的技术问题在于提供一种文件传输系统,应用于基于RTMFP协议的P2P网络通信中,该文件传输系统有利于提高下载客户端从相应的上传客户端下载所需文件的速度。
[0005]—种文件传输系统,包括若干上传客户端、若干下载客户端、控制服务器、以及索引服务器,其中:
[0006]所述上传客户端存储有至少一个分块文件,所述上传客户端用于接收并响应所述下载客户端发送的文件请求,将其所存储的与该文件请求相对应的分块文件发送给所述下载客户端,所述分块文件由一个整体文件按照预设的方法拆分而成;
[0007]所述下载客户端用于向所述索引服务器发送索引请求,所述索引请求包括目标文件的URL,并接收所述索引服务器的反馈信息,所述反馈信息包括存储有该目标文件的至少一个分块文件的上传客户端的地址;所述下载客户端根据该反馈信息向对应的所述上传客户端发送文件请求,而后接收由所述至少一个上传客户端发送而来的分块文件,并按照预设的方法将该分块文件合并为一个整体文件;
[0008]所述控制服务器分别与所述上传客户端和所述下载客户端连接,用于建立所述上传客户端和所述下载客户端之间的连接;
[0009]所述索引服务器分别与所述上传客户端和所述下载客户端连接,所述索引服务器保存有所述上传客户端、所述下载客户端的地址以及各上传客户端、下载客户端所存储的文件信息,该文件信息至少包括文件的URL;所述索引服务器还用于接收并响应所述下载客户端发送而来的索引请求,将所述反馈信息发送给所述下载客户端。
[0010]进一步的,所述各上传客户端、各下载客户端还按预设的时间间隔向所述索引服务器发送各自的地址以及各自所存储的文件的URL。
[0011]进一步的,分块文件设置有明确其顺序的标识,所述上传客户端、下载客户端将自身存储的分块文件的标识发送给所述索引服务器。
[0012]本发明还提供了一种应用上述文件传输系统的文件传输方法。为解决上述技术问题,本发明采用如下所述的技术方案。
[0013]一种文件传输方法,包括以下步骤:
[0014]下载客户端向索引服务器发送索引请求,所述索引请求包括目标文件的URL;
[0015]所述索引服务器接收并响应所述下载客户端发送而来的索引请求,向所述下载客户端发送反馈信息,所述反馈信息包括存储有该目标文件的至少一个分块文件的上传客户端的地址;
[0016]下载客户端接收所述反馈信息;
[0017]下载客户端通知控制服务器建立与目标上传客户端之间的连接;
[0018]所述控制服务器建立该下载客户端和目标上传客户端之间的连接;
[0019]下载客户端向至少一个目标上传客户端发送文件请求;
[0020]该至少一个目标上传客户端接收下载客户端的文件请求;
[0021]该上传客户端按照预设的方法将文件请求相对应的分块文件发送给所述下载客户端;
[0022]所述下载客户端接收至少一个上传客户端发送而来的分块文件,并按照预设的方法合并分块文件。
[0023]进一步的,该上传客户端将与文件请求相对应的分块文件发送给所述下载客户端的方法如下:
[0024]上传客户端将其存储的分块文件的标识发送给下载客户端;
[0025]下载客户端判断是否需要该分块文件并告知相应的上传客户端;
[0026]下载客户端若需要所述上传客户端存储的一个或多个分块文件,则发送一个需求信息给相应的上传客户端;
[0027]该上传客户端接收并响应该需求信号,将一个或者多个分块文件发送该下载客户端。
[0028]进一步的,下载客户端若不需要所述上传客户端存储的一个或多个分块文件,则发送一个不需求的信息给相应的上传客户端,然后通知所述控制服务器与下一个目标上传客户端建立连接。
[0029]进一步的,合并分块文件时,判断当前分块文件与已下载的其他分块文件是否存在相邻关系,若存在相邻关系,则可先合并。
[0030]本发明的有益技术效果在于:本发明的下载客户端可以接收来自于多个上传客户端的分块文件,并将这些分块文件合并成一个整体文件,因此,相比于现有技术,该下载客户端的文件获取时间更短,可以极大提升用户体验。
【附图说明】
[0031]图1是本发明一些实施例中文件传输系统的网络连接示意图。
[0032]图2是本发明在一些实施例中的工作流程示意图。
【具体实施方式】
[0033]为使本领域的普通技术人员更加清楚地理解本发明的目的、技术方案和优点,以下结合附图和实施例对本发明做进一步的阐述。
[0034]本发明的文件传输系统,应用于基于RTMFP协议的P2P网络通信中,参考图1所示,在本发明的一些实施例中,该文件传输系统包括若干上传客户端20、若干下载客户端10、控制服务器40以及索引服务器30。
[0035]所述上传客户端20存储有至少一个分块文件,所述上传客户端20用于接收并响应所述下载客户端10发送的文件请求,将其所存储的与该文件请求相对应的分块文件发送给所述下载客户端10,所述分块文件由一个整体文件按照预设的方法拆分而成。例如,将一个101MB的数据按照2MB为一个块进行拆分,可以拆分为51个分块文件,最后一个分块文件为IMB。在一个整体文件被拆分为各个分块时,会为各个分块文件增加标识以明确其顺序。对于数据很小的整体文件,可以认为就是一个分块文件。
[0036]所述下载客户端10用于向所述索引服务器30发送索引请求,所述索引请求包括目标文件的URL(统一资源定位符,互联网上的每个文件都有一个唯一的URL,可以指出文件的位置),并接收所述索引服务器30的反馈信息,所述反馈信息包括存储有该目标文件的至少一个分块文件的上传客户端20的地址;所述下载客户端10根据该反馈信息向对应的所述上传客户端20发送文件请求,而后接收由所述至少一个上传客户端20发送而来的分块文件,并按照预设的方法将该分块文件合并为一个整体文件。
[0037]所述控制服务器40分别与所述上传客户端20和所述下载客户端10连接,用于建立所述上传客户端20和所述下载客户端10之间的连接。
[0038]所述索引服务器30分别与所述上传客户端20和所述下载客户端10连接,所述索引服务器30保存有所述上传客户端20、所述下载客户端10的地址以及各上传客户端20、下载客户端10所存储的文件信息,该文件信息至少包括文件(包括一些分块文件或整体文件)的URL;所述索引服务器30还用于接收并响应所述下载客户端10发送而来的索引请求,并将反馈信息发送给所述下载客户端10。
[0039]本发明的下载客户端10可以接收来自于多个上传客户端20的分块文件,并将这些分块文件合并成一个整体文件,因此,相比于现有技术,该下载客户端10的文件获取时间更短,可以极大提升用户体验。
[0040]在P2P网络中,下载客户端10和上传客户端20是对等的,由于网络中几乎实时都在发生文件的传输且各客户端的IP地址也有可能变化,因此上传客户端20、下载客户端10还需按一定的时间间隔向所述索引服务器30发送各自的地址以及各自所存储的文件的URL等相关信息。如果所述索引服务器30的内存足够,各上传客户端20、下载客户端10也可将自身存储的分块文件的标识发送给所述索引服务器30。
[0041]本发明还提供了一种应用上述文件传输系统的文件传输方法,在一些实施例中,如图2所示,下载客户端10包括下载客户端A,上传客户端20包括上传客户端B、上传客户端C,该文件传输方法包括以下步骤:
[0042]SI,下载客户端10向索引服务器30发送索引请求,所述索引请求包括目标文件的URL0
[0043]具体的,所述下载客户端A希望求得电影“泰冏”,以电影“泰冏”的URL信息向索引服务器30发送索引请求。
[0044]S2,索引服务器30接收并响应所述下载客户端10发送而来的索引请求,向所述下载客户端10
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1