当前位置:首页 » 文件管理 » ftp上传文件原理

ftp上传文件原理

发布时间: 2023-08-18 18:08:35

⑴ 简述文件传输协议ftp的工作原理及一般使用步骤。

1、FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive(也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
下面介绍一个这两种方式的工作原理:
Port
FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive
在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

2、使用步骤
(1)FTP服务器运行FTPd守护进程,等待用户的FTP请求。

(2)用户运行FTP命令,请求FTP服务器为其服务。

例:FTP 202.119.2.197

(3)FTPd守护进程收到用户的FTP请求后,派生出子进程FTP与用户进程FTP交互,建立文件传输控制连接,使用TCP端口21。

(4)用户输入FTP子命令,服务器接收子命令,如果命令正确,双方各派生一个数据传输进程FTP-DATA,建立数据连接,使用TCP端口20,进行数据传输。

(5)本次子命令的数据传输完,拆除数据连接,结束FTP-DATA进程。

(6)用户继续输入FTP子命令,重复(4)、(5)的过程,直至用户输入quit命令,双方拆除控制连接,结束文件传输,结束FTP进程。

⑵ FTP文件传输原理

在遇到了一个wireshark数据包分析题之后,看到了ftp的相关信息,但是没找到相关的flag信息,请教了大佬的解释,才知道ftp文件传输并不是在21端口,ftp文件传输有主动和被动两种方式,

被动(PASV)模式:

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条控制连接。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

服务器控制端口(21),服务器端等待的数据传输端口(动态申请)

ftp服务器动态申请一个端口(一般大于1024)然后告诉客户端,我在这个端口上等待你的连接,客户端收到以后便向服务器的这个端口发起连接,数据连接建立以后,数据传输就可以开始了

端口计算方法:172,16,101,104,7,254,256*7+254=2046

一次完整的被动连接及数据传输过程:

状态: 正在连接 172.16.101.104:21...

状态: 连接建立,等待欢迎消息...

响应: 220 Serv-U FTP Server v6.4 for WinSock ready...

命令: USER test

响应: 331 User name okay, need password.

命令: PASS ****

响应: 230 User logged in, proceed.

状态: 已连接

状态: 读取目录列表...

命令: PWD

响应: 257 "/" is current directory.

状态: 列出目录成功

状态: 正在连接 172.16.101.104:21...

状态: 连接建立,等待欢迎消息...

响应: 220 Serv-U FTP Server v6.4 for WinSock ready...

命令: USER test

响应: 331 User name okay, need password.

命令: PASS ****

响应: 230 User logged in, proceed.

状态: 已连接

状态: 开始上传 E:\Downloads\liugong\liugong\404.htm

命令: CWD /

响应: 250 Directory changed to /

命令: TYPE A

响应: 200 Type set to A.

命令: PASV

响应: 227 Entering Passive Mode (172,16,101,104,8,86)

命令: STOR 404.htm

响应: 150 Opening ASCII mode data connection for 404.htm.

响应: 226 Transfer complete.

状态: 文件传输成功,传输了 2,052 字节 (用时1 秒)

状态: 读取目录列表...

命令: TYPE I

响应: 200 Type set to I.

命令: PASV

响应: 227 Entering Passive Mode (172,16,101,104,8,88)

命令: MLSD

响应: 150 Opening BINARY mode data connection for MLSD.

响应: 226 Transfer complete.

状态: 列出目录成功

主动(PORT)模式:

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条控制连接。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

一次完整的主动连接及数据传输过程:

状态: 正在连接 172.16.101.104:21...

状态: 连接建立,等待欢迎消息...

响应: 220 Serv-U FTP Server v6.4 for WinSock ready...

命令: USER test

响应: 331 User name okay, need password.

命令: PASS ****

响应: 230 User logged in, proceed.

状态: 已连接

状态: 开始上传 E:\Downloads\liugong\liugong\404.htm

命令: CWD /

响应: 250 Directory changed to /

命令: TYPE A

响应: 200 Type set to A.

命令: PORT 172,16,101,104,8,76

响应: 200 PORT Command successful.

命令: STOR 404.htm

响应: 150 Opening ASCII mode data connection for 404.htm.

响应: 226 Transfer complete.

状态: 文件传输成功,传输了 2,052 字节 (用时1 秒)

状态: 读取目录列表...

命令: TYPE I

响应: 200 Type set to I.

命令: PORT 172,16,101,104,8,77

响应: 200 PORT Command successful.

命令: MLSD

响应: 150 Opening BINARY mode data connection for MLSD.

响应: 226 Transfer complete.

状态: 列出目录成功

再回来说这一题,看到

计算端口为 4*256+17=1041

端口过滤,追踪tcp流

⑶ FTP原理与配置

FTP是用来传送文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。

在企业网络中部署一台FTP服务器,将网络设备配置为FTP客户端,则可以使用FTP来备份或更新VRP文件和配置文件。 也可以把网络设备配置为FTP服务器,将设备的日志文件保存到某台主机上方便查看。

FTP传输数据时支持两种传输模式:ASCII模式和二进制模式。

ASCII模式用于传输文本。 发送端的字符在发送前被转换成ASCII码格式之后进行传输,接收端收到之后再将其转换成字符。 二进制模式常用于发送图片文件和程序文件。 发送端在发送这些文件时无需转换格式,即可传输。

使用FTP进行文件传输时,会使用两个TCP连接。 第一个连接是FTP客户端和FTP服务器间的控制连接。 FTP服务器开启21号端口 ,等待FTP客户端发送连接请求。

第二个连接是FTP客户端和FTP服务器间的数据连接。 服务器使用TCP的20号端口 与客户端建立数据连接。 通常情况下,服务器主动建立或中断数据连接。

执行 ftp server enable 命令使能FTP功能。

执行 set default ftp-directory 命令设置FTP用户。

在配置FTP服务器时,可以使用AAA为每个用户分别配置登录账号和访问权限。

aaa 命令用来进入AAA视图。

local-user user-name { access-limit max-number | ftpdirectory directory | idle-timeout minutes [ seconds ] | password cipher password [ opt ]| privilege level level | state {active | block } } *命令用来创建本地用户,并配置本地用户的各项参数。

ftp客户端连接ftp服务器

ftp命令用来不远程FTP服务器建立控制连接,并进入FTP客户端视图。

binary命令用来在设备作为FTP客户端时设置文件传输方式为Binary模式,又称二进制模式。缺省情况下,文件传输方式为ASCII模式。get命令用来从远程FTP服务器下载文件并保存在本地。

⑷ 简述FTP的工作原理

FTP有两个过程:控制连接数据连接

控制连接用于传送请求;而数据连接用于传输文件

  • FTP的工作原理:

    FTP协议不像HTTP协议一样需要一个端口作为连接(默认时HTTP端口是80,FTP端口是21)。FTP协议需要两个端口:

    一个端口是作为控制连接端口,也就是FTP的21端口,用于发送传送请求给服务器的控制进程以及等待服务器响应(控制连接并不用来传送文件)

    另外一个端口用于数据传输端口,端口号为20(仅用PORT模式),是用建立数据传输通道的,主要作用是从客户向服务器发送一个文件,从服务器向客户发送一个文件,从服务器向客户发送文件或目录列表,用来连接客户端和服务器端的数据传送进程。

    数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。

⑸ ftp服务器的工作原理是什么

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

⑹ ftp服务器的工作原理

FTP并不是应用于IP网络上的协议,而是ARPANEt网络中计算机间的文件传输协议, ARPANET是美国国防部组建的老网络,于1960-1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web服务器,需要从远程主机上取得HTML文件和CGI程序在本机上工作,他需要从远程存储站点获取文件(远程站点也需安装Web服务器)。当用户完成工作后,可使用FTP将文件传回到Web服务器。采用这种方法,用户无需使用Telnet登录到远程主机进行工作,这样就使Web服务器的更新工作变得如此的轻松。

FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的"三次握手"的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。

其次,FTP的连接模式有两种,PORT和PASV。PORT模式是一个主动模式,PASV是被动模式,这里都是相对于服务器而言的。为了让大家清楚的认识这两种模式,朗月繁星分别举例说明。

PASV模式

然而,当FTP客户以PASV模式连接服务器时,情况就有些不同了。在初始化连接这个过程即连接服务器这个过程和PORT模式是一样的,不同的是,当FTP客户发送ls、dir、get等这些要求数据返回的命令时,他不向服务器发送PORT指令而是发送PASV指令,在这个指令中,用户告诉服务器自己要连接服务器的某一个端口,如果这个服务器上的这个端口是空闲的可用的,那么服务器会返回ACK的确认信息,之后数据传输通道被建立并返回用户所要的信息(根据用户发送的指令,如ls、dir、get等);如果服务器的这个端口被另一个资源所使用,那么服务器返回UNACK的信息,那么这时,FTP客户会再次发送PASV命令,这也就是所谓的连接建立的协商过程。为了验证这个过程我们不得不借助CUTEFTP Pro这个大家经常使用的FTP客户端软件,因为微软自带的FTP命令客户端,不支持PASV模式。虽然你可以使用QUOTE PASV这个命令强制使用PASV模式,但是当你用ls命令列出服务器目录列表,你会发现它还是使用PORT方式来连接服务器的。现在我们使用CUTEFTP Pro以PASV模式连接服务器
PORT模式

当FTP客户以PORT模式连接服务器时,他动态的选择一个端口号(本次试验是6015)连接服务器的21端口,注意这个端口号一定是1024以上的,因为1024以前的端口都已经预先被定义好,被一些典型的服务使用,当然有的还没使用,保留给以后会用到这些端口的资源服务。当经过TCP的三次握手后,连接(控制信道)被建立

⑺ ftp服务器的原理

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

热点内容
脚本微信取关 发布:2025-02-01 19:35:01 浏览:150
如何用云服务器部署svn 发布:2025-02-01 19:33:20 浏览:988
缓存迅雷 发布:2025-02-01 19:31:53 浏览:974
linux与unixshell编程指南 发布:2025-02-01 19:25:03 浏览:939
护肤品数据库 发布:2025-02-01 19:25:02 浏览:647
python接受json数据 发布:2025-02-01 19:24:24 浏览:942
修改网站数据库 发布:2025-02-01 19:02:16 浏览:423
果粉不换安卓怎么办 发布:2025-02-01 18:57:21 浏览:796
网页卡需要什么配置 发布:2025-02-01 18:50:30 浏览:136
编程玩家 发布:2025-02-01 18:22:36 浏览:823