专利名称:云存储文件传输协议(cftp)的制作方法
技术领域:
本发明涉及计算机网络领域,尤其涉及云计算、云存储系统中的文件传输。
背景技术:
云计算(CloudComputing)是分布式计算(Distributed Computing)、并行计 算(ParallelComputing)、网格计算(Grid Computing)、网络存储(Network Storage Technologies)、虚拟化(Visualization)、负载均衡(Load Balance)等传统计算机技术 和网络技术发展融合的产物。它通过网络把多个成本相对较低的计算实体整合成一个具有 强大计算能力的完美系统,并借助各种应用服务把强大的计算能力分布到终端用户手中。 其基本原理是将计算任务通过网络分配给多台计算机执行。每台计算机称为云计算网络计 算节点,执行计算任务的全部计算机整体称为云端,发出任务请求的计算机或者手机等其 他设备称为终端。云存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各 种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访 问功能的一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算 系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云 存储是一个以数据存储和管理为核心的云计算系统。目前云计算的终端与云端的文件传输一般采用流行的FTP协议和基于TCP/IP的 WEBDAV协议。FTP协议有速度快、稳定、支持断点续传等优点,缺点是缺乏对分布式存储的 支持,不支持协同工作。WEBDAV协议可支持协同工作,缺点是传输不稳定、不支持断点续传, 对超过100M的文件支持非常差。国内目前网络存在不同运营商之间访问速度慢的问题,因此在传统互联网的文件 传输中,还有一种经常使用的协议,点对点传输协议(P2P),该协议优点是速度非常快,支持 多服务器同时下载,缺点是独占终端大量网络带宽,导致其他网络服务质量变差,所以云计 算和云存储一般不采用此协议。本云储存传输协议(CFTP)不仅结合了 FTP、TCP/IP、P2P协议的优点,同时加入了 云端服务器计算功能,能在快速、稳定的传输,并且支持断点续传,支持云存储设备,支持协 同工作,不占用终端其他网络服务带宽。和P2P协议相比,本协议是利用云端的计算能力和 云存储节点及其缓存机制来达到速度最优,传输能得到有效的保障,而P2P协议则利用正 在下载的终端来优化速度,速度和稳定性都得不到保障。本协议核心工作原理是终端发送 文件传输请求后,目标文件被拆分成很多数据块发送给云端存储节点缓存,云端服务器计 算出最优路径,然后发送给终端。
发明内容
使用具有云计算或者云存储环境的云端与用户终端进行文件传输的一种方法,包 括计算最优路径,并在路径所包含的计算节点或者云存储节点缓存数据,使用终端获得最佳下载和上传速度。本协议分服务器端和终端。协议服务器端布署在云计算环境的云端,协议启动后,会主动检测和纪录所在云 端的节点,并定时计算这些节点之间的网络速度和网络繁忙程度。协议终端同时布署在终端设备和云端各节点上,在终端发出文件传输请求后,本 协议会被启动,首先会测试终端之间、终端通过最优路径节点速度,计算文件大小获得两者 的传送时间,如果终端之间的传输时间小于目标终端与终端通过最优路径节点的时间(比 如局域网内文件传输),则直接在终端之间传输文件,无需经过云端。如果终端之间的传输 时间大于终端通过最优路径节点的传输时间,则启动云端缓存,并给文件传输加速。当云端节点之间互相传输文件,则把文件源节点和目标节点试为两个终端。文件传输前,首先文件源终端会通过CRC算法计算文件唯一识别码,并将识别码 发送给目标终端,目标终端会在文件传输完成后再次计算唯一识别码,并核对文件是否正 确。文件在传输过程中是分块传输,每个文件数据块还会拆分成更多的数据包进行传 输,不同的节点和终端均可以同时下载不同的或者相同的文件数据块,而每个节点服务器 的文件数据块是根据网络传输速度和网络带宽空闲状况来分配的,目标终端最终获得所有 的数据块,并将所有的数据块合并成目标文件。文件数据块中的第一个数据包,包含整个文件唯一识别码,分块文件数据大小,文 件数据块的位置编号,上一个文件块的唯一识别码和本文件块唯一识别码,这些信息用于 某个节点接收完文件数据块后合成文件缓存文件,并识别这些文件数据块是否被改动,确 保文件安全。数据包包含协议对数据包的识别信息,数据包的位置信息和加密的数据内容,接 收到数据包后会将数据解密并存储到临时文件中,最终合成文件数据块。本协议对跨运营商的终端之间文件交换有很大的加速作用。云端数据缓存对大量 不同的终端下载同样的文件有极大的速度提升,并节省垮网流量。附图简要说明可参考附图更好的理解本发明结构和运行这两方面的细节,其中
图1是本发明云存储文件传输协议(CFTP)的用户使用示意2是本发明CFTP的实现流程3是本发明CFTP的云端传输流程图
图4是本发明CFTP的功能框图
具体实施例方式首先本协议的使用对象是能够使用云存储的系统,因为没有云端的存储节点无法 建立文件缓存。参看图1和图2,终端A和终端B可以是用户的PC电脑、智能手机或者平板电脑 等其他支持存储的设备,也可是云端的某个节点,当是云端的节点时,我们把该节点试为终端。假设终端A向目标文件所在的终端B发出文件传输请求,终端B首先会向云端最 近同时也是相对空闲的节点发出请求(由于云存储系统的存在,所以该节点一定存在),通知云端有文件需要传送给终端A,该节点接收到请求后开始计算最优路径,并计算终端A通 过最优路径接收终端B发出的文件的时间,并反馈给终端B。在计算最优路径传输时间的时 候,云端节点会同时查找最优路径上的文件缓存,如果发现文件缓存会减去相应缓存带来 的加速时间。终端B在等待云端节点反馈的同时计算终端A直接接收终端B的文件的时间,如 果在终端A、B之间的传输时间小于通过最优路径的传输时间,则直接将文件传输给终端A, 否则,终端B通知云端节点采用最优路径传输。一旦启动了最优路径传输,就会利用到云端的强大计算能力和存储能力,如图3 所示,离终端B最近的计算节点会根据最优路径上所有节点的网络速度和空闲情况分配任 务,该任务会发送给所有节和终端A,终端A和相关节点会同时开始下载文件。文件传送任务在开始的时候并不一定包括所有文件块。当部分节点已经完成接收 任务时,会自动建立文件缓存,并将结果反馈给离终端B最近的节点,该节点受到反馈后重 新计算和分配任务,直至所有文件数据被传送完毕。根据终端B的实际网络使用情况,也有可能刚开始下载任务只分配给部分数据给 离终端B最近的节点,当该节点完成数据块后在通过重新计算由其他节点和终端A同时从 该节点接收数据。如果在整个文件传送过程中负责分配任务的节点出现故障,其他节点会自动接替 该节点分配任务。图4是本协议的功能框图,本协议首先会监听某个计算机设备端口,当有符合本 协议的数据包到达后开始处理,数据包包含了协议命令,主要分为图4所示的六种功能。计算命令上文中所说的终端B发送文件传送请求就属于计算命令,终端B会要求 节点计算出最优路径,分配传输任务。而在其他节点则会接收到任务分配节点发出的命令 而开始执行任务。寻找缓存寻找缓存的命令中会包含目标文件的唯一识别码,通过该识别码本节 点来判断是否有缓存,如果有会反馈,反馈信息包括是否存在,缓存文件在目标文件中的位 置以及缓存文件的识别码。接收缓存这个命令要求本节点从某个节点或者终端上接收文件数据,本节点会 首先接收识别信息,并判别数据是否有效,然后开始接收数据,当指定数据接收完成后,会 合并成文件缓存,并将相关信息反馈给最优路径上的其他节点。发送缓存这个命令要求本节点向其他节点发送缓存数据,同样为了文件的安全 性,首先会发送目标文件和缓存文件的相关信息给其他节点,在确认数据正确后开始发送 数据,发送完成后反馈给分配任务的节点。节点变化本命令是无论在是否有数据任务的时候都会定时执行的,主要是为了 记录所有离本节点较近的节点及本节点到这些节点的速度,包括新增加的和被移除的,这 样可以最快的计算出最优路径,在每一次监测后更新数据。终端测速这个命令是由有文件传输任务的终端发出的,以此获得离终端最近的 节点。
权利要求
一种云存储环境下的文件传输方法,包括利用云存储设备进行文件拆分缓存,计算节点计算最优路径,并使之达到最快传输速度。
2.如权利要求1所述的方法,其中每个云存储节点和目标文件所在终端都可以同时向 其他云存储节点和请求文件所在的终端发送文件数据,并可以合成为缓存文件。
3.如权利要求1所述的方法,由离目标文件所在终端最近的云端节点计算和分配任 务,如果在任务实施过程中该节点出现故障,会被其他节点代替。
全文摘要
一种新的云存储文件传输协议,使用具有云计算或者云存储环境的云端与用户终端进行文件传输的一种方法,终端发送文件传输请求后,目标文件被拆分成很多数据块发送给云端存储节点缓存,云端服务器计算出最优路径,然后发送给终端,使用终端获得最佳下载和上传速度。
文档编号H04L29/08GK101997924SQ20101055317
公开日2011年3月30日 申请日期2010年11月22日 优先权日2010年11月22日
发明者杨文军 申请人:杨文军