3.1.3 使用模式

2013-10-07 15:54:28 · 作者: · 浏览: 77

3.1.3  使用模式

FTP有两种使用模式,分别是主动模式和被动模式。主动模式要求客户端和服务器端同时打开并且监听一个端口以创建连接。在这种情况下,因为客户端安装了防火墙会产生一些问题,所以创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。

(1) 一个主动模式的FTP连接创建要遵循以下步骤。

① 客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,该TCP连接的来源地端口为客户端指定的随机端口x,目的地端口(远程端口)为服务器上的21号端口。

② 客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。

③ 服务器打开20号源端口并且创建与客户端数据端口的连接。此时,来源地的端口为20,远程数据(目的地)端口为(x+1)。

④ 客户端通过本地的数据端口创建一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经创建好了一个连接。

(2) 对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP。

① 从任何大于1024的端口到服务器的21端口,客户端初始化的连接。

② 服务器的21端口到任何大于1024的端口,服务器响应到客户端的控制端口的连接。

③ 从任何大于1024端口到服务器的大于1024端口,客户端初始化数据连接到服务器指定的任意端口。

④ 服务器的大于1024端口到远程的大于1024的端口,服务器发送ACK响应和数据到客户端的数据端口。

(3) 关于主动和被动FTP的介绍,可以简单概括为以下两点。

① 主动FTP

命令连接:客户端 1024端口 → 服务器 21端口

数据连接:客户端 1024端口 ← 服务器 20端口

② 被动FTP

命令连接:客户端 1024端口 → 服务器 21端口

数据连接:客户端 1024端口 → 服务器 1024端口

主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。