第6章 应用层 (续)
6.3 文件传输协议 (答案见原书 P277)
01. 文件传输协议(FTP)的一个主要特征是( C )
题目原文
- 文件传输协议(FTP)的一个主要特征是( )
A. 允许客户指明文件的类型但不允许指明文件的格式
B. 不允许客户指明文件的类型但允许指明文件的格式
C. 允许客户指明文件的类型与格式
D. 不允许客户指明文件的类型与格式
正确答案:C
题目解析
- 考点分析: 本题考察FTP协议的灵活性。
- 正确选项分析 (C. 允许客户指明文件的类型与格式):
- FTP是一个功能非常丰富的协议,为了适应在不同操作系统、不同体系结构计算机之间传输各种文件,它提供了多种参数设置。
- 文件类型 (Type): 客户端可以通过
TYPE
命令指定文件类型,最常用的是ASCII类型 (用于文本文件,会自动进行不同系统间换行符的转换)和二进制/图像类型 (Binary/Image)(用于非文本文件,进行字节流的透明传输)。 - 文件格式 (Format) 和结构 (Structure):也允许指定,如文件结构、记录结构等,尽管现在已较少使用。
- 结论: FTP允许客户指明文件的类型与格式。
02. 下列关于FTP工作模型的描述中,错误的是( C )
题目原文
- 下列关于FTP工作模型的描述中,错误的是( )
A. FTP使用控制连接、数据连接来完成文件的传输
B. 用于控制连接的TCP连接在服务器端使用的熟知端口号为21
C. 用于控制连接的TCP连接在客户端使用的端口号为20
D. 服务器端由控制进程、数据进程两部分组成
正确答案:C
题目解析
- 考点分析: 本题考察FTP客户端的端口使用。
- 错误选项分析 (C. 用于控制连接的TCP连接在客户端使用的端口号为20):
- 这是错误的。
- 客户端 在发起任何TCP连接时(包括FTP的控制连接),使用的源端口号 都是一个由操作系统临时分配 的、大于1023的动态/临时端口。
- 端口20 是服务器端 在主动模式 下,用于发起数据连接时使用的源端口。
- 正确选项分析:
- A: 正确,双连接(控制连接+数据连接)是FTP最核心的特征。
- B: 正确,FTP服务器的控制进程监听熟知端口21。
- D: 正确,FTP服务器内部通常有一个主进程(控制进程)负责监听和处理命令,当需要传输数据时,会派生出一个子进程(数据进程)来负责数据连接。
03. 控制信息是带外传送的协议是( C )
题目原文
- 控制信息是带外传送的协议是( )
A. HTTP B. SMTP C. FTP D. POP
正确答案:C
题目解析
- 考点分析: 本题考察"带内控制"与"带外控制"的概念。
- 正确选项分析 (C. FTP, File Transfer Protocol):
- 带外控制 (Out-of-band Control): 是指将控制信息 和实际数据 在不同的连接上传输。
- FTP 正是采用这种方式。它使用一个独立的控制连接 (端口21)来传输命令和响应,使用另一个独立的数据连接(端口20或动态端口)来传输文件内容。
- 错误选项分析(都是带内控制):
- A. HTTP, B. SMTP, D. POP: 这些协议都采用带内控制 (In-band Control) 。它们的控制信息(如HTTP请求头、响应头)和数据内容(如网页HTML、邮件正文)都在同一个TCP连接上传输。
04. 下列关于FTP连接的叙述中,正确的是( C )
题目原文
- 下列关于FTP连接的叙述中,正确的是( )
A. 控制连接先于数据连接被建立,并先于数据连接被释放
B. 数据连接先于控制连接被建立,并先于控制连接被释放
C. 控制连接先于数据连接被建立,并晚于数据连接被释放
D. 数据连接先于控制连接被建立,并晚于数据连接被释放
正确答案:C
题目解析
- 考点分析: 本题考察FTP控制连接和数据连接的生命周期。
- 正确选项分析 (C. 控制连接先于数据连接被建立,并晚于数据连接被释放):
- 控制连接: 是整个FTP会话期间一直保持的。客户端首先建立控制连接来登录和发送命令。只有当用户退出FTP会话时,控制连接才会被释放。
- 数据连接: 是临时的 。每当需要传输一次文件或目录列表时,才会临时建立 一个数据连接。数据传输完毕后,这个数据连接就立即被释放。
- 因此,控制连接的生命周期覆盖了整个会话,而数据连接是"按需使用,用完即弃"的。
- 结论: 控制连接"活得更长",它先于任何数据连接建立,晚于所有数据连接释放。
05. FTP客户发起对FTP服务器连接的第一阶段是建立( D )
题目原文
- FTP客户发起对FTP服务器连接的第一阶段是建立( )
A. 传输连接 B. 数据连接 C. 会话连接 D. 控制连接
正确答案:D
题目解析
- 考点分析: 本题考察FTP会话的起始步骤。
- 正确选项分析 (D. 控制连接, Control Connection):
- 一个FTP会话的第一步 ,就是客户端向服务器的21号端口 发起一个TCP连接请求,以建立控制连接。
- 只有在控制连接建立成功,并且客户端通过该连接成功登录之后,才有可能根据需要去建立数据连接。
- 错误选项分析:
- A. 传输连接:太笼统,控制连接和数据连接都是传输连接。
- B. 数据连接:是在控制连接建立之后才按需建立的。
- C. 会话连接:也是一个笼统的概念,FTP会话由控制连接来承载。
06. FTP中作为服务器一方的进程,通过监听( D )端口得知有无服务请求。
题目原文
- FTP中作为服务器一方的进程,通过监听( )端口得知有无服务请求。
A. 53 B. 80 C. 20 D. 21
正确答案:D
题目解析
- 考点分析: 本题考察FTP服务器的熟知端口号。
- 正确选项分析 (D. 21):
- FTP服务器的主进程(控制进程) 会持续地监听TCP的21号端口 ,等待客户端发起控制连接的请求。
- 错误选项分析:
- A. 53: 是DNS的端口。
- B. 80: 是HTTP的端口。
- C. 20: 是FTP服务器在主动模式 下,用于发起数据连接 的源端口,它不用于监听。
07. 下列关于FTP的叙述中,错误的是( C )
题目原文
- 下列关于FTP的叙述中,错误的是( )
A. FTP可以实现异构网络中计算机之间的文件传送
B. 在进行文件传输时,FTP客户端和服务器之间需建立两个连接
C. FTP服务器主进程在20端口上监听客户端的连接请求
D. FTP使用TCP进行可靠传输
正确答案:C
题目解析
- 考点分析: 本题综合考察FTP的特点。
- 错误选项分析 (C. FTP服务器主进程在20端口上监听...):
- 这是错误 的。如上题所述,FTP服务器的主进程监听的是21端口 ,用于建立控制连接。
- 端口20是用于数据连接的,且不处于监听状态。
- 正确选项分析:
- A: 正确,这是FTP设计的主要目的之一。
- B: 正确,控制连接和数据连接。
- D: 正确,FTP对文件传输的可靠性要求高,必须基于TCP。
08. 一个FTP用户发送了一个LIST命令来获取服务器的文件列表,这时服务器应通过( B )端口来传输该列表。
题目原文
- 一个FTP用户发送了一个LIST命令来获取服务器的文件列表,这时服务器应通过( )端口来传输该列表。
A. 21 B. 20 C. 22 D. 19
正确答案:B
题目解析
- 考点分析: 本题考察FTP数据连接的端口使用。
- 正确选项分析 (B. 20):
LIST
命令请求的是目录列表 ,这个列表本身是数据 ,必须通过数据连接来传输。- 在FTP的主动模式(Active Mode) 下(这是早期的默认模式):
- 客户端通过控制连接告诉服务器自己的IP和用于接收数据的端口N。
- 服务器的数据进程 会从自己的20号端口 ,主动连接客户端的N号端口,建立数据连接。
- 因此,在这种模式下,服务器是通过20端口来传输数据的。
- 注意(被动模式): 在被动模式(Passive Mode)下,是客户端主动连接服务器的一个临时端口来建立数据连接,此时服务器不使用20端口。但题目没有特殊说明,通常默认考察主动模式。
09. 下列关于FTP的叙述中,错误的是( D )
题目原文
- 下列关于FTP的叙述中,错误的是( )
A. FTP可以在不同类型的操作系统之间传送文件
B. FTP并不适合用在两个计算机之间共享读写文件
C. 控制连接在整个FTP会话期间一直保持
D. 客户端默认使用端口20与服务器建立数据传输连接
正确答案:D
题目解析
- 考点分析: 本题综合考察FTP的特点。
- 错误选项分析 (D. 客户端默认使用端口20与服务器建立数据传输连接):
- 这是错误的。
- 端口20 是服务器端 在主动模式下使用的源端口。
- 客户端 在发起数据连接时(被动模式),或者在等待服务器连接时(主动模式),使用的都是一个临时的、大于1023的动态端口。
- 正确选项分析:
- A: 正确。
- B: 正确。FTP是为"文件传输"设计的,而不是像NFS(网络文件系统)那样,为"文件共享读写"设计的。
- C: 正确,这是FTP会话的基础。
10. 一台计算机从FTP服务器下载文件时,在该FTP服务器上对数据进行封装的5个转换步骤是( B )
题目原文
- 一台计算机从FTP服务器下载文件时,在该FTP服务器上对数据进行封装的5个转换步骤是( )
A. 比特,数据帧,数据报,数据段,数据
B. 数据,数据段,数据报,数据帧,比特
C. 数据报,数据段,数据,比特,数据帧
D. 数据段,数据报,数据帧,比特,数据
正确答案:B
题目解析
- 考点分析: 本题考察TCP/IP协议栈中,数据自顶向下 的封装(Encapsulation) 过程。
- 正确选项分析 (B. 数据,数据段,数据报,数据帧,比特):
- 这是一个标准的封装流程:
- 应用层 (FTP): 产生要发送的文件数据 (Data)。
- 传输层 (TCP): 将数据分割,并加上TCP头部,形成TCP报文段 (Segment)。
- 网络层 (IP): 将TCP报文段加上IP头部,形成IP数据报 (Datagram) 或分组 (Packet)。
- 数据链路层 (如以太网): 将IP数据报加上帧头和帧尾,形成数据帧 (Frame)。
- 物理层: 将数据帧转换为比特流 (Bits),通过物理介质发送出去。
- 这是一个标准的封装流程:
- 错误选项分析:
- A, C, D: 封装顺序错误。
11. FTP支持两种方式的传输:ASCII方式和Binary(二进制)方式...通常文本文件采用( A )方式,而图像、声音等非文本文件采用( A )方式传输。
(该题有两个空,分别对应不同的选项)
题目原文
- FTP支持两种方式的传输:ASCII方式和Binary(二进制)方式。通常文本文件采用( )方式,而图像、声音等非文本文件采用( )方式传输。
A. ASCII,Binary B. Binary, ASCII C. ASCII,ASCII D. Binary,Binary
正确答案:A, A
题目解析
- 考点分析: 本题考察FTP的两种主要传输模式的适用对象。
- 第一个空 (文本文件):
- ASCII模式 是专门为文本文件设计的。
- 不同操作系统对文本文件的换行符表示不同(如Windows用
CRLF
,Unix/Linux用LF
)。 - 在ASCII模式下,FTP客户端和服务器会在传输过程中,自动地将换行符转换为一种标准的网络表示格式,并在接收端再转换成本地格式。
- 这保证了文本文件在不同系统间传输后,格式不会错乱。
- 所以,文本文件采用 ASCII 方式。
- 第二个空 (非文本文件):
- 二进制模式 (Binary Mode) ,也称图像模式 (Image Mode) ,是一种透明传输模式。
- 它将文件看作是一个纯粹的字节流 ,在传输过程中不做任何修改。
- 对于非文本文件 ,如图像、音频、视频、可执行文件等,它们的每一个字节都有其特定含义,绝不能被修改。
- 因此,这些文件必须采用 Binary 方式传输。
- 结论: 文本文件用ASCII,非文本文件用Binary。
12. 直接封装FTP、DNS、DHCP报文的协议分别是( A )
题目原文
- 直接封装FTP、DNS、DHCP报文的协议分别是( )
A. TCP、UDP、UDP B. UDP、TCP、TCP C. TCP、UDP、IP D. UDP、UDP、UDP
正确答案:A
题目解析
- 考点分析: 本题考察几种常见应用层协议所使用的传输层协议。
- 逐项分析:
- FTP (File Transfer Protocol): 文件传输要求绝对的可靠性 ,必须使用TCP。
- DNS (Domain Name System): 域名查询追求快速响应 ,通常使用UDP。
- DHCP (Dynamic Host Configuration Protocol): 主机在获取IP地址时,需要快速地在局域网内进行广播/单播交互,这个过程使用UDP。
- 结论: 对应的协议分别是 TCP, UDP, UDP。
13. 【2009统考真题】FTP客户和服务器间传递FTP命令时,使用的连接是( A )
题目原文
- 【2009统考真题】FTP客户和服务器间传递FTP命令时,使用的连接是( )
A. 建立在TCP之上的控制连接 B. 建立在TCP之上的数据连接
C. 建立在UDP之上的控制连接 D. 建立在UDP之上的数据连接
正确答案:A
题目解析
- 考点分析: 本题考察FTP命令的传输通道。
- 正确选项分析 (A. 建立在TCP之上的控制连接):
- FTP的命令(如
USER
,PASS
,LIST
,RETR
)和服务器的响应(如220 Welcome
,331 Password required
)都是通过控制连接来传输的。 - 为了保证这些命令和响应的可靠、按序到达,控制连接必须建立在可靠的TCP协议之上。
- FTP的命令(如
- 错误选项分析:
- B: 数据连接用于传输文件内容,不传命令。
- C, D: FTP不使用UDP。
14. 【2017统考真题】下列关于FTP的叙述中,错误的是( C )
题目原文
- 【2017统考真题】下列关于FTP的叙述中,错误的是( )
A. 数据连接在每次数据传输完毕后就关闭
B. 控制连接在整个会话期间保持打开状态
C. 服务器与客户端的TCP20端口建立数据连接
D. 客户端与服务器的TCP21端口建立控制连接
正确答案:C
题目解析
- 考点分析: 本题综合考察FTP的连接建立过程。
- 错误选项分析 (C. 服务器与客户端的TCP20端口建立数据连接):
- 这个说法不精确,因此是错误的。
- 在主动模式 下,是服务器从自己的源端口20 ,主动连接 客户端的一个临时端口N (
N>1023
)。连接是(服务器IP:20) -> (客户端IP:N)
。 - 在被动模式 下,是客户端从自己的临时端口M ,主动连接 服务器的一个临时端口P (
P>1023
)。连接是(客户端IP:M) -> (服务器IP:P)
。 - 无论哪种模式,连接的端点都不是"客户端的TCP 20端口"。
- 正确选项分析:
- A, B: 正确,描述了数据连接的临时性和控制连接的持久性。
- D: 正确,客户端主动连接服务器的21端口,建立控制连接。
6.3 文件传输协议 (FTP) 知识体系与考法总结
FTP是互联网上最早、最经典的应用层协议之一,专门用于在不同主机之间传输文件。尽管现在有很多替代方案,但其独特的设计思想------特别是控制与数据分离------仍然是网络协议学习中的一个重要模型。本节的知识点非常集中,重点在于理解FTP的双连接工作模型 、端口使用规则 和传输模式。
知识体系梳理
本部分的知识体系可以围绕"一个核心特征 "、"两种连接模式 "和"多种传输选项"来构建。
一、 一个核心特征:控制与数据的分离 (带外控制)
这是FTP与HTTP、SMTP等协议最根本的区别,也是所有考题的出发点。
-
双TCP连接模型 (必考):
- 控制连接 (Control Connection):
- 作用: 传输控制信息 ,即客户端的命令(如
USER
,LIST
,RETR
)和服务器的响应(如220 Welcome
,530 Login incorrect
)。 - 生命周期: 在整个FTP会话期间一直保持打开。
- 端口: 服务器监听熟知端口21。
- 作用: 传输控制信息 ,即客户端的命令(如
- 数据连接 (Data Connection):
- 作用: 传输实际的文件内容 或目录列表。
- 生命周期: 临时的,每进行一次文件传输或列表查询,就新建一个数据连接;传输完毕后,立即关闭。
- 端口: 使用的端口取决于连接模式(主动/被动)。
- 控制连接 (Control Connection):
-
带外控制 (Out-of-band Control):
- 由于控制信息和数据在不同的连接上传输,这种方式被称为"带外控制"。
- 优点: 协议处理简单清晰;即使在数据传输过程中,也可以通过控制连接发送紧急命令(如中断传输)。
二、 两种连接模式:主动 vs. 被动 (数据连接的建立方式)
-
主动模式 (Active Mode - PORT命令):
- 流程:
- 客户端打开一个临时端口N (>1023) 用于接收数据。
- 客户端通过控制连接 发送
PORT
命令,告诉服务器自己的IP地址和端口号N。 - 服务器 的数据进程从自己的熟知数据端口20 ,主动 向客户端的
(IP, N)
发起连接。
- 问题: 客户端通常位于NAT或防火墙之后,服务器无法主动连接到客户端的临时端口,导致连接失败。
- 流程:
-
被动模式 (Passive Mode - PASV命令):
- 流程(为了解决主动模式的问题):
- 客户端通过控制连接 发送
PASV
命令。 - 服务器 打开一个临时端口P (>1023) ,并在
PASV
响应中告诉客户端这个(IP, P)
。 - 客户端 从自己的一个临时端口,主动 向服务器的
(IP, P)
发起连接。
- 客户端通过控制连接 发送
- 优点: 数据连接由客户端发起,可以更好地穿透NAT和防火墙。这是目前最常用的模式。
- 流程(为了解决主动模式的问题):
三、 多种传输选项 (为了适应异构环境)
-
传输模式 (TYPE命令):
- ASCII模式: 用于传输文本文件 。会自动处理不同操作系统间换行符的转换。
- 二进制/图像模式 (Binary/Image): 用于传输非文本文件 (图片、视频、可执行文件等)。进行透明的、逐字节的传输,不作任何修改。
-
文件结构 (STRU命令): 如文件结构、记录结构、页结构。
-
传输方式 (MODE命令): 如流方式、块方式、压缩方式。
四、 FTP与传输层
- FTP的文件传输任务要求绝对的可靠性和顺序性 ,因此它的控制连接和数据连接都必须 基于TCP协议。
常见考法与例题梳理
-
双连接模型与带外控制(高频核心)
- 考法: 考察对控制连接和数据连接各自作用、生命周期的理解。
- 例题03: "控制信息是带外传送的协议是(C. FTP)",直接考察了FTP的核心特征。
- 例题04: "控制连接...先于...建立,并晚于...释放",准确考察了两条连接的生命周期。
- 例题05 & 13 (真题): 明确了FTP会话的第一步 是建立控制连接,并且命令是在控制连接上传输的。
-
端口号的使用规则(高频核心)
- 考法: 考察服务器端和客户端在控制连接和数据连接中使用的端口号。
- 例题02, 06, 07, 09, 14 (真题): 这一系列题目反复考察了几个关键端口:
- 服务器监听 控制连接:21。
- 服务器在主动模式 下发起 数据连接的源端口:20。
- 客户端 使用的所有端口(控制连接源端口、数据连接源/目的端口)都是临时的、动态的。
-
协议封装层次
- 考法: 考察FTP在TCP/IP协议栈中的位置,以及数据自顶向下的封装过程。
- 例题10: 考察了服务器发送数据时的封装顺序:
数据 -> 段 -> 报 -> 帧 -> 比特
。 - 例题12: 明确了FTP直接封装在TCP中。
-
传输模式的选择
- 考法: 考察ASCII模式和二进制模式的适用场景。
- 例题01 & 11: 明确了文本文件用ASCII ,非文本文件(图像、声音等)用Binary。
刻意练习建议
-
画出"FTP双连接"工作图:
- 这是掌握本节知识的"法宝"。在纸上画出客户端和服务器。
- 第一步: 画一条持久 的、双向的箭头线连接两者,标注"控制连接 ",并在服务器端写上端口21。
- 第二步: 模拟主动模式 。画一条临时 的、从服务器端口20 指向客户端临时端口N 的箭头线,标注"数据连接"。
- 第三步: 模拟被动模式 。画一条临时 的、从客户端临时端口M 指向服务器临时端口P 的箭头线,标注"数据连接"。
- 在这张图上,你可以清晰地看到两条连接的作用、生命周期和端口使用情况。
-
制作FTP命令与功能卡片:
- 为FTP的常用命令制作卡片。
- 例如:
USER/PASS
-> 登录;LIST
-> 获取目录列表;RETR filename
-> 下载文件;STOR filename
-> 上传文件;TYPE A/I
-> 设置传输模式;PORT/PASV
-> 设置数据连接模式;QUIT
-> 关闭控制连接。 - 理解每个命令是在哪个连接上发送,以及它可能会触发什么动作(如
LIST/RETR/STOR
会触发数据连接的建立)。
-
做"角色扮演"辨析练习:
- 想象自己是防火墙管理员。
- "一个内部用户要用FTP主动模式连接外部服务器,我需要在防火墙上开放哪些端口?" (出向:
TCP >1023 -> 21
;入向:TCP 20 -> >1023
。入向规则通常很危险,所以主动模式被禁用)。 - "如果用被动模式呢?" (出向:
TCP >1023 -> 21
和TCP >1023 -> >1023
。更安全)。 - 这种练习能让你从实际应用角度深刻理解两种模式的区别。
通过以上系统性的梳理和有针对性的刻意练习,您将能够全面掌握FTP协议的核心原理,并能从容应对相关的概念和流程分析问题。