FTP工作方式介绍

本文参考了维基百科中ftp的条目。


FTP server

早期的FTP server都是命令行形式的。后来发展出了图形化ftp工具。常用的有CuteFTP, Filezilla等。

很多linux,solaris都自带ftp工具。


FTP的两个连接

FTP(file transfer protocol) 位于OSI模型的应用程序层,用于传输文件,它是基于TCP/TP的
因此,一个FTP server必须持续运行,并等待来着客户端的请求。建立连接后,客户端可以通过21端口和服务器通信。这个连接被称为“控制连接”(controller connection),该端口在整个会话过程中保持打开。第二个连接,被称为“数据连接”(data connection), 可以是服务器主动打开的20端口(active mode),也可以是一个随机的端口(passive mode)。该连接用于传输数据。

控制连接用于管理会话,例如各种命令,身份验证以及密码在服务器和客户端之间的交换(且基于一种类似telnet的协议)。由于这种双端口的结构,ftp被认为是out-of-band 协议,与http这样的in-band 协议相反。

FTP的两中工作模式

ftp有两种模式,分别为active模式和passive模式。这两种模式都是由ftp client初始化的(决定的),之后由ftp server将使用它们。

主动模式
在主动模式中,data connection永远使用20端口。一般ftp的默认工作方式就是主动模式。

被动模式
在被动模式中,ftp客户端会使用一个Ephemeral Port
此时,客户端会侦听它的ephemeral port + 1,同时通过21端口将port + 1发送给ftp服务器。
例如,如果当前正在使用的ephemeral port是1026, 客户端开始侦听1027端口。一旦完成,ftp server就会建立一个到ftp client 1027端口的连接。
passive模式的意义就在于数据传输使用的端口一直在变化,这样可以绕开一些防火墙。例如防火墙仅放开了21,8080等几个端口(没有打开20端口),被动模式就可以自动找到可用端口并使用。

另外提一点,所谓的Out-of-band就是说控制数据和真正的数据传输是分离的。ftp这样的协议就是使用的out-of-band控制。

匿名连接
很多ftp server都提供匿名连接,用户可以直接使用匿名方式连接上ftp server,当然权限有限。很多时候这种功能是为了软件自动更新。

安全ftp协议
如果我没有记错,ftp传输是明文的。

因此出于安装因素,衍生出了多种安全的ftp协议。主要有:FTPS,SFTP, FTP over SSH 三种。大家自己看wiki吧。

浏览器支持
常用浏览器都支持ftp协议,我们可以使用浏览器查看ftp server上的文件,但一般不支持其他功能如,上传,删除等。对于firefox来说,提供了一个插件fireftp,可以让firefox和ftp客户端一样支持多种操作。
同时浏览器未必支持扩展的ftp协议如ftps等。也就是说如果ftp站点使用的是ftps协议的话,你的浏览器也许就无法访问ftp站点了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值