理论教育 FTP模型和传输模式:计算机网络技术详解

FTP模型和传输模式:计算机网络技术详解

时间:2023-11-22 理论教育 版权反馈
【摘要】:用户端FTP协议解释器负责发起控制连接,发送FTP命令,同时管理用户端的数据传输进程。图7-12FTP系统模型服务器协议解释器在默认端口21监听来自客户端的控制连接,并负责建立控制连接,接受来自用户端协议解释器发送的命令,并给予应答,同时管理服务端的数据进程。

FTP模型和传输模式:计算机网络技术详解

FTP的设计目的是在异构系统之间进行文件共享,而异构系统之间文件共享的最大问题是文件以何种方式进行存储,而网络又以何种方式进行编码传输。

FTP采用C/S模式,其命令和数据是分开传输的,各自使用自己的TCP连接,分为主动打开和被动打开两种工作模式。

1.FTP模型

FTP采用客户/服务器工作模式,如图7-12所示。客户端负责解释协议,并发送命令、收发数据。服务器端发送命令执行结果、收发数据。

用户接口包括诸如CuteFTP等FTP客户端应用软件。用户端FTP协议解释器负责发起控制连接,发送FTP命令,同时管理用户端的数据传输进程。用户端数据传输进程负责监听来自服务器的数据连接。

978-7-111-31053-2-Chapter07-27.jpg

图7-12 FTP系统模型

服务器协议解释器在默认端口21监听来自客户端的控制连接,并负责建立控制连接,接受来自用户端协议解释器发送的命令,并给予应答,同时管理服务端的数据进程。服务器数据传输进程在主动模式下主要负责建立到用户的数据连接,而被动模式下主要负责监听来自客户端的数据连接。

FTP采用两条TCP连接传输一个文件,即控制连接和数据连接。

1)控制连接。客户端向服务器端发送TCP连接请求,服务器接受连接请求,就建立了一条控制连接。服务器端以被动方式打开TCP端口(默认21),等待客户端连接。客户端则以主动方式打开服务端的TCP端口21来建立连接。控制连接主要从客户端传送命令给服务端,从服务端传送应答给客户端。控制连接基于telnet协议。

2)数据连接。每传输一个文件就需要创建一个数据连接。FTP的数据连接是双向的,即通常所说的上传与下载。FTP交互过程中,只是在有数据传输时才建立数据连接,当用户没有下载数据时,数据连接就会自动撤销,不过可以使用空闲命令NOOP来保持连接。当有新的数据传输任务,需要重新建立数据连接,但无需建立控制连接,这样,用户不用再次输入用户名和密码。(www.daowen.com)

2.传输模式

FTP定义了3种数据传输模式:流模式、块模式和压缩模式。

流模式按字节流传输数据,对类型没有要求。流模式是默认的传输模式。

块模式以连续的带有数据头的数据块来传输文件。数据头包括计数字段和描述码字段。计数字段指示了数据块整个长度,由此可以算出下一数据块的开始位置(没有填充位)。描述码定义了文件最后一块(EOF)、记录最后块(EOR)、差错恢复重开始标记或者怀疑是传输不可靠的数据。描述符不是FTP差错控制的一部分。记录结构可以在这种模式下使用,而且可以用任何表示类型。

压缩模式一般只对连续的重复字节进行压缩,有3种信息要发送:常规数据,以字节串发送;压缩数据,包括复本或填充;控制信息,以两字节的转义字符传送。

3.工作方式

当控制连接建立后,FTP可以采用两种工作模式传输数据:主动方式和被动方式。当FTP的客户端发送PORT命令到FTP服务器时,就处于主动方式。当客户端发送PASV命令到服务器时,就处于被动模式。

主动方式的连接过程如下:当需要传输数据时,服务器端从20端口向客户端的空闲端口发送连接请求,建立一条数据连接来传输数据。

被动方式的连接过程如下:当需要传输数据时,客户端向服务器端的空闲端口发送连接请求,建立一条数据连接来传输数据。

因为主动方式在传输数据时,是服务器端主动连接客户端,所以如果客户端在防火墙或NAT网关后面,则服务器无法找到客户端,在这种情况下就必须使用被动方式。所有的FTP客户端软件如FlashFxp等都支持这两种方式。比较特殊的例子是IE浏览器,因为服务器安全原因(被动模式下,客户端能打开服务器的其他端口),IE默认使用的是主动方式,可以在IE选项里更改为使用被动模式。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