计算机网络 · 2027 考研计算机 408

第 6 章 应用层

目标院校:四川大学 / 电子科技大学 | 建议用时:概念 3 小时 + 例题练习 2.5 小时

本章地位:应用层是五层模型的最高层,也是计算机网络的收官章。408 在这里考两样东西:一是协议细节记忆——DNS 解析顺序(常考排序题)、FTP 双连接、SMTP 推 / POP3 拉、HTTP 报文与状态码,全是选择题的高频弹药;二是时延计算——非持久连接每对象 \(2\times\text{RTT}\)、持久流水线、并行连接分批,与第 1 章的时延体系一脉相承,是应用层唯一的计算密集点。复习目标:端口表一遍背死,DNS 八步流程看图能默写,HTTP 时延题「列公式 → 代数值 → 注单位」三步拿满。

考点常考题型热度本章位置
C/S 与 P2P 架构特点、混合架构选择★★★6.1
层次域名空间与四类域名服务器选择★★★★6.2.1
域名解析流程(递归 / 迭代)、缓存与 TTL选择 / 排序★★★★★6.2.2 / 6.2.3
FTP 两条连接与端口分配选择★★★★6.3
邮件系统组成、SMTP / POP3 / IMAP、MIME选择★★★★6.4
URL、HTTP 报文、方法与状态码、Cookie选择★★★★6.5.1 / 6.5.2 / 6.5.4
非持久 / 持久连接总时延计算计算 / 综合★★★★★6.5.3
P2P 分发时间、CDN 与 DASH选择 / 计算★★★6.6

6.1 应用层模型与客户/服务器、P2P

应用层是网络体系结构的最高层,不为其他层提供服务,直接通过应用进程间的交互完成特定网络应用(Web、邮件、文件传输、域名解析……)。应用层协议解决「运行在不同端系统上的应用进程如何相互传递报文」,而进程间的通信要借助运输层服务完成——所以学每个应用协议,第一件事就是问:它跑在 TCP 还是 UDP 上、用哪个端口。

6.1.1 应用层协议与运输层选用

定义应用层协议定义了应用程序进程交换的报文:语法(报文类型与格式)、语义(进程何时、如何发送报文并响应)。注意:应用层协议只是网络应用的一部分——Web 应用 = HTTP + HTML 文档 + Web 服务器 + 浏览器,HTTP 仅是其中「约定报文怎么写」的那一块。
应用应用层协议运输层协议熟知端口
万维网HTTPTCP80
万维网(加密)HTTPS(HTTP + TLS)TCP443
文件传送FTPTCP控制 21 / 数据 20
域名解析DNSUDP(区域传送用 TCP)53
邮件发送SMTPTCP25
邮件读取POP3 / IMAPTCP110 / 143
远程终端TelnetTCP23
动态地址配置 / 网络管理DHCP / SNMPUDP67 / 68(见网络层)、161
选用逻辑数据量大、要求可靠有序 → TCP(HTTP、FTP、SMTP、POP3);报文短小、求快、可容忍偶尔丢失 → UDP(DNS 一问一答,若用 TCP 建连反而慢)。这张端口表是应用层的「单词表」,真题直接考端口号或协议-运输层配对,一次背死。

6.1.2 C/S、P2P 与混合架构

C/S 架构客户程序:用户调用、直接运行在用户计算机上;间歇接入网络;可能使用动态 IP;客户之间不直接通信,只与服务器通信。服务器程序:运行在专用主机 / 数据中心;永久(常驻)在线;拥有固定(永久)IP 地址;可扩展为服务器集群。总特征:地址集中、便于管理,但服务器是性能瓶颈与单点故障,用户规模增大时成本快速上升。
P2P 架构几乎没有始终在线的服务器,对等点(peer)既是客户又同时是服务器——既向别人请求文件,也向别人提供上传。核心优点是自扩展性(self-scalability):每个新加入的对等方在带来需求(下载)的同时也带来服务能力(上传),用户越多,系统整体的分发能力越强;且无需庞大的服务器基础设施,成本低。代价:高度分散、管理困难,安全与版权问题突出,性能随对等方上下线波动。
对比维度C/SP2P
谁是服务提供者永久在线、固定地址的服务器每个对等方(双重身份)
用户增长的影响服务器负担线性加重,需扩容自扩展:需求与能力同步增长
成本与管理带宽存储集中投入,管理容易成本摊到用户,管理困难
代表应用Web、FTP、邮件BitTorrent、迅雷、P2P 直播
混合架构两种方式常结合使用:Napster——文件搜索 / 索引集中在服务器(C/S),下载在对等方之间直接进行(P2P);BitTorrent(带 tracker)——tracker 集中维护在线对等方名单,文件块传输全在对等方之间;即时通信——登录与在线状态检测走集中服务器,消息与文件可点对点直传。混合架构的特征:控制 / 索引集中,数据传输分散。
易错① 「P2P 网络中不存在任何服务器」——错,混合架构常有集中部件(tracker、索引服务器);
② 「C/S 中客户之间可以直接互相通信」——错,客户只与服务器打交道,这是 C/S 的标志性特点;
③ 「自扩展性指文件越大传得越快」——错,自扩展指对等方越多、总上传能力越强,系统能力随规模自动扩张。
例 1 真题风格 架构特性判断

下列关于网络应用体系结构的叙述中,错误的是( )
A. 在 C/S 架构中,客户程序通常间歇接入网络且可能使用动态 IP 地址
B. P2P 架构中每个对等方既可请求服务又可提供服务,具有自扩展性
C. 服务器程序必须永久在线并拥有固定 IP 地址,因此客户之间也可直接通过服务器地址互访
D. Napster 的文件搜索依赖集中服务器,而文件下载在用户之间直接进行,属于混合架构

查看解答

