帮助文档>117数据 > FTP服务概述

FTP服务概述

发布时间:2024-07-26 17:05

FTP服务概述

FTP(文件传输协议)是TCP/IP协议族中的一种协议。FTP协议包含两个主要部分:FTP服务器和FTP客户端。FTP服务器用于存储文件,而用户则通过FTP客户端利用FTP协议访问存储在FTP服务器上的资源。

1.FTP 服务模型

FTP基于C/S(客户端/服务器)架构模型。在文件传输过程中,服务器负责建立和维护与客户端的连接,这包括控制连接(用于传输控制信息)和数据连接(用于传输数据)。FTP协议模型由多个模块组成,各模块通过执行特定功能来提供文件传输服务。

在C/S模型的FTP服务中,由客户端发起请求并等待服务器的响应。服务器的响应是对客户端FTP命令的一种回答(肯定或否定),控制连接从服务器发送到客户端,通常包括一个代码(可能是错误码)和一个文本字符串。代码供程序使用,文本字符串则是供用户使用。FTP客户端在传输数据前需要与服务器建立控制连接,控制连接遵循Telnet协议,客户端的所有命令通过控制连接传输到服务器,服务器的响应也通过控制连接返回给客户端。数据连接是双向的,可以在数据传输完成后中断。有时用户希望在两台主机之间传输文件(无需本地主机参与),此时需要在两台主机之间建立控制连接和数据连接。FTP协议要求在数据传输时保持控制连接的开启,并在完成FTP服务后由客户端请求关闭控制连接。如果控制连接在未接收到命令时关闭,服务器也会终止数据传输。

2.FTP 的工作模式

FTP有两种工作模式:标准模式(即主动模式)和被动模式。主动模式和被动模式是相对于FTP服务器而言的,如果是服务器端连接客户端开放的端口,则属于主动模式,反之则为被动模式。

①主动工作模式

主动模式(Active Mode)的工作过程如下:

- 第一步,客户端随机开启一个大于1024的X端口与服务器的21端口建立连接通道,通道建立后,客户端可以通过该通道发送上传或下载命令。
- 第二步,当客户端需要与服务器进行数据传输时,客户端会再开启一个大于1024的随机端口Y,并将Y端口号通过之前的命令通道传送给服务器的21端口。
- 第三步,服务器获取客户端的第二个端口后会主动连接客户端的该端口,通过三次握手完成服务器与客户端数据通道的建立,所有数据均通过该数据通道传输。

②被动工作模式

被动模式(Passive Mode)的工作过程如下:

第一步,客户端随意开启一个大于1024的X端口与服务器的21端口建立连接通道。
第二步,当客户端需要与服务器进行数据传输时,客户端通过命令通道发送数据请求。
第三步,服务器收到数据请求后会随机开启一个端口Y,并通过命令通道将该端口信息传送给客户端。
第四步,客户端在收到服务器发送过来的数据端口Y的信息后,在客户端本地开启一个随机端口Z,然后通过本机的Z端口与服务器的Y端口进行连接,通过三次握手完成连接后即可进行数据传输。

下面是两种模式的区别:

在主动模式下,FTP的控制连接和数据连接方向相反:客户端向服务器建立控制连接,而服务器主动连接客户端的数据端口。被动模式下,控制连接和数据连接的方向相同:客户端发起控制连接和数据连接,服务器被动接受连接。

对于客户端的防火墙而言,主动模式的数据连接是从外部到内部的连接,可能会被防火墙阻塞。被动模式解决了这一问题,因为数据连接由客户端发起,避免了防火墙的阻塞。在互联网环境下,客户端通常没有独立的公网IP地址,服务器主动连接客户端的难度较大,因此FTP服务器多采用被动模式。总结而言,FTP协议需要多个网络端口才能正常工作,其中一个端口专用于命令传输(命令端口),另一个端口专用于数据传输(数据端口)。在传输数据时,主动模式下服务器会主动连接客户端,而被动模式下则由客户端主动连接服务器。

3.说明

默认情况下,FTP协议使用TCP端口中的20和21两个端口,其中20用于传输数据,21用于传输控制信息。然而,是否使用20作为数据传输端口取决于FTP的传输模式。如果采用主动模式,数据传输端口是20;如果采用被动模式,数据传输端口由服务器和客户端协商决定。

本文导读

客户热线:13306992629

客户服务中心