FTP主动模式和被动模式!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTP主动模式和被动模式!相关的知识,希望对你有一定的参考价值。
参考技术A FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。默认情况下FTP协议使用TCP端口中的 20 和 21 这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
FTP支持两种模式,它在工作运行时也主要是这两种模式,一种模式叫作Standard也被称为PORT方式和 主动方式 ,另一种模式叫作Passive也叫作PASV, 被动方式 。Standard模式FTP的客户端发出PORT命令到服务器,Passive模式FTP的客户端发送PASV命令到FTP Server中,从而保证文件相互传输正常。
我们使用华为的模拟器Ensp来做一个小实验。
FTP三次握手有两次,第一次的TCP三次握手是控制层的握手,第二次是数据层的TCP三次握手
(1)服务器打开端口 21,等待连接;
(2)客户端(100.1.12.1)发起控制连接的建立请求,服务器响应连接,控制连接建立,使用TCP 三次握手(第一次TCP三次握手);
随机端口的计算
可以看到PORT为 10,0,0,2,8,6
随机端口计算为: 8*256+6=2054
(3)客户端通过控制连接发送 PORT 命令(在应用层数据中带有自己的 ip 地址和临时端口),将客户端数据连接的临时端口号告诉服务器
(4)服务器的 20 号端口与客户端建立起数据连接,使用TCP 三次握手(第二次TCP三次握手);
点击登出后控制端口断开连接
FTP三次握手有两次,第一次的TCP三次握手是控制层的握手,第二次是数据层的TCP三次握手
(1)服务器打开端口 21,等待连接
(2)客户端发起控制连接的建立请求,服务器响应连接,控制连接建立,使用TCP 三次握手(第一次TCP三次握手);
(3)客户端通过控制连接发送命令字 PASV,告知服务器处于被动模式;
(4)服务器回应,将服务器数据连接的临时端口号(2060)告诉客户端;
(5)客户端与服务器的临时端口建立起数据连接,使用TCP 三次握手(第二次TCP三次握手);
FTP服务的主动模式和被动模式
FTP在传输文件时有两种传输模式:被动模式和主动模式。
1.主动模式
FTP控制指令通过 21/TCP 端口传向服务器,文件下载通过大于 1024/TCP 的随机端口进行传输。下载文件时,FTP服务器(源端口为20/TCP)主动连接FTP客户端的随机端口进行下载。
2.被动模式
FTP控制指令通过 21/TCP 端口传向服务器,文件下载通过大于 1024/TCP 的随机端口进行传输。下载文件时,FTP客户端主动连接FTP服务器的随机端口进行下载,只有下载文件时FTP服务器才临时监听一个随机端口,平时不监听除 21/TCP 端口以外的其他端口。
大多数FTP服务器默认使用被动模式,如:Windows Server 2008 R2系统自带的FTP服务。
FTP客户端在连接FTP服务器时可以手动选择使用主动模式还是被动模式,大多数FTP客户端默认使用被动模式。
Windows Server 2008 R2系统自带的FTP服务banner信息为:220 Microsoft FTP Service
...
以上是关于FTP主动模式和被动模式!的主要内容,如果未能解决你的问题,请参考以下文章