计算机网络教程-应用层(九)FTP协议

文件传输协议File Transfer ProtocolFTP)是 TCP/IP 提供的标准机制,用于将文件从一个主机复制到另一个主机。尽管我们可以使用 HTTP 传送文件,但是 FTP 是传送大文件或使用不同格式传送文件的更好选择。 

计算机网络教程-应用层(九)FTP协议
上面展示了 FTP 基本模型。客户有三个组件:用户接口、客户控制进程和客户数据传输进程。服务器有两个组件:服务器控制进程和服务器数据传输进程。控制连接是在控制进程之间进行的,而数据连接是在数据传输进程之间进行的。将命令和数据传输分开使得 FTP 效率更高。

1.两种连接的寿命

        当用户开始 FTP 会话时,控制连接就被打开。在控制连接处于打开状态期间,如果传输多个文件,那么数据连接可以打开和关闭多次。 FTP 使用两个熟知端口:端口 21 用于控制连接,端口 20 用于数据连接。

2.控制连接

在控制连接期间,命令从客户端发送到服务器并且响应从服务器发送到客户端。 从 FTP 客户控制进程发送的命令是 ASCII 大写字母形式的,可能带有也可能不带有参数。 常见命令如下:

计算机网络教程-应用层(九)FTP协议

每个 FTP 命令至少产生一个响应。一个响应有两部分:跟随在文本后的一个三位数字,数字部分定义了编码;文本部分定义了需要的参数或进一步的解释。第一个数字定义了命令状态。第二个数字定义了状态应用的区域。第三个数字提供了额外信息。

计算机网络教程-应用层(九)FTP协议

3.数据连接

数据连接使用服务器站点的熟知端口 20

  1. 客户,不是服务器,使用临时端口发起一个被动打开。这必须由客户完成,因为正是客户发出命令要求传输文件的。
  2. 客户使用 PORT 命令发送这个端口号到服务器。
  3. 服务器接收到端口号,使用熟知端口 20 发出主动打开并且接收临时端口号。

数据连接的目的和实现与控制连接是不同的。我们通过数据连接来传输文件。客户必须定义传输文件的类型、数据结构以及传输模式。

4.两个实例

计算机网络教程-应用层(九)FTP协议


计算机网络教程-应用层(九)FTP协议