FTP

了解FTP的工作原理和两种连接方式,可能在选择题中考察。

工作原理

  1. 建立连接:
    • FTP通常使用TCP作为传输层协议。客户端和服务器之间首先建立一个TCP连接。FTP默认使用两个端口,一个用于控制连接(命令连接,通常是端口21),另一个用于数据传输连接。
  2. 身份验证:
    • 一旦建立了控制连接,客户端需要提供用户名和密码以进行身份验证。有些FTP服务器还支持匿名FTP,允许用户使用一个通用的用户名(通常是"anonymous")和电子邮件地址作为密码进行访问。
  3. 命令与响应:
    • 控制连接用于传输FTP命令和服务器的响应。客户端可以向服务器发送各种FTP命令,如上传文件、下载文件、列出目录内容等。服务器将对每个命令响应一个状态码,指示命令执行的结果(例如,成功、失败等)。
  4. 数据连接:
    • 当需要传输文件或目录列表时,FTP使用数据连接来进行实际的数据传输。数据连接可以以两种方式之一建立:
    • 主动模式(Active Mode):客户端打开一个本地端口,并通知服务器连接到该端口以进行数据传输。
    • 被动模式(Passive Mode):服务器打开一个本地端口,并通知客户端连接到该端口以进行数据传输。
    • 数据连接用于传输文件的内容或目录列表等信息。
  5. 文件传输:
    • 一旦建立了数据连接,文件传输开始。客户端可以向服务器上传文件(将本地文件发送到服务器)或下载文件(从服务器获取文件)。
    • 文件传输可以在ASCII模式和二进制模式之间切换。ASCII模式适用于文本文件,而二进制模式适用于二进制文件(如图像、音频等)。
  6. 关闭连接:
    • 一旦文件传输完成或用户完成FTP会话,客户端可以发送QUIT命令以终止FTP连接。服务器会响应,并关闭连接。

控制连接和数据连接

  1. 控制连接(Control Connection):
    • 控制连接是FTP会话的首要连接,通常使用TCP的端口21。
    • 控制连接用于传输FTP命令和服务器的响应,用来控制FTP会话的行为。客户端通过控制连接向服务器发送各种FTP命令,如登录、列出文件目录、切换工作目录等。
    • 服务器通过控制连接发送状态码和响应消息,以指示每个FTP命令的执行结果(例如,成功、失败等)。
    • 控制连接始终保持打开状态,直到用户完成FTP会话,或者用户发送QUIT命令以终止连接。
  2. 数据连接(Data Connection):
    • 数据连接用于实际的文件传输,以及在某些情况下,传输文件的目录列表信息。数据连接通常使用不同的端口,其端口号由控制连接中的FTP命令指定。
    • 有两种主要的数据连接模式:
    • 主动模式(Active Mode):在主动模式下,客户端在一个本地端口打开,并通过控制连接告知服务器连接到该端口以进行数据传输。服务器主动连接到客户端的本地端口。
    • 被动模式(Passive Mode):在被动模式下,服务器在一个本地端口打开,并通过控制连接告知客户端连接到该端口以进行数据传输。客户端主动连接到服务器的本地端口。
    • 数据连接用于上传文件(将文件从客户端发送到服务器)和下载文件(从服务器获取文件)。