C。C/S 中客户之间不直接通信,各自只与服务器打交道,「互访」混淆了通信主体。A、B 为两种架构的标准特征;D 是混合架构的教科书例子——索引集中、传输分散。

练习 1

(1) 「服务器永久在线、拥有固定地址;客户间歇接入、使用动态地址」描述的是哪种架构?(2) 为什么说 P2P 具有自扩展性?(3) BitTorrent 中 tracker 的作用是什么,这使它属于哪种架构形态?

查看答案

(1) 客户/服务器(C/S)架构。

(2) 每个对等方加入后既是消费者又是提供者,用户规模增大时总上传带宽同步增大,分发能力随需求自动扩张,无需扩建服务器。

(3) tracker 集中维护对等方名单、协调新节点加入(集中式控制),文件块在对等方之间直接传输(分散式数据),故为混合架构。

6.2 DNS 域名系统 高频考点

DNS 是因特网上联机分布式数据库 + 应用层协议的组合:用户用域名(www.abc.com.cn)访问主机,而网络层只认 IP 地址,DNS 负责域名 ↔ IP 地址的转换,另提供主机别名、邮件服务器别名、负载均衡(一个域名对应多个 IP,轮转返回)等服务。查询频繁但单个报文短,故 DNS 查询使用 UDP 53 端口。

6.2.1 层次域名空间与四类域名服务器

层次域名空间域名采用树状层次结构,自顶向下为:
  1. 根:树的顶端(根的名字常省略不写);
  2. 顶级域名 TLD:① 国家顶级域名——cn、us、uk、jp 等;② 通用顶级域名——com(公司)、net(网络服务)、org(非营利)、edu(教育,美国专用)、gov、int 等;③ 基础结构顶级域名 arpa(反向解析);
  3. 二级域名:在 TLD 之下注册获得,我国分类别域名(ac、com、edu、gov、net、org)与行政区域域名(bj、sh 等);再往下是三级、四级域名直到主机名。
每个域可再划分为区(zone),区是 DNS 授权管理的实际单位。域名不区分大小写,每级不超 63 个字符、全程不超 255 个字符。
易错(真题考过)域名 www.abc.com.cn 的层次归属(从右往左数):cn 是顶级域名,com 是二级域名(我国类别域名),abc 是三级域名,www 是主机名(最左端)。考生常按英文习惯把 com 当顶级——按中国教材(cn 在最右)逐级往左数才不会错。
类型职责关键细节
根域名服务器知道所有顶级域名服务器的域名与地址全球共 13 套(A~M,逻辑 13 个 IP,实际以镜像扩展);通常不直接给出最终答案,而是告知「去问哪个 TLD」
顶级域名服务器管理注册在本 TLD 下的所有二级域名收到查询返回答案,或告知下一步应查询的权限服务器地址
权限域名服务器负责一个区的域名解析保存区内全部主机的域名→IP 映射,给出的回答是最终权威答案
本地域名服务器主机的 DNS 查询首先发给它由 ISP / 校园网提供,又称默认域名服务器;不属于层次结构;查不到时代为向根发起迭代查询

6.2.2 递归与迭代:完整解析流程 高频考点

两种查询方式递归查询:「你必须给我最终答案」——被问者若不知道,代为继续向下问,答案逐级送回;迭代查询:「不知道就告诉我该问谁」——被问者只返回下一步服务器的地址,询问者自己换人再问。408 标准结论:主机 → 本地域名服务器为递归查询(主机甩手要结果);本地域名服务器 → 根 / TLD / 权限服务器为迭代查询(本地逐级问过去),这是「递归 + 迭代相结合」的默认方式;也存在全递归方式(根代问 TLD),默认按前者答题。
主机www.abc.com.cn 的 IP? 本地域名服务器查缓存,未命中则代为迭代查询 根域名服务器指路:去问 cn 顶级服务器 cn 顶级域名服务器指路:去问权限服务器 权限服务器 dns.abc.com.cn权威答案:202.108.6.1 ① 递归查询 ② 迭代:问根 ③ 答:问 cn 顶级 ④ 问 cn 顶级 ⑤ 答:问权限服务器 ⑥ 问权限服务器 ⑦ 答:IP 地址 ⑧ 返回 IP
图 6-1 域名 www.abc.com.cn 的完整解析 8 步:① 主机→本地(递归查询);② 本地以迭代方式问根;③ 根给出 cn 顶级服务器地址;④⑤ 本地问 cn 顶级、得到权限服务器地址;⑥⑦ 本地问权限服务器、拿到权威答案;⑧ 本地把 IP 返回主机
排序题套路408 常考「按时间先后排列解析步骤」。抓两条主线:问的路——主机→本地(递归),本地→根→顶级→权限(迭代逐级问,每级只指路);答的路——权限→本地→主机(沿原路返回)。「根服务器直接返回最终 IP」的选项必错:根只指路到 TLD。
例 2 真题风格 解析过程判断

主机解析 www.abc.com.cn,本地域名服务器无该缓存记录。下列叙述正确的是( )
A. 主机到本地域名服务器采用迭代查询,本地到根采用递归查询
B. 本地域名服务器依次向根、cn 顶级、权限服务器发出迭代查询,最终答案由权限服务器给出
C. 根域名服务器查询后直接把 www.abc.com.cn 的 IP 地址返回给主机
D. 整个过程只需一次查询:主机直接向根域名服务器询问

查看解答

B。默认方式为「主机→本地递归、本地→根/TLD/权限迭代」,权威答案出自权限域名服务器。A 把两个方向说反;C 根只指路不给最终 IP,且答案返回给本地而非主机;D 主机只与本地服务器打交道,从不直接问根。

6.2.3 DNS 报文、缓存与 TTL

