超级详细讲解FTP

  • Post author:
  • Post category:其他

概念:
文件传输协议,属于应用层协议。实现文件共享服务。
FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。
使用的端口为:命令21,数据20。
使用tcp传输

原理
FTP服务器存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源,并将文件下载到本地,服务器也可允许客户端将本地文件上传到服务器。
运用:
在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

工作模式
1.主动模式:
在这里插入图片描述
过程:
命令端口建立连接过程:
ftp客户端从大于1023的非特殊任意端口n连接到ftp服务端的21号命令端口,服务端接收到并返回响应到客户端随机端口n,
数据端口建立连接过程:
然后客户端在n+1端口开启监听。ftp服务端会使用20数据端口去主动连接ftp客户端的随机数据端口n+1,客户端接收并响应ack到服务器的20端口。

 2.被动模式:

在这里插入图片描述
只有当客户端通知服务器处于被动模式下才会启用。
过程:
21命令端口建立的连接的过程与主动模式相同,
数据建立连接的过程:
当建立好21命令端口的连接,ftp服务器会开启一个大于1023的随机端口,等待客户端的连接,客户端会从本地端口大于1023,n+1的随机端口去连接服务器指定的任意端口,服务器收到发送ACK响应和数据到客户端的n+1的任意数据端口。

原理:
先建立21命令端口的连接,通过此端口,主动模式下,客户端提交port命令,允许服务器来连接它开启的任意数据端口,被动模式下,客户端提交pasv命令,让服务器开启随机任意端口,发送port命令给客户端,等待客户端的连接。

通俗的说:
建立好21命令端口的连接时,若是主动模式,客户端会发送port给服务器,说:我已经开始一个任意端口了,你可以来连接我了,服务端就会使用20端口去连接,
若是被动模式:客户端会发送pasv,告诉服务器你开启一个随机端口号,等着我来连接你,服务器就会将开启的任意端口号告诉给客户端。

男生–服务器 女生—-客户端
就像男女生建立好的恋爱关系,
主动模式:女生告诉男生,我生气了,你来找我,我在那,男生就赶紧主动去找女生。
被动模式:女生生气了,问男生你在哪,等着一会来收拾你,男生就乖乖等着,这就是被动。

从防火墙来说;
由于被动模式下,都是由客户端先去发起连接,可以对客户端进行有效管理,但去连接服务器时,可能会被服务器拒绝。
而主动模式,对服务器端能有效管理,但很可能会被客户端的防火墙拒绝。

传输方式:
ASCII传输模式

   假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的是不同的操作系统,当文件传输时ftp通常会自动地调整
文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文
件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,
字库等信息的非打印字符)。
在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。

二进制传输模式

    在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是
没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。
    如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得
不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。
如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。

FTP
用户分类:

  1. 匿名用户在这里插入图片描述
  2. 虚拟用户:
    在这里插入图片描述
    在这里插入图片描述
  3. 系统用户:在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    linux:
    在这里插入图片描述在这里插入图片描述

版权声明:本文为weixin_44034479原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。