FTP的目的是通过传输文件达到共享文件的效果,但是,在不同的系统间进行文件传输和文件共享并不是一件简单的事情。这是因为,不同的系统对于文件可能有不同的管理方式,采用不同的目录结构,不同的数据存放格式。要想顺利地进行文件传输,必须解决好兼容性问题。
FTP采用客户机/服务器结构,需要分别有客户端程序和服务端程序。在FTP的工作框架下,服务器端系统和客户端系统的差异,分别由服务器端程序和客户端程序进行掩盖。FTP则规范了客户端和服务器端通信的命令和数据传输方式。只要不同系统的客户端和服务器端在彼此通信上满足FTP的规定,又各自解决好自身与所在系统的文件交互,就可以保证整个文件传输的兼容性。FTP系统示意如图6-8所示。服务端程序和客户端程序各自通过本地文件访问模块解决对本地文件系统的访问;客户端程序还需要解决与用户的交互;客户端和服务端彼此通信的模块都需要按照FTP的规定进行工作。
图6-8 FTP系统示意
FTP使用可靠的TCP作为其传输层。在工作过程中,客户端和服务端要开启两个不同的TCP连接——控制连接和数据连接。这两个连接分别用于传递控制信息和传输文件数据。这样的一种把控制和数据传输分别连接的方式,可以减少两者之间的互相干扰,简化程序设计。(www.xing528.com)
当FTP开始工作时,首先由客户端访问服务端的21号端口,请求建立TCP连接。服务端有一个主进程和若干个从属进程,主进程在接收到客户端的连接请求后启动一个从属进程来处理客户请求,当处理完与客户的各种通信操作后,从属进程即终止。
在FTP的整个通信过程中,客户在和专门负责与自己通信的从属进程间建立控制连接。整个连接在整个通信过程中负责各种命令的传输。每当FTP开始要传输一个文件时,无论是从服务器读还是写入服务器,都需要建立一个专门的数据连接,相应文件传输完毕时数据连接关闭。如果同时有多个文件传输,也会打开多个通信连接。控制连接是贯彻整个通信过程始终的,数据连接则要看通信的需要来建立与关闭。
FTP服务器一般还会建立多个基于用户名/口令识别的账户。不同的账户可以配置不同的权限,对不同的文件可以有不同的访问。FTP服务器也要在整个通信过程中保存用户的状态信息,与HTTP那种无状态协议是不同的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。