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

news/2025/2/22 22:29:10

文章目录

    • 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 仍具有重要的应用场景,但需要结合安全最佳实践来确保数据传输的安全


http://www.niftyadmin.cn/n/5862807.html

相关文章

使用Docker Desktop部署GitLab

1. 环境准备 确保Windows 10/11系统支持虚拟化技术(需在BIOS中开启Intel VT-x/AMD-V)内存建议≥8GB,存储空间≥100GB 2. 安装Docker Desktop 访问Docker官网下载安装包安装时勾选"Use WSL 2 instead of Hyper-V"(推荐…

【MCU输入捕获模式】

MCU输入捕获模式 目录 MCU输入捕获模式引言一、基本概念二、实现原理三、应用案例四、优势与局限五、配置与注意事项(以STM32为例) 引言 输入捕获模式 (Input Capture Mode)是一种用于捕获外部输入信号变化的微控制器&#xff08…

js中 ES6 新特性详解

ES6(ECMAScript 2015)是 JavaScript 的一次重大更新,引入了许多新的特性,使 JavaScript 代码更加简洁、可读和高效。以下是 ES6 的主要新特性及其原理 1. let 和 const 关键字 原理解析 1.1 作用域 var 关键字的作用域&#xf…

一篇文章理解常用的前端设计模式

前端设计模式 一.设计模式概览 设计模式是针对软件设计开发过程中反复出现的某类问题的通用解决方案。设计模式更多的是指导思想和方法论,而不是现成的代码,每种设计模式都有每种语言中的具体实现方式。学习设计模式更多是理解各个模式的内在思想和解决…

黑马点评自学03

分布式锁 分布式锁介绍 分布式锁:满足在分布式系统或者集群模式下多进程可见并且进程间获取锁的操作是互斥的锁。 在之前的测试中,当我们进入到集群或分布式的环境中时,一人一单业务在不同集群中可以被同时给用户id加锁,出现了…

娱乐使用,可以生成转账、图片、聊天等对话内容

软件介绍 今天要给大家介绍一款由吾爱大佬 lifeixue 开发的趣味软件。它的玩法超丰富,能够生成各式各样的角色,支持文字聊天、发红包、转账、发语音以及分享图片等多种互动形式,不过在分享前得着重提醒,此软件仅供娱乐&#xff0…

小游戏-记忆卡牌

1、游戏开始4张卡牌&#xff0c;每次过关后新增两张&#xff0c;总共64张卡&#xff0c;可以修改数组EMOJIS&#xff0c;添加表情&#xff0c;增加卡牌数量 2、新建txt文件&#xff0c;将代码粘贴进去&#xff0c;保存后&#xff0c;将txt修改后缀名为html的格式 <!DOCTYPE…

计算机考研之数据结构:P 问题和 NP 问题

在算法的时间复杂度估算中&#xff0c;通常教材和题目中的估算结果包括&#xff1a; O ( 1 ) , O ( log ⁡ n ) , O ( n ) , O ( n ) , O ( n log ⁡ n ) , O ( n 2 ) , O ( n 3 ) , O ( log ⁡ log ⁡ n ) O(1),O(\log{n}),O(\sqrt{n}),O(n),O(n\log{n}),O(n^2),O(n^3),O(\log…