ftp工作原理详解

来源:互联网 发布:网络象棋需求分析 编辑:程序博客网 时间:2024/06/07 23:04
基于C/S结构:客户/服务器模式
双通道协议:数据和命令连接
数据传输格式:二进制(默认)和文本

两种模式:服务器角度


ftp协议是双通道,数据通道和命令通道,命令通道是固定端口21,而ftp数据通道分别工作在ftp的被动模式(pasv)和主动模式(porrt),主动模式使用21 和20 端口,被动模式开放21端口和大于1024的随机端口,从网络安全的角度看主动模式只需要开放21和20端口,而被动模式需要开放21端口和所有大于1024的端口,主动模式似乎对服务器更安全,那么为什么还要使用被动模式呢?其实被动模式是为了数据传输安全设定的,因为主动模式使用固定的20 端口传输数据,很容易被黑客窃取,因此实际使用中往往使用具有检测状态的防火墙开启被动模式的端口,状态检测的防火墙会检测客户端连接ftp21端口的客户端,一旦检测到客户端使用21命令端口就允许这个session连接ftp的随机端口,而其他session是无法连接,这样就能保证ftp随机端口只对ftp session开放了。


ftp 主动模式(PORT style):服务器主动连接

命令通道:客户端:随机port ------->服务器:tcp21(客户端传送随机端口号到服务器的21端口)

数据通道:服务器:TCP20 --------->客户端:随机port(服务器端接收到客户端的随机端口用服务器端的20端口主动连接客户端的随机端口)



ftp 被动模式(PASV style):客户端主动连接

命令通道:客户端:随机port --------->服务器:tcp21(客户端传送随机端口号和两个随机数m,n到服务器的21端口,服务器打开随机端口号(m*256+n))

数据通道:服务器:随机port --------->客户端:随机port(服务器端接收到客户端的随机端口用服务器端的随机端口端口主动连接客户端的随机端口)