FTP协议

任务:掌握FTP的功能概述、文件传输模式、主动模式和被动模式的工作原理。

1.FTP概述

文件传输协议FTP是用来传送文件的协议,可保证数据传输的可靠性和高效性。FTP提供了一种在服务器和客户机之间上传和下载的有效方式。

1.1 FTP采用双TCP连接方式

FTP需要在服务器和客户机之间建立控制连接和数据连接。控制连接使用的是TCP的21端口,数据连接使用的是TCP的20端口。

控制连接:用于在FTP客户端和FTP服务器之间传输FTP控制命令及命令执行信息。控制连接在整个FTP会话期间一直保持打开。

数据连接:用于传输数据,包括数据上传、下载、文件列表发送等。数据传输结束后数据连接将终止。



javaFTP被动模式 ftp被动传输_ftp主动和被动模式

1.2 FTP有两种文件传输模式:ASCII模式、二进制流模式

ASCII模式:默认的文件传输模式。主要特点:本地文件转换成标准的ASCII码再传输;适用于传输文本文件。

二进制流模式:也称为图像文件传输模式。主要特点:文件按照比特流的方式进行传输;适用于传送程序文件。

1.3 FTP采用两种数据传输方式:主动模式、被动模式

一般FTP服务器都会设置两者模式都支持的。FTP在建立过程中,在命令通道建立完后,由客户端决定采用主动还是被动模式。

主动模式:在建立数据连接的过程中,由服务器主动发起连接。

被动模式:在整个过程中,服务器总是被动接收客户端的控制连接和数据连接。

2.主动模式工作过程

主动模式也称为PORT模式,是FTP协议最初定义的数据传输连接方式。主动模式的工作过程:



javaFTP被动模式 ftp被动传输_ftp主动和被动模式

1)FTP客户端通过随机周知端口N(1174)向FTP服务器发起TCP的控制连接(服务器21端口)。

2)FTP客户端向FTP服务器发送PORT命令,并开放另一个周知端口M(3566)用于接收服务器的数据连接。

3)FTP服务器通过20端口向TFP客户端发起TCP的数据连接(客户端M端口)。

4)双方进行数据传输,传输完毕后发数据的一方主动关闭数据连接。

3.被动模式工作过程

被动模式也称为PASV模式,被动模式的工作过程:



javaFTP被动模式 ftp被动传输_客户端_03

1)FTP客户端通过随机周知端口N向FTP服务器发起TCP的控制连接(服务器21端口)。

2)FTP客户端向FTP服务器发送PASV命令,告诉服务器进入被动模式。服务器选择一个周知端口M用于接收客户端的数据连接。

3)FTP客户端通过N+1端口向TFP服务器发起TCP的数据连接(服务器X端口)。

4)双方进行数据传输,传输完毕后发数据的一方主动关闭数据连接。