一、ftp的工作原理:
(一)、 ftp服务的简介 FTP是文件传输控制协议。它可以使文件通过网络从一台主机传送到另一台主机上,而不受计算机类型和操作系统类型的限制。无论是PC机、服务器、大型机,还是DOS操作系统、Windows操作系统、Linux操作系统,只要双方都支持FTP协议,就可以方便地传送文件 (二)、 ftp的工作原理 1、FTP服务的具体工作过程如下图(主动模式) ① 当FTP客户端发出请求时,系统将动态分配一个端口(如1032)。 ② 若FTP服务器在端口21侦听到该请求,则在FTP客户端的端口1032和FTP服务器的端口21之间建立起一个FTP会话连接。 ③ 当需要传输数据时,FTP客户端再动态打开一个连接到FTP服务器的端口20的第2个端口(如1033),这样就可在这两个端口之间进行数据的传输。当数据传输完毕后,这两个端口会自动关闭。 ④ 当FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口将自动释放掉 2、ftp的工作模式:主动模式和被动模式 根据数据连接的建立方式,FTP服务的数据传输可以分为Port(主动)模式和Passive(被动)模式 1)主动模式是FTP服务器向FTP客户端传输数据的默认模式。当FTP客户端请求以主动模式传输数据时,由客户端向服务端发送准备接收数据的IP地址和端口Y,该端口是大于1024的非特权端口。服务端主动发起并建立连接到指定的IP地址和端口20,所以称为"主动"模式 在主动模式中,FTP客户端随机开启一个大于1024的端口X向服务器的21号端口发起控制连接请求,然后开放X+1 号端口进行监听;FTP服务器接受请求并建立控制连接会话。如果客户端在控制会话中发送数据连接请求,那么服务器在接收到命令后,会用其本地的FTP数据 端口(通常是20)来连接客户端指定的端口X+1进行数据传输,如下图: 通过以上介绍,我们应该能大致清晰理解ftp的一个工作原理: 1、使用主动模式,客户端与服务器端的监听连接端口,服务器端提供的连接端口是21端口,数据传输是20端口; 2、使用被动模式,客户端与服务器端的监听连接端口还是21端口,数据传输端口被动模式下可以用户自定义设置,通常需要大于1000以上(比如可以设置5000-5004); 3、不管是主动模式还是被动模式,连接请求的监听端口通常是21端口,但存在以下两种情况:一是用户自己修改为非21的其他端口,二是部分ftp软件不使用21端口,比如g6ftp软件默认使用的是8021,21端口不可用,见下图:
|