一种基于因特网标准的分布式文件传输方法

文档序号:6536086阅读:255来源:国知局
专利名称:一种基于因特网标准的分布式文件传输方法
技术领域
本发明属于因特网标准文件传输协议应用领域,具体涉及到一种基于因特网标准的分布式文件传输方法。
背景技术
FTP(File Transfer Protocol)即标准文件传输协议(RFC959,RFC1123等),用来在两台计算机之间互相传送文件。FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。传统的FTP要求被FTP客户端下载的文件必须位于FTP服务器本地存储设备或者服务器所在域内的存储设备,所有的数据流最终还是需要通过服务器然后转发给FTP客户端,FTP服务器本身有限的网络出口带宽严重限制了FTP性能,无法充分发挥分布式存储的优势。我们也注意到中国专利号02134670.4,名为“分布式文件同步系统及方法”的发明,但是该发明依然存在以下问题(1)重复存储,浪费有限的计算机存储设备;(2)实现过于复杂,效率低下;(3)依然受限于FTP服务器出口网络带宽,无法充分发挥分布式存储的优势;(4)动态加入新的存储系统开销巨大,资源浪费现象严重;(5)只是实现对FTP文件存储的分布式同步,并没有实现FTP操作和传输的分布式应用。

发明内容
针对现有技术中存在的缺陷,本发明提供一种基于因特网标准的支持分布式文件传输的方法,充分发挥点对点网络传输的优势,实现网络分布式FTP的应用。
为了达到以上目的,本发明采用的技术方案是一种基于因特网标准的分布式文件传输方法,包括1.将FTP服务分割为指令处理服务模块和文件传输服务模块,该两部分完全独立,可以分别在不同计算机不同操作系统上运行,该两部分通过IP网络连接,并通过预先规定的指令和参数格式以及顺序进行交流。
2.指令处理服务模块维持一个特定的虚拟目录文件结构,该特定的虚拟目录文件结构保存在计算机的内存中,也可以被缓冲到计算机的存储系统,它的作用是用来保存由文件传输服务模块传递过来的该模块下的目录和文件结构以及各种必要参数。
3.文件传输服务模块在连接到指令处理模块后,将该文件传输模块所针对的本地存储系统中的目录名和文件名以及长度等必要的相关参数按预先规定的格式发送给指令处理模块;指令处理模块在接受到这些参数后,将这些数据按特定格式加入到特定的虚拟目录文件结构中去;在文件传输服务模块断开连接后,则将这些数据从特定的虚拟目录文件结构中清除。
4.指令处理模块依据特定的虚拟目录文件结构中已有的目录和文件等数据,按照FTP协议为FTP客户端提供服务,并在文件传输指令到达并判断参数等正确后,将该指令和相关参数传递给相关文件传输服务模块进行处理,并等待处理结果。
5.文件传输服务模块在接到指令处理模块发送的文件传输指令和参数后,根据该指令和参数直接连接到FTP客户端指定的网络地址,不通过指令处理服务模块,即进行点对点的直接连接,在连接成功后进行指定的数据传输服务,并将处理结果返回给指令处理服务模块。
6.一个指令处理模块可以同时连接多个文件传输服务模块,并可以同时为多个FTP客户端提供服务;文件传输模块只处理指令处理模块传递的预定规格的指令和参数,而不直接接受FTP客户端的指令。
7.每个文件传输模块在连接到指令解析服务模块后,以一个虚拟目录的形式出现指令解析服务模块的特定虚拟目录文件结构中,该虚拟目录的位置位于FTP服务的根目录下,所有该模块传输的目录文件列表都位于该虚拟目录下。


