文件传输协议(FTP)

article/2025/8/18 14:43:32

因特网上使用的最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存储权限。它屏蔽了各个计算系统的细节,因而适合于在异构网络中的任意计算机之间传输文件。

FTP提供以下功能:

  1. 提供不同种类的主机系统之间的传输能力(主机之间的软硬件可以不同)

  2. 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力

  3. 以匿名FTP的方式提供共用文件共享的能力

工作原理

FTP采用的是客户/服务器模式(C/S模式),它使用TCP可靠的传输服务。一个FTP进程可以同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干从属进程,负责处理单个请求

FTP工作步骤如下:

  1. 打开熟知端口21(控制端口),使客户进程能连接上

  2. 等待客户进程发送连接请求

  3. 启动从属进程来处理客户进程发来的请求(文件的增删查改)。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。

  4. 回到等待状态,继续接受其他客户进程的请求

FTP服务器必须在整个会话期间内保留用户的状态信息。特别是服务器必须把指定的用户账户与控制连接联系起来。服务器必须追踪用户在远程目录树上当前的位置。

控制连接与数据连接

 

FTP在工作时会使用两个并行的TCP连接,其中一个是控制连接(端口号21),另一个是数据连接(端口号20)。使用两个不同的端口号可以使协议更加简单和容易实现。

控制连接

服务器监听21号端口,等待端口的连接。控制连接用来传输控制信息(如连接请求、传送请求),控制信息都以7位ASCII格式传送。FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程。控制连接不用来传输文件。在文件传输时还可以使用控制连接(如客户在传输中途发送一个中止传输的命令),因此控制连接在整个会话期间一直保持打开状态

 

数据连接

服务器端的控制进程在接收到FTP客户发来的文件传输请求后,就创建"数据传送进程"和"数据连接"数据连接用来连接客户端和服务器端的数据传输进程,数据传送进程实际完成文件的传送,在传送完毕后关闭"数据传送连接"并结束运行(而控制连接仍然保持打开状态)

数据连接有两种方式:主动模式PORT和被动模式PASV

主动模式 PORT

客户端连接到服务器的21端口,登陆成功后要读取数据时,客户端随即开放一个端口,并发送命令告诉服务器,服务器收到PORT命令和端口号之后,通过20端口和客户端开放的端口连接,发送数据

被动模式 PASV

客户端连接到服务器的21端口,登陆成功后要读取数据时,发送PASV命令到服务器,服务器在本地随机开放一个端口,并告知客户端。客户端再连接到服务器开放的端口进行数据传输。

我们可以看到:服务器是使用主动模式还是被动模式,选择权在客户端而不是服务器端。主动模式是客户端连接到固定的熟知端口号20,被动模式是客户端连接到服务器端的随机的端口号(该端口号大于1023)

FTP使用了一个分离的控制连接,所以也称FTP的控制信息是带外传送的。使用FTP时,如果要修改服务器上的文件,则需要先将这个文件放到本地,之后再把修改后的副本传送到服务器。这样来回很浪费时间,所以来了个NFS协议,这个协议允许进程打开一个远程文件。并且能在该文件的特定位置开始读写数据。这样NFS可以使用户复制一个大文件中的一个很小的片段。

主机A想下载文件ftp://ftp.abc.edu.cn/file,大致描述下载过程中主机和服务器的交互过程

  1. 建立一个TCP连接,连接到服务器ftp.abc.edu.cnd的21号端口,然后发送登陆账号和密码

  2. 服务器返回登陆成功信息后,主机A打开一个随机的端口,将该端口号发送给服务器

  3. 主机A发送读取文件命令,内容为 get file 服务器使用20号端口建立一个TCP连接到主机A的随机打开端口

  4. 服务器把文件内容通过第二个连接发送给主机A,传输完毕后关闭连接(21号端口建立的控制连接不会断开)


http://chatgpt.dhexx.cn/article/TMTj9dsv.shtml

相关文章

FTP协议完全详解

1. 介绍 FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要作用是供程序使用的。在阅读本文之前最好能够阅读TCP协议标准规范和Telnet协议标准规范。…

FTP协议(文件传输协议)

FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序&am…

FTP文件传输协议详解

简介:FTP是基于TCP协议之上的具有C/S架构的文件服务器。 需要通过控制连接20端口来控制双方的通信 需要通过数据连接21端口来进行双方的通信 主动模式:最大的特点是数据连接由服务器的20端口主动发起连接,这种情况可能会被客户端的防火墙拒绝…

FTP协议讲解

