FTP 文件传输协议
一、FTP协议
文件传输协议(FTP:File Transfer Protocol)使得主机间可以共享文件。 FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。
FTP 的主要功能如下:
- 提供文件的共享(计算机程序 / 数据)
- 支持间接使用远程计算机
- 使用户不因各类主机文件存储器系统的差异而受影响
- 可靠且有效的传输数据。
FTP ,尽管可以直接被终端用户使用,但其应用主要还是通过程序实现。FTP 控制帧即指 TELNET 交换信息,包含 TELNET 命令和选项。然而,大多数 FTP 控制帧是简单的 ASCII 文本,可以分为 FTP 命令或 FTP 消息。 FTP 消息是对 FTP 命令的响应,它由带有解释文本的应答代码构成。
二、协议结构
命令及描述如下:
- ABOR 中断数据连接程序
- ACCT <account> 系统特权帐号
- ALLO <bytes> 为服务器上的文件存储器分配字节
- APPE <filename> 添加文件到服务器同名文件
- CDUP <dir path> 改变服务器上的父目录
- CWD <dir path> 改变服务器上的工作目录
- DELE <filename> 删除服务器上的指定文件
- HELP <command> 返回指定命令信息
- LIST <name> 如果是文件名列出文件信息,如果是目录则列出文件列表
- MODE <mode> 传输模式(S=流模式,B=块模式,C=压缩模式)
- MKD <directory> 在服务器上建立指定目录
- NLST <directory>
列出指定目录内容
- NOOP 无动作,除了来自服务器上的承认
- PASS <password> 系统登录密码
- PASV 请求服务器等待数据连接
- PORT <address> IP 地址和两字节的端口 ID
- PWD 显示当前工作目录
- QUIT 从 FTP 服务器上退出登录
- REIN 重新初始化登录状态连接
- REST <offset> 由特定偏移量重启文件传递
- RETR <filename> 从服务器上找回(复制)文件
- RMD <directory> 在服务器上删除指定目录
- RNFR <old path> 对旧路径重命名
- RNTO <new path> 对新路径重命名
- SITE <params> 由服务器提供的站点特殊参数
- SMNT <pathname> 挂载指定文件结构
- STAT <directory> 在当前程序或目录上返回信息
- STOR <filename>储存(复制)文件到服务器上
- STOU <filename>储存文件到服务器名称上
- STRU <type> 数据结构(F=文件,R=记录,P=页面)
- SYST 返回服务器使用的操作系统
- TYPE <data type> 数据类型(A=ASCII,E=EBCDIC,I=binary)
- USER <username>> 系统登录的用户名
标准 FTP 信息如下:
- 110 新文件指示器上的重启标记
- 120 服务器准备就绪的时间(分钟数)
- 125 打开数据连接,开始传输
- 150 打开连接
- 200 成功
- 202 命令没有执行
- 211 系统状态回复
- 212 目录状态回复
- 213 文件状态回复
- 214 帮助信息回复
- 215 系统类型回复
- 220 服务就绪
- 221 退出网络
- 225 打开数据连接
- 226 结束数据连接
- 227 进入被动模式(IP 地址、ID 端口)
- 230 登录因特网
- 250 文件行为完成
- 257 路径名建立
- 331 要求密码
- 332 要求帐号
- 350 文件行为暂停
- 421 服务关闭
- 425 无法打开数据连接
- 426 结束连接
- 450 文件不可用
- 451 遇到本地错误
- 452 磁盘空间不足
- 500 无效命令
- 501 错误参数
- 502 命令没有执行
- 503 错误指令序列
- 504 无效命令参数
- 530 未登录网络
- 532 存储文件需要帐号
- 550 文件不可用
- 551 不知道的页类型
- 552 超过存储分配
- 553 文件名不允许