6.5、文件传送协议FTP

news2024/11/18 5:40:28

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

文件传送协议 FTP \color{red}文件传送协议\texttt{FTP} 文件传送协议FTP (File Transfer Protocol)是因特网上使用得最广泛的文件传送协议。

  • FTP 提供交互式的访问 \color{red}提供交互式的访问 提供交互式的访问,允许客户 指明文件的类型与格式 \color{red}指明文件的类型与格式 指明文件的类型与格式(如指明是否使用ASCII码),

    并允许 文件具有存取权限 \color{red}文件具有存取权限 文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。

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

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

1、FTP的应用

FTP 采用 C/S 方式

因特网上 FTP 客户计算机可将各种类型的文件上传到 FTP 服务器计算机

ftpup.gif

FTP 客户计算机可以从 FTP 服务器计算机下载文件

ftpdown.gif

根据应用需求的不同,FTP 服务器可能需要一台高性能、高可靠性的服务器计算机

  • 也可能只需要一台普通的个人计算机即可

例如:本例中也可以采用个人计算机作为 FTP 服务器计算机

image-20230109215049730

为了简单起见:我们假设 FTP 客户计算机与 FTP 服务器计算机处于同一个局域网

我们在 FTP 服务器计算机中创建 FTP 服务器

  • 可以使用第三方的 FTP 服务器软件(例如:Xftp),也可以使用操作系统自带的 FTP 服务器软件。

    例如:在 windows 系统中使用其自带的 FTP 服务器功能创建一个 FTP 服务器站点(上网查阅)


假设这是创建的 FTP 服务器的 IP 地址

我们可以在客户计算机中使用游览器软件通过该地址访问 FTP 服务器

ftpfangwen.gif

注意:这里使用的是文件传送协议 FTP

  • 而不是游览器最常用的超文本传输协议 HTTP

我们也可以在 FTP 客户计算机中使用 windows 系统自带的命令行工具

  • 通过该地址来访问 FTP 服务器

image-20230109215934177

这种方式需要记住相关命令,这对普通用户并不友好

  • 因此,大多数用户在 FTP 客户计算机上,使用第三方的 FTP 客户工具软件

image-20230109220107486


FTP 的常见用途是在计算机之间传输文件,尤其是用于批量传输文件。

FTP 的另一个常见用途是让网站设计者将构成网站内容的大量文件批量上传到他们的 Web 服务器。

2、FTP的基本工作原理

2.1、主动模式

如下所示,FTP 服务器监听数值端口号 21 21 21

FTP 客户随机选择一个临时端口号与其建立 TCP 连接

image-20230109220837158

这条 TCP 连接(①)用于 FTP 客户与服务器之间传送 FTP 的相关控制命令

  • 即:这条 TCP 连接(①)是 FTP 客户与服务器之间的 命令通道 \color{blue}命令通道 命令通道(②)

当有数据要传输时,FTP 客户通过命令通道告知 FTP 服务器来与自己的另一个临时端口号建立 TCP 连接

  • 建立数据通道

image-20230109220556356

这条 TCP 连接(④)用于 FTP 客户与服务器之间传送文件

  • 即:这条 TCP 连接(④)是 FTP 客户与服务器之间的 数据通道 \color{blue}数据通道 数据通道(⑤)

说明:若采用一条 TCP 连接,FTP 服务器并不知道是控制命令还是数据文件

由于在建立数据通道时,FTP 服务器主动连接 FTP 客户

  • 因此称为主动模式

image-20230109221202613


image-20230109221249016

2.2、被动模式

不同之处在于:有数据要传输时,FTP 客户通过命令通道告知 FTP 服务器开启某个协商好的临时端口

  • 被动等待 TCP 连接 \color{blue}被动等待\texttt{TCP} 连接 被动等待TCP连接,建立数据通道。

如下所示,TCP 服务器使用的、与 FTP 客户协商好的临时端口号

  • FTP 客户随机选择的另一个端口号

image-20230109221610683


FTP 客户发起与 FTP 服务器的 TCP 连接已建立数据通道

