FTP文件传输协议详解

来源:互联网 发布:注册淘宝账号会员名字 编辑:程序博客网 时间:2024/05/18 01:15

       FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。   摘自--百度百科


FTP连接方式:

FTP是由两个不同的TCP连接组成的应用:

      控制连接: 是基于TCP的连接,用于提供一个传送指令和响应的通信通道。用户可以通过这种有效机制告诉服务器请求的文档,正在使用的目录及其他信息。

      数据连接:这是TCP的第二个基本连接,用于真正意义上的传输用户数据。在使用控制连接交换完请求文档的信息后,使用数据连接在客户端和服务器传输文档。

使用这两种连接时,两种不同的操作方式:主动方式和被动方式,确定了连接的建立方向。  



FTP主动式连接(Active)(默认的连接方式)

A:建立命令通道的连接:客户端会随机获取一个大于1024的端口来与FTP服务器端的端口21连接,完成连接后客户端通过这个连接来对FTP服务器下达指令。
B:通知FTP服务器端使用Acitve(主动式)并且告知连接的端口号:FTP服务器端的21号端口主要用于命令的下达,客户端在需要数据传输的情况下,会告知服务器端用什么方式连接,如果是Active(主动式)方式的话,客户端会先随机启用一个端口,通过命令通道告知FTP服务器连接方式和端口这两个信息,等待服务器连接。
C:FTP服务器主动向客户端连接:FTP服务器由命令通道连接到客户端的需求后,会主动由20端口向客户端告知的端口连接。
这样就成功建立起“命令”和“数据传输”两条通道。

2、客户端被动式连接(PASV)
A:建立命令通道的连接:客户端会随机获取一个大于1024的端口来与FTP服务器端的端口21连接,完成连接后客户端通过这个连接来对FTP服务器下达指令。
B:如果有使用数据通道的命令时,客户端通过命令通道向服务器发出PASV的被动式连接要求,并等待服务器响应。
C:FTP服务器启动数据通道端口,并通知客户端连接:如果FTP服务器是能处理PASV方式的连接,服务器会先启动一个端口在监听,这个端口是随机的,也可能是预先定义的一个端口段里的一个,然后服务器会通过命令通道告知客户端启动的端口号,等待客户端连接。
D:客户端会随机选用一个大于1024的端口来对FTP主机启动的PASV端口进行连接,建立数据通道。

如果客户端是在防火墙的后端,用主动式连接的话又可能会造成建立不了数据通道的情况,这样可以通过防火墙提供的FTP检测模块或者采用被动式连接的方式来解决。



0 0
原创粉丝点击