DNS 报文只有两类:查询报文与响应报文,格式统一:12 字节首部(标识字段 2 B + 标志字段 2 B + 4 个数量字段 8 B)+ 问题段 + 回答段 / 授权段 / 附加段。响应报文的标识与查询报文相同,供客户把答案与问题配对。查询报文短小(通常不超过 512 B),故用 UDP 53;区域传送(权限服务器间同步数据库副本)或响应超长时改用 TCP 53——「DNS 只用 UDP」是错误说法。
缓存与 TTL本地域名服务器(及主机)把查询得到的域名→IP 映射缓存;同一域名再次被查时直接用缓存作答、不再向上游询问,大幅缩短时延、减轻根与顶级服务器负担。每条缓存记录设有生存时间 TTL:到期即丢弃、重新查询——TTL 是「缓存可信期」,权衡时效性(IP 变更)与效率。本地服务器通常还缓存根 / 顶级服务器地址,后续迭代可跳过根——但「缓存中的映射永远有效」是错误说法,超过 TTL 必须重新查询。
练习 2

(1) 域名 mail.tsinghua.edu.cn 中,顶级域名、二级域名、三级域名分别是什么?(2) 主机发出的 DNS 查询报文首先到达哪类域名服务器?该服务器在层次结构中处于什么地位?(3) 为什么 DNS 查询选用 UDP 而区域传送选用 TCP?

查看答案

(1) 从右往左:cn 顶级、edu 二级、tsinghua 三级,mail 是主机名。

(2) 本地域名服务器(默认域名服务器);它不属于 DNS 层次结构,只是代主机发起后续查询的代理。

(3) 查询报文短小、要求快,UDP 无需建立连接即可一问一答;区域传送数据量大且要求可靠完整,故用 TCP。

6.3 FTP 文件传送协议

FTP(File Transfer Protocol)是因特网上使用最广的文件传送协议,提供交互式访问,允许客户指明文件类型与格式、设置存取权限,支持匿名 FTP(anonymous)。它基于 TCP、按 C/S 方式工作——文件传输必须可靠无误,这是选 TCP 的根本原因。

6.3.1 两条并行连接:控制 21 与数据 20

核心结论FTP 在工作期间使用两条并行的 TCP 连接,使用不同端口号:
  1. 控制连接 · 端口 21 · 持久:整个会话期间一直保持打开,传客户命令(登录、目录、传输请求)。控制信息不在数据连接中捎带,走独立通道,称「带外传送」(out-of-band)。
  2. 数据连接 · 端口 20 · 临时按需:收到文件传输请求才临时建立,传完立即关闭;下次传输再建新连接。
端口口诀:21 管「嘴」(发命令,一直说),20 管「手」(搬文件,按需搬)。

6.3.2 主动模式与被动模式

谁发起数据连接主动模式(PORT):客户把自己的端口告知服务器,服务器主动从端口 20 向客户发起数据连接——客户处在 NAT / 防火墙后时常被拦截。被动模式(PASV):客户发 PASV 命令,服务器随机开一个端口并告知,客户主动连接该端口收数据——对防火墙友好,现今更常用。两种模式下控制连接(21)始终由客户发起、方向不变。
易错① 「FTP 用一条连接同时传命令和数据」——错,是两条并行 TCP 连接,端口 21、20;
② 「控制连接每传一个文件重建一次」——反了:控制连接持久,数据连接按需临时建立、用完即断;
③ 「控制信息在数据连接中带外传送」——颠倒:控制信息单独走控制连接才叫带外传送;
④ 主动 / 被动的区别在数据连接由谁发起,控制连接不受影响。
练习 3

(1) FTP 的控制连接与数据连接分别使用什么端口?各自维持多长时间?(2) 为什么说 FTP 的控制信息是「带外传送」?(3) 被动模式下,数据连接由谁发起?解决了什么问题?

查看答案

(1) 控制连接端口 21,整个会话期间保持打开(持久);数据连接端口 20(主动模式下服务器端),按需临时建立、传完即关。

(2) 控制命令不随文件数据捎带传输,而走独立的控制连接,故称带外传送。

(3) 由客户发起。解决客户在 NAT / 防火墙之后时,服务器主动进入的数据连接被拦截的问题。

6.4 电子邮件

6.4.1 系统组成、地址与收发全流程

三大组成电子邮件系统由三部分构成:
  1. 用户代理 UA:用户与邮件系统的接口,撰写、阅读、收发邮件的程序(Outlook、Foxmail、手机邮件 App);
  2. 邮件服务器:系统核心,昼夜 24 小时运行;发送和接收邮件并向发件人报告传送情况;为每个用户开设邮箱并维护发送队列(投不出就周期性重试);
  3. 协议:发送用 SMTP,读取用 POP3 或 IMAP。
邮件地址格式:收件人用户名 @ 邮箱所在邮件服务器的域名,如 user@abc.com——「@」读作「at」,表示「在 abc.com 服务器上的用户 user」;地址中不得出现空格或逗号。
发件人 UA撰写、点击发送 发送方邮件服务器放入发送队列,重试投递 接收方邮件服务器存入收件人邮箱 收件人 UA随时收取阅读 SMTP 推 SMTP 推 POP3 / IMAP 拉 前三段全是「推」(发件人主动送),最后一段是「拉」(收件人主动取) 接收方服务器不主动找收件人:邮件躺在邮箱里,等收件人用读取协议来取
图 6-2 电子邮件发送全流程:发件人 UA 用 SMTP 把邮件推入发送方服务器;发送方服务器用 SMTP 推给接收方服务器并存入邮箱;收件人 UA 用 POP3(或 IMAP)拉取到本地

6.4.2 SMTP 推与 POP3 / IMAP 拉

