|
|
关于科来网络分析系统,相信大家都使用的很熟悉了吧,下面是个人使用科来网络分析系统对FTP传输协议的PORT和PASV模式进行简单分析的介绍,仅供大家学习交流。
FTP-File Transfer Protocol,文件传输协议
一个完整的FTP过程需要2个阶段,第一个阶段是用户名和密码的验证以及数据传输模式的协商,第二个阶段是数据的传输阶段。
FTP在传输数据的时候有2种命令模式,一种是PORT,另外一种是PASV。这2种模式称为主动和被动模式(相对与FTP Server而言),2种模式在建立传输数据连接的不同点,在下面的叙述中介绍:
PORT模式(标准、主动模式):
主动模式,表示在进行FTP控制链接的最后阶段,FTP Client会和FTP Server协商进行数据连接的模式,FTP Client会主动通知FTP Server FTP Client所开放的IP和端口,其中,IP是显示的给出,而端口则要进行一定的换算得出。之后进行FTP数据传输的时候FTP Server端将使用FTP Client提供的IP和换算出的端口来主动连接FTP Client。
在上图中,FTP Client首先告诉FTP Server将要使用PORT模式进行数据连接,这个时候FTP Client把自己的IP和2个需要换算的数据发送给FTP Server,让FTP Server主动来连FTP Client。FTP Client告诉FTP Server的IP和2个数据在FTP数据区可以看到:PORT 192,168,0,65,19,139;“PORT”表示此次FTP数据传输模式为主动模式;“192,168,0,65”表示,FTP Server要连接的FTP Client的IP地址;“19,138”表示19×256+138=5002,得出的5002这个数字就是FTP Client所开放的端口。之后的数据传输,FTP Server就使用标准的20端口和FTP Client所开放的5002端口进行数据传输。
以上了解了FTP的主动传输模式,接下来我们接着介绍FTP的被动传输模式。
PASV模式(被动模式):
被动模式,表示在进行FTP控制链接的最后阶段,FTP Client会和FTP Server协商进行数据连接的模式,FTP Server会主动通知FTP Client FTP Server所开放的IP和端口,其中,IP是显示的给出,而端口则要进行一定的换算得出。之后进行FTP数据传输的时候FTP Client端将使用FTP Server提供的IP和换算出的端口来主动连接FTP Server。
在上图中,FTP Client首先告诉FTP Server将要使用PASV模式进行数据连接,这个时候FTP Server把自己的IP和2个需要换算的数据发送给FTP Client,让FTP Client主动来连FTP Server。FTP Server告诉FTP Client的IP和2个数据在FTP数据区可以看到:Entering Passive Mode 192,168,0,68,4,26;“Passive Mode”表示此次FTP数据传输模式为被动模式;“192,168,0,68”表示,FTP Client要连接的FTP Server的IP地址;“4,26”表示4×256+26=1050,得出的1050这个数字就是FTP Server所开放的端口。之后的数据传输,FTP Client就使用控制连接的端口加1的值的作为端口值和FTP Server所开放的1050端口进行数据传输。
在主动和被动的传输模式中,如果传输多个文件,每当传输一个新的文件之前,都会协商一个不同的端口号来进行数据连接,而不是所有的文件都是使用同一个端口。
以上是FTP主、被动模式的简单介绍,下面再说明一下,当FTP Server和FTP Client分别架设在防火墙后面的情况下,为什么在有的情况下FTP不能建立数据连接?
从上面的介绍中,我们已经看到了FTP连接的特殊性,需要连接的IP和端口是放在FTP数据区的,并且还要进行一定的算法才能知道且确的对方开放的端口号。当使用PASV(被动模式)连接的时候,FTP Client在连接FTP Server的时候,连接的目标端口在防火墙上是没有被打开的(虽然FTP Server打开了侦听端口),所以这个时候,FTP数据连接会失败。
同样的道理,当FTP Client处于防火墙的后面的话,当使用PORT(主动模式)连接的时候,FTP的数据连接同样会遭到失败。
[ 本帖最后由 huamao2006 于 2006-12-26 11:50 编辑 ] |
评分
-
1
查看全部评分
-
|