由于在建立数据通道时,FTP 服务器被动等待 FTP 客户的连接

  • 因此称为被动模式

image-20230109221738050

3、习题

image-20230109221805980

image-20230109221852400

答案:A


image-20230109221900859

image-20230109222041162

答案:C

4、小结

image-20230109222059713

image-20230109222119309

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/160148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录--Vue开发历程---音乐播放器

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 一、audio标签的使用 1、Audio 对象属性 2、对象方法 二、效果 效果如下&#xff1a; 三、代码 代码如下&#xff1a; MusicPlayer.vue <template><div class"music"><!-- 占…

【QFD】质量保证需求

QFD体系把前端商业策略成果和产品有效开发紧密连接起来工具。QFD是强调需求与功能的对应&#xff0c;验证确定的市场需求与产品功能设计的关联性&#xff0c;与功能之间&#xff0c;与需求之间的矛盾性&#xff0c;也叫质量屋。 1.什么是QFD 什么是QFD质量功能展开&#xff0…

代码随想录第59天|503.下一个更大元素II ● 42. 接雨水

503.下一个更大元素2 和下一个更大元素基本相同&#xff0c;就多了一个循环数组的问题 处理方法&#xff1a; 循环的次数*2 利用i%nums.size()得到处理的下标&#xff0c;这样当遍历到nums的最后一个元素的时候&#xff0c;向单调栈中插入其下标nums.size()-1,之后将其与下标n…

C语言进阶(7)——联合体和枚举

文章目录1 枚举1.1 含义1.2 定义1.3 枚举的优点1.4 枚举的使用2 联合体&#xff08;共用体&#xff09;2.1 联合类型的定义2.2 联合体的特点2.3联合体大小的计算1 枚举 1.1 含义 枚举就是一一列举。 1.2 定义 枚举是定义常量&#xff0c;默认值 0&#xff0c;然后数自增。 …

go:快速升级Go版本,我几分钟就解决了

底层依赖升级了&#xff0c;那我们也要跟着升&#xff0c;go版本需要升级到1.18以上&#xff0c;网上对比了一些教程&#xff0c;发现这个方法最便捷快速 目录当前Go版本下载高版本Go登录 [Go官网](https://go.dev/dl/)下载对应版本部署升级Go版本备份旧版本部署新版本当前Go版…

从0到1完成一个Node后端(express)项目(一、初始化项目、安装nodemon)

初识express 因为上个专栏的vue项目&#xff0c;后端是用node写的&#xff0c;所以这里教大家怎么去写 Express 简介&#xff1a; Express 是基于 Node.js 平台&#xff0c;快速、开放、极简的 Web 开发框架通俗的理解: Express 的作用和 Node.is内置的 http 模块类似&#xff…

MongoDB副本详解

概念 MongoDB副本集是一组维护相同数据集的mongod服务&#xff0c;可以提供冗余和高可用&#xff0c;是所有生产部署的基础&#xff1b; mysql主从复制和mongodb副本集的区别 主从复制的主从是固定的&#xff0c;副本集是不固定的&#xff0c;可以自动切换 副本集角色 主节点&a…

prototext format 随机空格

prototext format 随机空格问题简述代码复现解密结论总结问题简述 golang 语言&#xff0c;在使用 prototext 进行 format 的时候&#xff0c;相同的代码输出结果不唯一&#xff0c;有的时候字段之间是两个空格&#xff0c;有的时候是一个空格。 代码 先上pb文件 syntax &…

