FTP 的连接

FTP 会建立两个连接:

  • 控制连接:用于传输控制请求和连接请求,服务器端监听 20 端口
  • 数据连接:通过该连接来传输数据,文件列表也是通过该连接传输的

控制连接在整个会话期间一直打开,数据连接只在数据传输时打开。为了保证可靠性,两个连接都使用 TCP

FTP 的进程

有一个主进程,负责接收请求
有若干个从属进程,负责处理单个请求

FTP 的数据传输

数据传输有两种模式:

  • 主动模式 PORT:服务器通过 20 端口连接客户端提供的端口,对客户端发送数据。
  • 被动模式 PASV:客户端发送 PASV 命令给服务器,服务器随机开放一个端口让客户端连接,客户端读取数据。