FTP:工作原理、控制连接与数据连接、主动与被动模式。

6.3 FTP

6.3.1 FTP协议的工作原理

  • FTP(文件传送协议) 是互联网上广泛使用的文件传送协议,提供交互式访问,允许客户指明文件类型与格式(如ASCII码),并支持存取权限(需授权和口令)。
  • FTP屏蔽了各计算机系统的差异,适合在异构网络中任意计算机间传送文件。
  • 与FTP类似的文件共享协议还有基于UDP的TFTP(简单文件传送协议),两者都是复制整个文件的模式:先获得本地副本,修改后再传回原节点。

FTP功能

  1. 不同种类主机系统之间的文件传输能力。
  2. 以用户权限管理的方式提供对远程FTP服务器上文件的管理能力。
  3. 以匿名FTP的方式提供公用文件共享能力。

工作模式

  • 采用客户-服务器方式。
  • 服务器进程由主进程(负责接受新请求)和若干个从属进程(负责处理单个请求)组成。

主进程工作步骤

  1. 打开熟知端口(端口号21),使客户进程能连接。
  2. 等待客户进程发出连接请求。
  3. 启动从属进程处理请求(从属进程完成后终止,运行中可能创建其他子进程)。
  4. 回到等待状态,继续接受其他请求(主进程与从属进程并发执行)。
  • FTP服务器在整个会话期间必须保留用户的状态信息(如当前目录位置)。

6.3.2 控制连接与数据连接

FTP使用两个并行的TCP连接:

  • 控制连接:端口21,用于传输控制信息(如连接请求、传送命令)。
  • 数据连接:端口20,用于实际传输文件数据。

控制连接

  • 服务器监听21号端口,建立在此端口上的连接称为控制连接
  • 控制信息以7位ASCII格式传送,不用于传输文件。
  • 控制连接在整个会话期间一直保持打开状态,可用于发送中止传输等命令。

数据连接

  • 当客户发出文件传输请求后,服务器端创建数据传送进程数据连接,用于实际文件传送。
  • 数据传送完毕后,数据连接关闭,数据传送进程终止。
  • 由于控制连接与数据连接分离,FTP的控制信息是带外(out of band) 传送的。

数据连接传输模式(由客户端选择):

  • 主动模式(PORT):客户端随机开放一个端口,通过控制连接告知服务器;服务器从20端口主动连接客户端该端口,发送数据。
  • 被动模式(PASV):客户端发送PASV命令,服务器在本地随机开放一个端口并告知客户端;客户端主动连接服务器该端口进行数据传输。

默认采用主动模式。

与NFS(网络文件系统)对比

  • FTP需将整个文件传回本地修改再传回,效率低。
  • NFS允许应用进程在远程文件特定位置读写,仅传输所需数据块,更高效。

例题与习题

例题(2009年40题)
FTP客户和服务器间传递FTP命令时,使用的连接是(A. 建立在TCP之上的控制连接)

例题(2017年40题)
关于FTP协议的叙述,错误的是(C. 服务器与客户端的TCP 20端口建立数据连接)

  • 数据连接可由服务器主动连接客户端(主动模式)或客户端连接服务器(被动模式),并非总是服务器使用20端口连接客户端。

习题

  1. FTP协议主要用于(B. 文件传输)

  2. FTP使用的传输层协议是(B. TCP)

  3. 在FTP中,控制连接的作用是(B. 发送FTP命令和接收响应)

  4. 下面关于FTP的叙述中错误的是(D. FTP中的数据连接只能是由客户器端向服务器端发起的)
    (数据连接可以是服务器主动发起(PORT模式)或客户端主动发起(PASV模式))


笔记结束