FTP(File Transfer Protocol)在 TCP/IP 协议族中属于应用层协议,是文件传输标准。
主要功能是向用户提供本地和远程主机之间的文件传输,尤其在进行版本升级、日志下载和配置保存等业务操作时,广泛地使用 FTP 功能。FTP 协议基于相应的文件系统实现。
FTP 采用 C/S(Client/Server)结构,如图 所示。
- FTP Server:运行于设备上的 FTP 服务。提供远程客户端访问和操作的功能,用户以通过 FTP 客户端程序登录到设备上,访问设备上的文件。
- FTP Client:FTP 的客户端。提供本地设备对远程服务器的文件进行操作的命令。用在PC 上通过终端程序或 Telnet 程序与作为 FTP Client 的设备建立连接后,可以输入 FTP 命令建立与远程 FTP Server 的连接并访问远程主机上的文件,对远程主机上的文件进行操作。
二、FTP 连接的建立
FTP 采用 2 个 TCP 连接来传输文件:控制连接和数据连接。
其中控制连接用于连接控端口,传输控制命令;数据连接用于连接数据端口。
在控制连接建立后,数据连接通过控制端口的命令建立起连接,进行数据的传输。
FTP 连接的建立分为主动模式和被动模式,两者的区别在于数据连接是由服务器发起还是由客户端发起。缺省情况下采用主动模式,用户可以通过命令切换。
主动模式下,当客户端存在防火墙时,由于数据连接是由服务器发起,数据连接可能会发问题。被动模式下,这个问题得到了解决。主动模式有利于对 FTP 服务器的管理,不利于对客端的管理;被动模式则相反。
缺省情况下,服务器的端口 21 用于传输控制命令,端口 20 用于传输数据。
A、主动模式下 FTP 连接建立
FTP 连接主动模式建立过程如图所示。
1. 服务器打开端口 21 启动监听,等待连接。
2. 客户端发起控制连接的建立请求,服务器响应连接,控制连接建立。
3. 客户端通过控制连接发送 PORT 命令,将客户端数据连接的临时端口号告诉服务器。
4. 服务器的 20 号端口与客户端建立起数据连接。
B、被动模式 FTP 连接建立
FTP 连接被动模式建立过程如图所示。
1.服务器打开端口 21 启动监听,等待连接。
2. 客户端发起控制连接的建立请求,服务器响应连接,控制连接建立。
3. 客户端通过控制连接发送命令字 PASV,告知服务器处于被动模式。
4. 服务器回应,将服务器数据连接的临时端口号告诉客户端。
5. 客户端与服务器的临时端口建立起数据连接。
说明:
临时端口为随机产生。