应用层的FTP协议

FTP协议(文件传输协议File Transfer Protocol)工作在TCP/IP参考模型的应用层,是基于传输协议TCP的一个协议。同大多数Internet服务一样,FTP也是一个客户/服务器系统,即FTP协议包括两个重要的组成部分,FTP服务器和FTP客户端。FTP服务器用于存储和传送文件,用户使用FTP客户端通过FTP协议与服务器传送文件或访问位于服务器上的资源。

一个FTP服务器进程可以同时为多个客户进程提供服务。FTP服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有多个从属进程,负责处理单个请求。

主进程接收新请求的步骤是:

1、打开服务器端的21号端口,使控制连接链路打开;

2、服务器端等待客户进程发出连接请求,客户端打开一个临时的端口,用于进行数据连接;

3、服务器端接收到连接请求并响应,打开20号或其他大于1024号的端口用于数据连接,并建立起数据连接;

4、服务器端启动从属进程来处理客户进程发出的请求;

5、从属进程对客户进程处理完毕后,客户端发送关闭连接请求,服务端响应后终止此次文件传输;

6、服务器端回到等待状态,继续接受其他进程发送的请求。

要注意的是,主进程与从属进程的处理是并发进行的。

FTP支持两种工作模式,一种叫做Port模式(主动模式),另一种为Passive模式(被动模式)。在主动模式下,客户端现在FTP服务器的21号端口建立连接,发送Port命令,并打开一个随机端口与服务器端的20号端口进行数据发送和接收;而在被动模式下,客户端发送的不是Port命令而是Passive命令,而且服务器端与客户端进行数据连接时打开的是一个大于1024号的端口,不再是确定的20号端口。由于Passive模式下在服务器端打开的是一个任意端口,很多防火墙设置的时候不允许接收外部发起的连接,所以许多防火墙或者内网的FTP服务器不支持Passive模式。

对于搭建FTP服务器,通常可以使用Server U软件;而对于FTP客户端,简单的我们可以直接利用浏览器,当然也可以使用专门的软件,例如CuteFTP、FlashFTP、FTP Explorer等。

猜你喜欢

转载自www.cnblogs.com/HuangJiaPing/p/12510652.html