FTP原理描述
FTP
作为因特网的文件传输标准,FTP(File Transfer Protocol)协议运行在TCP/IP协议堆栈的应用层。 FTP协议用来实现本端与远端主机之间的文件传输,主要用于版本升级、日志下载、文件传输和配置存储过程。FTP是基于文件系统实现的。
FTP采用客户端/服务器的模式,如图7-2所示。
NE20E支持以下FTP功能:
FTP服务器:路由器可以作为FTP服务器,提供远程客户端的接入与程序操作。用户可以运行FTP客户端程序登录到路由器,访问路由器上的文件。
FTP客户端:本地路由器作为客户端访问远程服务器上的文件。用户在PC上通过终端仿真程序或Telnet程序建立与路由器的连接后,可以输入FTP命令建立与远程FTP服务器的连接并访问远程服务器上的文件。
除文件传输外,FTP还支持交互式接入,格式规范化和认证控制。
FTP提供通用的文件操作命令帮助用户进行简单的文件系统管理并支持不同主机间的文件传输。更具体的说,通过运行在路由器之外的FTP客户端程序,用户可以进行文件上传或下载并访问路由器上的目录。通过运行在路由之上的FTP客户端程序,用户可以将文件传输给其他路由器或设备的FTP服务器。
FTP连接
FTP文件传输过程如图7-3所示。
FTP连接建立过程
建立FTP数据连接的过程如下:
服务器以被动方式打开端口21,等待与客户端建立控制连接。
客户端主动打开临时端口并向服务器发起建立控制连接的请求。
服务器收到请求后,客户端的临时端口与服务器21号端口之间的控制连接建立完毕。
客户端发起建立数据连接的命令。
客户端为该数据连接选择一个临时端口号,并且使用PORT命令通过控制连接把端口号发送给服务器。
服务器主动打开端口20并向客户端发送建立数据连接的请求。
客户端收到请求后,客户端的临时端口与服务器20号端口之间的数据连接建立完毕。
FTP连接建立过程如图7-4所示。假设客户端用于建立控制连接的临时端口号为2345,用于建立数据连接的临时端口号是2346。这两个端口需要分别与服务器的端口20与端口21相连,从而实现数据传输。
数据类型
- 二进制模式,用于传输程序文件(比如后缀名为.app、.bin和.btm的文件)。
- ASCII码模式,用于传输文本格式的文件(比如后缀名为.txt、.bat和.cfg的文件)。
接入控制
接入控制定义了用户访问系统文件的权限。它能够有效阻止未经授权或恶意用户访问系统文件。在FTP服务器上使能此功能后,所有的接入用户都会被控制。
用户FTP登录失败后,根据IP地址记录FTP登录失败的次数,当一定时间内失败次数达到阈值后,将IP地址锁定,所有通过该IP地址登录的用户均不能正常连接。