图1本发明的简单逻辑流程结构2本发明的多用户多点连接结构模型
具体实施例方式首先,参考图1,将FTP服务器软件设计为两个独立的模块,指令处理服务模块和文件传输服务模块,该两部分完全独立,可以分别在不同计算机不同操作系统上运行,也可以运行在同一台计算机上,该两部分通过IP网络连接(可以是TCP,也可以是UDP,图1中的实线连接2),并通过预先规定的指令和参数格式以及顺序进行交流。图1其中的FTP客户端,指令解析服务,文件传输服务可分别位于3台计算机上,也可以位于同一台计算机上,FTP客户端按FTP标准采用TCP连接到指令解析服务模块所在计算机(图1中的实线连接1),FTP客户端与指令解析服务之间的虚线连接3表示FTP客户端通过LIST指令获取目录列表时,发生的FTP数据链路连接(TCP),而FTP客户端与文件传输服务之间的虚线连接4则表示,当FTP客户端要获取或者存储实际位于文件传输服务计算机上的文件时,发生的FTP数据链路连接(TCP)。例如,指令处理模块可以运行在计算机A上,位于某国某城市,而文件传输服务模块可以运行在计算机B上,位于任何一个地方,只要计算机B能够通过Ip网络连接到计算机A上,那么它们就可以组成一个最小的分布式FTP服务;由于一个指令处理服务模块可以同时连接多个文件传输服务模块,因此,可以有许多和B类似的计算机,运行文件传输服务模块,然后连接到计算机A,组成大规模分布式FTP服务。当同时有多个FTP客户端连接到该指令解析服务模块,参考图2,就构成了一个典型的分布式FTP应用,图中的FTP客户端计算机1与文件传输服务计算机M之间的虚线,表示当FTP客户端计算机存取实际位于文件传输服务计算机M上的文件时,发生的FTP数据传输链路连接(TCP),同样,FTP客户端计算机1也可以存取实际位于文件传输服务计算机1上的文件,这时候的FTP数据传输链路连接(TCP)就由文件传输服务计算机1与FTP客户端计算机1之间完成,图中因为整洁的原因这些交叉连接被省略,同样,FTP客户端和指令解析服务之间因为LIST列表指令而发生的FTP数据链路连接也被省略,但实际上也会发生。图2中我们还可以发现,事实上实际的文件数据进行传输时,完全不使用指令解析服务服务器的网络出口带宽,即不受指令解析服务器网络出口带宽的限制。
指令处理服务模块维持一个特定的虚拟目录文件结构,该特定的虚拟目录文件结构保存在指令处理服务模块所在计算机的内存中,也可以被缓冲到计算机的存储系统,它的作用是用来保存由文件传输服务模块传递过来的该模块下的目录和文件结构以及各种必要参数。所有来自FTP客户端对文件和目录的操作如CD等指令均被转向到该结构中进行判断处理,只有当FTP文件传输指令例如RETR,STOR等到达并检验参数正确后,指令解析服务模块才将该指令以及必须的参数按预先规定的格式和顺序转发给该文件实际目的所在文件传输模块,并等待处理结果;当文件传输服务模块连接到指令处理服务模块后,首先将该文件传输模块所针对的本地磁盘中的目录名和文件名以及长度等必要的相关属性参数按预先规定个格式发送给指令处理模块,指令处理模块则将这些数据进行分解处理后按照一定格式保存到该特定虚拟目录文件结构中去,具体方式是增加一个新的虚拟目录,该虚拟目录位置在FTP根目录下,使该虚拟目录和该文件传输服务模块保持对应关系,所有该模块的目录文件按原来的组织形式,放置在该虚拟目录下,在该文件传输服务模块断开连接后,则将这些数据和该虚拟目录从特定的虚拟目录文件结构中清除。例如某文件传输模块,指定本地计算机的某个磁盘中所有的目录和文件提供给FTP客户端,则它在连接到指令解析服务模块后,首先将该磁盘所有的目录和文件,以及长度等必要属性,按预先规定的格式,传输到指令解析服务模块,例如,我们预先定义该数据格式为用两个*字符为开头,然后是目录或者文件名(包括目录),接下来是一个*号,然后是个属性字符,用阿拉伯数字来替代,用0表示目录,1表示文件等,然后又是一个*号,然后紧跟32位或者64位文件长度,而后跟读写标志等,最后用两个?号结束**[文件名或者目录名]*[属性字符][文件长度]*[读写标志等]??这样,可以得到一个文件目录列表,将该列表发送给指令解析服务模块后,指令解析模块将该列表进行分解,并动态加入到特定的虚拟目录文件结构的一个代表该模块的虚拟目录下,即事实上,特定的虚拟目录文件结构是所有文件传输服务模块发送的目录文件列表的动态缓存。例如,假设代表该模块的虚拟目录为MODDIR01,那么当FTP客户端想对该模块下的文件进行操作时,必须在目录文件参数中显式给出该目录,或者使用CD指令首先将工作目录转换到MODDIR01。
FTP客户端的FTP指令到达指令解析服务模块后,指令解析模块依据特定的虚拟目录文件结构进行分析和处理,当接到实际文件传输指令,RETR和STOR后,首先判断参数等是否正确,并依据特定的虚拟目录文件结构分析出该文件实际位于的文件传输服务模块,完全正确则将该指令和参数按预定格式发送给实际所在的文件传输服务模块,并等待处理结果,否则返回失败结果给FTP客户端,例如,我们可以预先规定该格式为*两位阿拉伯数字*目录文件字符串*文件开始位置*FTP客户端指定的IP地址和端口*文件传输模式*其他参数*其中最前面的两位阿拉伯数字,01代表下载,02代表上传等,这样,文件传输服务模块接到该指令和参数后,根据这些参数进行处理,并返回结果给指令解析服务模块。很明显,和普通FTP服务器的处理方式完全不同,普通FTP服务器在接到FTP客户端的文件传输指令后,在本地存储系统上进行动作,而本发明则在远端通过IP连接过来的文件传输服务模块所在计算机上进行动作;如果FTP目录的列表LIST指令,则由指令解析服务模块负责,根据特定的虚拟目录文件结构进行处理,首先检查当前目录参数是否合法,不合法则返回错误给客户端或者传输空目录,合法,则在特定的虚拟目录文件结构中检索所有符合条件的目录和文件以及属性等,产生文件和目录列表,然后由指令解析服务模块所在的计算机与FTP客户端依据FTP客户端先前指定的连接方式(主动或者被动,以及IP地址等参数)进行连接,并传输文件和目录列表,然后将结果返回给FTP客户端,与通常的FTP服务器相比,通常的FTP服务器是根据本地存储系统来生成目录和文件列表,而本发明的列表则完全是由特定的虚拟目录文件结构来产生,不和本地存储系统发生直接联系。对于其他的FTP指令,除PASV指令外,和通常FTP服务器的处理一致。
PASV指令的处理FTP默认的方式是PORT主动连接模式,在这种模式下,由于是由服务器端主动去连接FTP客户端,因此在分布式FTP的应用中,完全兼容;但是FTP协议也提供了被动连接的选择,即PASV,在这种模式下,是由FTP客户端连接到服务器,这时候就有冲突了,由于LIST指令是由指令解析服务模块来处理,因此要求的IP地址是指令解析服务模块所在计算机的IP地址和端口,而RETR,STOR等文件传输指令则要求的是文件传输服务模块所在的计算机的IP地址和端口,而我们并不知道FTP客户下一个指令究竟会是LIST或者是文件传输指令STOR或者RETR等,因此无法准确给出PASV的IP地址和TCP端口号。我们的解决办法是当FTP客户端当前目录是FTP根目录时,PASV给出的是指令解析服务模块所在计算机的IP地址和TCP监听端口(只用于LIST目录列表);当FTP客户端位于非根目录时,则首先判断该当前虚拟目录实际代表的文件传输服务模块所在的计算机的IP地址,然后给出该模块指定的IP地址和TCP监听端口号,如果该模块禁止使用PASV被动模式,则直接拒绝FTP客户端的PASV指令。该指令的处理方式也和通常FTP服务器不同,通常FTP服务器在接到PASV被动指令后,如果允许,则给出的都是本服务器所在的IP地址,而本发明则根据FTP客户端所处不同的当前目录给出不同的IP地址。
在指令解析服务模块中,当没有任何文件传输服务模块连接时,它的特定虚拟目录文件结构是空的,这时候,FTP客户端连接到指令解析服务模块,得到的是个空的根目录;当一个文件传输服务模块连接到指令解析服务模块后,代表该文件传输服务模块的一个虚拟目录将被指令解析服务模块增加到FTP服务的根目录下,这时候,FTP使用LIST指令后,将看到在FTP服务的根目录下有这个虚拟目录,进入该虚拟目录后,将可以获取该文件传输服务模块所代表的文件和目录。而根据这个FTP根目录下的虚拟目录,我们也可以判断出与其对应的文件传输服务模块。
文件传输服务模块,在连接到指令解析服务模块,并传递完必要的目录文件等参数后,则根据预先规定的指令格式和顺序和指令解析服务模块进行互动,在接到文件传输指令后则根据参数要求进行动作,并将结果通过IP网络按预先规定的格式顺序返回给指令解析服务模块,文件传输服务不直接接受FTP客户端的指令连接,但是在发生文件传输时,则直接和指定的FTP客户端进行网络连接(即FTP协议中的数据传输连接),发送或者接受文件内容,但是结果返回给指令解析服务,而不是直接返回给FTP客户端,即对于FTP客户端来说,文件传输服务模块实际是不可见的。
综上所述,本发明的优点是1,充分发挥了点对点传输的优势,完全利用了分布式网络各点的带宽优势,突破了普通FTP服务器受困于服务器出口带宽的缺陷。
2,突破了普通服务器要求存储系统必须位于本地或者本域的缺陷,实现了存储系统的IP网络化。
3,可以轻松的实现动态增加FTP存储系统(通过文件传输服务模块)。
4,无须重复存储,可以充分利用PC客户端充当FTP服务的存储节点。
5,同时支持FTP与点对点文件传输服务。
权利要求
1,一种基于因特网标准的分布式文件传输方法,包括1)将FTP服务分割为指令处理服务模块和文件传输服务模块,该两部分完全独立,可以分别在不同计算机不同操作系统上运行,该两部分通过IP网络连接,并通过预先规定的指令和参数格式以及顺序进行交流。2)令处理服务模块维持一个特定的虚拟目录文件结构,该特定的虚拟目录文件结构保存在计算机的内存中,也可以被缓冲到计算机的存储系统,它的作用是用来保存由文件传输服务模块传递过来的该模块下的目录和文件结构以及各种必要参数。3)文件传输服务模块在连接到指令处理模块后,将该文件传输模块所针对的本地存储系统中的目录名和文件名以及长度等必要的相关参数按预先规定的格式发送给指令处理模块;指令处理模块在接受到这些参数后,将这些数据按特定格式加入到特定的虚拟目录文件结构中去;在文件传输服务模块断开连接后,则将这些数据从特定的虚拟目录文件结构中清除。4)指令处理模块依据特定的虚拟目录文件结构中已有的目录和文件等数据,按照FTP协议为FTP客户端提供服务,并在文件传输指令到达并判断参数等正确后,将该指令和相关参数传递给相关文件传输服务模块进行处理,并等待处理结果。5)文件传输服务模块在接到指令处理模块发送的文件传输指令和参数后,根据该指令和参数直接连接到FTP客户端指定的网络地址,不通过指令处理服务模块,即进行点对点的直接连接,在连接成功后进行指定的数据传输服务,并将处理结果返回给指令处理服务模块。6)一个指令处理模块可以同时连接多个文件传输服务模块,并可以同时为多个FTP客户端提供服务;文件传输模块只处理指令处理模块传递的预定规格的指令和参数,而不直接接受FTP客户端的指令。7)每个文件传输模块在连接到指令解析服务模块后,以一个虚拟目录的形式出现指令解析服务模块的特定虚拟目录文件结构中,该虚拟目录的位置位于FTP服务的根目录下,所有该模块传输的目录文件列表都位于该虚拟目录下。
2,根据权利要求1所说的基于因特网标准的分布式文件传输方法,其特征在于指令处理服务模块和文件传输服务模块的IP网络连接形式可以基于TCP协议,也可以基于UDP协议。
3,根据权利要求1所说的基于因特网标准的分布式文件传输方法,它可以支持IPV4协议,也可以支持IPV6协议。
全文摘要
提供一种基于因特网标准的分布式文件传输方法,本发明的关键在于将FTP服务分解为指令解析服务和文件传输服务两个可在不同计算机不同操作系统中独立运行的模块,该两部分通过IP网络动态连接,并由指令解析服务维持一个特定的目录文件结构来映射各文件传输服务的本地文件目录结构,所有对文件和目录的操作被转向到该结构中进行,只有当FTP客户端发出文件传输指令后,指令解析服务模块发送指令和参数给文件实际所在的文件传输服务模块并跟踪结果,文件实际所在的文件传输服务模块与FTP客户端直接进行符合FTP标准的数据传输连接,并传输文件,实现点对点连接,文件传输服务将结果通过预定义格式顺序发送给指令解析服务,然后由指令解析服务发送结果给FTP客户端。
文档编号G06F13/42GK1893422SQ20051005055
公开日2007年1月10日 申请日期2005年7月1日 优先权日2005年7月1日
发明者俞盛 申请人:俞盛
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1