6.3 文件传输协议 (答案见原书 P277)


第6章 应用层 (续)

6.3 文件传输协议 (答案见原书 P277)
01. 文件传输协议(FTP)的一个主要特征是( C )

题目原文

  1. 文件传输协议(FTP)的一个主要特征是( )
    A. 允许客户指明文件的类型但不允许指明文件的格式
    B. 不允许客户指明文件的类型但允许指明文件的格式
    C. 允许客户指明文件的类型与格式
    D. 不允许客户指明文件的类型与格式

正确答案:C

题目解析

  • 考点分析: 本题考察FTP协议的灵活性。
  • 正确选项分析 (C. 允许客户指明文件的类型与格式):
    • FTP是一个功能非常丰富的协议,为了适应在不同操作系统、不同体系结构计算机之间传输各种文件,它提供了多种参数设置。
    • 文件类型 (Type): 客户端可以通过TYPE命令指定文件类型,最常用的是ASCII类型 (用于文本文件,会自动进行不同系统间换行符的转换)和二进制/图像类型 (Binary/Image)(用于非文本文件,进行字节流的透明传输)。
    • 文件格式 (Format)结构 (Structure):也允许指定,如文件结构、记录结构等,尽管现在已较少使用。
  • 结论: FTP允许客户指明文件的类型与格式。

02. 下列关于FTP工作模型的描述中,错误的是( C )

题目原文

  1. 下列关于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 )

题目原文

  1. 控制信息是带外传送的协议是( )

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 )

题目原文

  1. 下列关于FTP连接的叙述中,正确的是( )

A. 控制连接先于数据连接被建立,并先于数据连接被释放

B. 数据连接先于控制连接被建立,并先于控制连接被释放

C. 控制连接先于数据连接被建立,并晚于数据连接被释放

D. 数据连接先于控制连接被建立,并晚于数据连接被释放

正确答案:C

题目解析

  • 考点分析: 本题考察FTP控制连接和数据连接的生命周期。
  • 正确选项分析 (C. 控制连接先于数据连接被建立,并晚于数据连接被释放):
    • 控制连接: 是整个FTP会话期间一直保持的。客户端首先建立控制连接来登录和发送命令。只有当用户退出FTP会话时,控制连接才会被释放。
    • 数据连接:临时的 。每当需要传输一次文件或目录列表时,才会临时建立 一个数据连接。数据传输完毕后,这个数据连接就立即被释放
    • 因此,控制连接的生命周期覆盖了整个会话,而数据连接是"按需使用,用完即弃"的。
  • 结论: 控制连接"活得更长",它先于任何数据连接建立,晚于所有数据连接释放。

05. FTP客户发起对FTP服务器连接的第一阶段是建立( D )

题目原文

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

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

正确答案:D

题目解析

  • 考点分析: 本题考察FTP会话的起始步骤。
  • 正确选项分析 (D. 控制连接, Control Connection):
    • 一个FTP会话的第一步 ,就是客户端向服务器的21号端口 发起一个TCP连接请求,以建立控制连接
    • 只有在控制连接建立成功,并且客户端通过该连接成功登录之后,才有可能根据需要去建立数据连接。
  • 错误选项分析:
    • A. 传输连接:太笼统,控制连接和数据连接都是传输连接。
    • B. 数据连接:是在控制连接建立之后才按需建立的。
    • C. 会话连接:也是一个笼统的概念,FTP会话由控制连接来承载。

06. FTP中作为服务器一方的进程,通过监听( D )端口得知有无服务请求。

题目原文

  1. 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 )

题目原文

  1. 下列关于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 )端口来传输该列表。

题目原文

  1. 一个FTP用户发送了一个LIST命令来获取服务器的文件列表,这时服务器应通过( )端口来传输该列表。

A. 21 B. 20 C. 22 D. 19

正确答案:B

题目解析

  • 考点分析: 本题考察FTP数据连接的端口使用。
  • 正确选项分析 (B. 20):
    • LIST命令请求的是目录列表 ,这个列表本身是数据 ,必须通过数据连接来传输。
    • 在FTP的主动模式(Active Mode) 下(这是早期的默认模式):
      1. 客户端通过控制连接告诉服务器自己的IP和用于接收数据的端口N。
      2. 服务器的数据进程 会从自己的20号端口主动连接客户端的N号端口,建立数据连接。
    • 因此,在这种模式下,服务器是通过20端口来传输数据的。
  • 注意(被动模式): 在被动模式(Passive Mode)下,是客户端主动连接服务器的一个临时端口来建立数据连接,此时服务器不使用20端口。但题目没有特殊说明,通常默认考察主动模式。

09. 下列关于FTP的叙述中,错误的是( D )

题目原文

  1. 下列关于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 )

题目原文

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

A. 比特,数据帧,数据报,数据段,数据

B. 数据,数据段,数据报,数据帧,比特

C. 数据报,数据段,数据,比特,数据帧

D. 数据段,数据报,数据帧,比特,数据

正确答案:B

题目解析

  • 考点分析: 本题考察TCP/IP协议栈中,数据自顶向下封装(Encapsulation) 过程。
  • 正确选项分析 (B. 数据,数据段,数据报,数据帧,比特):
    • 这是一个标准的封装流程:
      1. 应用层 (FTP): 产生要发送的文件数据 (Data)
      2. 传输层 (TCP): 将数据分割,并加上TCP头部,形成TCP报文段 (Segment)
      3. 网络层 (IP): 将TCP报文段加上IP头部,形成IP数据报 (Datagram)分组 (Packet)
      4. 数据链路层 (如以太网): 将IP数据报加上帧头和帧尾,形成数据帧 (Frame)
      5. 物理层: 将数据帧转换为比特流 (Bits),通过物理介质发送出去。
  • 错误选项分析:
    • A, C, D: 封装顺序错误。

11. FTP支持两种方式的传输:ASCII方式和Binary(二进制)方式...通常文本文件采用( A )方式,而图像、声音等非文本文件采用( A )方式传输。

(该题有两个空,分别对应不同的选项)

题目原文

  1. 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 )

题目原文

  1. 直接封装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 )

题目原文

  1. 【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协议之上。
  • 错误选项分析:
    • B: 数据连接用于传输文件内容,不传命令。
    • C, D: FTP不使用UDP。

14. 【2017统考真题】下列关于FTP的叙述中,错误的是( C )

题目原文

  1. 【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等协议最根本的区别,也是所有考题的出发点。

  1. 双TCP连接模型 (必考):

    • 控制连接 (Control Connection):
      • 作用: 传输控制信息 ,即客户端的命令(如USER, LIST, RETR)和服务器的响应(如220 Welcome, 530 Login incorrect)。
      • 生命周期: 在整个FTP会话期间一直保持打开。
      • 端口: 服务器监听熟知端口21
    • 数据连接 (Data Connection):
      • 作用: 传输实际的文件内容目录列表
      • 生命周期: 临时的,每进行一次文件传输或列表查询,就新建一个数据连接;传输完毕后,立即关闭。
      • 端口: 使用的端口取决于连接模式(主动/被动)。
  2. 带外控制 (Out-of-band Control):

    • 由于控制信息和数据在不同的连接上传输,这种方式被称为"带外控制"。
    • 优点: 协议处理简单清晰;即使在数据传输过程中,也可以通过控制连接发送紧急命令(如中断传输)。

二、 两种连接模式:主动 vs. 被动 (数据连接的建立方式)

  1. 主动模式 (Active Mode - PORT命令):

    • 流程:
      1. 客户端打开一个临时端口N (>1023) 用于接收数据。
      2. 客户端通过控制连接 发送PORT命令,告诉服务器自己的IP地址和端口号N。
      3. 服务器 的数据进程从自己的熟知数据端口20主动 向客户端的(IP, N)发起连接。
    • 问题: 客户端通常位于NAT或防火墙之后,服务器无法主动连接到客户端的临时端口,导致连接失败。
  2. 被动模式 (Passive Mode - PASV命令):

    • 流程(为了解决主动模式的问题):
      1. 客户端通过控制连接 发送PASV命令。
      2. 服务器 打开一个临时端口P (>1023) ,并在PASV响应中告诉客户端这个(IP, P)
      3. 客户端 从自己的一个临时端口,主动 向服务器的(IP, P)发起连接。
    • 优点: 数据连接由客户端发起,可以更好地穿透NAT和防火墙。这是目前最常用的模式。

三、 多种传输选项 (为了适应异构环境)

  • 传输模式 (TYPE命令):

    • ASCII模式: 用于传输文本文件 。会自动处理不同操作系统间换行符的转换。
    • 二进制/图像模式 (Binary/Image): 用于传输非文本文件 (图片、视频、可执行文件等)。进行透明的、逐字节的传输,不作任何修改。
  • 文件结构 (STRU命令): 如文件结构、记录结构、页结构。

  • 传输方式 (MODE命令): 如流方式、块方式、压缩方式。

四、 FTP与传输层

  • FTP的文件传输任务要求绝对的可靠性和顺序性 ,因此它的控制连接和数据连接都必须 基于TCP协议
常见考法与例题梳理
  1. 双连接模型与带外控制(高频核心)

    • 考法: 考察对控制连接和数据连接各自作用、生命周期的理解。
    • 例题03: "控制信息是带外传送的协议是(C. FTP)",直接考察了FTP的核心特征。
    • 例题04: "控制连接...先于...建立,并晚于...释放",准确考察了两条连接的生命周期。
    • 例题05 & 13 (真题): 明确了FTP会话的第一步 是建立控制连接,并且命令是在控制连接上传输的。
  2. 端口号的使用规则(高频核心)

    • 考法: 考察服务器端和客户端在控制连接和数据连接中使用的端口号。
    • 例题02, 06, 07, 09, 14 (真题): 这一系列题目反复考察了几个关键端口:
      • 服务器监听 控制连接:21
      • 服务器在主动模式发起 数据连接的源端口:20
      • 客户端 使用的所有端口(控制连接源端口、数据连接源/目的端口)都是临时的、动态的
  3. 协议封装层次

    • 考法: 考察FTP在TCP/IP协议栈中的位置,以及数据自顶向下的封装过程。
    • 例题10: 考察了服务器发送数据时的封装顺序:数据 -> 段 -> 报 -> 帧 -> 比特
    • 例题12: 明确了FTP直接封装在TCP中。
  4. 传输模式的选择

    • 考法: 考察ASCII模式和二进制模式的适用场景。
    • 例题01 & 11: 明确了文本文件用ASCII非文本文件(图像、声音等)用Binary
刻意练习建议
  1. 画出"FTP双连接"工作图:

    • 这是掌握本节知识的"法宝"。在纸上画出客户端和服务器。
    • 第一步: 画一条持久 的、双向的箭头线连接两者,标注"控制连接 ",并在服务器端写上端口21
    • 第二步: 模拟主动模式 。画一条临时 的、从服务器端口20 指向客户端临时端口N 的箭头线,标注"数据连接"。
    • 第三步: 模拟被动模式 。画一条临时 的、从客户端临时端口M 指向服务器临时端口P 的箭头线,标注"数据连接"。
    • 在这张图上,你可以清晰地看到两条连接的作用、生命周期和端口使用情况。
  2. 制作FTP命令与功能卡片:

    • 为FTP的常用命令制作卡片。
    • 例如:USER/PASS -> 登录;LIST -> 获取目录列表;RETR filename -> 下载文件;STOR filename -> 上传文件;TYPE A/I -> 设置传输模式;PORT/PASV -> 设置数据连接模式;QUIT -> 关闭控制连接。
    • 理解每个命令是在哪个连接上发送,以及它可能会触发什么动作(如LIST/RETR/STOR会触发数据连接的建立)。
  3. 做"角色扮演"辨析练习:

    • 想象自己是防火墙管理员。
    • "一个内部用户要用FTP主动模式连接外部服务器,我需要在防火墙上开放哪些端口?" (出向:TCP >1023 -> 21;入向:TCP 20 -> >1023。入向规则通常很危险,所以主动模式被禁用)。
    • "如果用被动模式呢?" (出向:TCP >1023 -> 21TCP >1023 -> >1023。更安全)。
    • 这种练习能让你从实际应用角度深刻理解两种模式的区别。

通过以上系统性的梳理和有针对性的刻意练习,您将能够全面掌握FTP协议的核心原理,并能从容应对相关的概念和流程分析问题。

相关推荐
Greedy Alg3 小时前
Socket编程学习记录
网络·websocket·学习
刘逸潇20054 小时前
FastAPI(二)——请求与响应
网络·python·fastapi
Mongnewer5 小时前
通过虚拟串口和网络UDP进行数据收发的Delphi7, Lazarus, VB6和VisualFreeBasic实践
网络
我也要当昏君5 小时前
6.5 万维网(答案见原书P294)
网络
嶔某6 小时前
网络:传输层协议UDP和TCP
网络·tcp/ip·udp
文火冰糖的硅基工坊6 小时前
[嵌入式系统-154]:各种工业现场总线比较
网络·自动驾驶·硬件架构
以己之6 小时前
详解TCP(详细版)
java·网络·tcp/ip
Ronin3057 小时前
【Linux网络】封装Socket
linux·网络·socket·网络通信
Brianna Home7 小时前
博客安全攻防演练:从攻击者视角构筑铜墙铁壁
网络·数据库·安全·oracle