计算机网络第 6 章:应用层
408 计算机网络「应用层」复习:核心知识点、真题题型、通用解法与易错点。
Last updated on
本章优先参考本站 408 真题 → 计算机网络 → 第 6 章应用层,再用站内 408 模拟选择题补充题型。站内本章真题一共收录了 17 道:网络应用模型 1 道、DNS 3 道、FTP 2 道、电子邮件 4 道、WWW/HTTP 7 道;因此复习优先级非常明显:
HTTP/WWW 综合题 ≈ DNS > 电子邮件 ≈ FTP > C/S 与 P2P 基础概念
尤其 HTTP 经常不单独考 HTTP,而是和 DNS、TCP、ARP、交换机、路由器、NAT、拥塞控制一起考。2011、2021、2022 真题就是非常典型的综合题。本站也明确建议按“真题 → 归纳命题方式 → 模拟题补充”的顺序研究。(Any Docs)
一、第 6 章到底在学什么?
整个应用层其实可以压缩成一个问题:
一个用户在应用程序里想访问另一个网络服务,究竟发生了什么?
例如浏览器输入:
www.abc.com
背后可能依次发生:
DNS
域名:
www.abc.com
变成:
64.170.98.32
↓
TCP
浏览器与服务器建立 TCP 连接
↓
HTTP
浏览器:
GET /index.html
服务器:
返回 HTML
↓
浏览器发现 HTML 里还有图片,又继续请求图片。
如果从整台计算机角度看,还可能更早发生:
DHCP → ARP → DNS → ARP → TCP → HTTP
所以第 6 章绝不能只背“HTTP 端口 80”。
二、先背熟这一张表
这是本章所有题的底座。
| 应用 | 应用层协议 | 传输层 | 常见服务器端口 | 核心特点 |
|---|---|---|---|---|
| 域名解析 | DNS | UDP为主,也可TCP | 53 | 域名 → IP |
| 文件传输 | FTP | TCP | 21 / 20 | 控制、数据分离 |
| 发送邮件 | SMTP | TCP | 25 | 推送邮件 |
| 接收邮件 | POP3 | TCP | 110 | 从服务器取邮件 |
| 接收/管理邮件 | IMAP | TCP | 143 | 邮件主要留在服务器 |
| Web | HTTP | TCP | 80 | 无状态 |
| 安全 Web | HTTPS | TCP | 443 | HTTP + TLS |
考试最爱挖一个坑:
服务器端口固定 ≠ 客户端端口也固定。
例如访问 HTTP:
- 服务器:80;
- 客户端:操作系统分配的临时端口。
因此不能说:
“HTTP 客户端和服务器的默认端口都是 80。”
站内模拟题就专门考了这个陷阱。(Any Docs)
三、题型一:C/S 与 P2P 模型
1. 核心知识
C/S
Client / Server。
特点:
- 服务器长期运行;
- 客户主动请求;
- 服务器被动等待请求;
- 客户之间通常不直接通信;
- 管理集中;
- 服务器容易成为瓶颈。
例如:
- Web;
- FTP;
- DNS;
- 电子邮件的大部分服务。
P2P
Peer-to-Peer。
一个结点:
既可能是客户,又可能是服务器。
例如某个结点一边下载文件,一边把已经下载的部分提供给别人。
优势:
- 扩展性好;
- 用户越多,总上传能力往往越大;
- 文件大规模分发能力强。
缺点:
- 结点随时上下线;
- 管理困难;
- 安全性、稳定性通常弱于集中式 C/S。
四、真题:2019 网络应用模型
站内 2019 真题大意:
判断关于 P2P 和 C/S 的四个说法,其中有:
- P2P 中结点具有对等关系;
- C/S 中客户与客户可以直接通信;
- C/S 中客户主动、服务器被动;
- 大规模文件分发时 P2P 通常比 C/S 快。
找错误项。
答案:
“C/S 中客户与客户可以直接通信”错误。
典型 C/S 是:
Client A
↓
Server
↑
Client B不是:
Client A ↔ Client B另外 P2P 文件分发快的根本原因不是“P2P 这个名字听起来先进”,而是:
用户本身也贡献上传带宽。
站内 2019 真题就是围绕这些性质判断。(Any Docs)
五、模拟变式:P2P 是否一定更稳定?
站内“竟成·模拟七-40”问:
DNS、FTP 是否属于 C/S?P2P 结点能否同时充当客户端和服务器?P2P 是否比 C/S 更安全、更稳定?
错误项是:
P2P 更安全、更稳定。
恰恰相反。
P2P:
- 去中心化;
- 扩展性高;
但:
- 用户随时退出;
- 资源分散;
- 管理困难。
所以:
扩展性强 ≠ 稳定性强。
这是选择题非常典型的偷换概念。(Any Docs)
六、P2P 可能进一步怎样考?
可以考文件分发时间。
设:
- 文件大小 ;
- 服务器上传速率 ;
- 第 个客户端上传速率 ;
- 最慢客户端下载速率 ;
- 有 个客户端。
C/S 至少要满足:
因为服务器总共必须发送 份文件。
P2P 可以利用所有结点上传能力:
408 本章目前站内真题没有直接这样计算,但属于很自然的变式。
七、题型二:DNS——本章第一大重点
DNS 要解决:
域名 → IP 地址
例如:
www.abc.com
↓ DNS
64.170.98.32八、DNS 层次结构一定要懂
例如:
www.abc.xyz.com从右向左理解:
根
↓
.com
↓
xyz.com
↓
abc.xyz.com
↓
www.abc.xyz.com对应 DNS 查询时可能依次遇到:
- 根域名服务器;
.com顶级域名服务器;xyz.com权威服务器;abc.xyz.com权威服务器。
这直接决定 DNS 查询次数题。
九、递归查询和迭代查询——超级高频
这是 DNS 最重要的区别。
递归查询
A 问 B:
帮本章结合最终答案查出来。
B 不能只向 A 返回“请继续询问其他服务器”这一指示。
而是:
A → B
B → C
C → D
←
←
←A 只发一次。
迭代查询
A 问 B:
地址是多少?
B:
当前服务器不知道最终答案,客户端需要继续查询 C。
于是 A 自己继续:
A → B
A → C
A → D所以:
递归:被问者继续查。
迭代:查询者自己继续查。
这个区别一定形成条件反射。
十、2010 真题:递归查询次数
题目大意:
本地域名服务器没有缓存。如果采用递归方式解析另一网络的主机域名,那么:
用户主机、本地域名服务器分别发送多少条 DNS 请求?
答案:
1 条、1 条。
原因:
主机:
主机 → 本地 DNS只发一次。
本地 DNS:
本地 DNS → 上一级 DNS也是一次递归请求。
之后:
由被询问的 DNS 服务器继续向下查询。
所以千万不要看到“根 → 顶级 → 权威”就机械数成很多次。
先看题目:
究竟问的是哪台机器发了多少次?
站内 2010 真题答案也是“一条、一条”。(Any Docs)
十一、DNS 查询次数统一解法
以后看到这种题先做两件事。
第一步:圈出主语
题目问:
- 用户主机?
- 本地域名服务器?
- 所有 DNS 服务器?
- 某一台服务器?
完全不一样。
第二步:圈出方式
递归
本地 DNS 一般只需要:
次向外请求。
迭代
本地 DNS 要自己一级一级问。
可能:
根
↓
顶级
↓
二级域
↓
三级域于是有多次请求。
十二、2016 真题:DNS 最少/最多查询次数
题目大意:
所有 DNS 服务器均采用迭代查询。H4 访问
www.abc.xyz.com问域名服务器 201.1.1.1 最少和最多可能发送几次 DNS 查询?
答案:
为什么最少是 0?
因为:
有缓存。
如果本地 DNS 已经缓存:
www.abc.xyz.com → IP直接回答主机即可。
所以:
无缓存时:
根
↓
com
↓
xyz.com
↓
abc.xyz.com共:
这道题把两个重要知识点绑到一起:
缓存 + 迭代查询。
站内 2016 真题答案正是 0、4。(Any Docs)
十三、模拟题:全部服务器都递归怎么办?
站内“竟成·模拟六-40”:
所有域名服务器都使用递归方式,解析
www.aaa.bbb.com,问本地域名服务器最少、最多发送多少次 DNS 查询?
答案:
有缓存:
没有缓存:
本地 DNS 只向上一级发一条递归请求:
后面别人负责。
这道模拟题恰好和 2016 真题形成一组:
| 查询方式 | 本地域名服务器最多可能发送 |
|---|---|
| 全递归 | 1 |
| 迭代 | 可能多次 |
(Any Docs)
十四、DNS 缓存题
缓存是 DNS 必考概念。
目的:
- 加速解析;
- 减轻根 DNS 压力;
- 减少 DNS 报文;
- 减小响应时间。
站内王道模拟题专门问:
“为什么 DNS 广泛使用高速缓存?”
答案就是上述原因。普通 DNS 查询通常使用 UDP 53;不能笼统说 DNS 一定使用 TCP。(Any Docs)
十五、DNS 到底 UDP 还是 TCP?
高频选择题:
DNS = UDP?
更准确说:
普通查询
通常:
DNS
↓
UDP
↓
IP服务器端口:
特殊情况
DNS 也能使用 TCP,例如区域传送等。
所以:
“DNS 使用 UDP”——很多考试语境下可以。
但:
“DNS 只能使用 UDP”
错误。
十六、2020 真题:DNS + TCP + HTTP 的 RTT 综合题
这是第六章必须会的典型题。
题目大意:
主机 H 点击
www.abc.com/index.html,各 Internet 服务器往返时间都是 。本地域名服务器对主机提供递归服务,其他 DNS 使用迭代查询。
忽略其他时延。
求从点击链接到收到纯文本
index.html的最短时间和最长时间。
答案:
站内给出的选项答案为 D。(Any Docs)
最短情况
DNS 已缓存服务器 IP。
因此 DNS 不需要向 Internet 查询。
随后:
建立 TCP
HTTP 请求 + 收到网页
所以:
题给:
于是:
最长情况
没有 DNS 缓存。
需要:
根 DNS
↓
.com DNS
↓
abc.com DNS共:
再:
TCP:
HTTP:
因此:
所以:
十七、DNS + HTTP 时延题万能公式
先画:
DNS
+
TCP
+
HTTP于是:
如果 DNS 迭代查询了 次,每次 RTT 相同:
建立 TCP:
请求一个小对象:
因此:
但务必先看:
计时从哪里开始。
这是 HTTP 题最大的坑之一。
十八、题型三:FTP
FTP 和普通 HTTP 最明显的区别:
FTP 有两条 TCP 连接。
十九、FTP 两条连接
控制连接
负责:
- 用户名;
- 密码;
- 文件操作命令;
- 服务器响应。
服务器:
通常整个 FTP 会话持续存在。
数据连接
负责:
- 文件内容;
- 目录列表等。
每进行一次具体的数据传输,通常建立对应数据连接,传完关闭。
二十、2009 真题
题目:
FTP 客户端和服务器传递 FTP 命令使用什么连接?
答案:
建立在 TCP 上的控制连接。
即:
FTP command
↓
control connection
↓
TCP不是数据连接。
站内 2009 真题明确考的就是“控制连接 vs 数据连接”。(Any Docs)
二十一、2017 真题:FTP 端口陷阱
题目大意:
判断 FTP 四个说法:
- 数据传完后数据连接关闭;
- 控制连接整个会话保持;
- 服务器总与客户端 TCP 20 端口建立数据连接;
- 客户端连接服务器 TCP 21 端口建立控制连接。
找错误项。
答案是第三项。(Any Docs)
很多人会背:
FTP = 20 + 21
然后掉坑。
真正情况:
主动模式
控制:
客户端临时端口 → Server:21数据:
Server:20 → 客户端临时端口被动模式
控制:
客户端临时端口 → Server:21数据:
客户端临时端口 → Server:临时端口因此:
数据连接并不永远使用服务器 20 端口。
主动模式才典型使用服务器 TCP 20。
二十二、FTP 选择题统一判断法
遇到 FTP 先写:
控制:TCP 21,长连接
数据:独立 TCP,按需建立然后检查选项。
另外站内模拟题还考了:
FTP 能不能让用户指定文件表示类型?
可以。
例如:
- ASCII;
- 二进制。
因此“FTP 不允许客户指定文件类型和格式”错误。(Any Docs)
二十三、题型四:电子邮件
电子邮件记住一句:
发信用 SMTP,收信用 POP3 / IMAP。
二十四、一封邮件真正怎么走?
用户 A 给用户 B:
A 用户代理
│ SMTP
↓
A 邮件服务器
│ SMTP
↓
B 邮件服务器
│ POP3 / IMAP
↓
B 用户代理所以:
SMTP 负责“推”。
POP3 / IMAP 负责“取”。
二十五、2012 真题:邮件协议流程
题目给出用户 1 给用户 2 发邮件的三个阶段,问分别用什么协议。
答案:
SMTP
SMTP
POP3也就是:
- 用户 1 → 自己邮件服务器:SMTP;
- 邮件服务器 → 对方邮件服务器:SMTP;
- 用户 2 → 自己邮件服务器取邮件:POP3。
(Any Docs)
这个图一定记住。
二十六、2013 真题:SMTP 到底负责哪些方向?
题目判断:
- SMTP 传统上直接支持 7 bit ASCII;
- 邮件服务器之间可以使用 SMTP;
- 用户代理向邮件服务器发送邮件可以使用 SMTP;
- 邮件服务器向用户代理发送邮件使用 SMTP。
前三个正确,第 4 个错误。
为什么?
因为:
User Agent → Mail Server
SMTP以及:
Mail Server → Mail Server
SMTP但是:
Mail Server → User Agent用户“取邮件”一般使用:
POP3 / IMAP站内 2013 真题答案为 I、II、III。(Any Docs)
二十七、SMTP 的 ASCII 坑
传统 SMTP 直接支持:
7 位 ASCII 文本。
图片:
- JPEG;
视频:
- MPEG;
程序:
- EXE;
等二进制内容不能直接这样传。
怎么办?
使用 MIME 等机制编码。
二十八、2018 真题
题目:
下列哪种内容无需转换即可由 SMTP 直接发送?
JPEG / MPEG / EXE / ASCII 文本。
答案:
ASCII 文本。
(Any Docs)
记忆:
SMTP:原生文本
MIME:帮它扩展多媒体二十九、2015 真题:POP3 的传输层
题目:
POP3 使用什么类型的传输层服务?
POP3:
POP3
↓
TCPTCP:
- 面向连接;
- 可靠。
所以答案:
有连接、可靠的数据传输服务。
(Any Docs)
三十、电子邮件最容易出的综合变式
如果题目说:
用户用网页版 Gmail / QQ 邮箱阅读邮件。
浏览器与邮件网站之间可能:
HTTP / HTTPS但邮件服务器彼此交换邮件仍然可以:
SMTP所以不要看到“邮件”就无脑选 SMTP。
要看:
哪两个实体之间通信?
这是整个应用层都适用的方法。
三十一、题型五:HTTP / WWW——全章最大重点
站内本章 17 道真题中,WWW/HTTP 部分就收录了 7 道,而且其中包括多道综合题。(Any Docs)
HTTP 需要掌握五大块:
- HTTP 基本性质;
- HTTP 请求报文;
- Cookie;
- 持续 / 非持续连接;
- RTT 计算。
三十二、HTTP 的核心性质
HTTP:
无状态协议。
什么意思?
服务器不会仅凭 HTTP 协议本身自动记住:
“这个请求就是刚才那个用户。”
所以才有:
- Cookie;
- Session 等机制。
因此:
HTTP 无状态 ≠ 网站不能保存登录状态。
状态是通过额外机制维护的。
三十三、HTTP 请求报文必须看懂
站内 2015 真题给了:
GET /index.html HTTP/1.1
Host: www.test.edu.cn
Connection: Close
Cookie: 123456然后判断各字段含义。(Any Docs)
第一行
GET /index.html HTTP/1.1表示:
- 方法:GET;
- 请求对象:
/index.html; - 协议版本:HTTP/1.1。
Host
Host: www.test.edu.cn这是:
目标服务器主机名。
不是客户端名字。
Connection
Connection: Close表示:
当前请求响应之后关闭连接。
即不要继续复用 TCP。
如果:
Connection: keep-alive表示希望保持连接。
Cookie
Cookie: 123456表示浏览器保存了服务器此前提供的 Cookie,并随请求带回。
因此通常说明:
浏览器之前已经和这个站点发生过交互。
三十四、2015 真题:HTTP 报文字段
题目要求判断:
- 浏览器是否请求
index.html; - 文件是不是在
www.test.edu.cn; - 是否使用持续连接;
- 浏览器是否曾访问过该站点。
关键字段:
Connection: Close所以:
“浏览器请求使用持续连接”错误。
答案 C。(Any Docs)
三十五、模拟题:POST + keep-alive + Cookie
站内“竟成·模拟四-40”给:
POST /index.htm HTTP/1.1
Host: www.test.edu.cn
Connection: keep-alive
Cookie: 123456考四个东西:
- HTTP 本身是否“有连接”;
- keep-alive;
- Cookie;
- POST。
答案认为错误说法是:
“HTTP 本身有连接。”
因为真正提供连接的是:
TCPHTTP 使用 TCP 提供的服务。(Any Docs)
另外:
GET
主要用于获取资源。
POST
主要用于向服务器提交数据或触发处理。
三十六、2018 真题:哪些应用能使用无连接传输?
题目:
FTP、DNS、SMTP、HTTP 中哪个可以使用传输层无连接服务?
答案:
DNS。
因为:
FTP → TCP
SMTP → TCP
HTTP → TCP
DNS → UDP 可以(Any Docs)
三十七、HTTP/1.0 与 HTTP/1.1
这部分是 RTT 计算的核心。
非持续连接
典型 HTTP/1.0。
一个对象:
建立 TCP
↓
请求对象
↓
收到对象
↓
关闭下一个对象:
重新建立 TCP。
持续连接
HTTP/1.1 默认:
多个 HTTP 请求可以复用同一个 TCP 连接。
三十八、非流水线持续连接
过程:
请求 HTML
← HTML
请求图片1
← 图片1
请求图片2
← 图片2必须收到上一个结果才能请求下一个。
三十九、流水线方式
理论上的流水线:
请求图片1
请求图片2
请求图片3
↓
一次连续发出因此能节省 RTT。
考试计算题必须首先判断:
非持续? 持续非流水线? 持续流水线? 是否并行 TCP?
四十、HTTP RTT 第一套万能公式
假设:
- 页面基础 HTML 1 个;
- HTML 引用了 个小对象;
- 忽略发送时延;
- 已经完成 DNS。
1. 非持续 + 不并行
每个对象:
共 个对象:
四十一、2024 真题:非持续 HTTP/1.0
站内 2024 真题:
浏览器不支持并行 TCP,使用非持久 HTTP/1.0 请求一个 Web 页。
页面还引用同一网站上的 7 幅小图。
从为网页建立 TCP 连接开始,到所有内容收完,最少多少 RTT?
共有:
个对象。
每个对象:
所以:
答案:
16 RTT。
(Any Docs)
这道题就是非持续 HTTP 的标准模板。
四十二、持续 + 非流水线万能公式
只有一次 TCP 建连:
基础 HTML:
随后 个对象:
因此:
前提是:
从“开始建立 TCP”计时。
四十三、模拟题:1 HTML + 4 图片
站内“竟成·模拟三-40”:
HTTP/1.1,持续连接,非流水线;
HTML 引用了 4 幅 JPEG;
从发起 TCP 连接开始计时。
于是:
建立 TCP:
HTML:
4 个图像:
总计:
答案 B。(Any Docs)
四十四、最重要陷阱:计时起点
同一种 HTTP,答案可以差一个 RTT。
如果题目说
“从开始建立 TCP 连接……”
就计算:
握手。
如果题目说
“从 HTTP 请求已经发出……”
那么:
TCP 连接显然已经存在。
不要再加握手。
四十五、2011 真题:持续非流水线
2011 综合题其中一问:
HTTP/1.1 采用持续、非流水线方式。
rfc.html引用了 5 幅 JPEG。从已经发出图中的 Web 请求开始,到收到全部内容需要多少 RTT?
基础页面:
5 幅图片依次:
因此:
而不是:
因为题目没有要求计算 TCP 建连。
站内答案也是 6 RTT。(Any Docs)
四十六、HTTP 大文件题:不能只数“请求次数”
2022 真题明显提高了一档。
题目大意:
HTTP/1.1;
HTML 大小 ;
HTML 引用一幅大小 的图片;
RTT = 10 ms;
已经完成 DNS;
从开始建立 TCP 到全部收到至少多长时间?
答案:
即:
(Any Docs)
四十七、为什么不是简单的 3 RTT?
如果只背:
TCP 1RTT
HTML 1RTT
图片 1RTT会得到:
错误。
因为图片有:
还涉及:
TCP 慢开始。
初始拥塞窗口按题目体系取:
四十八、2022 真题完整时间线
第 1 个 RTT
完成 TCP 建连,第三次握手可以携带 HTTP 请求。
第 2 个 RTT
服务器发送 HTML:
收到 ACK 后:
第 3 个 RTT
图片总共:
当前一次最多发送:
所以还剩:
ACK 后:
第 4 个 RTT
发送最后:
于是:
又:
所以:
四十九、慢开始文件传输通法
如果某次开始时拥塞窗口为:
慢开始每轮可发送:
前 轮累计:
即:
要发送 个 MSS,应满足:
所以最少轮数:
但具体题目还必须结合:
- 前一个对象是否已经让 cwnd 增大;
- HTTP 请求什么时候到;
- ACK 能否和 HTTP 请求一起携带;
- 是否忽略发送时延。
这是 2022 这种题的真正难点。
五十、题型六:访问网页会使用哪些协议?
2014 真题:
浏览器访问大学 Web 主页时,PPP、ARP、UDP、SMTP 中哪个不可能使用?
答案:
SMTP。
因为可能涉及:
HTTP
TCP
IP
ARP
DNS
UDP
PPP但浏览普通网页跟:
SMTP没有必然关系。
站内答案也是 SMTP。(Any Docs)
五十一、“访问网页全过程”必须形成脑图
考试一说:
主机刚启动,然后打开浏览器访问
www.xxx.com
脑中自动出现:
① 获得网络参数
DHCP
↓
② 域名解析
DNS
↓
③ 如果不知道下一跳 MAC
ARP
↓
④ 与 Web 服务器连接
TCP 三次握手
↓
⑤ 请求网页
HTTP
↓
⑥ 返回页面
HTTP
↓
⑦ 发现图片/CSS等
继续 HTTP 请求与此同时:
交换机:
学习源 MAC
路由器:
查路由表
TTL - 1
重算 IP 首部校验和
NAT:
可能改 IP / 端口这就是应用层综合题的完整框架。
五十二、2011 真题:本章最值得研究的综合题之一
题目给:
- 主机 MAC;
- 私有 IP:
10.2.128.100; - 网络拓扑;
- 一个 Web 请求以太网帧的十六进制内容。
要求:
- 找 Web 服务器 IP;
- 找默认网关 MAC;
- 判断通过什么协议获得目的 MAC;
- HTTP 请求过程多少 RTT;
- 路由器转发时修改哪些 IP 首部字段。
站内答案为:
- Web 服务器 IP:
64.170.98.32; - 默认网关 MAC:
00-21-27-21-51-EE; - 使用 ARP;
- ARP 请求帧目的 MAC:
FF-FF-FF-FF-FF-FF- HTTP 部分需要 ;
- 路由/NAT 后修改源 IP、TTL、IP 首部校验和。(Any Docs)
这实际上是一道:
应用层 + 传输层 + 网络层 + 数据链路层
全栈题。
五十三、十六进制帧题怎么拆?
以太网 II 帧开头:
目的 MAC 6B
源 MAC 6B
类型 2B站内题目开头类似:
00 21 27 21 51 ee
00 15 c5 c1 5e 28
08 00于是:
目的 MAC:
00-21-27-21-51-EE源 MAC:
00-15-C5-C1-5E-28类型:
08 00代表:
IPv4。
所以看到十六进制帧不要害怕,先固定按字段切。
五十四、为什么目的 MAC 是网关,不是 Web 服务器?
Web 服务器在 Internet 上。
主机判断:
目的 IP 与自己是否同一子网?
如果不是:
IP 分组交给默认网关。
因此以太网帧:
目的 MAC = 默认网关 MAC而 IP 分组:
目的 IP = Web 服务器 IP这是一条极其重要的规律:
MAC 地址负责“一跳”。
IP 地址负责“端到端”。
所以经过路由器:
MAC 会换;
目标 IP 通常不换。
五十五、ARP 在这里干什么?
主机知道:
下一跳 IP。
但是不知道:
下一跳 MAC。
于是 ARP:
IP → MACARP 请求采用广播:
FF-FF-FF-FF-FF-FFARP 响应通常单播。
五十六、路由器转发到底修改什么?
普通路由器:
TTL:
所以 IPv4 首部校验和需要重新计算。
链路层帧也重新封装:
源 MAC
目的 MAC都会随下一跳改变。
如果还存在 NAT
例如:
10.2.128.100是私网地址。
出口路由器可能改成公网 IP。
于是:
源 IP也修改。
因此 2011 题答案包括:
- 源 IP;
- TTL;
- IP 首部校验和。
(Any Docs)
补充一个做综合题很有价值的细节:
如果 NAT 改了 IP 地址,TCP/UDP 校验和通常也要相应调整,因为 TCP/UDP 校验和计算涉及伪首部。不过 2011 那一问明确问的是 IP 分组首部字段,所以标准答案列 IP 首部相关字段即可。
五十七、2021 真题:真正的“浏览网页全过程”
这是建议重点反复做的一道。
题目给:
- 交换机 S;
- 路由器 R;
- 本地域名服务器;
- H1、H2;
- IP/MAC;
- 初始 H1 ARP 表为空;
- 交换机转发表为空;
- H1 用域名访问 Web 网站。
然后直到:
交换机第一次收到封装 HTTP 请求的帧。
问:
- H1 除 HTTP 外还运行哪个应用层协议?
- 如何逐层封装?
- 此时交换表有哪些表项?
- H2 至少收到几个相关帧?
- 是什么帧?
- 目的 MAC 是多少?
站内答案:
第 1 问
还使用:
DNS。
封装:
DNS
↓
UDP
↓
IP
↓
Ethernet(Any Docs)
五十八、为什么 DNS 使用 UDP?
因为访问:
www.abc.comHTTP 最终要建立 TCP 到:
服务器 IP可浏览器最开始只有域名。
所以必须:
www.abc.com
↓
DNS
↓
IP普通 DNS 查询:
DNS → UDP → IP → Ethernet这就是综合题最喜欢问的:
逐层封装。
五十九、交换机自学习必须掌握
交换机学习:
收到帧的源 MAC 地址。
假设帧:
源 MAC = AA
目的 MAC = BB从端口 3 进入。
交换机学:
AA → Port 3不是:
BB → Port 3因此标准口令:
从哪进,学谁的源地址。
2021 题到 时,交换机已经通过通信学习到 H1、路由器、本地域名服务器等源 MAC 对应端口,而仅仅收到广播却没有发送帧的 H2 不会因此被交换机学习。站内给出了三条对应表项。(Any Docs)
六十、为什么 H2 会收到和自己无关的帧?
因为 ARP 请求:
FF-FF-FF-FF-FF-FF是广播。
交换机收到广播:
除入端口外向其他端口泛洪。
因此 H2 即使不参与 Web 通信,也会收到广播 ARP。
站内 2021 真题答案:
H2 至少收到 2 个相关帧,均为 ARP 请求广播帧。
目的 MAC 都是:
FF-FF-FF-FF-FF-FF(Any Docs)
六十一、以后碰到“主机访问网站综合题”的统一解题算法
不要跟着报文乱走。
固定分成七阶段。
阶段 1:配置
问:
IP、子网掩码、默认网关、DNS 从哪来?
可能:
DHCP阶段 2:域名解析
DNS问:
- 缓存?
- 递归还是迭代?
- UDP/TCP?
- 几个 RTT?
阶段 3:确定下一跳
比较:
和:
相同:
直接交目标主机。
不同:
交默认网关。
阶段 4:确定 MAC
ARP:
下一跳 IP → 下一跳 MAC阶段 5:TCP
三次握手。
通常:
阶段 6:HTTP
分析:
- HTTP/1.0 还是 1.1;
- 持续还是非持续;
- 流水线还是非流水线;
- 是否允许并行连接;
- 几个对象;
- 是否涉及慢开始。
阶段 7:交换与路由
交换机:
源 MAC 学习路由器:
TTL-1
重新封装 Ethernet
重算 IPv4 首部校验和有 NAT:
IP/端口可能修改这套模板基本可以覆盖应用层所有大题。
六十二、本章几个特别高频的“绝对化陷阱”
408 很喜欢使用:
一定、只能、必须、都是、不能
来制造错项。
例如:
错
DNS 使用 TCP。
应为:
DNS 普通查询通常 UDP,也可以 TCP。
错
FTP 数据连接总使用 20 端口。
应为:
主动模式典型使用服务器 TCP 20,被动模式不同。
错
HTTP/1.1 使用非持续连接。
应为:
HTTP/1.1 默认持续连接。
错
HTTP 是有状态协议。
应为:
HTTP 本身无状态。
错
HTTP 客户端端口也是 80。
应为:
服务器 80,客户端通常临时端口。
错
SMTP 用于用户读取邮件。
应为:
读取通常 POP3 / IMAP。
六十三、本章端口题最好这样记
不要背一串孤立数字。
记成“服务”。
HTTP Server 80
HTTPS Server 443
DNS Server 53
FTP Control 21
FTP Active Data 20
SMTP Server 25
POP3 Server 110
IMAP Server 143然后记:
客户端通常是临时端口。
这一个规则能消灭大量错项。
六十四、HTTP RTT 题最终总结表
假设:
- 已完成 DNS;
- 基础 HTML 1 个;
- 引用 个小对象;
- 忽略传输时延;
- 从建立 TCP 开始。
非持续 + 串行
持续 + 非流水线
持续 + 流水线
基础情况下:
即:
- TCP;
- HTML;
- 所有引用对象流水请求/返回。
当然若对象很大、慢开始、带宽受限,则不能直接套。
六十五、如果 DNS 也没完成
再在前面加:
例如查询了 个远端 DNS,每次都是 RTT:
于是非持续串行:
持续非流水线:
关键还是:
所有公式都要服从题目给出的计时起点。
六十六、再给出一道很可能出现的变式
假设:
浏览器使用 HTTP/1.0 非持续连接请求一个 HTML,HTML 引用 10 幅图片,但允许最多同时建立 5 条 TCP 连接。
忽略 DNS 和传输时间。
从建立 HTML 的 TCP 连接开始,多少 RTT?
基础 HTML:
10 幅图片,每次最多并行 5 幅:
批。
每批:
所以:
这个变式就是把 2024 真题里的“不支持并行 TCP”改掉,非常适合继续命题。
六十七、DNS 预测变式
给出:
本地 DNS 已缓存
.com顶级 DNS 地址,但没有www.abc.com的最终记录。采用迭代查询,问还需要发送多少次查询?
不要重新查根。
可能直接:
.com
↓
abc.com所以缓存不仅可能让查询次数:
还可能:
即:
缓存可以是中间层级服务器信息,不一定非要缓存最终 IP。
这是 DNS 查询次数题很好的升级方向。
六十八、电子邮件预测变式
题目:
用户 A 使用浏览器登录 Web 邮箱给 B 发邮件,以下哪些协议可能出现?
可能:
浏览器 A ↔ Web 邮件服务器:
HTTPS发送服务器 ↔ 接收服务器:
SMTPB 用传统客户端收:
POP3 / IMAP所以一次“发邮件”完全可能同时出现多个应用层协议。
核心原则再次是:
先确定通信双方,再判断协议。
六十九、把站内真题按“价值”重新分类
按照考试复习价值,建议不是按教材顺序刷,而是这样。
第一梯队:必须完全吃透
2020 DNS + HTTP RTT
训练:
DNS 次数 + TCP + HTTP 时间线。
2011 Web 综合题
训练:
Ethernet + ARP + IP + NAT + HTTP。
2021 Web 综合题
训练:
DNS + UDP + ARP + 交换机自学习 + HTTP。
2022 HTTP + TCP 慢开始
训练:
应用层和传输层联动。
2024 HTTP/1.0 RTT
训练:
非持续连接对象计数。
这些题最接近“会一道,就会一类”。
(Any Docs)
七十、第二梯队:选择题必须秒杀
DNS
- 2010:递归;
- 2016:迭代 + 缓存。
FTP
- 2009:控制连接;
- 2017:20/21 + 主动/被动。
邮件
- 2012:SMTP → SMTP → POP3;
- 2013:SMTP 功能;
- 2015:POP3 使用 TCP;
- 2018:SMTP ASCII。
HTTP
- 2014:浏览 Web 可能涉及哪些协议;
- 2015:HTTP 请求首部;
- 2018:DNS 可用 UDP。
这些题应该做到:
看到题目 10~20 秒就能确定考点。
(Any Docs)
七十一、考试时如何判断一道应用层题属于哪类?
看到关键词直接分类。
出现:
www.xxx.com
根服务器
顶级服务器
本地域名服务器
缓存立刻:
DNS。
检查:
递归 / 迭代 / 缓存 / RTT。
出现:
20
21
控制连接
数据连接立刻:
FTP。
出现:
SMTP
POP3
MIME
ASCII
邮件服务器立刻:
Email。
出现:
GET
POST
Host
Cookie
Connection立刻:
HTTP 报文。
出现:
HTTP/1.0
HTTP/1.1
图片
对象
RTT
MSS立刻:
HTTP 时延。
出现:
MAC
交换机
ARP
TTL
NAT
十六进制不要以为走错章节:
这是 Web 跨层综合题。
七十二、本章真正需要建立的 6 个条件反射
最后把整个第 6 章压成六句话。
1
看到域名:
DNS:先想缓存,再想递归/迭代,再数查询次数。
2
看到 FTP:
控制 TCP 21 长期存在;数据另开连接,20 不是任何情况下都固定。
3
看到邮件:
发送 SMTP,接收 POP3/IMAP,传统 SMTP 原生处理 ASCII。
4
看到 HTTP:
HTTP 无状态,服务器默认 80,HTTP/1.1 默认持续连接。
5
看到 RTT:
先看计时起点,再拆 DNS → TCP → HTML → 引用对象。
6
看到“浏览网页综合题”:
DNS → ARP → TCP → HTTP,同时考虑交换机学习、路由转发和 NAT。
七十三、第 6 章复习优先级
如果现在是冲 408 分数,建议本章按下面的顺序掌握:
| 优先级 | 内容 | 要达到的程度 |
|---|---|---|
| S | HTTP RTT | 所有模式都能自己画时间线 |
| S | DNS 查询过程 | 递归/迭代/缓存秒判 |
| S | Web 跨层综合 | 能从应用层一路分析到 MAC |
| A | HTTP 报文 | GET/POST/Host/Connection/Cookie |
| A | FTP | 控制/数据连接与端口 |
| A | 电子邮件 | SMTP/POP3/IMAP/MIME |
| B | C/S 与 P2P | 性质判断即可 |
本章不像物理层那样公式多,真正难的是:
同一个“访问网页”动作,把 408 四五个章节串起来。
因此复习时不要把 DNS、TCP、ARP、HTTP 当成彼此独立的知识点。最值得形成的完整链路是:
输入域名
↓
DNS 得到服务器 IP
↓
判断服务器是否同网段
↓
ARP 得到下一跳 MAC
↓
TCP 三次握手
↓
HTTP 请求 HTML
↓
解析 HTML
↓
请求图片等对象
↓
TCP 慢开始/拥塞控制影响传输如果这条链能够在不看答案的情况下完整讲述,那么计算机网络第 6 章的绝大多数 408 题已经具备统一解法。站内真题尤其是 2020、2011、2021、2022、2024 五道,建议作为这一章的核心母题反复掌握。(Any Docs)