6.4 文件传送协议FTP

FTP协议简介

FTP 将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中,是一项基本的网络应用,即文件传送。

文件传送协议FTP(File Transfer Protocol) 是英特网上使用的最广泛的文件传送协议。

  • FTP 提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(比如访问文件的用户必须经过授权并输入有效的口令)。

  • FTP 屏蔽了各计算机系统的细节,因而适用于在异构网络中任意计算机之间的传送文件

在英特网发展的早期阶段,用 FTP 传送文件约占整个英特网的通信量的 1/ 3,而由电子邮件和域名系统所产生的通信量还要小于 FTP 所产生的通信量。只是到了 1995 年,万维网的通信量才首次超过了 FTP。

举例说明 FTP 的应用

如图所示,FTP 采用客户服务器方式,英特网上的 FTP 客户计算机可将各种类型的文件上传到 FTP 服务器计算机, FTP 客户计算机也可以从 FTP 服务器计算机下载文件。

image-20230821223100264

根据应用需求的不同, FTP 服务器可能需要一台高性能、高可靠性的服务器计算机也可能只需要一台普通的个人计算机即可。例如,本例也可以采用普通的个人计算机作为 FTP 服务器计算机,为了简单起见,我们假设 FTP 客户计算机与 FTP 服务器计算机处于同一个局域网中。

image-20230821223209980

我们在 FTP 服务器计算机中创建 FTP 服务器,可以使用第三方的 FTP 服务器软件,也可以使用操作系统自带的 FTP 服务器软件。例如,我们可以在 windows 系统中使用其自带的 FTP 服务器功能,创建一个 FTP 服务器站点。

假设这是我所创建的 FTP 服务器的 IP 地址,我们可以在 FTP 客户计算机中使用浏览器软件,通过该地址来访问 FTP 服务器。需要注意的是,这里使用的是文件传送协议FTP,而不是浏览器最常用的超文本传送协议HTTP。

image-20230821223300949

我们也可以在 FTP 客户计算机中使用 windows 系统自带的命令行工具,通过该地址来访问 FTP 服务器。例如,这是连接 FTP 服务器,采用匿名登录,因此无需输入密码。登录成功后,可以列出 FTP 服务器当前目录下的所有文件和文件夹,可从 FTP 服务器下载文件,也可向 FTP 服务器上传文件。

image-20230821223414415

命令行方式需要用户记住相关命令,这对普通用户而言并不友好。因此,大多数用户在 FTP 客户计算机上使用第三方的 FTP 客户工具软件,通过友好的用户界面来完成 FTP 服务器的登录以及文件的上传和下载。

image-20230821223441561

FTP的常见用途

  • FTP 的常见用途是在计算机之间传输文件,尤其是用于批量传输文件
  • FTP 的另一个常见用途是让网站设计者将构成网站内容的大量文件批量上传到他们的 Web 服务器。

FTP 的基本工作原理

主动模式(建立数据通道时FTP 服务器主动连接FTP客户)

如图所示, FTP 服务器监听熟知端口号 21, FTP 客户随机选择一个临时端口号与其建立 TCP 连接。这条 TCP 连接用于 FTP 客户与服务器之间传送 FTP 的相关控制命令。也就是说,这条 TCP 连接是 FTP 客户与服务器之间的命令通道。

image-20230821223755635

当有数据要传输时, FTP 客户通过命令通道告知 FTP 服务器来与自己的另一个临时端口号建立 TCP 连接,即建立数据通道,这是 FTP 客户随机选择的另一个端口号。 FTP 服务器使用自己的熟知端口号 20 与其建立 TCP 连接。这条 TCP 连接用于 FTP 客户与服务器之间传送文件,也就是说,这条 TCP 连接是 FTP 客户与服务器之间的数据通道。

image-20230821223950781

由于在建立数据通道时, FTP 服务器主动连接 FTP 客户,因此称为主动模式。

被动模式(在建立数据通道时FTP服务器被动等待FTP客户的连接)

被动模式,对于 FTP 客户与服务器之间命令通道的建立,它与主动模式并没有什么不同,不同之处在于,当有数据要传输时, FTP 客户通过命令通道通知 FTP 服务器开启某个协商好的临时端口,被动等待来自 FTP 客户的 TCP 连接以建立数据通道。这是 FTP 服务器使用的与 FTP 客户协商好的临时端口号,这是 FTP 客户随机选择的另一个端口号。 FTP 客户发起与 FTP 服务器的 TCP 连接以建立数据通道。

image-20230821224323685

由于在建立数据通道时, FTP 服务器被动等待 FTP 客户的连接,因此称为被动模式。

注意

  • 控制连接在整个会话期间一直保持打开,用于传送 FTP 相关的控制命令。

  • 数据连接用于文件传输,在每次文件传输时才建立,传输结束就关闭

习题

习题1

image-20230821224401019

习题2

image-20230821224502640

本节小结

image-20230821224524470

站内搜索

没有找到内容!