文件传输协议( File Transfer Protocol, FTP)是 TCP/IP 提供的标准机制,用于将文件从一个主机复制到另一个主机。尽管我们可以使用 HTTP 传送文件,但是 FTP 是传送大文件或使用不同格式传送文件的更好选择。
1.两种连接的寿命
当用户开始 FTP 会话时,控制连接就被打开。在控制连接处于打开状态期间,如果传输多个文件,那么数据连接可以打开和关闭多次。 FTP 使用两个熟知端口:端口 21 用于控制连接,端口 20 用于数据连接。
2.控制连接
在控制连接期间,命令从客户端发送到服务器并且响应从服务器发送到客户端。 从 FTP 客户控制进程发送的命令是 ASCII 大写字母形式的,可能带有也可能不带有参数。 常见命令如下:每个 FTP 命令至少产生一个响应。一个响应有两部分:跟随在文本后的一个三位数字,数字部分定义了编码;文本部分定义了需要的参数或进一步的解释。第一个数字定义了命令状态。第二个数字定义了状态应用的区域。第三个数字提供了额外信息。
3.数据连接
数据连接使用服务器站点的熟知端口 20。
- 客户,不是服务器,使用临时端口发起一个被动打开。这必须由客户完成,因为正是客户发出命令要求传输文件的。
- 客户使用 PORT 命令发送这个端口号到服务器。
- 服务器接收到端口号,使用熟知端口 20 发出主动打开并且接收临时端口号。
数据连接的目的和实现与控制连接是不同的。我们通过数据连接来传输文件。客户必须定义传输文件的类型、数据结构以及传输模式。