SMTP(发送 · TCP 25 · 推)SMTP 是「推」协议:发件人 UA 把邮件推给发送方邮件服务器,发送方服务器再把邮件推给接收方服务器——两段都是推。通信分连接建立 → 邮件传送 → 连接释放三阶段(HELO / MAIL FROM、RCPT TO、DATA、QUIT)。关键限制:只能传送 7 位 ASCII 码邮件(首部与正文),中文、图片、音视频必须先经 MIME 编码;正文结束标志是单独一行的点「CRLF.CRLF」。SMTP 不能「拉取」邮件——读取必须换 POP3 / IMAP。
POP3(读取 · TCP 110 · 拉)POP3 是「拉」协议:收件人 UA 主动连接服务器,把邮件下载到本地。两种工作方式:下载并保留(留副本)与下载并删除(默认)。特点:简单;但邮件下载后归本地管理,服务器不保留会话状态——手机上收过的邮件换电脑再收就没了,多设备不同步。
IMAP(读取 · TCP 143 · 按需同步)IMAP 同样由收件人主动连接服务器读取,但邮件始终保留在服务器上:可创建层次文件夹、搜索、先看首部再决定是否下载正文,所有操作状态(已读、已删、分类)记录在服务器——多设备状态同步,代价是协议复杂得多。一句话对比:POP3 把邮箱搬回家,IMAP 把邮箱留在店里、随时远程查看。
例 3 真题风格 推拉与协议分工

用户 A(a@smtp1.com)向用户 B(b@smtp2.com)发一封含照片的邮件,B 用手机客户端收取。下列叙述错误的是( )
A. A 的 UA 到 smtp1.com、smtp1.com 到 smtp2.com 之间都使用 SMTP 协议
B. B 的客户端从 smtp2.com 收取邮件使用 POP3 或 IMAP 协议
C. SMTP 也可以由 B 的客户端调用来主动拉取自己的邮件
D. 邮件中的照片需经 MIME 编码转换为 7 位 ASCII 后才能经 SMTP 传送

查看解答

C。SMTP 只会「推」,不会「拉」:UA→服务器、服务器→服务器两段推走 SMTP;读取必须换成 POP3 / IMAP。A、B 正是标准分工;D 是 MIME 存在的理由——SMTP 只认 7 位 ASCII。

6.4.3 MIME 扩展与基于 Web 的邮件

MIMESMTP 只收 7 位 ASCII,而现实邮件要传中文、图片、音视频。MIME(多用途互联网邮件扩展)在不改变 SMTP 的前提下增加邮件主体的结构定义与非 ASCII 数据的编码规则:发送方把二进制数据按 Base64、Quoted-Printable 等编码成纯 ASCII 再交 SMTP,接收方解码还原。记住:MIME 不是替代 SMTP,而是 SMTP 的扩展;它新增 MIME-Version、Content-Type(如 text/html、image/jpeg)、Content-Transfer-Encoding 等首部,说明正文的类型与编码。
基于 Web 的邮件用户通过浏览器(HTTP / HTTPS)访问邮件服务商页面收发邮件,本机不装 UA、不直接跑 SMTP / POP3——用户与服务器之间的「最后一跳」换成了 HTTP,但邮件服务器之间的转发仍是 SMTP:Web 只替换了用户侧接入方式,不替换邮件系统的骨干协议。
练习 4

(1) 判断:MIME 取代了 SMTP,因此可以传送中文邮件。(2) 判断:收件人必须在邮件服务器上为每个发件人开设账户才能收到邮件。(3) 用浏览器收发邮件时,用户侧与服务器侧各使用什么协议?

查看答案

(1) 错。MIME 是 SMTP 的扩展而非替代:先把非 ASCII 数据编码成 ASCII,再由 SMTP 照常传送。

(2) 错。账户只与收件人相关:邮件送入收件人邮箱即可,发件人无需在接收方服务器开户。

(3) 用户侧用 HTTP(S) 与 Web 邮件服务器交互;服务器与服务器之间的邮件转发仍用 SMTP。

6.5 WWW 与 HTTP 高频考点

6.5.1 WWW 与 URL

WWW 概念万维网 WWW(World Wide Web)是一个大规模、联机式的分布式超媒体系统,以 C/S 方式工作:浏览器是客户程序,Web 服务器返回页面。它不是一种计算机网络,而是架设在因特网上的应用。三大支柱:URL(统一资源定位符)、HTTP(传送文档的协议)、HTML(超文本标记语言);网页中的链接把世界各地的文档互相「缝」在一起。
URL 结构URL 的一般形式:协议 : // 主机 : 端口 / 路径 / 文件名,例如 http://www.abc.edu.cn:80/cs/index.htm。协议可为 http、https、ftp 等;主机写域名或 IP 地址;端口为协议默认值(http 80、https 443)时可省略;路径与文件名定位服务器上的资源。读 URL 先看协议、再看主机、最后看路径。

6.5.2 HTTP 特点与报文格式

HTTP 特点① 应用层协议,基于 TCP 80 端口(HTTPS 用 443);② 面向事务:一次请求-响应构成一个完整事务;③ 无状态(stateless):服务器不保存客户的任何状态信息,同一客户两次访问一视同仁——好处是服务器简单、内存开销小,代价是「记住用户」要靠 Cookie(见 6.5.4);④ 报文是ASCII 文本,可直接阅读;⑤ HTTP/1.0 默认非持久连接,HTTP/1.1 默认持久连接。
请求报文(客户 → 服务器) 请求行:方法 + URL + HTTP 版本如 GET /cs/index.htm HTTP/1.1 首部行:Host: www.abc.edu.cnConnection: keep-alive / Cookie: … 空行(回车换行,标志首部结束) 实体主体:GET 一般为空;POST 放表单数据 响应报文(服务器 → 客户) 状态行:版本 + 状态码 + 短语如 HTTP/1.1 200 OK 首部行:Date / Server / Content-Type:text/html / Content-Length / Set-Cookie 空行(回车换行,标志首部结束) 实体主体:所请求的文档本身(HTML 页面、图片字节流……) 两类报文结构完全对称:起始行(请求行 / 状态行)→ 首部行 → 空行 → 实体主体
图 6-3 HTTP 请求报文与响应报文的格式:由起始行、首部行、空行、实体主体四部分组成;请求行携带方法与 URL,状态行携带状态码与短语
方法含义实体主体
GET请求读取 URL 标识的资源(最常用)为空,参数附在 URL 中
POST向服务器提交数据(表单、搜索词、发帖)存放提交的数据
HEAD请求响应中只要首部、不要实体主体(测试链接、查修改时间)响应中也为空
PUT把实体主体上传存储到指定的 URL(写 / 替换文件)存放上传内容
DELETE / OPTIONS删除资源 / 询问服务器支持哪些方法(补充了解)—
状态码类别典型例子
1xx信息通知(请求已收到,继续处理)100 Continue
2xx成功200 OK(请求成功,实体在响应中)
3xx重定向(资源挪了地方,要去新 URL)301 永久移动;304 未修改(配合条件 GET)
4xx客户端错误400 错误请求;403 禁止访问;404 未找到
5xx服务器错误500 内部错误;502 坏网关
例 4 真题风格 方法与状态码归类

(1) 只想确认某页面是否仍可访问、不需要页面内容,应使用的方法是( )A. GET B. HEAD C. POST D. PUT
(2) 「请求的网页已永久搬到新地址」的状态码、「服务器作为网关收到无效响应」的状态码分别属于( )A. 301、502 B. 404、301 C. 302、404 D. 502、400

查看解答

(1) B。HEAD 只要首部不要实体,正是「探活」用途;GET 会取回整个页面。

(2) A。301=永久移动(3xx 重定向);502=网关收到上游无效响应(5xx 服务器错)。口诀:1 信息、2 成功、3 重定向、4 客户端错、5 服务器错。

6.5.3 非持久与持久连接(计算高频)

非持久连接:每个对象 2×RTTHTTP/1.0 默认方式:每个对象单独建立一条 TCP 连接,取完即断。单个对象从发起请求到收完所需时间: \[ \text{对象时延}= \underbrace{1\times\text{RTT}}_{\text{TCP 三次握手}}+\underbrace{1\times\text{RTT}}_{\text{请求发出到响应返回}}+\text{对象的发送(传输)时延}=2\,\text{RTT}+\text{发送时延} \] 握手只算 1 个 RTT:第三次握手的 ACK 与 HTTP 请求报文一起发出。若页面 = 1 个基本 HTML(内含 \(n\) 个引用对象)串行获取,则 \[ T=2\,\text{RTT}+\text{HTML 发送时延}+n\times(2\,\text{RTT}+\text{对象发送时延}) \] 缺点:每对象重新建连、拥塞窗口从零起步;浏览器常开并行连接缓解。
非持久连接取回一个对象的时间轴: RTT₁:TCP 建立连接 RTT₂:请求 + 响应往返 对象最后比特到达 SYN → SYN+ACK(ACK 与请求同发) GET 报文去、响应报文回 总时延 = 2×RTT + 对象发送时延 注:响应最后一个比特在 RTT₂ 后再经一个发送时延才到齐,故加传输项;题目说「忽略传输时延」时每对象恰 2 RTT。
图 6-4 非持久连接取回一个对象的时间轴:1 个 RTT 建 TCP 连接 + 1 个 RTT 交换请求与响应 + 对象的发送时延;换一个对象,全部重来一遍
持久连接(HTTP/1.1 默认)服务器发送响应后保持连接打开,同一客户后续请求复用这条 TCP 连接(只需建连 1 次)。分两种:非流水线方式——收到前一响应才能发下一请求,每个引用对象 1 个 RTT(+发送时延);流水线方式——看完 HTML 后把所有引用请求一口气连续发出,全部引用对象总共约 1 个 RTT。整页时延:非流水线 \(T=2\,\text{RTT}+n\times\text{RTT}\);流水线 \(T=3\,\text{RTT}\)(均忽略发送时延,HTML 计入首次)。
例 5 高频考点 四种连接方式总时延对比

主机请求一个网页:1 个基本 HTML + 4 个引用图片对象,RTT \(=30\,\text{ms}\),每对象发送时延 \(8\,\text{ms}\)(HTML 发送时延忽略),忽略其他时延。求:(1) 非持久串行;(2) 持久非流水线;(3) 持久流水线下,从发起请求到收完全部对象的时延。

查看解答

(1) 非持久串行:HTML 一个 \(2\text{RTT}\),每张图 \(2\text{RTT}+8\):

\[ T_1=2\times30+4\times(2\times30+8)=60+4\times68=332\ \text{ms} \]

(2) 持久非流水线:建连 + 取 HTML 共 \(2\text{RTT}\),此后每对象 \(1\text{RTT}+8\):

\[ T_2=60+4\times(30+8)=60+152=212\ \text{ms} \]

(3) 持久流水线:建连 + HTML \(2\text{RTT}\),4 个请求连续发出、响应背靠背返回:

\[ T_3=60+30+4\times8=122\ \text{ms} \]

验证:\(T_1\) 每对象 2 RTT ✓;\(T_2\) 复用连接每对象 1 RTT ✓;\(T_3\) 引用只等 1 个 RTT、发送时延逐个付清 ✓。提速路径:332 → 212 → 122 ms。

套路总结:先数对象个数,再按「每个对象付几倍 RTT」列式——非持久每对象 2RTT,持久非流水每对象 1RTT,流水线所有引用共 1RTT;发送时延别漏加。

6.5.4 Cookie、Web 缓存与 HTTPS

