著录项信息
专利名称 | 一种FTP文件上传、下载方法及装置 |
申请号 | CN201210316535.0 | 申请日期 | 2012-08-30 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-12-19 | 公开/公告号 | CN102833337A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/08 | IPC分类号 | H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 北京星网锐捷网络技术有限公司 | 申请人地址 | 北京市海淀区复兴路29号中意鹏奥大厦东楼11层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京星网锐捷网络技术有限公司 | 当前权利人 | 北京星网锐捷网络技术有限公司 |
发明人 | 翁石强;刘建勇 |
代理机构 | 北京同达信恒知识产权代理有限公司 | 代理人 | 黄志华 |
摘要
本发明实施例提供一种FTP文件上传、下载方法及装置,由客户端侧加速设备冒充FTP服务器,响应其监听到的FTP客户端的第一FTP文件上传请求,接收并缓存FTP客户端上传的FTP文件,并在FTP文件接收完毕后,冒充FTP服务器通知所述FTP客户端,所述FTP文件上传到FTP服务器。使得FTP客户端的上传操作在局域网环境下完成,加快FTP文件上传速度。同时,还可以通过下载重定向的方式,指示客户端侧加速设备从上传其需要下载的FTP文件的其他客户端侧加速设备下载该FTP文件。使得正在上传的FTP文件也可以被实时下载,加快FTP文件下载速度,并可以减少FTP文件下载对FTP服务器的连接压力。
1.一种文件传输协议FTP文件上传方法,其特征在于,所述方法包括:
客户端侧加速设备在监听到FTP客户端向FTP服务器发送的第一FTP文件上传请求时,所述第一FTP文件上传请求中携带FTP文件标识,拦截该第一FTP文件上传请求,并向所述FTP客户端发送第一响应报文,第一响应报文用于通知所述FTP客户端,可以向所述FTP服务器发送数据;
客户端侧加速设备接收并缓存所述FTP客户端发送的所述FTP文件标识表示的FTP文件,并在该FTP文件接收完毕之后,向所述FTP客户端发送第二响应报文,第二响应报文用于通知所述FTP客户端,所述FTP服务器接收所述FTP文件完毕;
客户端侧加速设备断开与所述FTP客户端的FTP连接,并建立与所述FTP服务器的FTP连接,向所述FTP服务器发送第二FTP文件上传请求,所述第二FTP文件上传请求用于请求将自身缓存的所述FTP文件发送至所述FTP服务器。
2.如权利要求1所述的方法,其特征在于,客户端侧加速设备接收并缓存所述FTP客户端发送的所述FTP文件标识表示的FTP文件,具体包括:
客户端侧加速设备接收并缓存所述FTP客户端发送的所述FTP文件的数据分块,并在一个数据分块接收完毕时,向所述FTP客户端发送第三响应报文,第三响应报文用于通知所述FTP客户端发送下一个数据分块。
3.如权利要求1所述的方法,其特征在于,客户端侧加速设备拦截第一FTP文件上传请求之前,所述方法还包括:
客户端侧加速设备监听并记录所述FTP客户端登录所述FTP服务器时输入的登录信息;
客户端侧加速设备建立与所述FTP服务器的FTP连接,具体包括:
客户端侧加速设备利用所述登录信息登录所述FTP服务器。
4.如权利要求1~3任一所述的方法,其特征在于,客户端侧加速设备接收所述FTP文件完毕之后,所述方法还包括:
客户端侧加速设备更新本地缓存数据库列表,更新后的本地缓存数据库列表包括表示所述FTP文件缓存在本地缓存数据库的信息。
5.一种文件传输协议FTP文件下载方法,其特征在于,所述方法包括:
服务器侧加速设备在监听到第一客户端侧加速设备向FTP服务器发送第二FTP文件下载请求时,所述第二FTP文件下载请求中携带FTP文件标识,拦截该第二FTP文件下载请求,确定本地FTP缓存索引表中是否包括该FTP文件标识,其中,所述第二FTP文件下载请求是第一客户端侧加速设备在监听到FTP客户端向所述FTP服务器发送的第一FTP文件下载请求,所述第一FTP文件下载请求中携带所述FTP文件标识,拦截该第一FTP文件下载请求,并在确定自身没有缓存所述FTP文件标识表示的FTP文件时发送的,所述本地FTP缓存索引表包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识,以及上传该FTP文件标识表示的FTP文件的客户端侧加速设备的地址;
如果确定本地FTP缓存索引表中包括第二FTP文件下载请求中携带的FTP文件标识,根据本地FTP缓存索引表确定上传该FTP文件标识表示的FTP文件的第二客户端侧加速设备的地址,向所述第一客户端侧加速设备发送下载重定向响应报文,所述下载重定向响应报文中携带所述第二客户端侧加速设备的地址,指示第一客户端侧加速设备从所述第二客户端侧加速设备下载该FTP文件。
6.如权利要求5所述的方法,其特征在于,所述本地FTP缓存索引表中,还包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识表示的FTP文件的上传状态,则,服务器侧加速设备确定本地FTP缓存索引表中包括第二FTP文件下载请求中携带的FTP文件标识之后,向所述第一客户端侧加速设备发送下载重定向响应报文之前,所述方法还包括:
服务器侧加速设备根据所述本地FTP缓存索引表确定第二FTP文件下载请求中携带的FTP文件标识表示的FTP文件的上传状态;
服务器侧加速设备向所述第一客户端侧加速设备发送下载重定向响应报文,具体包括:
服务器侧加速设备在确定第二FTP文件下载请求中携带的FTP文件标识表示的FTP文件的上传状态为上传未完成时,向所述第一客户端侧加速设备发送下载重定向响应报文。
7.如权利要求6所述的方法,其特征在于,所述本地FTP缓存索引表中,还包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识表示的FTP文件需要写入的路径,服务器侧加速设备拦截第二FTP文件下载请求之前,所述方法还包括:
服务器侧加速设备在监听到所述FTP客户端向所述FTP服务器发送的获取目录请求时,所述获取目录请求用于请求获得所述FTP服务器中指定路径下保存的FTP文件目录,拦截该获取目录请求,并从所述FTP服务器获取所述FTP文件目录;
服务器侧加速设备确定本地FTP缓存索引表中是否有需要写入所述指定路径的FTP文件的上传状态为上传未完成,若确定本地FTP缓存索引表中有需要写入所述指定路径的FTP文件的上传状态为上传未完成,将该FTP文件的指定信息写入所述FTP文件目录,并将写入指定信息后的FTP文件目录发送至所述FTP客户端,否则,将从所述FTP服务器获取的FTP文件目录发送至所述FTP客户端。
8.如权利要求5-7任一所述的方法,其特征在于,所述方法还包括:
服务器侧加速设备如果确定本地FTP缓存索引表中不包括第二FTP文件下载请求中携带的FTP文件标识,向所述FTP服务器发送第三FTP文件下载请求,所述第三FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件至所述第一客户端侧加速设备。
9.一种文件传输协议FTP文件下载方法,其特征在于,所述方法包括:
第一客户端侧加速设备在监听到FTP客户端向FTP服务器发送的第一FTP文件下载请求时,所述第一FTP文件下载请求中携带FTP文件标识,拦截该第一FTP文件下载请求,确定自身是否缓存有所述FTP文件标识表示的FTP文件;
第一客户端侧加速设备在确定自身没有缓存所述FTP文件标识表示的FTP文件时,向所述FTP服务器发送第二FTP文件下载请求,所述第二FTP文件下载请求中携带所述FTP文件标识;
第一客户端侧加速设备在接收到服务器侧加速设备发送的下载重定向响应报文时,所述下载重定向响应报文中携带正在上传或已上传所述FTP文件的第二客户端侧加速设备的地址,向所述第二客户端侧加速设备发送第四FTP文件下载请求,所述第四FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件。
10.如权利要求9所述的方法,其特征在于,第一客户端侧加速设备拦截该第一FTP文件下载请求之后,所述方法还包括:
第一客户端侧加速设备在确定自身缓存有所述FTP文件标识表示的FTP文件时,将自身缓存的该FTP文件发送至所述FTP客户端。
11.一种文件传输协议FTP文件上传装置,其特征在于,所述装置包括:
拦截模块,用于在监听到FTP客户端向FTP服务器发送的第一FTP文件上传请求时,所述第一FTP文件上传请求中携带FTP文件标识,拦截该第一FTP文件上传请求;
发送模块,用于在拦截模块拦截到所述第一FTP文件上传请求时,向所述FTP客户端发送第一响应报文,第一响应报文用于通知所述FTP客户端,可以向所述FTP服务器发送数据;还用于向所述FTP客户端发送第二响应报文之后,断开与所述FTP客户端的FTP连接,并建立与所述FTP服务器的FTP连接,向所述FTP服务器发送第二FTP文件上传请求,所述第二FTP文件上传请求用于请求将所述装置缓存的所述FTP文件发送至所述FTP服务器;
缓存模块,用于接收并缓存所述FTP客户端发送的所述FTP文件标识表示的FTP文件;
所述发送模块,还用于在缓存模块接收所述FTP文件完毕之后,向所述FTP客户端发送第二响应报文,第二响应报文用于通知所述FTP客户端,所述FTP服务器接收所述FTP文件完毕。
12.如权利要求11所述的装置,其特征在于,所述缓存模块,具体用于接收并缓存所述FTP客户端发送的所述FTP文件的数据分块,并在一个数据分块接收完毕时,向所述FTP客户端发送第三响应报文,第三响应报文用于通知所述FTP客户端发送下一个数据分块。
13.如权利要求11所述的装置,其特征在于,所述装置还包括:
记录模块,用于监听并记录所述FTP客户端登录所述FTP服务器时输入的登录信息;
所述发送模块,用于建立与所述FTP服务器的FTP连接,具体为,利用所述登录信息登录所述FTP服务器。
14.如权利要求11-13任一所述的装置,其特征在于,所述装置还包括:
更新模块,用于在缓存模块接收所述FTP文件完毕之后,更新本地缓存数据库列表,更新后的本地缓存数据库列表包括表示所述FTP文件缓存在本地缓存数据库的信息。
15.一种文件传输协议FTP文件下载装置,其特征在于,所述装置包括:
拦截模块,用于在监听到第一客户端侧加速设备向FTP服务器发送第二FTP文件下载请求时,所述第二FTP文件下载请求中携带FTP文件标识,拦截该第二FTP文件下载请求,其中,所述第二FTP文件下载请求是第一客户端侧加速设备在监听到FTP客户端向所述FTP服务器发送的第一FTP文件下载请求,所述第一FTP文件下载请求中携带所述FTP文件标识,拦截该第一FTP文件下载请求,并在确定自身没有缓存所述FTP文件标识表示的FTP文件时发送的;
确定模块,用于在拦截模块拦截到所述第二FTP文件下载请求时,确定本地FTP缓存索引表中是否包括该FTP文件标识,所述本地FTP缓存索引表包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识,以及上传该FTP文件标识表示的FTP文件的客户端侧加速设备的地址;
发送模块,用于在确定模块确定本地FTP缓存索引表中包括第二FTP文件下载请求中携带的FTP文件标识时,根据本地FTP缓存索引表确定上传该FTP文件标识表示的FTP文件的第二客户端侧加速设备的地址,向所述第一客户端侧加速设备发送下载重定向响应报文,所述下载重定向响应报文中携带所述第二客户端侧加速设备的地址,指示第一客户端侧加速设备从所述第二客户端侧加速设备下载该FTP文件。
16.如权利要求15所述的装置,其特征在于,所述确定模块,还用于根据所述本地FTP缓存索引表确定第二FTP文件下载请求中携带的FTP文件标识表示的FTP文件的上传状态,所述本地FTP缓存索引表中,还包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识表示的FTP文件的上传状态;
所述发送模块,用于向所述第一客户端侧加速设备发送下载重定向响应报文,具体为,在确定第二FTP文件下载请求中携带的FTP文件标识表示的FTP文件的上传状态为上传未完成时,向所述第一客户端侧加速设备发送下载重定向响应报文。
17.如权利要求16所述的装置,其特征在于,所述拦截模块,还用于在监听到所述FTP客户端向所述FTP服务器发送的获取目录请求时,所述获取目录请求用于请求获得所述FTP服务器中指定路径下保存的FTP文件目录,拦截该获取目录请求,并从所述FTP服务器获取所述FTP文件目录,所述本地FTP缓存索引表中,还包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识表示的FTP文件需要写入的路径;
所述发送模块,还用于确定本地FTP缓存索引表中是否有需要写入所述指定路径的FTP文件的上传状态为上传未完成,若确定本地FTP缓存索引表中有需要写入所述指定路径的FTP文件的上传状态为上传未完成,将该FTP文件的指定信息写入所述FTP文件目录,并将写入指定信息后的FTP文件目录发送至所述FTP客户端,否则,将从所述FTP服务器获取的FTP文件目录发送至所述FTP客户端。
18.如权利要求15~17任一所述的装置,其特征在于,所述发送模块,还用于在确定模块确定本地FTP缓存索引表中不包括第二FTP文件下载请求中携带的FTP文件标识时,向所述FTP服务器发送第三FTP文件下载请求,所述第三FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件至所述第一客户端侧加速设备。
19.一种文件传输协议FTP文件下载装置,其特征在于,所述装置包括:
拦截模块,用于在监听到FTP客户端向FTP服务器发送的第一FTP文件下载请求时,所述第一FTP文件下载请求中携带FTP文件标识,拦截该第一FTP文件下载请求;
确定模块,用于确定所述装置是否缓存有所述FTP文件标识表示的FTP文件;
发送模块,用于在确定模块确定出所述装置没有缓存所述FTP文件标识表示的FTP文件时,向所述FTP服务器发送第二FTP文件下载请求,所述第二FTP文件下载请求中携带所述FTP文件标识;
接收模块,用于接收服务器侧加速设备发送的下载重定向响应报文;
所述发送模块,还用于在接收模块接收到服务器侧加速设备发送的下载重定向响应报文时,所述下载重定向响应报文中携带正在上传或已上传所述FTP文件的第二客户端侧加速设备的地址,向所述第二客户端侧加速设备发送第四FTP文件下载请求,所述第四FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件。
20.如权利要求19所述的装置,其特征在于,所述发送模块,还用于在确定模块确定出所述装置缓存有所述FTP文件标识表示的FTP文件时,将所述装置缓存的该FTP文件发送至所述FTP客户端。
一种FTP文件上传、下载方法及装置\n技术领域\n[0001] 本发明涉及通信领域,尤其涉及一种文件传输协议(FTP,File \nTransferProtocol)文件上传、下载方法及装置。\n背景技术\n[0002] FTP是传输控制协议/互联网协议(TCP/IP)网络上两台计算机之间传送文件的协议,是在TCP/IP网络和互联网(INTERNET)上最早使用的协议之一,属于网络协议组的应用层。FTP客户端可以向FTP服务器发出请求,从FTP服务器下载文件,向FTP服务器上传文件,并可以创建或改变FTP服务器上的目录。\n[0003] 在现有技术中,FTP服务器作为资源共享服务器被大量使用,FTP服务器和FTP客户端可以跨广域网连接,网络部署可以如图1所示。因此,FTP客户端需要在跨广域网环境下与FTP服务器建立连接,进行FTP文件的上传和下载等相关操作。为了加速FTP服务器和FTP客户端之间的数据传输,可以利用加速设备旁挂于出口设备的部署方式,在FTP服务器侧和FTP客户端侧分别部署服务器侧加速设备和客户端侧加速设备,使得在广域网环境下可以获得近似局域网的应用访问体验,FTP服务器和FTP客户端的连接可以如图2所示。\n但FTP客户端在跨广域网环境下的FTP文件的上传和下载等相关操作仍存在以下问题:\n[0004] 1、由于FTP协议是基于TCP/IP协议栈作为传输层协议开发,而TCP协议是针对局域网设计的,因此,在遇到高延时的链路时,数据传输性能会急骤下降。在跨广域网传输情况下,广域网延迟比较大,通常会达到50-200ms,丢包可能达到1%左右(而局域网相对于广域网延迟很小(小于1ms),基本不存在丢包),导致FTP文件传输减慢。\n[0005] 2、如果FTP客户端数量较多,还存在FTP服务器的压力问题。若FTP客户端向FTP服务器发起的请求过于集中,会导致FTP服务器的输入/输出(I/O)瓶颈,从而导致FTP文件下载速度较慢。\n[0006] 为了解决以上问题,现有技术主要包括以下三种解决方案:\n[0007] 第一种、利用TCP协议优化、数据压缩和重复数据删除加速FTP文件传输。\n[0008] TCP协议优化主要包括:大的初始化端口、窗口拓展、选择重传、高级拥塞算法等对传统TCP协议进行拓展优化,但对于大文件传输加速效果有限。\n[0009] 数据压缩是指采用压缩算法对文件进行压缩后传输,并在对端加速设备进行重新解压。此处的压缩功能与软件压缩传输基本一致,也存在软件压缩的弊端。\n[0010] 重复数据删除原理是FTP客户端从FTP服务器下载文件A时,服务器侧加速设备与客户端侧加速设备分别以数据分块的方式缓存(加速设备保存)该文件A,并通过编码对每个数据分块生成特点的标签。当有FTP客户端再次通过该客户端侧加速设备向FTP服务器下载文件A时,服务器侧加速设备比对当前文件A的数据分块是否与之前缓存的文件A数据分块一致,若数据分块均一致,以每个数据标签代替真实数据的方式传输给客户端侧加速设备,客户端侧加速设备通过标签还原真实数据分块并投递至相关的FTP客户端,从而节省大量数据在广域网传输占用的时间,提升用户体验。但重复数据删除只有在非首次传输(下载)一个FTP文件时才有加速效果,首次传输(下载)并无加速效果。\n[0011] 第二种、利用FTP文件预取加速FTP文件传输。\n[0012] 在FTP预取方案中,客户端侧加速设备按照管理员配置好的策略,在非工作时间段(一般为凌晨至次日6点)下载指定FTP目录下所有文件至加速设备FTP预取数据库。而后当FTP客户端需要向FTP服务器获取预取文件时,客户端侧加速设备将保留的文件信息反馈给FTP客户端,从而实现下载加速、提升用户体验。但是,这种FTP预取方案只能针对下载方向进行加速,却无法提供上传方向的加速。这是由于:\n[0013] 下载行为是FTP客户端主动请求FTP服务器发送指定文件,在这个过程中针对指定的FTP服务器和文件,客户端侧加速设备可以事先代替FTP客户端向FTP服务器请求指定文件。待FTP客户端需要该指定文件时,再发给该FTP客户端。而上传行为是FTP客户端发送指定文件给指定FTP服务器,在这个过程中数据源变成了FTP客户端,而这个数据源是不固定和随机的(FTP客户端都有可能上传文件),因此,如何预取数据源便是一大问题。\n再者,在上传过程中FTP服务器只是被动地进行数据接收,FTP服务器不会也无法主动去获取指定文件,这样就算预取了FTP客户端要上传的文件但却仍无法同步给FTP服务器。所以,FTP预取方案并无法实现对FTP上传的加速。\n[0014] 同时,由于FTP预取方案是在特定的时间段对指定的FTP服务器的指定文件目录中的FTP文件进行下载,还存在无法及时地将更新的文件同步到客户端侧加速设备的问题。\n[0015] 第三种、基于内容分发网络(CDN,Content Delivery Network)进行网络部署,加速FTP文件传输。\n[0016] 针对在广域网环境下,FTP文件传输在上传方向无法加速的问题,一些大的互联网内容提供商(ICP)引入CDN FTP解决方案。\n[0017] CDN FTP解决方案需要分布式存储、负载均衡、网络请求的重定向和内容管理等多个组件的协同工作,才能解决FTP上传下载的加速问题。这种复杂的网络部署一般适用于大型的互联网服务提供商或互联网内容提供商,使互联网接入用户能快速访问他们提供的服务和内容。\n[0018] 但CDN FTP解决方案存在以下问题:\n[0019] (1)、CDN FTP部署需要投入大量的建设和维护成本;\n[0020] (2)、需要将FTP文件公开在互联网上,无法保证FTP文件的安全性;\n[0021] (3)、CDN FTP部署需要利用域名解析来进行FTP请求的重定向,因此需要搭建域名系统(DNS)服务器,除了增加成本之外,由于DNS的查找和重定向本身也会带来一定的数据传输延迟。\n[0022] 综上所述,目前还没有一种方案能够较好地解决在跨广域网环境下,FTP文件传输速度较慢,尤其是对于FTP客户端而言,上传FTP文件速度较慢的问题。\n发明内容\n[0023] 本发明实施例提供一种FTP文件上传、下载方法及装置,用于解决在跨广域网环境下,FTP文件传输速度较慢的问题。\n[0024] 一种文件传输协议FTP文件上传方法,所述方法包括:\n[0025] 客户端侧加速设备在监听到FTP客户端向FTP服务器发送的第一FTP文件上传请求时,所述第一FTP文件上传请求中携带FTP文件标识,拦截该第一FTP文件上传请求,并向所述FTP客户端发送第一响应报文,第一响应报文用于通知所述FTP客户端,可以向所述FTP服务器发送数据;\n[0026] 客户端侧加速设备接收并缓存所述FTP客户端发送的所述FTP文件标识表示的FTP文件,并在该FTP文件接收完毕之后,向所述FTP客户端发送第二响应报文,第二响应报文用于通知所述FTP客户端,所述FTP服务器接收所述FTP文件完毕。\n[0027] 一种文件传输协议FTP文件下载方法,所述方法包括:\n[0028] 服务器侧加速设备在监听到第一客户端侧加速设备向FTP服务器发送第二FTP文件下载请求时,所述第二FTP文件下载请求中携带FTP文件标识,拦截该第二FTP文件下载请求,确定本地FTP缓存索引表中是否包括该FTP文件标识,其中,所述第二FTP文件下载请求是第一客户端侧加速设备在监听到FTP客户端向所述FTP服务器发送的第一FTP文件下载请求,所述第一FTP文件下载请求中携带所述FTP文件标识,拦截该第一FTP文件下载请求,并在确定自身没有缓存所述FTP文件标识表示的FTP文件时发送的,所述本地FTP缓存索引表包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识,以及上传该FTP文件标识表示的FTP文件的客户端侧加速设备的地址;\n[0029] 如果确定本地FTP缓存索引表中包括第二FTP文件下载请求中携带的FTP文件标识,根据本地FTP缓存索引表确定上传该FTP文件标识表示的FTP文件的第二客户端侧加速设备的地址,向所述第一客户端侧加速设备发送下载重定向响应报文,所述下载重定向响应报文中携带所述第二客户端侧加速设备的地址,指示第一客户端侧加速设备从所述第二客户端侧加速设备下载该FTP文件。\n[0030] 一种文件传输协议FTP文件下载方法,所述方法包括:\n[0031] 第一客户端侧加速设备在监听到FTP客户端向FTP服务器发送的第一FTP文件下载请求时,所述第一FTP文件下载请求中携带FTP文件标识,拦截该第一FTP文件下载请求,确定自身是否缓存有所述FTP文件标识表示的FTP文件;\n[0032] 第一客户端侧加速设备在确定自身没有缓存所述FTP文件标识表示的FTP文件时,向所述FTP服务器发送第二FTP文件下载请求,所述第二FTP文件下载请求中携带所述FTP文件标识;\n[0033] 第一客户端侧加速设备在接收到服务器侧加速设备发送的下载重定向响应报文时,所述下载重定向响应报文中携带正在上传或已上传所述FTP文件的第二客户端侧加速设备的地址,向所述第二客户端侧加速设备发送第四FTP文件下载请求,所述第四FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件。\n[0034] 一种文件传输协议FTP文件下载方法,所述方法包括:\n[0035] 第二客户端侧加速设备接收第一客户端侧加速设备发送的第四FTP文件下载请求,所述第四FTP文件下载请求中携带所述FTP文件标识;\n[0036] 第二客户端侧加速设备将所述FTP文件标识表示的FTP文件发送给所述第一客户端侧加速设备。\n[0037] 一种文件传输协议FTP文件上传装置,所述装置包括:\n[0038] 拦截模块,用于在监听到FTP客户端向FTP服务器发送的第一FTP文件上传请求时,所述第一FTP文件上传请求中携带FTP文件标识,拦截该第一FTP文件上传请求;\n[0039] 发送模块,用于在拦截模块拦截到所述第一FTP文件上传请求时,向所述FTP客户端发送第一响应报文,第一响应报文用于通知所述FTP客户端,可以向所述FTP服务器发送数据;\n[0040] 缓存模块,用于接收并缓存所述FTP客户端发送的所述FTP文件标识表示的FTP文件;\n[0041] 所述发送模块,还用于在缓存模块接收所述FTP文件完毕之后,向所述FTP客户端发送第二响应报文,第二响应报文用于通知所述FTP客户端,所述FTP服务器接收所述FTP文件完毕。\n[0042] 一种文件传输协议FTP文件下载装置,所述装置包括:\n[0043] 拦截模块,用于在监听到第一客户端侧加速设备向FTP服务器发送第二FTP文件下载请求时,所述第二FTP文件下载请求中携带FTP文件标识,拦截该第二FTP文件下载请求,其中,所述第二FTP文件下载请求是第一客户端侧加速设备在监听到FTP客户端向所述FTP服务器发送的第一FTP文件下载请求,所述第一FTP文件下载请求中携带所述FTP文件标识,拦截该第一FTP文件下载请求,并在确定自身没有缓存所述FTP文件标识表示的FTP文件时发送的;\n[0044] 确定模块,用于在拦截模块拦截到所述第二FTP文件下载请求时,确定本地FTP缓存索引表中是否包括该FTP文件标识,所述本地FTP缓存索引表包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识,以及上传该FTP文件标识表示的FTP文件的客户端侧加速设备的地址;\n[0045] 发送模块,用于在确定模块确定本地FTP缓存索引表中包括第二FTP文件下载请求中携带的FTP文件标识时,根据本地FTP缓存索引表确定上传该FTP文件标识表示的FTP文件的第二客户端侧加速设备的地址,向所述第一客户端侧加速设备发送下载重定向响应报文,所述下载重定向响应报文中携带所述第二客户端侧加速设备的地址,指示第一客户端侧加速设备从所述第二客户端侧加速设备下载该FTP文件。\n[0046] 一种文件传输协议FTP文件下载装置,所述装置包括:\n[0047] 拦截模块,用于在监听到FTP客户端向FTP服务器发送的第一FTP文件下载请求时,所述第一FTP文件下载请求中携带FTP文件标识,拦截该第一FTP文件下载请求;\n[0048] 确定模块,用于确定所述装置是否缓存有所述FTP文件标识表示的FTP文件;\n[0049] 发送模块,用于在确定模块确定出所述装置没有缓存所述FTP文件标识表示的FTP文件时,向所述FTP服务器发送第二FTP文件下载请求,所述第二FTP文件下载请求中携带所述FTP文件标识;\n[0050] 接收模块,用于接收服务器侧加速设备发送的下载重定向响应报文;\n[0051] 所述发送模块,还用于在接收模块接收到服务器侧加速设备发送的下载重定向响应报文时,所述下载重定向响应报文中携带正在上传或已上传所述FTP文件的第二客户端侧加速设备的地址,向所述第二客户端侧加速设备发送第四FTP文件下载请求,所述第四FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件。\n[0052] 一种文件传输协议FTP文件下载装置,所述装置包括:\n[0053] 接收模块,用于接收第一客户端侧加速设备发送的第四FTP文件下载请求,所述第四FTP文件下载请求中携带所述FTP文件标识;\n[0054] 发送模块,用于在接收模块接收到所述第四FTP文件下载请求时,将所述FTP文件标识表示的FTP文件发送给所述第一客户端侧加速设备。\n[0055] 根据本发明实施例提供的方案,可以由客户端侧加速设备冒充FTP服务器,响应该客户端侧加速设备监听到的FTP客户端的第一FTP文件上传请求,接收并缓存FTP客户端上传的FTP文件,并在FTP文件接收完毕后,冒充FTP服务器通知所述FTP客户端,所述FTP文件上传到FTP服务器。由于客户端侧加速设备与上传FTP文件的FTP客户端位于同一局域网,使得FTP客户端的上传操作在局域网环境下完成,从而加速FTP客户端的FTP文件上传速度,提升用户体验。\n[0056] 同时,服务器侧加速设备在监听到第一客户端侧加速设备发送的第二FTP文件下载请求时,拦截该FTP文件下载请求,如果本地FTP缓存索引表中包括该第二FTP文件下载请求中携带的FTP文件标识,可以向所述第一客户端侧加速设备发送下载重定向响应报文,指示第一客户端侧加速设备从上传该FTP文件的第二客户端侧加速设备下载该FTP文件。从而利用本地FTP缓存索引表实现FTP服务器与客户端侧加速设备上缓存的FTP文件的实时同步,可以使得正在上传的FTP文件也可以实时地被下载,无需等待该FTP文件上传完成,加快FTP文件下载速度,而通过从客户端侧加速设备下载FTP文件,还可以减少FTP文件下载对FTP服务器的连接压力,减轻FTP服务器负荷,提高FTP文件传输速度。\n附图说明\n[0057] 图1为现有技术提供的网络部署示意图;\n[0058] 图2为现有技术提供的FTP服务器与FTP客户端的连接示意图;\n[0059] 图3为本发明实施例一提供的FTP文件上传方法的步骤示意图;\n[0060] 图4为本发明实施例二提供的FTP文件下载方法的步骤示意图;\n[0061] 图5为本发明实施例三提供的FTP文件上传方法的步骤示意图;\n[0062] 图6为本发明实施例四提供的FTP文件下载方法的步骤示意图;\n[0063] 图7为本发明实施例五提供的FTP文件上传装置的结构示意图;\n[0064] 图8为本发明实施例六提供的FTP文件下载装置的结构示意图;\n[0065] 图9为本发明实施例七提供的FTP文件下载装置的结构示意图;\n[0066] 图10为本发明实施例八提供的FTP文件下载装置的结构示意图。\n具体实施方式\n[0067] 针对现有技术中,在跨广域网环境下,FTP文件传输速度较慢的问题,本发明实施例提出,可以利用客户端侧加速设备对FTP客户端上传的FTP文件进行透明代理缓存。将FTP客户端上传的FTP文件缓存至客户端侧加速设备,并伪造FTP服务器响应报文应答FTP客户端,使FTP客户端结束上传行为。该过程中,由于客户端侧加速设备与FTP客户端在同一局域网内,因此最大程度的减少了FTP客户端文件上传的等待时间,极大的提升了用户的体验。\n[0068] 客户端侧加速设备将FTP客户端上传的FTP文件进行透明代理缓存后,发送FTP上传请求给服务器侧加速设备进行数据同步。服务器侧加速设备监听并拦截到来自该客户端侧加速设备的上传请求后,提取文件信息及上传状态并记录。待监听和截获到其他客户端侧加速设备上产生的FTP下载请求后,可以将针对尚未上传完成的FTP文件的下载请求,集中索引并重定向到真实缓存了FTP文件的客户端侧加速设备上。从而在解决使用透明代理缓存进行上传加速带来的服务器侧加速设备与客户端侧加速设备之间FTP文件无法实时同步的问题的同时,无需等待FTP文件上传完成即可实现FTP文件下载,加快FTP文件下载速度,并可以减少FTP文件下载对FTP服务器的连接压力,进一步提高FTP文件下载速度。\n[0069] 下面结合说明书附图和各实施例对本发明方案进行说明。\n[0070] 实施例一、\n[0071] 本发明实施例一提供一种FTP文件上传方法,该方法的步骤可以如图3所示,包括:\n[0072] 步骤101、监听并拦截第一FTP文件上传请求。\n[0073] 为了实现客户端侧加速设备对FTP客户端需要上传至FTP服务器的FTP文件的缓存,客户端侧加速设备需要冒充所述FTP服务器,对所述FTP客户端向所述FTP服务器发送的报文进行响应,因此,在本步骤中,客户端侧加速设备需要监听所述FTP客户端向所述FTP服务器发送的FTP请求,并在从监听到的FTP请求中识别出第一FTP文件上传请求时,所述第一FTP文件上传请求中携带FTP文件标识,拦截第一FTP文件上传请求,阻止所述FTP服务器收到该第一FTP文件上传请求,从而防止所述FTP服务器对该第一FTP文件上传请求进行响应。\n[0074] 步骤102、发送第一响应报文。\n[0075] 在本步骤中,客户端侧加速设备可以冒充所述FTP服务器,对所述第一FTP文件上传请求进行响应,向所述FTP客户端发送第一响应报文,通知所述FTP客户端,可以向所述FTP服务器发送数据。\n[0076] 步骤103、接收并缓存FTP文件。\n[0077] 在本步骤中,客户端侧加速设备可以接收FTP客户端发送的FTP文件,并缓存该FTP文件。\n[0078] 较优的,客户端侧加速设备可以以数据分块的形式,接收并缓存所述FTP客户端发送的所述FTP文件,并在一个数据分块接收完毕时,向所述FTP客户端发送第三响应报文,第三响应报文用于通知所述FTP客户端发送下一个数据分块,从而可以获得完整的所述FTP文件。\n[0079] 具体的,可以将所述FTP文件缓存在本地缓存数据库。较优的,客户端侧加速设备可以在接收到完整的所述FTP文件之后,更新本地缓存数据库列表,更新后的本地缓存数据库列表包括表示所述FTP文件缓存在本地缓存数据库的信息,使得后续可以通过查找本地缓存数据库列表,确定该客户端侧加速设备的本地缓存数据库是否保存有所述FTP文件。\n[0080] 步骤104、发送第二响应报文。\n[0081] 客户端侧加速设备在所述FTP文件接收完毕之后,向所述FTP客户端发送第二响应报文,冒充所述FTP服务器,通知所述FTP客户端,所述FTP服务器接收所述FTP文件完毕。\n[0082] 通过步骤101~步骤104,客户端侧加速设备冒充FTP服务器完成FTP文件的接收和缓存,由于客户端侧加速设备与上传FTP文件的FTP客户端位于同一局域网,使得FTP文件上传在局域网环境下完成,相对于通过广域网实现FTP文件上传,FTP客户端的FTP文件上传速度大大加快。\n[0083] 进一步的,客户端侧加速设备还可以将自身缓存的所述FTP文件上传到所述FTP服务器,从而实现所述FTP服务器对所述FTP文件的保存,因此,本实施例还可以包括以下步骤:\n[0084] 步骤105、断开与所述FTP客户端的FTP连接。\n[0085] 客户端侧加速设备为了实现将缓存的所述FTP文件上传到所述FTP服务器,在本步骤中,需要断开与所述FTP客户端的FTP连接,从而断开所述FTP客户端与所述FTP服务器的FTP连接,以便后续建立自身与所述FTP服务器的FTP连接。\n[0086] 步骤106、建立与所述FTP服务器的FTP连接。\n[0087] 具体的,为了实现客户端侧加速设备与所述FTP服务器的FTP连接,在步骤101之前,客户端侧加速设备可以监听并记录所述FTP客户端登录所述FTP服务器时输入的登录信息(由于在步骤101中,所述FTP客户端可以向所述FTP服务器发送第一FTP文件上传请求,因此,所述FTP客户端必然已经利用登录信息登录了所述FTP服务器),则在本步骤中,客户端侧加速设备可以利用所述登录信息登录所述FTP服务器。\n[0088] 步骤107、发送第二FTP文件上传请求。\n[0089] 在本步骤中,客户端侧加速设备向所述FTP服务器发送第二FTP文件上传请求,所述第二FTP文件上传请求用于请求将自身缓存的所述FTP文件发送至所述FTP服务器,从而可以在接收到所述FTP服务器的响应报文时,将所述FTP文件上传至所述FTP服务器。\n[0090] 实施例二、\n[0091] 本发明实施例二提供一种FTP文件下载方法,该方法的步骤可以如图4所示,包括:\n[0092] 步骤201、监听并拦截第二FTP文件下载请求。\n[0093] 在本实施例中,可以由服务器侧加速设备实现FTP文件的集中索引和下载重定向,因此在本步骤中,服务器侧加速设备可以监听FTP请求,在监听到第一客户端侧加速设备向FTP服务器发送第二FTP文件下载请求时,所述第二FTP文件下载请求中携带FTP文件标识,拦截该第二FTP文件下载请求,防止FTP服务器收到该第二FTP文件下载请求,从而防止FTP服务器对该第二FTP文件下载请求做出响应。\n[0094] 其中,所述第二FTP文件下载请求是第一客户端侧加速设备在监听到FTP客户端向所述FTP服务器发送的第一FTP文件下载请求,所述第一FTP文件下载请求中携带所述FTP文件标识,拦截该第一FTP文件下载请求,并在确定自身没有缓存所述FTP文件标识表示的FTP文件时发送的。\n[0095] 当然,如果第一客户端侧加速设备确定自身缓存有所述FTP文件标识表示的FTP文件时,可以将自身缓存的该FTP文件发送至所述FTP客户端。\n[0096] 具体的,第一客户端侧加速设备确定自身是否缓存有所述FTP文件标识表示的FTP文件可以是通过查找本地缓存数据库列表实现的,若第一客户端侧加速设备确定本地缓存数据库列表不包括表示所述FTP文件缓存在本地缓存数据库的信息,则可以确定自身没有缓存所述FTP文件;若第一客户端侧加速设备确定本地缓存数据库列表包括表示所述FTP文件缓存在本地缓存数据库的信息,则可以确定自身缓存有所述FTP文件。\n[0097] 步骤202、查询本地FTP缓存索引表是否包括指定的FTP文件标识。\n[0098] 在本实施例中,可以在服务器侧加速设备中设置FTP缓存索引表。所述本地FTP缓存索引表可以理解为所述服务器侧加速设备每次在监听到客户端侧加速设备向所述FTP服务器发送第二FTP文件上传请求时,记录该第二FTP文件上传请求中携带的FTP文件标识表示的FTP文件的相关信息得到的。从而通过本地FTP缓存索引表记录客户端侧加速设备向所述FTP服务器上传的FTP文件的相关信息,实现FTP服务器与客户端侧加速设备上缓存的FTP文件的实时同步。\n[0099] 所述本地FTP缓存索引表可以包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识,以及上传该FTP文件标识表示的FTP文件的客户端侧加速设备的地址。\n[0100] 在拦截到第二FTP文件下载请求,确定一个客户端侧加速设备需要下载一个FTP文件时,服务器侧加速设备可以查询本地FTP缓存索引表,确定该FTP文件是否是由其他客户端侧加速设备上传的。如果是,则可以执行步骤203,并在步骤203执行完毕后结束,否则,可以执行步骤204。\n[0101] 具体的,在本步骤中,可以确定本地FTP缓存索引表中是否包括第二FTP文件下载请求中携带的FTP文件标识。\n[0102] 步骤203、向所述第一客户端侧加速设备发送下载重定向响应报文。\n[0103] 如果确定本地FTP缓存索引表中包括第二FTP文件下载请求中携带的FTP文件标识,可以指示需要下载该FTP文件的客户端侧加速设备从其他客户端侧加速设备下载该FTP文件。从而可以分流所述FTP服务器的下载压力,减轻所述FTP服务器的负荷,从而提高FTP文件的传输速度,同时,在一定程度上,可以实现所述FTP服务器与客户端侧加速设备之间FTP文件的实时同步,并可以保证即时没有上传到所述FTP服务器的FTP文件也可以被下载。\n[0104] 具体的,在本步骤中,可以根据本地FTP缓存索引表确定上传该FTP文件标识表示的FTP文件的第二客户端侧加速设备的标识,向所述第一客户端侧加速设备发送下载重定向响应报文,所述下载重定向响应报文中携带所述第二客户端侧加速设备的地址,指示第一客户端侧加速设备从所述第二客户端侧加速设备下载该FTP文件。\n[0105] 如果第一客户端侧加速设备接收到服务器侧加速设备发送的下载重定向响应报文,可以向所述第二客户端侧加速设备发送第四FTP文件下载请求,所述第四FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件。而第二客户端侧加速设备接收第一客户端侧加速设备发送的第四FTP文件下载请求,可以将所述FTP文件标识表示的FTP文件发送给所述第一客户端侧加速设备。\n[0106] 步骤204、发送第三FTP文件下载请求。\n[0107] 如果确定本地FTP缓存索引表中不包括第二FTP文件下载请求中携带的FTP文件标识,则可以通过FTP服务器来下载该FTP文件标识表示的FTP文件,保证该FTP文件的正常下载。\n[0108] 具体的,在本步骤中,可以向所述FTP服务器发送第三FTP文件下载请求,所述第三FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件至所述第一客户端侧加速设备。\n[0109] 需要说明的是,如果确定本地FTP缓存索引表中包括第二FTP文件下载请求中携带的FTP文件标识,该FTP文件标识表示的FTP文件可能已经上传至FTP服务器,也可能正在上传中,且表示FTP文件上传状态(上传完成或上传未完成的信息)也可以保存在所述本地FTP缓存索引表中。在本实施例中,还可以根据所述本地FTP缓存索引表确定该FTP文件标识表示的FTP文件的上传状态,并可以通过不同的方式,对上传状态不同的FTP文件进行下载。\n[0110] 因此,在步骤203中,如果确定本地FTP缓存索引表中包括第二FTP文件下载请求中携带的FTP文件标识,还可以根据所述本地FTP缓存索引表确定第二FTP文件下载请求中携带的FTP文件标识表示的FTP文件的上传状态,并在确定该上传状态为上传未完成时,确定该FTP文件暂时无法从所述FTP服务器下载,可以向所述第一客户端侧加速设备发送下载重定向响应报文,所述下载重定向响应报文中携带所述第二客户端侧加速设备的地址,指示第一客户端侧加速设备从所述第二客户端侧加速设备下载该FTP文件(即从正在上传该FTP文件的第二客户端侧加速设备下载该FTP文件)。而如果确定该上传状态为上传完成,此时也可以从所述FTP服务器下载该FTP文件(当然,也可以从上传完成该FTP文件的第二客户端侧加速设备下载该FTP文件,即从已上传该FTP文件的第二客户端侧加速设备下载该FTP文件),可以像步骤204那样,向所述FTP服务器发送第三FTP文件下载请求,所述第三FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件至所述第一客户端侧加速设备。\n[0111] 需要进一步说明的是,在步骤201之前,发送第一FTP文件下载请求的所述FTP客户端会向所述FTP服务器发送获取目录请求,服务器侧加速设备可以通过以下步骤将最新的FTP文件目录发送至所述FTP客户端。\n[0112] 步骤201’、监听并拦截获取目录请求。\n[0113] 服务器侧加速设备在监听到所述FTP客户端向所述FTP服务器发送的获取目录请求时,所述获取目录请求用于请求获得所述FTP服务器中指定路径下保存的FTP文件目录,可以拦截该获取目录请求,阻止所述FTP服务器收到该获取目录请求,从而阻止所述FTP服务器对该获取目录请求做出响应。\n[0114] 步骤201”、获取FTP文件目录。\n[0115] 在本步骤中,服务器侧加速设备可以与所述FTP服务器建立连接,并从所述FTP服务器获取所述FTP文件目录。\n[0116] 步骤201”’、确定是否需要更新FTP文件目录。\n[0117] 在本步骤中,服务器侧加速设备可以确定本地FTP缓存索引表中是否有需要写入所述指定路径的FTP文件的上传状态为上传未完成,若确定本地FTP缓存索引表中有需要写入所述指定路径的FTP文件的上传状态为上传未完成,由于FTP文件的指定信息是在该FTP文件上传完成后写入FTP文件目录,如果FTP文件的上传状态为上传未完成,则该FTP文件的指定信息尚未写入所述FTP文件目录,因此,将确定需要更新FTP文件目录,执行步骤201””,否则,确定不需要更新FTP文件目录,跳转执行步骤201””’。\n[0118] 步骤201””、更新FTP文件目录。\n[0119] 在本步骤中,若确定本地FTP缓存索引表中有需要写入所述指定路径的FTP文件的上传状态为上传未完成,则将该FTP文件的指定信息写入所述FTP文件目录,实现FTP文件目录的更新。\n[0120] 步骤201””’、发送FTP文件目录。\n[0121] 在本步骤中,服务器侧加速设备可以将最新的FTP文件目录发送至所述FTP客户端,使得所述FTP客户端可以根据该FTP文件目录确定需要从所述FTP服务器下载的FTP文件。\n[0122] 下面通过一个具体的实例对本发明实施例一的方案进行详细说明。本实施例以第一客户端侧加速设备连接的第一FTP客户端向FTP服务器进行FTP文件上传为例进行说明。\n[0123] 实施例三、\n[0124] 本发明实施例三提供一种FTP文件上传方法,该方法的步骤可以如图5所示,包括:\n[0125] 步骤301、第一FTP客户端发起建立FTP控制连接请求。\n[0126] 在本步骤中,第一FTP客户端可以向FTP服务器发起建立FTP控制连接请求,请求与所述FTP服务器建立FTP连接。\n[0127] 步骤302、第一FTP客户端与FTP服务器建立FTP连接。\n[0128] 在本步骤中,第一FTP客户端在接收到所述FTP服务器要求输入FTP登录信息的响应后,输入FTP登录信息,该FTP登录信息可以包括用户名和用户密码。\n[0129] 步骤303、第一客户端侧加速设备记录所述登录信息。\n[0130] 第一客户端侧加速设备监听并记录FTP客户端1的FTP登录信息中的用户名和用户密码,并可以保留至本地FTP访问列表,FTP访问列表格式如表1所示。\n[0131] \n ID FTP-Server USER PASS\n 01 172.16.10.2 test01 123456\n[0132] 表1\n[0133] 其中,ID字段内容表示FTP访问列表条目标识,FTP-Server字段内容表示所述FTP服务器的地址,USER字段内容表示用户名,PASS字段内容表示登录密码。\n[0134] 步骤304、第一FTP客户端发送第一FTP文件上传请求。\n[0135] 具体的,第一FTP客户端可以以“STOR+文件名”报文格式发送第一FTP文件上传请求,请求上传所述文件名表示的FTP报文。\n[0136] 步骤305、第一客户端侧加速设备接收FTP文件。\n[0137] 第一客户端侧加速设备在监听到第一FTP客户端向FTP服务器发送的第一FTP文件上传请求时,伪造FTP服务器的FTP响应报文(该报文格式可以为Response:150)响应第一FTP客户端的第一FTP文件上传请求,并缓存第一FTP客户端上传的数据分块,并伪造ACK报文确认所述FTP报文一个数据分块(如,FTP-DATE1)接收完毕以骗取下一个数据分块段(如,FTP-DATE2)。\n[0138] 步骤306、第一客户端侧加速设备校验文件一致性。\n[0139] 客户端侧加速设备在FTP文件接收完毕之后,向第一FTP客户端发送第二响应报文。第二响应报文的报文格式可以为“226Transfer complete+文件数据大小”,通知第一FTP客户端,所述FTP服务器接收所述FTP文件完毕,并请求第一FTP客户端对文件一致性进行校验。在接收到第一FTP客户端发馈的确认文件一致性校验通过的报文时,确定所述FTP文件接收完毕。\n[0140] 步骤307、第一客户端侧加速设备更新本地缓存数据库列表。\n[0141] 第一客户端侧加速设备可以将接收到的FTP报文缓存在本地缓存数据库,并可以在本步骤中,更新本地缓存数据库列表。缓存数据库列表格式可以如表2所示。\n[0142] \n ID FTP-Server Dir File-Name File-Size Modtime\n 01 172.16.10.2 /a A.txt 1025 201204011405\n[0143] 表2\n[0144] 其中,ID字段内容表示表示本地缓存数据库列表条目标识,FTP-Server字段内容表示所述FTP服务器地址,Dir字段内容表示所述FTP文件需要在所述FTP服务器中写入的路径,File-Name字段内容表示所述FTP文件的文件名,File-Size字段内容表示所述FTP文件的文件大小,可以以比特(Byte)作为单位,Modtime字段内容表示所述FTP文件向所述FTP服务器的上传时间(201204011405表示2012年4月1日14时05分)。\n[0145] 步骤308、第一客户端侧加速设备关闭与第一FTP客户端的FTP连接。\n[0146] 步骤309、第一客户端侧加速设备建立与FTP服务器的FTP连接。\n[0147] 在本步骤中,第一客户端侧加速设备可以模拟所述第一FTP客户端与FTP服务器建立FTP连接,具体的,第一客户端侧加速设备可以从FTP访问列表中提取第一FTP客户端登录所述FTP服务器时输入的登录信息,利用该登录信息登录所述FTP服务器,从而实现与FTP服务器的FTP连接。\n[0148] 步骤310、第一客户端侧加速设备上传所述FTP文件。\n[0149] 在本步骤中,第一客户端侧加速设备可以向所述FTP服务器发送第二FTP文件上传请求,并将从所述第一FTP客户端接收到,并缓存的所述FTP文件上传至所述FTP服务器。\n[0150] 步骤311、服务器侧加速设备记录相关信息。\n[0151] 在本步骤中,所述FTP服务器连接的服务器侧加速设备监听到第一客户端侧加速设备可以向所述FTP服务器发送的第二FTP文件上传请求时,可以将所述FTP文件的相关信息记录到本地FTP缓存索引表。FTP缓存索引表格式可以如表3所示。\n[0152] \n Peer-ID FTP-Server Dir File-Name File-Size Inpath-Address Synchronization Status[0153] \n 01 172.16.10.2 /a A.txt 1025 192.168.4.1 未完成\n[0154] 表3\n[0155] 其中,Peer-ID字段内容表示上传所述FTP文件的第一客户端侧加速设备的标识,FTP-Server字段内容表示所述FTP服务器地址,Dir字段内容表示所述FTP文件需要在所述FTP服务器中写入的路径,File-Name字段内容表示所述FTP文件的文件名称,File-Size字段内容表示所述FTP文件的文件大小,Inpath-Address字段内容表示上传所述FTP文件的第一客户端侧加速设备的地址,Synchronization Status字段内容表示上传状态。\n[0156] 步骤312、第一客户端侧加速设备关闭与所述FTP服务器的FTP连接。\n[0157] 第一客户端侧加速设备在上传所述FTP文件完毕后,可以关闭与所述FTP服务器的FTP连接,保证所述FTP客户端可以重新与所述FTP服务器建立FTP连接。\n[0158] 下面通过一个具体的实例对本发明实施例二的方案进行详细说明。本实施例以第二客户端侧加速设备连接的第二FTP客户端向FTP服务器进行FTP文件下载为例进行说明。\n[0159] 实施例四、\n[0160] 本发明实施例四提供一种FTP文件下载方法,该方法的步骤可以如图6所示,包括:\n[0161] 步骤401、第二FTP客户端与FTP服务器建立FTP连接。\n[0162] 步骤402、第二FTP客户端发送获取目录请求。\n[0163] 在本步骤中,第二FTP客户端可以向所述FTP服务器发送的获取目录请求,请求获取所述FTP服务器中指定路径下保存的FTP文件目录。\n[0164] 步骤403、服务器侧加速设备拦截获取目录请求。\n[0165] 在本步骤中,与所述FTP服务器连接的服务器侧加速设备可以拦截获取目录请求。\n[0166] 步骤404、服务器侧加速设备获取所述FTP文件目录。\n[0167] 服务器侧加速设备从所述FTP服务器中获取的FTP文件目录可以为如下格式:\n[0168] FTP-Data:-rw-rw-rw 1user group 1024Mar 9 10:58test.txt\r\n\n[0169] 该FTP文件目录表示所述FTP服务器指定路径下仅有文件名为test.txt的一\n个FTP文件,其中,-rw-rw-rw表示文件属性,r表示读权限w表示写权限;1表示文件数;\nuser表示文件所在用户级权限;group表示文件所在系统组权限;1024表示文件大小;Mar \n9 10:58表示文件更新时间;test.txt表示文件名;\r\n为结束符。\n[0170] 步骤405、服务器侧加速设备更新FTP文件目录。\n[0171] 在本步骤中,服务器侧加速设备可以确定本地FTP缓存索引表中是否有需要写入所述指定路径的FTP文件的上传状态为上传未完成。即,服务器侧加速设备可以以FTP Server字段内容为所述FTP服务器地址、Dir字段内容为所述指定路径和Synchronization Staus字段内容为未完成检索本地FTP缓存索引表条目,并将命中的条目中的指定信息写入所述FTP文件目录,实现FTP文件目录的更新。当然,如果没有命中的条目,则可以认为更新后的FTP文件目录即为更新前的FTP文件目录。\n[0172] 假设此时FTP缓存索引表内容如表4所示:\n[0173] \n Peer-ID FTP-Server Dir File-Name File-Size Inpath-Address Synchronization Status\n 01 172.16.10.2 /a A.txt 1025 192.168.4.1 未完成\n 02 172.16.10.2 /b B.txt 256 192.168.4.11 未完成\n 03 172.16.10.2 /c C.txt 2048 192.168.4.111 已完成\n[0174] 表4\n[0175] 若所述FTP服务器地址为172.16.10.2,所述指定路径为/a,则可以将表4中文件名为A.txt条目中的指定信息写入所述FTP文件目录,写入后的所述FTP文件目录可以如下所示:\n[0176] FTP-Data:-rw-rw-rw 1user group 1024Mar 9 10:58test.txt\r\n-rw-rw-rw \n1user group 1025Mar 10 09:00A.txt\r\n,其中,Mar 10 09:00表示服务器侧加速设备当前系统时间。\n[0177] 步骤406、服务器侧加速设备发送更新后的FTP文件目录。\n[0178] 在本步骤中,服务器侧加速设备可以将更新后的FTP文件目录发送到第二FTP客户端。\n[0179] 步骤407、第二FTP客户端发送第一FTP文件下载请求。\n[0180] 在本实施例中,以第二FTP客户端请求下载文件名为A.txt的FTP文件为例进行说明。\n[0181] 步骤408、第二客户端侧加速设备拦截第一FTP文件下载请求。\n[0182] 在本步骤中,第二客户端侧加速设备拦截第一FTP文件下载请求之后,可以检索本地缓存数据库列表,确定自身是否缓存有文件名为A.txt的FTP文件。具体的,可以以文件名为关键字进行检索。\n[0183] 在本实施例中,假设第二客户端侧加速设备确定自身没有缓存文件名为A.txt的FTP文件,则可以继续执行步骤409。\n[0184] 步骤409、第二客户端侧加速设备发送第二FTP文件下载请求。\n[0185] 第二客户端侧加速设备向FTP服务器发送第二FTP文件下载请求,请求从所述FTP服务器下载文件名为A.txt的FTP文件。\n[0186] 步骤410、服务器侧加速设备拦截第二FTP文件下载请求。\n[0187] 在本步骤中,服务器侧加速设备拦截第二FTP文件下载请求之后,可以检索本地FTP缓存索引表,确定是否需要由其他客户端侧加速设备提供文件名为A.txt的FTP文件的下载。\n[0188] 假设此时服务器侧加速设备中的FTP缓存索引表内容仍如表4所示,发现文件名为A.txt的FTP文件由Peer-ID字段内容为01、Inpath-address字段内容为192.168.4.1的第一客户端侧加速设备上传,并且还未上传完,则可以确定需要对FTP文件的下载进行重定向,继续执行步骤411,由第一客户端侧加速设备提供文件名为A.txt的FTP文件的下载。\n[0189] 当然,如果此时表4中文件名为A.txt的条目中,Synchronization Status字段内容为已完成,也可以向所述FTP服务器发送第三FTP文件下载请求,由所述FTP服务器提供文件名为A.txt的FTP文件的下载。\n[0190] 步骤411、服务器侧加速设备发送下载重定向响应报文。\n[0191] 在本步骤中,服务器侧加速设备可以向第二客户端侧加速设备发送下载重定向响应报文,该下载重定向响应报文格式可以为Response:302NewFTP.Address报文,其中的NewFTP.Address表示为第一客户端侧加速设备的地址(可以是通过表4查询到的\n192.168.4.1)。\n[0192] 该下载重定向响应报文内容可以如下:\n[0193] 302NewFTP.Address.\r\n\n[0194] Response code:redirect to NewFTP.Address for A(302)\n[0195] Response arg:redirect to NewFTP.Address for A\n[0196] 其中,A表示需要下载的FTP文件的文件名。\n[0197] 步骤412、第二客户端侧加速设备发送第四FTP文件下载请求。\n[0198] 第二客户端侧加速设备在接收到下载重定向响应报文之后,可以解析出文件名为A.txt的FTP文件下载可以由第一客户端侧加速设备提供,因此,第二客户端侧加速设备可以向第一客户端侧加速设备请求下载文件A。\n[0199] 与本发明实施例一~实施例四基于同一发明构思,提供以下的装置。\n[0200] 实施例五、\n[0201] 本发明实施例五提供一种FTP文件上传装置,该装置的结构可以如图7所示,包括:\n[0202] 拦截模块11用于在监听到FTP客户端向FTP服务器发送的第一FTP文件上传请求时,所述第一FTP文件上传请求中携带FTP文件标识,拦截该第一FTP文件上传请求;发送模块12用于在拦截模块拦截到所述第一FTP文件上传请求时,向所述FTP客户端发送第一响应报文,第一响应报文用于通知所述FTP客户端,可以向所述FTP服务器发送数据;缓存模块13用于接收并缓存所述FTP客户端发送的所述FTP文件标识表示的FTP文件;所述发送模块12还用于在缓存模块接收所述FTP文件完毕之后,向所述FTP客户端发送第二响应报文,第二响应报文用于通知所述FTP客户端,所述FTP服务器接收所述FTP文件完毕。\n[0203] 所述发送模块12还用于向所述FTP客户端发送第二响应报文之后,断开与所述FTP客户端的FTP连接,并建立与所述FTP服务器的FTP连接,向所述FTP服务器发送第二FTP文件上传请求,所述第二FTP文件上传请求用于请求将所述装置缓存的所述FTP文件发送至所述FTP服务器。\n[0204] 所述缓存模块13具体用于接收并缓存所述FTP客户端发送的所述FTP文件的数据分块,并在一个数据分块接收完毕时,向所述FTP客户端发送第三响应报文,第三响应报文用于通知所述FTP客户端发送下一个数据分块。\n[0205] 所述装置还包括记录模块14:\n[0206] 记录模块14用于监听并记录所述FTP客户端登录所述FTP服务器时输入的登录信息;\n[0207] 所述发送模块12用于建立与所述FTP服务器的FTP连接,具体为,利用所述登录信息登录所述FTP服务器。\n[0208] 所述装置还包括更新模块15:\n[0209] 更新模块15用于在缓存模块接收所述FTP文件完毕之后,更新本地缓存数据库列表,更新后的本地缓存数据库列表包括表示所述FTP文件缓存在本地缓存数据库的信息。\n[0210] 实施例六、\n[0211] 本发明实施例六提供一种FTP文件下载装置,该装置的结构可以如图8所示,包括:\n[0212] 拦截模块21用于在监听到第一客户端侧加速设备向FTP服务器发送第二FTP文件下载请求时,所述第二FTP文件下载请求中携带FTP文件标识,拦截该第二FTP文件下载请求,其中,所述第二FTP文件下载请求是第一客户端侧加速设备在监听到FTP客户端向所述FTP服务器发送的第一FTP文件下载请求,所述第一FTP文件下载请求中携带所述FTP文件标识,拦截该第一FTP文件下载请求,并在确定自身没有缓存所述FTP文件标识表示的FTP文件时发送的;确定模块22用于在拦截模块拦截到所述第二FTP文件下载请求时,确定本地FTP缓存索引表中是否包括该FTP文件标识,所述本地FTP缓存索引表包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识,以及上传该FTP文件标识表示的FTP文件的客户端侧加速设备的地址;发送模块23用于在确定模块确定本地FTP缓存索引表中包括第二FTP文件下载请求中携带的FTP文件标识时,根据本地FTP缓存索引表确定上传该FTP文件标识表示的FTP文件的第二客户端侧加速设备的地址,向所述第一客户端侧加速设备发送下载重定向响应报文,所述下载重定向响应报文中携带所述第二客户端侧加速设备的地址,指示第一客户端侧加速设备从所述第二客户端侧加速设备下载该FTP文件。\n[0213] 所述确定模块22还用于根据所述本地FTP缓存索引表确定第二FTP文件下载请求中携带的FTP文件标识表示的FTP文件的上传状态,所述本地FTP缓存索引表中,还包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识表示的FTP文件的上传状态;\n[0214] 所述发送模块23用于向所述第一客户端侧加速设备发送下载重定向响应报文,具体为,在确定第二FTP文件下载请求中携带的FTP文件标识表示的FTP文件的上传状态为上传未完成时,向所述第一客户端侧加速设备发送下载重定向响应报文。\n[0215] 所述拦截模块21还用于在监听到所述FTP客户端向所述FTP服务器发送的获取目录请求时,所述获取目录请求用于请求获得所述FTP服务器中指定路径下保存的FTP文件目录,拦截该获取目录请求,并从所述FTP服务器获取所述FTP文件目录,所述本地FTP缓存索引表中,还包括所述服务器侧加速设备针对每次监听到的客户端侧加速设备向所述FTP服务器发送的第二FTP文件上传请求,记录的该第二FTP文件上传请求中携带的FTP文件标识表示的FTP文件需要写入的路径;\n[0216] 所述发送模块23还用于确定本地FTP缓存索引表中是否有需要写入所述指定路径的FTP文件的上传状态为上传未完成,若确定本地FTP缓存索引表中有需要写入所述指定路径的FTP文件的上传状态为上传未完成,将该FTP文件的指定信息写入所述FTP文件目录,并将写入指定信息后的FTP文件目录发送至所述FTP客户端,否则,将从所述FTP服务器获取的FTP文件目录发送至所述FTP客户端。\n[0217] 所述发送模块23还用于在确定模块确定本地FTP缓存索引表中不包括第二FTP文件下载请求中携带的FTP文件标识时,向所述FTP服务器发送第三FTP文件下载请求,所述第三FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件至所述第一客户端侧加速设备。\n[0218] 实施例七、\n[0219] 本发明实施例七提供一种FTP文件下载装置,该装置的结构可以如图9所示,包括:\n[0220] 拦截模块31用于在监听到FTP客户端向FTP服务器发送的第一FTP文件下载请求时,所述第一FTP文件下载请求中携带FTP文件标识,拦截该第一FTP文件下载请求;\n[0221] 确定模块32用于确定所述装置是否缓存有所述FTP文件标识表示的FTP文件;\n[0222] 发送模块33用于在确定模块确定出所述装置没有缓存所述FTP文件标识表示的FTP文件时,向所述FTP服务器发送第二FTP文件下载请求,所述第二FTP文件下载请求中携带所述FTP文件标识;\n[0223] 接收模块34用于接收服务器侧加速设备发送的下载重定向响应报文;\n[0224] 所述发送模块33还用于在接收模块接收到服务器侧加速设备发送的下载重定向响应报文时,所述下载重定向响应报文中携带正在上传或已上传所述FTP文件的第二客户端侧加速设备的地址,向所述第二客户端侧加速设备发送第四FTP文件下载请求,所述第四FTP文件下载请求中携带所述FTP文件标识,请求下载所述FTP文件标识表示的FTP文件。\n[0225] 所述确定模块32具体用于查找本地缓存数据库列表,若确定本地缓存数据库列表不包括表示所述FTP文件缓存在本地本地缓存数据库的信息,则确定所述装置没有缓存所述FTP文件;若确定本地缓存数据库列表包括表示所述FTP文件缓存在本地本地缓存数据库的信息,则确定所述装置缓存有所述FTP文件。\n[0226] 所述发送模块33还用于在确定模块确定出所述装置缓存有所述FTP文件标识表示的FTP文件时,将所述装置缓存的该FTP文件发送至所述FTP客户端。\n[0227] 实施例八、\n[0228] 本发明实施例八提供一种FTP文件下载装置,该装置的结构可以如图10所示,包括:\n[0229] 接收模块41用于接收第一客户端侧加速设备发送的第四FTP文件下载请求,所述第四FTP文件下载请求中携带所述FTP文件标识;发送模块42用于在接收模块接收到所述第四FTP文件下载请求时,将所述FTP文件标识表示的FTP文件发送给所述第一客户端侧加速设备。\n[0230] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。\n[0231] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。\n[0232] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。\n[0233] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。\n[0234] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。\n[0235] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
法律信息
- 2016-03-02
- 2013-02-06
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 201210316535.0
申请日: 2012.08.30
- 2012-12-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-09-22
|
2009-03-19
| | |
2
| |
2010-04-28
|
2009-11-17
| | |
3
| |
2012-07-11
|
2011-12-31
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |