FTP(File Transfer Protocol)是TCP/IP协议组中的协议之一,该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提升文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。假设有两台不一样的主机,运行在不一样的操做系统下、使用不一样的文件结构和字符集。若是须要将一个完整的文件从一台主机复制到另外一个主机上去,则能够采用FTP的传输方式。Telnet协议也能够完成不一样操做系统之间的文件传输。但与Telnet不一样的是:FTP采用2个TCP链接来传输文件,而不须要强制两端都采用同一个标准。服务器
FTP采用2个TCP链接来传输文件:ide
一、控制链接this
以客户端/服务器方式创建。服务器以被动方式打开用于FTP的公共端口21,等待客户端来链接;客户端则以主动方式打开公共端口21,发起链接的创建请求。spa
控制链接始终等待客户端和服务器之间的通讯,而且将相关命令从客户端传送给服务器,同时将服务器的应答传送给客户端。操作系统
二、数据链接.net
服务器的数据链接端使用端口20。服务器执行主动打开数据链接,一般也执行主动关闭数据链接,可是,当客户端向服务器发送流形式的文件时,则须要客户端关闭数据链接。文档
FTP中传输方式是流方式,而且文件结尾以关闭数据链接为标志,因此对每个文件传输或目录列表来讲,都要创建一个全新的数据链接。所以,当一个文件在客户端与服务器之间传输时,一个数据链接就创建起来了。get
创建FTP数据链接的过程以下:it
以下图所示,假设FTP客户端用于控制链接的临时端口号为2345,用户数据链接的临时端口号是2346。class
一、服务器以被动方式打开端口21,等待链接。
二、客户端发起控制链接的主动打开,创建链接。
三、客户端用于控制链接的临时端口,与服务器21号端口之间的控制链接创建完毕。
四、客户端发起创建数据链接的命令。
五、客户端为该数据链接选择一个临时端口号,而且使用PORT命令经过控制链接把端口号发送给服务器。
六、服务器经过控制链接的接收端口号,向客户端发布一个主动的数据链接的打开。
七、客户端用于数据链接的临时端口,与服务器的20号端口之间的数据链接创建完毕。
注意:客户端也有可能不发出PORT命令,而由服务器向正被客户端使用的同一个端口号发出主动打开消息,用当前创建控制链接的临时端口来进行数据链接,这样控制链接被迫关闭。经过此方式来结束控制链接。