计算机网络:应用层 —— 文件传送协议 FTP

文章目录

    • [FTP 是什么?](#FTP 是什么?)
    • [FTP 的应用](#FTP 的应用)
    • [FTP 的基本工作原理](#FTP 的基本工作原理)
    • 总结

FTP 是什么?

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

文件传送协议FTP(File Transfer Protocol)是一种基于网络的应用层协议,用于在客户端和服务器之间进行文件传输,是因特网上使用得最广泛的文件传送协议。

FTP 提供交互式的访问 ,允许客户指明文件的类型与格式 (如指明是否使用 ASCII 码),并允许文件具有存取权限 (如访问文件的用户必须经过授权,并输入有效的口令)。FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件

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

FTP 的应用

FTP 采用客户/服务器方式 ,通过两个主要连接(控制连接和数据连接)实现文件的上传和下载。因特网上的 FTP 客户计算机可将各种类型的文件上传到FTP服务器计算机FTP 客户计算机也可以从FTP服务器计算机下载文件

根据应用需求的不同,FTP 服务器可能需要一台高性能和高可靠性的服务器计算机,也可能只需要一台普通的个人计算机即可。在 FTP 服务器计算机中创建 FTP 服务器,可以使用第三方的 FTP 服务器软件,也可以使用操作系统自带的 FTP 服务器软件(如在 Windows 系统中添加一个 FTP 站点)。

可以在 FTP 客户计算机中,使用浏览器(或命令行,Windows使用 ftp 命令)通过 FTP 服务器地址地址来访问 FTP 服务器,这里使用的是文件传送协议FTP,而不是浏览器最常用的超文本传送协议 HTTP。

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

FTP 的基本工作原理

FTP 客户和服务器之间要建立以下两个并行的TCP连接

  • 控制连接 :在整个会话期间一直保持打开,用于传送 FTP 相关控制命令和接收服务器响应。

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

默认情况下,FTP使用TCP 21端口进行控制连接,TCP 20 端口进行数据连接。但是否使用 TCP 20 端口建立数据连接与传输模式有关,主动方式使用 TCP 20 端口,被动方式由服务器和客户端自行协商决定。

FTP 支持两种数据传输模式:

  1. 主动模式(Port 模式):客户端从一个随机端口连接到服务器的 21 端口,服务器再从 20 端口主动连接客户端的另一个端口进行数据传输。

  2. 被动模式(Passive 模式):服务器在控制连接中告知客户端一个随机端口,客户端主动连接该端口进行数据传输。

FTP 还支持两种数据传输格式:

  1. ASCII 模式:用于文本文件。

  2. 二进制模式:用于二进制文件(如可执行文件、图片等)。

主动模式

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

  1. FTP客户端发起TCP连接:FTP 客户端使用一个随机选择的临时端口号,向 FTP 服务器的熟知端口 21 发起 TCP 连接。

  2. 建立控制命令通道:一旦 TCP 连接建立成功,FTP 客户端和 FTP 服务器之间就建立了用于传送控制命令的 TCP 连接。

  3. FTP客户端请求数据传输:当有数据需要传输时,FTP 客户端通过控制命令通道告知 FTP 服务器来与自己的另一个临时端口建立 TCP 连接,以建立数据通道。

  4. FTP服务器发起数据连接:FTP服务器使用熟知端口 20,向 FTP 客户端的临时端口发起 TCP 连接,用于传送数据。

  5. 建立数据通道:一旦数据连接建立成功,FTP 客户端和 FTP 服务器之间就建立了用于传送数据的 TCP 连接。

被动模式

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

  1. FTP客户端发起TCP连接:FTP 客户端使用一个随机选择的临时端口号,向 FTP 服务器的熟知端口 21 发起 TCP 连接。

  2. 建立控制命令通道:一旦 TCP 连接建立成功,FTP 客户端和 FTP 服务器之间就建立了用于传送控制命令的 TCP 连接。

  3. FTP客户端请求被动模式 :当有数据需要传输时,FTP 客户端通过控制命令通道告知 FTP 服务器开启某个临时端口,并处于被动等待状态,以便接收 FTP 客户端的数据连接请求。

  4. FTP客户端发起数据连接:FTP 客户端使用另一个随机选择的临时端口号,向 FTP 服务器的临时端口发起 TCP 连接,用于传送数据。

  5. 建立数据通道:一旦数据连接建立成功,FTP 客户端和 FTP 服务器之间就建立了用于传送数据的 TCP 连接。

总结

FTP 是一种广泛使用的文件传输协议,尽管其原始设计存在安全问题,但通过采用安全协议(如FTPS和SFTP)、强化用户认证和配置防火墙等措施,可以显著提升其安全性。在现代网络环境中,FTP 仍具有重要的应用场景,但需要结合安全最佳实践来确保数据传输的安全

相关推荐
zhu128930355626 分钟前
网络安全的现状与防护措施
网络·安全·web安全
zhu12893035562 小时前
网络安全与防护策略
网络·安全·web安全
沫夕残雪2 小时前
HTTP,请求响应报头,以及抓包工具的讨论
网络·vscode·网络协议·http
π2702 小时前
爬虫:网络请求(通信)步骤,http和https协议
网络·爬虫
zhu12893035564 小时前
网络安全基础与防护策略
网络·安全·web安全
古希腊掌握嵌入式的神5 小时前
[物联网iot]对比WIFI、MQTT、TCP、UDP通信协议
网络·物联网·网络协议·tcp/ip·udp
爱写代码的小朋友6 小时前
华三交换机配置常用命令
运维·服务器·网络
半句唐诗6 小时前
设计与实现高性能安全TOKEN系统
前端·网络·安全
麻芝汤圆6 小时前
使用 MapReduce 进行高效数据清洗:从理论到实践
大数据·linux·服务器·网络·数据库·windows·mapreduce
郑梓妍7 小时前
ubuntu改用户权限
服务器·网络·数据库