Cookie 四组成HTTP 无状态,「记住用户」靠 Cookie,共四个组成部分:① 响应报文中的 Set-Cookie 首部行;② 请求报文中的 Cookie 首部行;③ 保存在用户端系统(浏览器管理)的 Cookie 文件;④ Web 服务器端的后端数据库。首次访问时服务器发 Set-Cookie,浏览器存入 Cookie 文件;此后每次请求自动带上 Cookie 首部,服务器据后端库识别用户。
用途与 Web 缓存Cookie 用途:会话状态跟踪(购物车、登录保持)、个性化推荐、用户行为追踪(带来隐私问题)。Web 缓存 / 代理服务器:代表源服务器响应请求、缓存对象副本——命中直接返回(时延骤降),未命中再代为向源服务器请求并缓存,从而缩短响应时间、削减骨干流量。副本可能过期,代理用条件 GET 验证:请求加 If-Modified-Since 首部,对象未变则源服务器只回 304 Not Modified(无实体主体)。CDN 是部署在全网的多级 Web 缓存(见 6.6)。
一句话HTTPS = HTTP over TLS/SSL:先完成加密与认证握手,再传 HTTP 报文,默认端口 443,考纲只需这一句。
练习 5

(1) Cookie 的四个组成部分是什么?弥补了 HTTP 的哪个特性?(2) 代理服务器如何确认缓存副本有效?(3) HTTP、HTTPS 的默认端口分别是多少?

查看答案

(1) 响应报文的 Set-Cookie 首部、请求报文的 Cookie 首部、浏览器端的 Cookie 文件、服务器端后端数据库;弥补 HTTP 无状态(服务器不记忆客户)。

(2) 发条件 GET(带 If-Modified-Since 首部行),对象未修改则源服务器返回 304 Not Modified(无实体主体)。

(3) HTTP 为 80,HTTPS 为 443。

6.6 P2P 分发、CDN 与流媒体

本节收拢三个应用层周边概念。DHCP(UDP 67/68)虽属应用层协议,但 408 一贯放在网络层章节讲,本套文档已在网络层处理,此处不再重复。

6.6.1 文件分发最小时间:C/S 与 P2P

最小分发时间公式(概念)设文件大小 \(F\),服务器接入速率 \(u_s\),\(N\) 个客户各自下行速率 \(d_i\)、上行速率 \(u_i\),\(d_{\min}=\min d_i\)。忽略其他时延时,分发时间的下界: \[ \text{C/S:}\ T\ge\max\Big\{\frac{NF}{u_s},\ \frac{F}{d_{\min}}\Big\}\qquad \text{P2P:}\ T\ge\max\Big\{\frac{F}{u_s},\ \frac{F}{d_{\min}},\ \frac{NF}{u_s+\sum_{i=1}^{N}u_i}\Big\} \] 直观解释:C/S 服务器必须把 N 份文件全部从自己端口挤出去(\(NF\) 比特走 \(u_s\)),用户一多服务器先撑不住;P2P 服务器只发一份,总需求 \(NF\) 由服务器与全体对等方的上行共同承担——用户越多总上传带宽越大,这正是自扩展性的定量表达。
例 6 方法示范 C/S 与 P2P 分发对比

文件 \(F=500\,\text{Mb}\),服务器上行 \(u_s=50\,\text{Mbps}\),\(N=10\) 个客户,每个客户上行 \(u_i=5\,\text{Mbps}\),下行均不小于 \(50\,\text{Mbps}\)。分别估算 C/S 与 P2P 的最小分发时间。

查看解答

C/S:\(\dfrac{NF}{u_s}=\dfrac{10\times500}{50}=100\ \text{s}\),而 \(\dfrac{F}{d_{\min}}=\dfrac{500}{50}=10\ \text{s}\),取大者:

\[ T_{C/S}=\max\{100,\,10\}=100\ \text{s} \]

P2P:\(\dfrac{F}{u_s}=10\ \text{s}\),\(\dfrac{F}{d_{\min}}=10\ \text{s}\),\(\dfrac{NF}{u_s+\sum u_i}=\dfrac{5000}{50+10\times5}=50\ \text{s}\),取大者:

\[ T_{P2P}=\max\{10,\,10,\,50\}=50\ \text{s} \]

验证:\(u_s+\sum u_i=50+50=100\) Mbps,\(5000\div100=50\) s ✓。P2P 快一倍;且 \(N\) 越大差距越大(C/S 的 \(NF/u_s\) 线性涨,P2P 第三项涨得慢得多)。

6.6.2 BitTorrent、CDN 部署与 DASH

BitTorrent文件被切成等长的块(chunk,典型 256 KB)。新节点经 .torrent 文件找到 tracker,注册后获得对等方名单(集中部件),随后直接与这些对等方交换块(分散传输,混合架构)。取块策略:稀缺优先(rarest first)——优先请求邻居中副本最少的块,让稀缺块尽早扩散;上传策略:一报还一报(tit-for-tat)——向给自己供块最快的对等方优先上传,激励贡献带宽。
CDN 部署与 DASHCDN(内容分发网络)在全网部署缓存服务器,让用户就近取内容,降时延、省骨干流量。三种部署思路:① 集中式——单一数据中心存全部内容,简单易维护,但用户远、单点瓶颈;② 深度覆盖(enter deep)——在数百个接入 ISP 机房部署小型集群,贴近用户(Akamai),部署维护复杂;③ 集群汇聚(bring home)——在少量关键位置建大容量集群机房(Limelight)。流式视频的关键矛盾是码率要匹配带宽:把视频压成多个码率版本、切成小块,客户端实时测带宽、逐块自适应选择合适版本——这就是 DASH(基于 HTTP 的动态自适应流)。
考点提示本节以概念选择题为主:认准「稀缺优先=请求副本最少的块」「CDN 三部署=集中 / 深度 / 集群」「DASH=自适应码率」;分发时间公式考「三项取大」思想,数值计算照例 6 格式代数。

