Alex_McAvoy

想要成为渔夫的猎手

FTP 协议

【概述】

文本传输协议(File Transfer Protocol,FTP)是因特网上使用的最广泛的文件传送协议,其提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限

同时,FTP 屏蔽了计算机系统的细节,适合在异构网络中任意计算机间传送文件

FTP 主要提供以下功能:

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

【工作方式】

FTP 基于 C/S 模型,使用 TCP 可靠传输服务,一个 FTP 服务器进程可同时为多个客户进程提供服务

FTP 的服务器进程由两部分组成:

  • 主进程:一个,负责接收新的请求
  • 从属进程:多个,负责处理单个请求

FTP 服务器的工作步骤如下:

  1. 打开熟知端口 $21$,使客户进程能够连接上服务器
  2. 等待客户进程发送连接请求
  3. 启动从属进程来处理客户进程发来的请求,此时主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止
  4. 回归等待状态,继续接受其他客户进程的请求

FTP 服务器必须在整个会话期间保留用户的状态信息,尤其是服务器必须把指定的用户账户与控制连接联系起来,服务器必须追踪用户在远程目录树上的当前位置

同时,在使用 FTP 时,若要修改服务器上的文件,需要先将该文件传送到本地主机,再将修改后的文件副本传送到原服务器

【控制连接与数据连接】

FTP 在工作时使用两个并行 TCP 连接,一个是端口号为 $21$ 的控制连接,一个是端口号为 $20$ 的数据连接

需要注意的是,是否使用 $20$ 端口建立数据连接,是与传输模式有关的,主动方式使用 $20$ 端口,被动方式由服务器与客户端自行协商决定

控制连接用来传输 FTP 客户端发送的连接请求、传送请求等控制信息( $7$ 位 ASCII 码格式),FTP 服务器会一直监听 $21$ 号端口,等待客户连接,对于 FTP 客户发送的传送请求,会通过控制连接发送给 FTP 服务器的控制进程,同时,在整个会话期间,控制连接会一直保持打开状态

FTP 服务器的控制进程在接收到 FTP 客户发来的文件传输请求后,就创建数据传送进程数据连接,数据连接用来连接客户端和服务器的数据传送进程,数据传送进程用来实际完成文件的传送,在传送完毕后,会关闭数据传送连接并结束数据传送进程

由于 FTP 使用分离控制连接和数据连接的方式,因此也称 FTP 的控制信息是带外传送

感谢您对我的支持,让我继续努力分享有用的技术与知识点!