FTP 概述 文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。FTP的目标是提高文件的共享性和可靠高效地传送数据。 在传输文件时,FTP 客户端程序先与服务器建立连接,然后向服务器发送命…

FTP 协议

FTP 协议 FTP协议的(file Transfer Protocol)文本传输协议,简称为FTP, **FTP 是一种基于 TCP 的应用层协议,它不支持 UDP 协议。 FTP 工作在一种特殊的服务机制上,**采用的是c/s模式 也就是客户端和服务器…

浅谈FTP(文件传输协议)

FTP(文件传输协议) FTP(File Transfer Protocol) ,是一种处于应用层的用于文件传输的协议。是基于TCP协议的应用层协议,用于在网络上传输文件。 该协议使用的端口号为20和21,其中20是数据端口,21是命令端口(默认情况下) 是否使用…

FTP协议

一、FTP的概述 1、文件传送协议FTP (File Transfer Protocol)是互联网上使用得最广泛的文件传送协议,用于Internet上的控制文件的双向传输。 2、FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。 3、FTP 屏蔽了…

FTP文件传输协议

目录 一、FTP的概述 1.1 FTP的理念 1.2 FTP数据连接模式 1.2.1 连接模式分类 1.2.2 主动和被动模式的工作原理 二、配置FTP服务 2.1 配置匿名用户FTP服务 2.1.1 关闭防火墙安装vsftpd软件包 2.1.2 开启FTP服务并做备份 ​ 2.1.3 修改配置文件 2.1.4 设置目录下权限&a…

FTP协议详解

一、FTP协议的概述 1、文件传送协议(File Transfer Protocol)是互联网上使用的最广泛的文件传输协议,用于Internet上的控制文件的双向传输。 2、FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。 3、FTP屏蔽了各…

手推向量投影长度、投影向量

投影 (tuyǐng),数学术语,指图形的影子投到一个面或一条线上。 声明向量F为F、 向量F的大小为|F|,向量b为b、向量b的大小为、|b| 当我们得到了投影的大小之后|F| 因为 F 在 b 上 所以 单位向量相同,F 和 b…

向量投影公式

公式一:a.b |a||b|cos(r) cos(r) a.b/|a|/|b| 公式二:|c| |a|cos(r) 公式三:|c| a.b/|b| 公式四:c b/|b| |c| 公式五:c a.b/|b|2 b 公式六:c a.b/b.b b 备注:|b| √b.b 朝向解P…

已知法向量,某一向量投影到其平面,计算投影向量

最近一直在计算旋转矩阵,奈何高中数学实在是差,大学高等数学也不行,线性代数也不行,现在做起研究来真是要了我这个秃头粥的老命。只能边学习边应用了。 第一个:对某一向量进行旋转平移,等于是在其左边乘了…

向量投影推导

给定一个向量u和v,求u在v上的投影向量,如下图。 假设u在v上的投影向量是u’,且向量u和v的夹角为theta。一个向量有两个属性,大小和方向,我们先确定u’的大小(即长度,或者模)&#xf…

向量投影

给定一个向量u和v,求u在v上的投影向量,如下图。 假设u在v上的投影向量是u’,且向量u和v的夹角为theta。一个向量有两个属性,大小和方向,我们先确定u’的大小(即长度,或者模)&#xf…

向量的投影与射影

一、概念比较 ①人教A版:已知两个非零向量与,我们把数量叫做与的数量积(或内积),记作,即,其中是与的夹角,()叫做向量在方向上(在方向上&#xff0…

向量的平面投影 ProjectOnPlane

1 定义 - ProjectOnPlane // // 摘要: // Projects a vector onto a plane defined by a normal orthogonal to the plane. // // 参数: // planeNormal: // The direction from the vector towards the plane. // // vector: // The location of the vector a…

线性代数 --- 投影Projection 一(投影向量p)

线性代数中的投影 之前看过Gilbert strang老爷爷在MIT主讲的线性代数视频,令我印象最深的,就是他讲过的一堂关于投影的课。倒不是这堂课的内容本身有多么的吸引我,反倒是他在这堂课中所说的一句话,时至今日都另我印象深刻。 他的…

空间向量在任意平面的投影公式推导 (矩阵方法)

若 V是Rn 的一个子空间,已知V的一组基向量 {b1, b2, b3,... bk} 则: 可构建矩阵 :A(nxk) {b1 b2 b3 b4...bn} 有: x(m,n,q) 为空间向量 矩阵 A 包含平面的基向量 A(3x3) 根据投影的定义有 : 原向量 - 投影向量 投…