文件传输ftp的主要过程
A. 文件传输协议ftp的主要工作过程是怎样的
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
FTP简要工作过程。1. 主进程2.从属进程主进程工作步骤如下a,打开熟知端口,使客户进程能够链接上b,等待客户进程发送链接请求c,启动从属进程来处理客户进程发来的请求,从属进程在运行期间还会创建一些子程序d,回到等待状态 从属进程包括a,控制进程 不用来传输文件b,数据传输进程 数据链接用来传输文件
B. 简述FTP的工作原理
FTP有两个过程:控制连接和数据连接。
控制连接用于传送请求;而数据连接用于传输文件。
FTP的工作原理:
FTP协议不像HTTP协议一样需要一个端口作为连接(默认时HTTP端口是80,FTP端口是21)。FTP协议需要两个端口:
①一个端口是作为控制连接端口,也就是FTP的21端口,用于发送传送请求给服务器的控制进程以及等待服务器响应(控制连接并不用来传送文件);
②另外一个端口用于数据传输端口,端口号为20(仅用PORT模式),是用建立数据传输通道的,主要作用是从客户向服务器发送一个文件,从服务器向客户发送一个文件,从服务器向客户发送文件或目录列表,用来连接客户端和服务器端的数据传送进程。
数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
C. 文件传送协议ftp的主要工作过程怎么样
• FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。
• FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
• 主进程的工作步骤:
• (1)打开熟知端口(端口号为21),使客户进程能够连接上。
• (2)等待客户进程发出连接请求。
• (3)启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程
• (4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发的进行的。
• FTP使用两个TCP连接。
• 控制连接在整个会话期间一直保持打开,FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
• 实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到FTP客户发送来的文件传输请求后就创建“数据传输进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
• 数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传输连接”并结束运行。
D. 简述文件传输协议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进程。
E. 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流
F. FTP的主要工作过程是怎样的主进程和从属进程各起什么作用
(1)FTP 使用客户服务器方式。一个FTP 服务器进程可同时为多个客户进程提供服
务。
FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干
个从属进程,负责处理单个请求。
主进程的工作步骤:
1、打开熟知端口(端口号为21),使客户进程能够连接上。
2、等待客户进程发出连接请求。
3、启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕
后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
4、回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是
并发地进行。
(2)作用:控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发
送给服务器端的控制进程,但控制连接不用来传送文件。
实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到FTP 客户发送来
的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端
的数据传送进程。
数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。