FTP协议

        FTP协议是TCP/IP协议族提供的用于将文件从一台主机复制到另一台主机的标准机制,是Internet上最常用的应用层协议之一。FTP工作于客户端——服务器模式,其不同于其他客户端——服务器应用的一个显著特点是FTP采用在主机之间建立两个TCP连接的方式来实现数据传输,一个连接用于控制信息的传输,另外一个连接用于数据传输。

  FTP连接包括用于控制的TCP连接和用于数据传输的TCP连接,这两个连接使用完全不同的端口和策略。

  1,控制连接。

  控制连接的建立和普通的客户端——服务器模式的连接建立过程完全相同,包括以下两个步骤:

1)服务器在TCP的21端口上监听客户端的连接请求(即被动打开)。

2)客户端使用一个临时端口连接到服务器的21端口上(即发起主动打开);

随后在整个FTP会话过程中,控制连接都一直保持,用于客户端和服务器之间进行命令的请求和应答。

  2,数据连接

  数据连接本质上和控制连接的建立完全相同,但是分为了两种不同的模式,即主动模式和被动模式。

  1)主动模式

  客户端通过在控制连接上发送PORT命令,告诉服务器客户端将在某个临时端口(比如51000)上监听服务器的数据连接请求,服务器收到PORT命令后,从20端口发起主动连接到客户端的该临时监听端口,从而建立数据TCP连接。

  2)被动模式

  客户端通过在控制连接上发送PASV命令,请求服务器告诉服务器将在哪个临时端口(比如40000)上监听客户端的数据连接请求。服务器受到PASV命令后,在该临时端口上进行监听,并将监听端口发送给客户端,客户端从该应答中获得服务器的数据连接监听端口,然后从客户端的一个临时端口发起主动连接到服务器的该临时端口,从而建立数据TCP连接。

  3,数据连接上的通信

  为了消除不同主机上之间文件系统的差异,FTP通过定义传输文件的类型、数据的结构和传输模式来实现这一目的。

  1)文件类型

  FTP可以在数据连接上传输下面3中类型的文件:

ASCII文件,这是传输文本文件的默认类型。每个被传输的字符都按NVT ASCII格式进行编码,发送方负责将文件转换为NVT ASCII码,接收方负责从NVT ASCII码转换为它自己的表示方式。(未完待续~)

你可能感兴趣的:(ftp)