6.7 章末自测 真题风格

限时 40 分钟,先做后看答案。难度:★★ 基础 / ★★★ 强化 / ★★★★ 冲刺。自检标准:10 题对 8 题以上;自测 2、9(DNS 层次与顺序)、10(HTTP 时延计算)必须全对,错一道回看 6.2 与 6.5.3。

自测 1(选择 · ★★)

DNS 进行域名解析时通常使用的运输层协议与端口是( )
A. TCP 25 B. UDP 53 C. UDP 110 D. TCP 80

查看答案

B。DNS 查询一问一答、报文短,用 UDP 53;25 是 SMTP、110 是 POP3、80 是 HTTP。

自测 2(选择 · ★★★ 易错)

域名 www.abc.com.cn 中,顶级域名与二级域名分别是( )
A. com、cn B. cn、com C. com、abc D. www、cn

查看答案

B。从最右往左数:cn 顶级、com 二级(我国类别域名)、abc 三级、www 是主机名。误答 A 是按英文习惯把 com 当顶级,真题设过此坑。

自测 3(选择 · ★★★)

域名解析过程中,本地域名服务器向根域名服务器的查询通常是( )
A. 递归查询 B. 迭代查询 C. 广播查询 D. 反向查询

查看答案

B。默认方式:主机→本地为递归;本地→根 / 顶级 / 权限为迭代——根只告知「该去问谁」,本地自己接着问。

自测 4(选择 · ★★★★)

关于 FTP,下列叙述错误的是( )
A. 控制连接使用端口 21,在整个会话期间一直保持打开
B. 数据连接在需要传输文件时才临时建立,传完即关闭
C. 控制连接与数据连接使用同一端口但不同进程
D. 控制信息通过控制连接传送,属于带外传送

查看答案

C。两条连接使用不同端口(21 控制、20 数据)且并行工作,这正是 FTP 的标志性细节;A、B、D 均为教材原文。

自测 5(选择 · ★★★★)

下列关于电子邮件协议的叙述中,正确的是( )
A. SMTP 既可以把邮件推给服务器,也可以让用户从服务器拉取邮件
B. POP3 协议把邮件下载到本地后,服务器上必定不再保留副本
C. IMAP 方式下邮件保留在服务器,多设备访问状态可同步
D. 发送方 UA 与发送方服务器之间使用 POP3 协议

查看答案

C。A 错:SMTP 只推不拉;B 错:POP3 有「下载并保留」方式;D 错:UA→服务器用 SMTP(推)。IMAP 的服务器端状态同步是与 POP3 的核心区别。

自测 6(选择 · ★★★)

下列 HTTP 状态码与其含义对应错误的是( )
A. 200——请求成功 B. 301——永久重定向
C. 404——服务器内部错误 D. 502——网关收到无效响应

查看答案

C。404 是客户端错误(资源未找到);服务器内部错误是 500。归类口诀:1 信息、2 成功、3 重定向、4 客户端错、5 服务器错。

自测 7(选择 · ★★★)

关于 Cookie 与 Web 缓存,下列说法错误的是( )
A. Cookie 弥补了 HTTP 无状态的不足,可用于会话跟踪与个性化服务
B. Cookie 文件由浏览器管理,保存在用户端系统中
C. 代理服务器用条件 GET 验证缓存副本,未修改时源服务器返回 304
D. Web 缓存命中时仍需向源服务器转发完整请求并等待完整响应

查看答案

D。命中即由代理直接返回缓存副本,不必打扰源服务器——这正是 Web 缓存降时延、省流量的原理;条件 GET 只在验证新鲜度时才发出。

自测 8(选择 · ★★★)

下列关于 P2P 与 C/S 的叙述中,正确的是( )
A. P2P 网络中每个对等方既是客户又同时是服务器,具有自扩展性
B. C/S 架构中客户之间可以直接交换文件以减轻服务器负担
C. P2P 架构完全没有任何集中部件,BitTorrent 也没有服务器参与
D. 服务器必须使用动态 IP 地址,客户必须永久在线

查看答案

A。B 错:C/S 中客户互不通信;C 错:BitTorrent 依赖 tracker(集中协调+分散传输的混合架构);D 恰好说反——服务器永久在线、固定地址,客户间歇接入、可动态地址。

自测 9(综合 · ★★★★ 冲刺)

主机首次解析 www.abc.com.cn,各级均无缓存。事件:Ⅰ. 本地向根域名服务器查询;Ⅱ. 权限服务器把 IP 返回本地;Ⅲ. 主机向本地发出递归查询;Ⅳ. 根告知「去问 cn 顶级域名服务器」;Ⅴ. 本地向权限服务器查询;Ⅵ. cn 顶级告知「去问权限域名服务器」;Ⅶ. 本地向 cn 顶级查询;Ⅷ. 本地把 IP 返回主机。(1) 按正确顺序排列 8 个事件;(2) 指出哪些环节递归、哪些迭代;(3) 若本地已缓存该记录,流程还剩几步?

查看解答

(1) Ⅲ → Ⅰ → Ⅳ → Ⅶ → Ⅵ → Ⅴ → Ⅱ → Ⅷ:主机问本地(Ⅲ);本地逐级迭代——先问根(Ⅰ),根指路 cn 顶级(Ⅳ);再问 cn 顶级(Ⅶ),顶级指路权限服务器(Ⅵ);再问权限服务器(Ⅴ),得到权威答案(Ⅱ);最后本地答复主机(Ⅷ)。

(2) Ⅲ(主机→本地)是递归查询:主机要求本地必须给出最终答案;Ⅰ、Ⅳ、Ⅵ、Ⅴ、Ⅶ、Ⅱ(本地→根 / 顶级 / 权限)是迭代查询:每级只指路,由本地自己逐级去问。

