考点三:文件传输协议

考点三:文件传输协议

1.FTP概述

文件传输协议(File Transfer Protocol,FTP)的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明,能可靠高效地传送数据。FTP是因特网上使用得最广泛的文件传送协议。它具有如下特点:

(1)FTP提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。

(2)FTP屏蔽了各计算机系统的细节,适合在异构网络中的任意计算机之间传送文件。

(3)FTP使用客户机-服务器模式。一个FTP服务器进程可同时为多个客户机-进程提供服务。FTP的服务器进程由两大部分组成:一是主进程,负责接收新的请求;二是有若干个从属进程,每个从属进程负责为一个客户机进行FTP服务。

(4)FTP减少或消除在不同操作系统下处理文件的不兼容性。

(5)FTP基于TCP的协议。

2.FTP的两个连接

FTP在工作过程中使用两个连接:一个是数据连接;另一个是控制连接。而且FTP使用分离的控制连接,也称为“带外”(Out of Band)传送。使用两个连接,一方面使协议更加简单和更容易实现;另一方面在传输文件时可以同时利用控制连接与服务器进行交互(如客户机发送请求终止文件传输)。

控制连接在整个会话期间一直保持打开,FTP客户机发出的传送请求通过控制连接发送给服务器的控制进程,但控制连接不用来传送文件。传送文件的是数据连接。服务器的控制进程在接收到FTP客户机发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户机和服务器的数据传送进程。数据传送进程实际是完成文件的传送,在传送完成后关闭“数据传送进程”。FTP的两个连接示意图如图6-5所示。

图6-5 FTP的两个连接示意图

FTP是一种文件传输协议,它支持两种模式:一种模式称为Standard(也就是Active,主动方式);另一种是Passive(也就是PASV,被动方式)。Standard模式FTP的客户机发送PORT命令到FTP服务器。Passive模式FTP的客户机发送PASV命令到FTP服务器。

(1)Standard模式。FTP客户机首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户机需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户机用什么端口接收数据。在传送数据的时候,服务器通过自己的TCP 20端口发送数据。FTP服务器必须和客户机建立一个新的连接用来传送数据。

(2)Passive模式。Passive模式在建立控制通道的时候和Standard模式类似,当客户机通过这个通道发送PASV命令的时候,FTP服务器打开一个位于1024~5000的随机端口,并且通知客户机在这个端口上传送数据的请求,然后FTP服务器将通过这个端口进行数据的传送,此时FTP服务器不需要建立一个新的和客户机之间的连接。

3.简单文件传送协议(TFTP)

TFTP是一个很小且易于实现的文件传送协议。它使用客户机-服务器模式和UDP数据报,因此TFTP需要提供差错改正措施。TFTP只支持文件传输而不支持交互。它没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。

【政哥点拨】

1.当一台计算机从FTP服务器下载文件时,在该FTP服务器上对数据进行封装的5个转换步骤是( )。

A.比特、数据帧、数据包、数据段、数据 B.数据、数据段、数据包、数据帧、比特

C.数据包、数据段、数据、比特、数据帧 D.数据段、数据包、数据帧、比特、数据

解析 B FTP协议在传输层采用TCP协议,在网络层采用IP协议。所以,数据从应用层下来,到传输层被封装成数据段,在网络层被封装成数据包,在数据链路层被封装成帧,接着在物理层被封装成比特流。

2.为传送数据,FTP客户机与服务器之间需要建立的与其他客户机-服务器模型不同的双重连接是( )。

A.控制连接和TCP连接 B.数据连接和端到端连接

C.控制连接和数据连接 D.TCP连接和端到端连接

解析 C 本题考查使用FTP协议传输文件的客户机与服务器之间的两种连接方式。FTP为了传送数据,必须建立两个连接,即控制连接和数据连接。FTP的工作原理如图6-6所示。

图6-6 FTP的工作原理

FTP的工作过程经历了连接建立、传输FTP包与释放连接3个阶段,具体如下:

①连接建立。FTP客户机利用公开的端口号21向FTP服务器发起FTP连接请求,建立控制连接,用于传输FTP命令。

②在控制连接建立以后,将进入建立数据传输连接阶段。FTP服务器默认的数据传输端口号为20。在数据传输连接建立之后,FTP客户机就可以从FTP服务器下载或上传文件了。

③文件传送完毕,关闭数据连接。若客户机进程不再请求文件,则释放掉控制连接。

政哥应试提醒: 在考试中,主要考查的是FTP的概念及FTP的两个连接的特点,以及端口。

难度系数:★★

牛刀小试

1.FTP指的是( )协议。

A.文件传输 B.用户数据报 C.域名服务 D.简单邮件传输

2.完成文件传输服务的TCP/IP协议是( )。

A.SMTP B.FTP C.SNMP D.Telnet

3.在因特网协议中,FTP协议需要两个端口进行数据传输:一个端口是作为控制连接的端口,端口号是21;另一个端口是数据传输端口,端口号是( )。

A.22 B.25 C.20 D.2121

