FTP的模式决定了究竟是由FTP SERVER还是由FTP CLIENT来发起TCP连接。FTP支持以下两种模式:
1、第一种模式通常也被认为normal标准模式,虽然我们经常用active模式来提及它,这种模式也是FTP默认的
2、第二种模式就是passive模式。
在active模式下,是由客户端(client)发起控制信令(port 21),去连接server端的21端口,当客户端通过了一系列包括用户名,密码的验证后,需要接收数据时,就是由server端初始化TCP连接,使用20端口与客户端的1023以上的随机端口进行数据通信。
在passive模式下,客户端初始化数据通信,使用的目的端口号是由server端随机提供的。
ACTIVE FTP OPERATION
ACTIVE模式下安全性稍差,同时防火墙的配置也较为复杂,它必须预见到FTP SERVER端将主动给CLIENT端做数据发送。主动模式下的具体运行机制如下图所示:
1、客户端使用源端口5150与server端的21端口通信,请求建立连接。
2、server收到后,发送应答信息,OK(ACK),client and server通过控制端口交换控制信令。
3、当用户请求列出服务端目录或下载数据时,客户端软件会发送PORT命令,并包含有大于1023的随机端口号,告知服务端使用这个端口号将数据发送过来。这里客户端采用了5151端口。
4、服务端打开20端口做为数据发送的源端口,向客户端的5151端口发送。
5、客户端应答,传输过程结束。
written by cracker
PASSIVE FTP OPERATION
这种模式较为安全,因为所有连接都是由客户端发起,所以连接被窃取的可能性减小了。之所以被称为被动模式,是因为服务端看起来完全是被动的。详细过程如下:
1、被动模式下,客户端初始化控制信令连接,使用5150源端口与服务端的21端口建立连接,并使用PASSIVE命令请求进入被动模式。
2、服务端同意进入PASSIVE模式,并随机选择一个大于1023的端口号,告知客户端。
3、客户端接收到此信息后,使用自已的5151端口与刚才服务端提供的3268端口进行数据通信,这里5151是源,3268是目的。
4、服务端收到信息,回传数据并发送应答ACK(OK)
written by cracker