(3) 只剩 2 步:主机→本地(递归查询)、本地→主机(缓存直接作答)。这正是 DNS 缓存缩短时延、减轻根与顶级服务器负担的机制(受 TTL 约束)。

自测 10(综合 · ★★★★ 计算)

主机请求一个网页:1 个基本 HTML + 8 个引用小对象(发送时延均可忽略),RTT \(=20\,\text{ms}\)。求:(1) 非持久串行;(2) 非持久、浏览器开 6 条并行连接(先取 HTML,再分批并行取对象);(3) 持久非流水线;(4) 持久流水线——四种方式的总时延。

查看解答

(1) 非持久串行:9 个对象每个 \(2\text{RTT}\):

\[ T_1=9\times2\times20=360\ \text{ms} \]

(2) 非持久并行 6 条:HTML 先取 \(2\text{RTT}\);8 个对象分两批(6 个 + 2 个),每批并行同取各花 \(2\text{RTT}\):

\[ T_2=(2+2+2)\times20=120\ \text{ms} \]

(3) 持久非流水线:建连 + HTML 共 \(2\text{RTT}\),此后每对象 \(1\text{RTT}\):

\[ T_3=(2+8)\times20=200\ \text{ms} \]

(4) 持久流水线:建连 + HTML 共 \(2\text{RTT}\),8 个请求连续发出,引用对象合计 \(1\text{RTT}\):

\[ T_4=(2+1)\times20=60\ \text{ms} \]

验证:\(T_1\) 按对象数 9 计 ✓;\(T_2\) 批数 \(=\lceil 8/6\rceil=2\) ✓;\(T_3=2+8=10\) 个 RTT ✓;\(T_4=3\) 个 RTT ✓。结论:串行 360 → 并行 120 → 持久非流水 200 → 流水线 60 ms,并行与流水线分别从「空间」与「时间」上消除等待。

套路总结:并行连接按「分几批」计 RTT(批数 = 引用对象数除以并行度向上取整),每批仍付建连 + 请求响应共 2 RTT;流水线则把全部引用压成 1 个 RTT。

6.8 本章考点总结

考点常考题型热度核心方法 / 一句话结论
C/S 与 P2P、混合架构选择★★★服务器永久在线、固定地址;客户间歇接入、互不通信;对等方双重身份+自扩展;Napster / BitTorrent=索引集中、传输分散
应用层协议与端口选择★★★★DNS 53/UDP、FTP 21+20、SMTP 25、POP3 110、IMAP 143、HTTP 80、HTTPS 443(除 DNS、DHCP、SNMP 用 UDP,其余走 TCP)
层次域名空间选择★★★★根 / 顶级(国家 cn、通用 com)/ 二级;www.abc.com.cn=cn 顶级、com 二级、abc 三级,从右往左数
四类域名服务器选择★★★★根(13 套,只指路)/ 顶级(管二级)/ 权限(区的权威答案)/ 本地(默认服务器,不在层次结构中)
递归与迭代解析流程选择 / 排序★★★★★主机→本地递归,本地→根·顶级·权限迭代;8 步=问(本地→根→顶级→权限)+答(权限→本地→主机);根不给最终 IP
DNS 报文与缓存选择★★★查询 / 响应同 ID 配对;短报文 UDP 53,区域传送 TCP 53;缓存受 TTL 限制,命中两步作答
FTP 两条连接选择★★★★控制 21 持久+数据 20 按需临时,并行、不同端口;控制信息带外;主动模式服务器发起、被动模式客户发起数据连接
邮件系统与协议分工选择★★★★UA+邮件服务器+协议;前两段 SMTP 推、末段 POP3/IMAP 拉;SMTP 只传 7 位 ASCII、CRLF.CRLF 结束;POP3 下载不同步、IMAP 留服务器多端同步
MIME 与 Web 邮件选择★★★MIME 是 SMTP 的扩展而非替代(Base64 等编码);Web 邮件用户侧走 HTTP,服务器间仍 SMTP
URL / 报文格式 / 方法 / 状态码选择★★★★协议://主机:端口/路径;起始行+首部行+空行+实体主体;GET 读 / POST 提交 / HEAD 只要首部 / PUT 上传;200 成功、301 重定向、404 客户端错、502 服务器错
非持久 / 持久连接时延计算 / 综合★★★★★非持久每对象 2RTT+发送时延;持久非流水每对象 1RTT;流水线引用共 1RTT(整页 3RTT);并行按批计(批数=对象数÷并行度向上取整,每批 2RTT)
Cookie 与 Web 缓存选择★★★四组成:Set-Cookie 首部、Cookie 首部、端系统 Cookie 文件、服务器后端库;条件 GET(If-Modified-Since)+304 验证新鲜度
P2P 分发时间 / CDN / DASH选择 / 计算★★★P2P 最小分发时间 \(=\max\{F/u_s,\ F/d_{\min},\ NF/(u_s+\sum u_i)\}\);BitTorrent 稀缺优先+一报还一报;CDN 集中 / 深度 / 集群;DASH 自适应码率
下一步本章过关标准:例题 6 道独立重做;自测 10 题对 8 题以上;合上书能报出三件事——「www.abc.com.cn 的顶级与二级域名」(cn、com)、「非持久连接取一个对象几倍 RTT」(2 倍 + 发送时延)、「邮件收发经过几段、各用什么协议」(两段 SMTP 推 + 一段 POP3/IMAP 拉)。至此计算机网络 6 章完成,408 四科目(数据结构、计算机组成原理、操作系统、计算机网络)复习收官——从「读懂章节」切换到「拿全分数」:回 总目录 进入历年真题套卷阶段,按考试时间整卷限时模考,错题逐道回溯对应科目章节,把每个失分点钉死在冲刺前。