才子佳人博客

我的故事我讲述

FTP的Port模式和Passive模式原理详解
 
来源:xjh  编辑:xjh  2010-10-08

FTP的工作原理不同于一般的WEB、MAIL应用,它分为控制通道和数据通道两部分。控制通道用于发送FTP命令和信息,数据通道才真正用于传送数据。控制通道是通过大家熟知的21号TCP端口来建立的,建立过程与普通的TCP连接一样。连接总是由客户端发起的, 而且端口也是明确的。数据通道的建立则分为两种情况:

1、PORT模式(连接由server端向client端发起):

Client端通过Port命令将连接端口通知server端,同时Client端将在该端口监听,由server端向client端发起TCP连接,连接的源端口为20,目的端口在 Client的port命令中指定。

2、Passive模式(连接由client端向server端发起):

Client端发出PASV命令,server端从自己的空闲端口中找出一个端口号来给予回应,同时在该端口上监听连接请求,由Client端向服务器端发起TCP连接。两种模式下的监听端口号都在控制通道中通过IP包来传送,其中还包括了监听端口所在的主机的IP地址。

FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

总之,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。

被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTP服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

参考:http://hi.baidu.com/defrog/blog/item/d61e97d89377153033fa1c07.html


分类:网络日志| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: