应用层习题课

计算机网络

本文整理应用层配套习题,涉及 DNS、FTP、HTTP 连接模型与 RTT 计算。


参考笔记见应用层。除题目另有说明外,时延计算均忽略对象传输、处理、排队、丢包与重传。

一、DNS

1. 基本概念

域名与( )具有一一对应的关系。

  1. IP 地址
  2. MAC 地址
  3. 主机
  4. 以上都不是
答案

D

解析
  • 一个域名可解析为多个 IP 地址,多个域名也可解析为同一 IP 地址;
  • 一个域名可由多台主机提供,一台主机也可绑定多个域名;
  • MAC 地址不属于 DNS 的域名映射对象。

因此,域名与前三项均不具有一一对应关系。

一个域名可以解析到多个IP地址,一个IP地址也可以对应多个主机(IP任播)

2. 查询过程

2016 统考真题

假设所有域名服务器均采用迭代查询方式进行域名解析。当主机访问规范域名为 www.abc.xyz.com 的网站时,本地域名服务器在完成该域名解析的过程中,可能发出 DNS 查询的最少和最多次数分别是( )。

  1. 0,30, 3
  2. 1,31, 3
  3. 0,40, 4
  4. 1,41, 4
答案

C

解析

若本地域名服务器已有可用缓存,则不向其他域名服务器查询:

Nmin=0.N_{\min}=0.

缓存全部未命中且各级域名分别委派时,本地域名服务器依次查询:

  1. 根域名服务器;
  2. .com 顶级域名服务器;
  3. xyz.com 权威域名服务器;
  4. abc.xyz.com 权威域名服务器。

因此

Nmax=4.N_{\max}=4.

题目只统计本地域名服务器向外发出的查询,不计主机发给本地域名服务器的查询,参见查询链计算

粗略计算时,本地DNS服务器迭代解析最大次数可视为等于域名标签数

二、FTP

1. 基本概念

2017 统考真题

下列关于 FTP 的叙述中,错误的是( )。

  1. 数据连接在每次数据传输完毕后就关闭
  2. 控制连接在整个会话期间保持打开状态
  3. 服务器与客户端的 TCP 20 端口建立数据连接
  4. 客户端与服务器的 TCP 21 端口建立控制连接
答案

C

解析

选项 C 把 TCP/20 同时写成了服务器与客户端端口;即使在主动模式下,也只有服务器使用经典的 TCP/20 作为源端口。参见控制连接与数据连接主动模式与被动模式

连接客户端端口服务器端口生命周期
控制连接临时端口TCP/21贯穿 FTP 会话
主动模式数据连接客户端协商的端口TCP/20 为经典源端口通常每次传输单独建立
被动模式数据连接临时端口服务器协商的临时端口通常每次传输单独建立

三、HTTP

1. 连接模型

使用鼠标单击一个万维网文档时,若该文档除有文本外,还有三幅 GIF 图像,则在 HTTP/1.0 中需要建立( )次 TCP 连接。

  1. 44
  2. 33
  3. 22
  4. 11
答案

A

解析

按 HTTP/1.0 默认的非持续连接模型,每个对象使用一条 TCP 连接。页面包含一个基础 HTML 对象和三个 GIF 对象,因此

NTCP=1+3=4.N_{\mathrm{TCP}}=1+3=4.

以下关于非持续连接 HTTP 特点的描述中,错误的是( )。

  1. HTTP 支持非持续连接与持续连接
  2. HTTP/1.0 使用非持续连接,而 HTTP/1.1 默认使用持续连接
  3. 非持续连接中对每次请求—响应都要建立一次 TCP 连接
  4. 非持续连接中读取一个包含 100100 个图片对象的 Web 页面,需要打开和关闭 100100 次 TCP 连接
答案

D

解析

页面还包含一个基础 HTML 对象,因此对象总数为

1+100=101.1+100=101.

按题设的非持续连接模型,需要打开和关闭 101101 次 TCP 连接。选项 B 描述的是协议的默认行为;HTTP/1.0 的历史实现也存在 Keep-Alive 扩展。

2. RTT 计算

忽略传输时延时,每条新建的非持续连接通常需要 1RTT1\mathrm{RTT} 建连和 1RTT1\mathrm{RTT} 请求—响应。持续连接流水线可在基础 HTML 到达后连续发送引用对象请求。

假设主机通过 HTTP/1.1(流水线方式)请求浏览 Web 服务器 S 上的 Web 页 rfc.htmlrfc.html 引用了同目录下的三个 JPEG 小图像,且只有在收到 rfc.html 后才能发送引用图像的请求。一次请求—响应的时间为 RTT\mathrm{RTT},忽略其他时延,不考虑拥塞控制和流量控制。则从发出 HTTP 请求报文开始到收到全部内容为止,所耗费的时间是( )。

  1. 2RTT2\mathrm{RTT}
  2. 2.5RTT2.5\mathrm{RTT}
  3. 4RTT4\mathrm{RTT}
  4. 4.5RTT4.5\mathrm{RTT}
答案

A

解析

计时从发出 HTTP 请求开始,TCP 连接已经建立

  1. 第一个 RTT\mathrm{RTT}:请求并收到 rfc.html
  2. 收到 HTML 后,连续发送三个图像请求;
  3. 第二个 RTT\mathrm{RTT}:收到三个图像。

因此

T=RTTHTML+RTTimages=2RTT.T=\mathrm{RTT}_{\mathrm{HTML}}+\mathrm{RTT}_{\mathrm{images}}=2\mathrm{RTT}.

流水线表示无须等待前一响应即可继续发送请求,不表示多个请求在链路上物理并行。若从建立 TCP 连接开始计时,还需增加 1RTT1\mathrm{RTT}

2024 统考真题

若浏览器不支持并行 TCP 连接,使用非持续的 HTTP/1.0 协议请求浏览一个 Web 页,该页中引用同一网站上的七个小图像文件,则从浏览器为传输 Web 页请求建立 TCP 连接开始,到接收完所有内容为止,所需要的往返时间 RTT 数至少是( )。

  1. 44
  2. 99
  3. 1414
  4. 1616
答案

D

解析

基础 HTML 与七个图像共八个对象。每个对象分别支付

1RTTTCP 建连+1RTTHTTP 请求—响应=2RTT.\underbrace{1\mathrm{RTT}}_{\text{TCP 建连}}+\underbrace{1\mathrm{RTT}}_{\text{HTTP 请求—响应}}=2\mathrm{RTT}.

浏览器不支持并行 TCP 连接,八个对象只能串行获取:

Tmin=8×2RTT=16RTT.T_{\min}=8\times2\mathrm{RTT}=16\mathrm{RTT}.

这里的“至少”只统计 RTT 组成,未计入对象传输时延。

四、综合时延

主机通过超链接 http://www.cskaoyan.com/index.html 请求浏览 Web 页 index.html,浏览器使用流水线方式的 HTTP/1.1 协议。该 Web 页引用同一网站上的七个小图像文件。假设主机到本地域名服务器和互联网上各服务器的往返时延均为 1RTT1\mathrm{RTT} ;本地域名服务器只提供递归查询服务,其他域名服务器只提供迭代查询服务。忽略其他时延,则从点击超链接开始到浏览器接收到所有内容为止,所需的 RTT 数最多是( )。

  1. 55
  2. 66
  3. 77
  4. 88
答案

C

解析

缓存全部未命中时,DNS 阶段包括:

1RTT主机与本地域名服务器+3RTT根、.com 顶级、权威服务器=4RTT.\underbrace{1\mathrm{RTT}}_{\text{主机与本地域名服务器}}+\underbrace{3\mathrm{RTT}}_{\text{根、.com 顶级、权威服务器}}=4\mathrm{RTT}.

HTTP/1.1 持续连接流水线阶段包括:

1RTTTCP 建连+1RTT基础 HTML+1RTT流水线请求七个图像=3RTT.\underbrace{1\mathrm{RTT}}_{\text{TCP 建连}}+\underbrace{1\mathrm{RTT}}_{\text{基础 HTML}}+\underbrace{1\mathrm{RTT}}_{\text{流水线请求七个图像}}=3\mathrm{RTT}.

所以

Tmax=4RTT+3RTT=7RTT.T_{\max}=4\mathrm{RTT}+3\mathrm{RTT}=7\mathrm{RTT}.

七个请求是在同一连接上连续发送,而不是同时占用链路。

2020 统考真题

假设下图网络中的本地域名服务器只提供递归查询服务,其他域名服务器都只提供迭代查询服务。局域网内主机访问 Internet 上各服务器的往返时间均为 10ms10\mathrm{ms},忽略其他时延。若主机 H 通过超链接 http://www.abc.com/index.html 请求浏览纯文本 Web 页 index.html,则从单击超链接开始到浏览器接收到页面为止,所需的最短时间与最长时间分别是( )。

题目拓扑:局域网内通信时延忽略,访问 Internet 中任一服务器的 RTT 均为 10 ms
  1. 10ms, 40ms10\mathrm{ms},\ 40\mathrm{ms}
  2. 10ms, 50ms10\mathrm{ms},\ 50\mathrm{ms}
  3. 20ms, 40ms20\mathrm{ms},\ 40\mathrm{ms}
  4. 20ms, 50ms20\mathrm{ms},\ 50\mathrm{ms}
答案

D

解析

最短情况下已有可用 DNS 缓存,不访问 Internet 上的 DNS 服务器。TCP 建连和 HTTP 请求—响应各需一个 RTT:

Tmin=2RTT=20ms.T_{\min}=2\mathrm{RTT}=20\mathrm{ms}.

最长情况下缓存全部未命中。本地域名服务器依次访问根域名服务器、.com 顶级域名服务器和 abc.com 权威域名服务器:

TDNS,max=3RTT=30ms.T_{\mathrm{DNS,max}}=3\mathrm{RTT}=30\mathrm{ms}.

取得地址后,再以 2RTT2\mathrm{RTT} 建连并获取页面:

Tmax=3RTT+2RTT=5RTT=50ms.T_{\max}=3\mathrm{RTT}+2\mathrm{RTT}=5\mathrm{RTT}=50\mathrm{ms}.

题目忽略主机与本地域名服务器之间的局域网时延,因此该段不计入最短或最长时间。