实现文件传输服务的过程中, 对于服务器而言, 有两种FTP 工作模式: PORT 主动模式和PASV 被动模式。 无论哪种模式, 建立控制连接的过程是相同的, 区别主要是建立数据连接的过程不同, FTP 工作过程如图7.17 所示, 下面对其过程进行说明。
当FTP 客户连接服务器时, 他动态的选择一个端口号x(注意这个端口号是1024 以上的, 因为1024 之前的端口是预定义端口和保留端口)连接服务器的21 端口。 图中的箭头线重点表现了客户和服务器的发起先后关系, 具体实现过程实际上是由双方的多次交互实现的。 连接建立后一般要建立数据通道传输目录和文件列表, 在客户端列出服务器上的目录结构。
PORT 模式下传输文件时, 用户通过PORT 指令告诉服务器客户端开放的端口号(这个命令由控制信道发送给服务器)。 服务器接到客户的PORT 指令后, 会在其20 端口连接用户在PORT 指令中指定的端口, 建立数据连接, 发送目录列表。 当FTP 客户要下载一个文件时会再次发送PORT 指令告诉服务器连接他的那个“新”端口, 再建立数据通道, 数据传输通道建立后, 就开始文件传输的工作。
PASV 模式下传输文件时, FTP 客户发送PASV 指令告诉服务器要采用被动模式传输数据, 服务器返回一个1024 之上的一个端口y, 之后客户选择自身的一个端口z 向服务器的y 端口发起连接建立数据传输通道, 开始传输数据。
FTP 模式与防火墙安全策略的兼容性很重要。 很多防火墙会设置不允许外部发起的连接包进入。 所以主动模式下FTP 服务器企图与客户端的高位随机端口建立连接, 高位端口经常被客户端的防火墙阻塞掉, 所以要达成FTP 服务, 需要在客户端防火墙进行设置。 相反的, 被动模式客户端要向服务器端的高位随机端口发起连接, 而这个端口也容易被服务器端的防火墙阻塞掉, 为了达成FTP 服务同样需要进行防火墙设置。 在FTP 的实际使用中, 如果出现问题, 可尝试修改客户端工具的模式设置, 或者查看、 修改防火墙设置以适应应用需求。(www.daowen.com)
对于客户而言, 可以使用FTP 命令、 浏览器、 专门的FTP 客户端等多种方式访问FTP服务器获取资源。 一般Windows 操作系统的资源浏览器和IE 浏览器中都带有FTP 程序模块, 可以直接在地址栏输入FTP 服务器的地址, 以文件浏览或网页浏览的方式访问FTP服务器, 能方便地利用文件复制、 粘贴、 另存等操作实现文件上传和下载。 使用专门的FTP 下载工具能更好地提高FTP 的访问效率, 当数据传输出现意外时可以通过断点续传功能继续进行剩余部分的传输。
图7.17 FTP 工作过程示意图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。