FTP
FTP:文件传输协议
- 向远程主机上传输文件或从远程主机接收文件
- 客户/服务器模式
- 客户端:发起传输的一方
- 服务器:远程主机
- ftp:RFC 959
- ftp服务器:端口号为21
FTP:控制连接与数据连接分开
控制连接
- FTP客户端与FTP服务器通过端口 21 联系,并使用TCP为传输协议
- 客户端通过控制连接获得身份确认
- 客户端通过控制连接发送命令浏览远程目录
数据连接
- 收到一个文件传输命令时,服务器打开一个到客户端的数据连接
- 一个文件传输完成后,服务器关闭连接
继续控制连接
- 客户端继续通过控制连接发送命令:下载文件
重新开启数据连接
- 服务器打开 第二个TCP 数据连接用来传输另一个文件(服务器主动)
- 然后又关闭连接
控制连接: 带外( “out of band” )传送 ,就是服务端可以向客户端发送请求建立连接
FTP服务器维护用户的状态信息: 当前路径、用户帐户与控制连接对应
FTP是有状态的协议
FTP命令、响应
命令样例
- 在控制连接上以ASCII文本方式传送
命令 | 说明 |
---|---|
USER username | 发送用户名 |
PASS password | 发送命令 |
LIST | 请服务器返回远程主机当前目录的文件列表 |
RETR filename | 从远程主机的当前目录检索文件 (gets) |
STOR filename | 向远程主机的当前目录存放文件 (puts) |
返回码示例
状态码 | 状态信息 |
---|---|
331 | Username OK, password required |
125 | data connection already open; transfer starting |
425 | Can’t open data connection |
452 | Error writing file |