【寒假每日一题】洛谷 P6414 [COCI2014-2015#1] PROSJEK

题目链接&#xff1a;P6414 [COCI2014-2015#1] PROSJEK - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 有一个数列 a&#xff0c;现在按照下列公式求出一个数列 b&#xff1a; 给你数列 b&#xff0c;请求出数列 a。 输入格式 第一行一个整数 n &#xff0c;表示…

bugku-reverse-入门逆向 Easy_vb re 游戏过关 逆向入门

入门逆向下载文件 解压后 拖入IDA中Easy_vb同样方法 解压后 拖入IDAEasy_re下载解压后 打开似乎有点逗查下壳先拖入IDA 选中这两行字符 转译单击a 得到flag游戏过关下载文件 解压打开 发现要把8个都点亮 每次输入会把输入的数本身和他上一个下一个都改变状态&#xff0c;当…

Jenkin权限控制——基于角色授权策略

开启授权策略 Jenkins的项目权限控制通过【授权策略】实现&#xff0c;【授权策略】需要plugins提供&#xff0c;首先需要安装Role-based Authorization Strategy 安装Role-based Authorization Strategy 管理Jenkins——》插件管理——》搜素——》Role-based Authorizatio…

企微机器人使用及内容配置文档

如何使用群机器人 在终端某个群组添加机器人之后&#xff0c;创建者可以在机器人详情页看的该机器人特有的webhookurl。开发者可以按以下说明a向这个地址发起HTTP POST 请求&#xff0c;即可实现给该群组发送消息。下面举个简单的例子. 假设webhook是&#xff1a;https://qyapi…

【Git 从入门到精通】Git中常用的指令(含使用Git维护一个项目的完整操作)

文章目录一、使用git维护一个项目完整操作1.设置用户名与邮箱2.初始化项目中的Git3.使用Git追踪项目中的文件4.提交一次代码5.后期项目的更新与维护附录、常用命令一览表一、使用git维护一个项目完整操作 1.设置用户名与邮箱 注意:这个设置的并不是将代码提交到github或者gite…

CAD动态块操作实例:绘制剖面符号

CAD动态块与普通的CAD图块相比&#xff0c;其图形夹点更多&#xff0c;设计师可以利用动态块的夹点对图形进行快速调整&#xff0c;自由拉伸长度、随心切换隐藏形态等。本节&#xff0c;给大家分享一下浩辰CAD软件中利用CAD动态块的极轴拉伸功能来绘制剖面符号的具体操作步骤。…

[杂记]算法: 并查集

0. 引言 我们考虑如何计算一个图连通分量的个数. 假定简单无向图GGG有两个连通分量(子图)G1,G2G_1, G_2G1​,G2​, 如下图所示: 一个很自然的想法是, 要想求连通分量个数, 我们可以使用Full-DFS算法, 也就是我们从某个点开始深度优先搜索, 并标记访问过的元素. 随后挨个顶点…

高等数学(第七版)同济大学 总习题十一 个人解答

高等数学&#xff08;第七版&#xff09;同济大学 总习题十一 函数作图软件&#xff1a;Mathematica 1.填空&#xff1a;\begin{aligned}&1. \ 填空&#xff1a;&\end{aligned}​1. 填空&#xff1a;​​ (1)第二类曲线积分∫ΓPdxQdyRdz化成第一类曲线积分是_____&am…

Yarn 下载安装及常用配置和命令总结

title: Yarn 下载安装及常用配置和命令总结 date: 2023-01-13 14:47:32 tags: 开发工具及环境 categories:开发工具及环境 cover: https://cover.png feature: false 1. Node.js 建议先安装好 Node.js&#xff0c;见另一篇&#xff1a;Node.js 多版本安装及 NPM 镜像配置_凡 …

Materials - 角色分层材质规范

之前编写的解释性文档&#xff0c;归档发布&#xff1b;在传统贴图中&#xff0c;以BaseColor贴图为例&#xff0c;我们将几乎所有纹理信息都集中到一张贴图上&#xff0c;比如下图中&#xff0c;就有金属、皮革和布料等各种质感的纹理信息&#xff1a;即使是4K的贴图&#xff…

在Win10下装VMware17后,[ 安装VMware Tools ]选项灰色的解决办法

一、说明 菜单【虚拟机】【安装VMware Tools】按钮为灰色&#xff0c;无法实现【安装VMware Tools】的功能&#xff0c;如何解决&#xff0c;使这个功能可以实现&#xff1f;本文介绍此过程。 二、问题发现 在Win10下安装Vmware17后&#xff0c;生成ubuntu18的虚拟机&#xff…

基于java(springboot+mybatis)汽车信息管理系统设计和实现以及文档

基于java(springbootmybatis)汽车信息管理系统设计和实现以及文档 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言…