FTP应答码
FTP协议
1. 文件传输
文件传输服务是网络互联环境所必需的一种服务,当前网络中文件传输最主要的传输方式是使用FTP协议。
FTP,全称File Transfer Protocol,中文名为文件传输协议,它可以在网络中传输电子文档、图片、声音、影视、程序及程序等多种类型的文件。如果用户需要将文件从自己的计算机上发送到另一台计算机上,可使用FTP上传(upload)或(put)操作,而更多种的情况是用户使用FTP下载(download)或获取(get)操作从FTP服务器上下载文件。
2. FTP工作原理
一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。
1) 控制连接
客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为FTP控制连接。
2) 数据连接
FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP数据连接就是FTP传输数据的过程,它有两种传输模式:主动传输模式(PORT)和被动传输模式(PASSIVE,简称PASV)。主动传输模式下,FTP服务器使用20端口与客户端的暂时端口进行连接,并传输数据,客户端只是处于接收状态。被动传输模式下,FTP服务器打开一个暂态端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。
FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)
在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。
在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。
总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。
被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。
(
? |
区别在于: 主动模式是client bind a port,然后server从server的20port把数据写道client开的port上来。 被动模式是client要求server开一个port,然后client连那个port把数据取回来。
简明一点就是: 主动模式是server把数据写道client。 被动模式是client去server端把数据去回来. |
)
3. FTP命令
FTP常见的命令如表1所示。
命令 |
描述 |
USER |
为用户验证提供用户名 |
PASS |
为用户验证提供密码 |
PWD |
输出FTP服务器的当前工作目录 |
TYPE |
设置传输的文件类型 |
SYST |
获取FTP服务器的操作系统 |
LIST |
获取FTP服务器上当前目录的文件列表 |
PORT |
指定使用主动模式进行数据传输 |
PASV |
指定使用被动模式进行数据传输 |
HELP |
从FTP服务器上获取帮助文件 |
STOR |
从客户端上传指定的文件到FTP服务器 |
RETR |
从FTP服务器下载指定的文件到客户端 |
DELE |
删除FTP服务器上指定的文件 |
MKD |
在FTP服务器上新建目录 |
RMD
|
删除FTP服务器上的指定目录 |
QUIT
|
退出关闭FTP连接 |
(表1 FTP常见命令)
4. FTP应答
从上面的分析及截图中我们可以知道,对客户端发出的所有命令,FTP服务器都会对其做出应答,
ftp应答码及其意义
110 重新启动标记应答。在这种情况下文本是确定的,它必须是:MARK yyyy=mmmm,其中yyyy是用户进程数据流标记,mmmm是服务器标记。
120 服务在nnn分钟内准备好
125 数据连接已打开,准备传送
150 文件状态良好,打开数据连接
200 命令成功
202 命令未实现
211 系统状态或系统帮助响应
212 目录状态
213 文件状态
214 帮助信息,信息仅对人类用户有用
215 名字系统类型
220 对新用户服务准备好
221 服务关闭控制连接,可以退出登录
225 数据连接打开,无传输正在进行
226 关闭数据连接,请求的文件x作成功
227 进入被动模式
230 用户登录
250 请求的文件x作完成
257 创建"PATHNAME"
331 用户名正确,需要口令
332 登录时需要帐户信息
350 请求的文件x作需要进一步命令
421 不能提供服务,关闭控制连接
425 不能打开数据连接
426 关闭连接,中止传输
450 请求的文件x作未执行
451 中止请求的x作:有本地错误
452 未执行请求的x作:系统存储空间不足
500 格式错误,命令不可识别
501 参数语法错误
502 命令未实现
503 命令顺序错误
504 此参数下的命令功能未实现
530 未登录
532 存储文件需要帐户信息
550 未执行请求的x作
551 请求x作中止:页类型未知
552 请求的文件x作中止,存储分配溢出
553 未执行请求的x作:文件名不合法