天天看点

对FTP知识点的补充

温故:

        在《​​FTP的两种登录方式​​》一文中已经对FTP的原理做了简单的介绍,主要讲了授权登录和匿名登录的区别,而且在文章的最后还特意对“匿名FTP”进行了拓展,有兴趣的建议看看。

知新:

        今天相对FTP的其他小知识做一个补充,比如FTP 是基于客户———服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接,你知道吗?

        FTP 的独特的优势是它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应),这种将命令和数据分开传送的思想大大提高了 FTP 的效率,而其它客户服务器应用程序一般只有一条 TCP 连接.并且ftp的数据连接还是全双工的链路,这就意味着数据传输时可以同时进行双向的传输。命令与数据互不干涉,数据双向传输,正是具备这些优势,它才能一直屹立不倒。

对FTP知识点的补充

        既然上面提到了FTP传输数据时建立了两条连接,那么就意味着起码要有两组进程来为之服务。这两组进程分别是属于用户和服务器的控制信息进程和数据进程,两组进程形成了两条连接。控制连接不能完成传输数据的任务,只能用来传送FTP执行的内部命令以及命令的响应等控制信息;数据连接是服务器与客户端之间传输文件的连接,重点是当数据传输完成后,数据连接会撤消,再回到FTP会话状态,直到控制连接被撤消,并退出会话为止,在整个交互的 FTP 会话中,控制连接始终是处于连接状态的,数据连接则在每一次文件传送时先打开后关闭。

FTP支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。

Port模式

        FTP ​​客户端​​首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式

继续阅读