计算机网络自学网站 王道带学 · 考点 × 插图 × 真题 × 打卡
首页 › 第6章 应用层 › 6.3 文件传输协议

6.3 文件传输协议 FTP

对应王道教材 6.3 节(教材 P277–P278)· 本节属于 408 考纲范围

6.3.1 FTP 的工作原理

文件传输协议(File Transfer Protocol,FTP)是互联网上使用最广泛的文件传输协议。FTP 提供交互式访问,允许用户指定文件的类型与格式,并支持对文件设置存取权限。它屏蔽了不同计算机系统的底层细节,因此适用于异构网络中的任意两台计算机之间可靠地传送文件。

FTP 主要提供以下功能:

  1. 支持不同类型主机系统(硬件、操作系统等均可不同)之间的文件传输;
  2. 通过用户权限管理,提供对远程 FTP 服务器上文件的管理能力;
  3. 通过匿名(anonymous)FTP 方式,实现公用文件的共享。
🎯 考点跟踪:FTP 在传输层使用的协议(2009、2018 统考)

FTP 采用客户/服务器工作模式,基于 TCP 提供可靠的传输服务。一个 FTP 服务器进程可同时为多个客户进程提供服务。服务器进程由两部分组成:一个主进程,负责接收新请求;另外有若干从属进程,分别处理单个客户的请求。其工作步骤如下:

  1. 打开熟知端口 21(控制端口),供客户进程连接;
  2. 等待客户进程发起连接请求;
  3. 启动从属进程处理该请求,处理完毕后从属进程终止;
  4. 主进程返回等待状态,继续接收其他客户请求。主进程与从属进程并发执行。
⚠️ 注意:FTP 是有状态协议

FTP 是有状态协议,服务器需在整个会话期间维护用户的状态信息。例如,必须将用户账户与控制连接相关联,并跟踪用户在远程目录中的当前位置。(与之对比,HTTP 是无状态的。)

6.3.2 控制连接与数据连接 考点

🎯 考点跟踪:FTP 控制连接和数据连接的特点(2017、2023 统考)· FTP 控制连接的功能(2009)

FTP 在工作时使用两个并行的 TCP 连接(见图 6.7):控制连接(服务器端口 21)和数据连接(服务器端口 20)。采用两个独立端口有助于协议的清晰实现。

图6.7 控制连接和数据连接
图 6.7 控制连接和数据连接(王道教材 P278)

1.控制连接

服务器监听 21 号端口,等待客户连接。建立在此端口上的连接称为控制连接,用于传输控制命令(如登录、目录操作、传送命令等)。FTP 客户通过控制连接向服务器发送文件传送请求,但控制连接本身不用于传输文件数据。在文件传输过程中,仍可通过控制连接发送中断等指令,因此控制连接在整个会话期间保持打开状态。

2.数据连接

当服务器的控制进程收到客户发来的文件传输请求后,会创建一个数据传送进程并建立数据连接。该连接用于客户端与服务器端的数据传送进程之间的通信,实际完成文件内容的传输。传输结束后,数据连接关闭,数据传送进程随之终止。

数据连接支持两种传输模式:主动模式(PORT)和被动模式(PASV)。

可见,两种模式的区别在于:是服务器主动连接客户端(主动模式)还是服务器被动响应客户端的连接(被动模式),由客户端决定。

⚠️ 注意

许多教材未详细介绍这两种模式。若无特别说明,可默认采用主动模式。

控制连接与数据连接的对比

表 6.c FTP 控制连接与数据连接的对比(依据教材 P277–P278 归纳)
特性控制连接数据连接
服务器端熟知端口2120
传输内容控制命令(登录、目录操作、传送命令等)与响应实际文件内容
存在时间整个会话期间保持打开传输结束后即关闭,数据传送进程随之终止
数量会话期间只有一个每次文件传输时按需建立

由于 FTP 使用独立的控制连接传输命令,其控制信息属于带外(Out-of-band)传送。使用 FTP 修改远程文件时,需先将文件下载到本地,修改后再传回服务器,整个过程涉及两次完整传输,效率较低。网络文件系统(NFS)采用不同的思路:它允许进程直接打开远程文件,并在指定位置进行读/写操作。这样,用户只需传输大文件中的特定片段,而无须复制整个文件。