4.FTP客户机发起对FTP服务器的连接建立的第一阶段建立( )。

A.传输连接 B.数据连接 C.会话连接 D.控制连接

5.在FTP会话期间的任何时间内,必定存在( )。

A.数据连接 B.控制连接 C.数据连接和控制连接 D.无任何连接

6.下列关于FTP的特点,说法不正确的是( )。

A.可以在不同的操作系统之间通信 B.在传输层使用UDP服务

C.采用全双工通信 D.基于客户机-服务器模式工作

7.下列关于FTP的说法中,正确的是( )。

A.数据连接先于控制连接被建立,但是控制连接的关闭,在于数据连接关闭以后

B.控制连接是由客户机发起的,而数据连接是由FTP服务器发起的

C.数据连接只能用于传送文件,控制连接既可用于传送控制信息,也可用于传输文件

D.FTP不允许客户机指明文件的类型和格式

8.假设在因特网上有一台FTP服务器,其名称为ftp.bit.edu.cn,IP地址为202.12.66.88,FTP服务器进程在默认端口守候并支持匿名访问(用户名:anonymous,口令:guest)。如果某个用户直接用服务器名称访问该FTP服务器,并从该服务器下载文件File1和File2,请给出FTP客户机进程与FTP服务器进程之间的交互过程。

牛刀小试解析

1.A 解析 本题考查FTP的含义。FTP(File Transfer Protocol)即文本传输协议,广泛应用于因特网主机之间的共享文件。用户数据报(User Datagram Protocol,UDP)不是应用层协议,是传输层协议。DNS(Domain Name System)是域名解析服务。SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议。

2.B 解析 本题考查FTP协议具有的文件传输功能特点。FTP是文件传输协议。常说某某计算机开了FTP服务器便是启动了文件传输服务。下载文件,上传主页,都要用到FTP服务器。SMTP是简单邮件传输协议,用于邮件传输。

SNMP(Simple Network Management Protocol,简单网络管理协议),是由互联网工程任务组(Internet Engineering Task Force,IETF)定义的一套网络管理协议。该协议基于简单网关监视协议(Simple Gateway Monitor Protocol,SGMP)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。

Telnet协议我们已经讲了很多了,该协议提供本地计算机上操作远程主机完成工作的能力。终端用户可以在Telnet程序中输入命令,这些命令在服务器上执行,就像直接在服务器的控制台上输入一样。

3.C 解析 本题考查FTP协议的两个熟知端口。FTP协议有两个连接,即控制连接和数据连接,这两个连接分别采用两个不同的端口号。控制连接采用端口号21来传送控制信息,数据连接通过端口号20来传送数据信息。

4.D 解析 关于FTP在会话期间的两个连接,进行一个小总结。FTP协议采用C/S模式,一个FTP服务器进程可以同时为多个客户机请求服务。FTP服务器进程由一个主进程和若干个从属进程组成。主进程负责接收新的请求,从属进程则负责处理单个请求。

FTP的工作过程如下:

①FTP服务器打开熟知端口号21,等待客户机进程发出连接请求。

②有客户机进程请求,启动从属进程来处理客户机进程发来的请求。从属进程有一定的生命周期,处理完客户机请求之后即终止。

③回到等待状态,等待其他客户机进程的连接请求。

5.B 解析 大家知道,FTP会话期间,控制连接会一直存在,但是数据连接不一定一直存在。同样,一个控制连接只需建立一次,可以有几次数据连接和释放。

6.B 解析 FTP协议具有以下特点:

①可以在不同的操作系统之间通信。

②使用TCP服务。

③全双工通信。

④基于客户机-服务器模式工作。

7.B 解析 本题考查FTP协议的特点。FTP建立的数据连接后于控制连接,其释放先于控制连接,而且控制连接在整个会话期间一直保持打开状态。所以,A项不正确。

FTP客户机发出的传送请求通过控制连接发送给服务器的控制进程,但是控制进程并不用来传送文件。所以,C项不正确。

服务器的控制进程在接收到FTP客户机发来的文件传输请求之后,就通过20端口与客户机建立“数据传送进程”和“数据连接”,返回客户机的请求数据。所以,B项正确。

FTP允许客户机指明文件的类型和格式。所以,D项不正确。

8.解析 交互过程大致如下:

①FTP客户机进程访问FTP服务器ftp.bit.edu.cn,首先要完成对该服务器域名的解析,最终获得该服务器的IP地址202.12.66.88。

②FTP的客户机进程与服务器进程之间使用TCP建立起一条控制连接,并经过它传送包括用户名和口令在内的各种FTP命令。

③控制连接建立之后,客户机进程和服务器进程之间使用TCP建立一条数据连接,通过该数据连接进行文件File1的传输。

④当文件File1传输完成之后,客户机进程与服务器进程释放数据连接。

⑤客户机进程和服务器进程之间使用TCP建立一条数据连接,通过该数据连接进行文件File2的传输。

⑥当文件File2传输完成之后,客户机进程与服务器进程分别释放数据连接和控制连接。