FTP协议概述和工作原理

FTP概述

文件传送协议FTP(File Transfer Protocol)【RFC 959】
FTP提供的是交互式的访问,允许客户指明文件类型和格式(比如说指明是否用ascii 码),并允许文件具有存取权限(比如访问文件的用户必须输入相应的password)。
FTP屏蔽了计算机系统的细节,所以适合在异构网络中任意计算机之间传送文件。

在很早以前多数数据都是靠FTP传送的,直到1995年www的通信量才超过了FTP。

基于TCP的FTP和基于UDP的TFTP都是文件共享协议中的一大类,即复制整个文件。特点是:如果要存取一个文件,就必须要或得一个本地文件的副本。如果要修改文件,只能对文件副本进行修改,然后将文件修改后的文件副本传回到原结点。

FTP的工作原理

文件传输协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务。
FTP主要的功能是减少或消除在不同操作系统下处理文件的不兼容性

FTP使用的是客户服务器的方式。一个FTP服务器进程可以同时为多个客户进程提供服务。FTP服务器的进程由两大部分组成:一个主进程,负责接收新的请求。另外有若干个从属进程,负责处理单个请求。

主进程的工作步骤如下:

  • 打开21号端口,使客户能够连接上
  • 等待客户进程发送出连接请求‘
  • 启动从属进程处理客户进程发送过来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程
  • 回到等待状态,继续接收其他客户进程发来的请求。主进程与从属进程的处理是并发执行的。

下图是服务器端的从属进程
服务器端有两个从属进程,控制进程和数据传输进程。所以需要两个并行的TCP连接:控制连接和数据连接。
在这里插入图片描述
一条端口21的TCP用于控制连接,包括所有控制数据传输的信息,一条端口20的TCP用于数据连接,包括文件本身的数据和文件列表。
使用两条连接的好处在于FTP的控制更容易,编程实现更方便。控制数据单独使用的一条TCP连接,且在整个FTP连接中都不断开,有助于实现维护状态的协议。
FTP下载数据的方式和HTTP不同,HTTP在一条TCP连接上完成HTTP的控制和数据的下载。文件下载完成后TCP连接也断开,若要下载另一个文件,则需重新建立TCP连接,重新进行HTTP请求和响应。FTP下载文件时一个文件下载完成后,控制连接不断,若要下载另一文件需要使用控制连接重新协商建立新的数据连接

当有具体文件或者目录内容传输的时候,临时建立数据连接,而控制连接不断开。

  • 主动模式由服务器方发起,端口号为21
  • 被动模式下由客户端发起,端口号不确定

FTP常见工具

在这里插入图片描述

posted @ 2021-04-03 11:31  Zeker62  阅读(1170)  评论(0编辑  收藏  举报