跳转至

第6章 应用层

2027 王道 · 专题阅读 · 保留代码与校订注 · 与版本锁一致

第6章 应用层

既可出选择题,又可结合其他章节出综合题。关键是牢固掌握几个典型应用层协议,学习时注意联系实际。

回源 · PDF 第 279 页 · b_279_3

【知识树】第6章骨架

  • 网络应用模型:C/S 模型、P2P 模型
  • 域名系统 DNS
  • 层次域名空间:顶级域名三大类
  • 四类域名服务器:根、顶级、权限、本地
  • 域名解析:递归查询 vs 迭代查询、高速缓存
  • 文件传输协议 FTP:控制连接与数据连接、两种传输模式
  • 电子邮件:系统组成、格式与 MIME、SMTP / POP3 / IMAP
  • 万维网 WWW:URL、HTTP 报文、持久/非持久连接、Cookie 与代理
回源 · PDF 第 279 页 · b_279_0;PDF 第 279 页 · b_279_4

6.1 网络应用模型

C/S 模型的工作流程和三个特点? ★1考

工作流程: - 服务器持续处于接收请求的状态 - 客户主动发起服务请求并等待结果 - 服务器解析处理请求,将结果返回

⚠️ 地址的不对称性:客户程序必须事先知道服务器程序的地址;服务器程序无须知道客户程序的地址。

三个特点: - 各计算机地位不平等:服务器可通过用户权限控制管理客户,管理集中便捷 - 客户之间通常不直接通信(两个浏览器不会直接交换数据) - ⚠️ 可扩展性不佳:受服务器性能和网络带宽制约

采用 C/S 的常见应用:Web、FTP、电子邮件(SMTP/POP3/IMAP)。

★ 考过 2019

回源 · PDF 第 279 页 · b_279_8

P2P 模型的四个优点和一个缺点?

核心思想:内容不再集中存储于中心服务器,每个节点同时具备下载和上传能力,权利与义务大体对等。

⚠️ 从实现机制上看,P2P 本质上仍基于客户/服务器模式:节点访问别人资源时是客户,为别人提供资源时是服务器。

优点: - 减轻中心服务器的计算和带宽压力,消除对单一服务器的依赖 - 节点之间可直接通信,无须中心服务器中转 - 可扩展性好:容量随节点数量增加而自然增长 - 网络健壮性强:单个节点失效通常不影响其他节点

缺点:⚠️ 节点在获取服务的同时还要为别人提供服务,占用较多 CPU、内存、磁盘 I/O,可能影响本机性能;P2P 流量曾占互联网的 50%~90%,导致网络严重拥塞,ISP 通常对其持限制或反对态度。

回源 · PDF 第 280 页 · b_280_3;PDF 第 280 页 · b_280_8

6.2 域名系统 DNS

DNS 由哪三部分组成?域名的四条书写规则?

DNS 三部分:层次域名空间、域名服务器、解析器。

标号规则: - 英文字母不区分大小写 - 除连字符(-)外不得使用其他标点符号 - ⚠️ 每个标号不超过 63 个字符,整个域名总长度不超过 255 个字符 - ⚠️ 级别最低的域名写在最左边,级别最高的顶级域名写在最右边

例:www.cskaoyan.com 中,com 是顶级域名、cskaoyan 是二级域名、www 是三级域名。

回源 · PDF 第 282 页 · b_282_8;PDF 第 282 页 · b_282_9

顶级域名的三大类?谁管谁?

  • 国家顶级域名 ccTLD:如 .cn(中国)、.us(美国)
  • 通用顶级域名 gTLD:.com(公司)、.net(网络服务机构)、.org(非营利组织)、.edu(教育机构)、.gov(国家或政府机构)
  • 基础结构域名 arpa:⚠️ 用于反向域名解析(把 IP 地址转换为域名)

管理层级:各级域名由其上一级的域名管理机构管理;顶级域名由 ICANN 管理;国家顶级域名下的二级域名由相应国家自行规定管理。例:中国把 edu.cn 子域授权给 CERNET 管理。

回源 · PDF 第 283 页 · b_283_0;PDF 第 283 页 · b_283_3

"区"和"域"是什么关系?

一个服务器负责管辖的范围称为区,⚠️ 区的范围小于或等于域。 - 一个区内的所有节点必须是连通的 - 每个区都设有权限域名服务器,保存该区中所有主机的域名到 IP 地址的映射

⚠️ 每个域名服务器不仅要能解析部分域名,还要维护指向其他域名服务器的信息 —— 自己解析不了时要知道向哪个服务器进一步查询。

回源 · PDF 第 283 页 · b_283_6;PDF 第 283 页 · b_283_7

四类域名服务器各管什么?

  • 根域名服务器:DNS 的最高层级,知道全部顶级域名服务器的域名和 IP 地址;⚠️ 通常并不直接把域名解析为 IP,而是返回下一步应查询的顶级域名服务器地址;全球共 13 个,每个实际上是一个冗余服务器集群
  • 顶级域名服务器:管理在其下注册的所有二级域名(如 .com 服务器管所有 .com 结尾的域名);返回最终 IP 或下一步该查的服务器 IP
  • 权限域名服务器(授权域名服务器):管理特定区的域名信息;每个主机必须在所属区的权限服务器处登记;⚠️ 建议每个区至少配置两个以提高可靠性
  • 本地域名服务器:⚠️ 主机的 DNS 查询首先发给它;Windows 里配"本地连接"填的 DNS 服务器地址就是它

⚠️ 没有任何一台域名服务器包含互联网上所有主机的映射,映射分布在所有域名服务器上。许多本地域名服务器同时承担权限域名服务器的角色。

回源 · PDF 第 283 页 · b_283_9;PDF 第 283 页 · b_283_10

DNS 用什么传输层协议?为什么? ★3考

传统普通查询通常先用 UDP/53,因为查询短小、无建连开销。

⚠️ DNS 不是只用 UDP:响应截断或较大时可改用 TCP/53;区域传送使用 TCP。现代还可经加密传输承载。408 题目未给特殊条件时,普通查询按 UDP 作答。

★ 考过 2018、2021

回源 · PDF 第 282 页 · b_282_6

递归查询和迭代查询的分界线在哪? ★3考

按教材常见模型,主机的 stub resolver 通常向本地递归解析器请求递归查询;这不是协议“永远如此”的硬约束,仍取决于查询标志和解析器配置。

本地域名服务器向其他域名服务器,可用递归也可用迭代: - 递归查询:本地服务器只需向根域名服务器发一次查询,后续由各级域名服务器之间递归完成,最后根服务器把 IP 返回给本地服务器。⚠️ 会给根域名服务器带来过重负载,实际中几乎不被采用 - 迭代查询(通常采用):根服务器要么直接给出 IP,要么告诉本地服务器"你下一步该问哪个顶级域名服务器";本地服务器自己一级级去问,直到拿到 IP

💡 记忆法:"递归是我帮你问到底,迭代是我告诉你下一个问谁"。

★ 考过 2010、2016、2020

回源 · PDF 第 284 页 · b_284_15

完整域名解析的八步和报文数? ★1考

查 y.abc.com,在无缓存、无 CNAME、按图示三个委派层级且都用 UDP的前提下,本例涉及 8 个报文:4 个查询 + 4 个回答: - ① 客户 → 本地域名服务器(递归查询) - ② 本地服务器先查本地缓存,未命中 → 根域名服务器(迭代查询) - ③ 根服务器识别属 .com 顶级域 → 返回 dns.com 的 IP - ④ 本地服务器 → 顶级域名服务器 dns.com(迭代) - ⑤ 识别属 abc.com 区 → 返回权限域名服务器 dns.abc.com 的 IP - ⑥ 本地服务器 → 权限域名服务器 dns.abc.com(迭代) - ⑦ 权限服务器返回 y.abc.com 的 IP - ⑧ 本地服务器保存到本地缓存并返回给客户

⚠️ 8 不是 DNS 的全局最大值。缓存命中、CNAME、委派层级、重试、UDP/TCP 切换都会改变报文数。做题先画查询树,并看题目问的是“主机发出的”“本地 DNS 发出的”还是“全网总报文”。

★ 考过 2021

回源 · PDF 第 285 页 · b_285_3

DNS 高速缓存为什么要设 TTL?

作用:提高查询效率、减少互联网上的查询流量 —— 存储近期查询过的域名与 IP 映射,后续相同查询直接从缓存返回。

⚠️ 为什么要设生存时间 TTL:主机名与 IP 地址的映射关系并非永久有效,到期后自动失效并被清除。

⚠️ 主机端也常维护本地 DNS 缓存,只有本地缓存未命中才向 DNS 服务器发起查询。

回源 · PDF 第 285 页 · b_285_5

6.3 文件传输协议 FTP

FTP 的三个功能和服务器进程结构? ★2考

三个功能: - 支持不同类型主机系统(硬件、操作系统均可不同)之间的文件传输 - 通过用户权限管理,提供对远程文件的管理能力 - 通过匿名(anonymous)FTP 实现公用文件共享

FTP 采用客户/服务器模式,基于 TCP 提供可靠传输。 服务器进程由两部分组成: - 一个主进程:负责接收新请求(打开熟知端口 21) - 若干从属进程:分别处理单个客户的请求,处理完毕即终止 - ⚠️ 主进程与从属进程并发执行

⚠️ FTP 是有状态协议:服务器要在整个会话期间维护用户的状态信息(用户账户与控制连接的关联、用户在远程目录树中的当前位置)。

★ 考过 2009、2018

回源 · PDF 第 289 页 · b_289_13

控制连接和数据连接的端口和寿命? ★3考

FTP 工作时使用两个并行的 TCP 连接: - 控制连接(服务器端口 21):传输控制命令(登录、目录操作、传送命令);⚠️ 本身不传输文件数据;⚠️ 在整个会话期间保持打开状态(传输过程中还能发中断指令) - 数据连接:实际传文件,传输结束后关闭。主动 PORT 模式通常由服务器端口 20 主动连接客户指定端口;被动 PASV 模式则由客户连接服务器临时开放的数据端口

💡 记忆法:"21 常开传命令;数据连接用完即关,20 只属于经典主动模式"。

★ 考过 2009、2017、2023

回源 · PDF 第 290 页 · b_290_4

主动模式 PORT 和被动模式 PASV 的区别?

  • PORT(主动模式):客户端登录后随机选一个本地端口,用 PORT 命令告诉服务器;服务器通过 20 号端口主动连接到客户端指定的端口
  • PASV(被动模式):客户端登录后发 PASV 命令;服务器在本地随机开放一个端口并通过控制连接告知客户端;客户端主动连接到该端口

区别:是服务器主动连客户端(主动),还是服务器被动等客户端来连(被动) —— 由客户端决定。

⚠️ 若题目无特别说明,默认采用主动模式。

回源 · PDF 第 290 页 · b_290_8

什么是"带外传送"?FTP 和 NFS 的思路差别?

FTP 用独立的控制连接传输命令,其控制信息属于带外(Out-of-band)传送。

⚠️ FTP 的效率问题:修改远程文件要先下载到本地、改完再传回,涉及两次完整传输,效率较低。

NFS(网络文件系统)的不同思路:允许进程直接打开远程文件,在指定位置读/写 —— 只需传输大文件中的特定片段,无须复制整个文件。

回源 · PDF 第 290 页 · b_290_0

6.4 电子邮件

电子邮件系统的三个组成部分?

  • 用户代理 UA:用户与电子邮件系统之间的接口,至少具备撰写、显示、处理邮件的基本功能(如 Outlook、Foxmail)
  • 邮件服务器:负责邮件的发送与接收,并向发件人反馈传送状态(已投递、被拒收、丢失);⚠️ 采用 C/S 模式但具备双重角色 —— A 向 B 发邮件时 A 是 SMTP 客户、B 是 SMTP 服务器,反之亦然
  • 协议:SMTP、POP3 或 IMAP

⚠️ 电子邮件是异步通信方式,不要求通信双方同时在线。

回源 · PDF 第 295 页 · b_295_5

推(Push)和拉(Pull)分别对应哪个协议? ★1考

  • 发送协议 SMTP → 推(Push):用户代理或发送端邮件服务器主动把邮件推送到目标服务器
  • 读取协议 POP3 → 拉(Pull):用户代理读取邮件时主动向服务器发起请求,拉取邮箱中的邮件

💡 记忆法:"发信是推出去,收信是拉回来"。

★ 考过 2012

回源 · PDF 第 295 页 · b_295_12

邮件收发的六个步骤?

  • ① 发件人用用户代理撰写邮件
  • ② 用户代理用 SMTP 把邮件传给发送端邮件服务器
  • ③ 发送端服务器把邮件暂存在邮件缓存队列中
  • ④ 发送端的 SMTP 客户把队列中的邮件投递给下一跳 SMTP 服务器;简化模型可直接连收件方 MX,实际也可能经过中继 MTA、网关或过滤服务
  • ⑤ 接收端 SMTP 服务器进程把邮件存入收件人的邮箱
  • ⑥ 收件人启动用户代理,用 POP3(或 IMAP)从邮箱下载邮件

⚠️ 注意分工:②④ 用 SMTP,⑥ 用 POP3/IMAP。画图时按“UA → 发送 MTA →(零个或多个中继)→ 接收 MTA → POP3/IMAP”分角色。

回源 · PDF 第 296 页 · b_296_2

邮件的格式由哪几部分组成?

一封电子邮件 = 信封 + 内容,内容又分首部 + 主体。 - RFC 822 规定了邮件首部的格式,主体由用户自由撰写 - ⚠️ 用户只需填首部,邮件系统自动从中提取信息生成信封

关键字: - To(必填):收件人地址,格式 收件人邮箱名@邮箱所在主机的域名;⚠️ 邮箱名在该域的邮件服务器上唯一 → 从而在整个互联网范围内唯一 - Subject(可选):邮件主题 - From(必填):⚠️ 通常由邮件系统自动填充 - ⚠️ 首部与主体之间以一个空行分隔

回源 · PDF 第 296 页 · b_296_5;PDF 第 296 页 · b_296_6

为什么需要 MIME?它做了什么? ★1考

问题:SMTP 仅支持传输 7 位 ASCII 码文本邮件 → 无法传中文、俄文、带重音的法/德文,也无法传可执行文件或其他二进制对象。

⚠️ MIME 并未修改或取代 SMTP,而是在其基础上扩展:发送端先用 MIME 把非 ASCII 数据编码为 ASCII,再交 SMTP 传输;接收端用 MIME 解码还原。

MIME 的三部分内容: - 定义了 5 个新的首部字段:MIME 版本、内容描述、内容标识、传送编码、内容类型 - 标准化了多种邮件内容的格式,为多媒体邮件提供统一规范 - 定义了传送编码机制,能对任意类型内容编码转换而不被邮件系统改变

★ 考过 2018

回源 · PDF 第 297 页 · b_297_1

SMTP 通信的三个阶段和关键命令? ★4考

SMTP 基于 TCP,使用熟知端口 25,采用客户/服务器模式。

(1)连接建立:SMTP 客户定期扫描缓存队列,发现待发邮件就与对方 25 端口建 TCP 连接;服务器先发 220 Service ready;客户发 HELO 命令附上主机名。 ⚠️ 王道这里采用“发送端 MTA 直连接收端 MX”的简化图。SMTP 协议支持 relay,中间可以有一个或多个邮件服务器/网关;若当前下一跳暂不可达,发送端通常排队后重试。

(2)邮件传送: - MAIL FROM:<发件人地址> → 服务器准备好则回 250 OK - RCPT TO:<收件人地址>(可发多条)→ 回 250 OK 或 550 No such user here - ⚠️ RCPT 的作用是预先验证收件人地址的有效性,避免发完长篇邮件才发现地址错误 - DATA → 服务器回 354 Start mail input; end with <CRLF>.<CRLF>,随后逐行发送内容,以 <CRLF>.<CRLF> 结束

(3)连接释放:客户发 QUIT,服务器回 221(服务关闭)。

★ 考过 2013、2014、2015、2025

💡 命令口诀:"HELO 打招呼 → MAIL 报寄件人 → RCPT 报收件人 → DATA 发正文 → QUIT 收工"。

回源 · PDF 第 297 页 · b_297_11

POP3 的端口和两种工作模式? ★3考

POP3 采用客户/服务器模式,基于 TCP,端口号 110。

两种工作模式: - 下载并保留:读取后邮件仍保留在服务器上,可后续再访问 - 下载并删除:这是客户端策略,不等于 RETR 一成功服务器就立刻物理删除。POP3 中 RETR 负责取信,DELE 在事务状态标记删除;正常 QUIT 进入更新状态后才提交删除,异常断开通常不会提交

⚠️ POP3 是结构简单但功能有限的邮件读取协议。

★ 考过 2015、2018、2025

回源 · PDF 第 298 页 · b_298_6

IMAP 比 POP3 强在哪?

  • 支持在服务器端创建文件夹、在不同文件夹间移动邮件、搜索远程邮箱等在线操作 → ⚠️ 为此 IMAP 服务器需要维护用户的会话状态信息
  • 支持选择性获取邮件内容:可只下载首部,或只提取多部分 MIME 邮件中的某部分 → 在低带宽环境下尤为实用(不必下载含音视频大附件的整封邮件就能浏览筛选)

⚠️ 基于 Web 的邮件服务(Hotmail、Gmail):浏览器与邮件服务器之间的收发都用 HTTP,只有在不同邮件服务器之间传递邮件时才用 SMTP。

回源 · PDF 第 298 页 · b_298_5

6.5 万维网

万维网的三个核心标准? ★1考

  • URL(统一资源定位符):标识万维网上的各类文档,保证每个文档在整个万维网范围内有唯一的 URL
  • HTTP(超文本传输协议):应用层请求/响应协议。HTTP/1.0、HTTP/1.1 和 HTTP/2 通常承载在 TCP 上;HTTP/3 承载在 QUIC/UDP 上
  • HTML(超文本标记语言):描述文档结构的标记语言,用预定义标记组织文字、声音、图像、视频及其格式

URL 的一般形式:<协议>://<主机>:<端口>/<路径>

⚠️ 万维网是分布式、联机式的信息存储空间,其中任何有用的事物都称为资源。采用客户/服务器模式:浏览器是客户程序,存放文档的主机运行服务器程序。

★ 考过 2018

回源 · PDF 第 302 页 · b_302_0

HTTP 的操作过程五步?

  • 浏览器先完成服务器域名的解析,获得 IP 地址
  • 通过 TCP 向服务器(默认监听端口 80)发起连接建立请求
  • 浏览器发送 HTTP 请求获取指定 Web 页面
  • 服务器组装所需资源,通过 HTTP 响应返回
  • 浏览器解析内容并呈现页面,最后释放 TCP 连接

⚠️ HTTP 是一种面向事务(transaction-oriented)的应用层协议。

⚠️ 上述五步是王道的 HTTP/1.x over TCP 简化流程;HTTP/2 可在一条 TCP 连接上多路复用,HTTP/3 的建连与传输基于 QUIC。

回源 · PDF 第 302 页 · b_302_9

单击一个链接后依次发生了什么? ★2考

以访问某大学网站为例: - DNS 解析,返回服务器的 IP 地址 - 浏览器与服务器建立 TCP 连接(默认端口 80) - 浏览器发出 HTTP 请求:GET /index.htm - 服务器通过 HTTP 响应把 index.htm 发回 - 释放 TCP 连接 - 浏览器解析并显示页面

⚠️ 普通单击链接并不会必然触发 DHCP。只有主机尚未获得网络配置、租约需要获取或续租等场景才运行 DHCP。随后是否需要 DNS、ARP、建连,也取决于缓存、是否同网和协议版本;本题流程是未命中缓存的简化模型。

★ 考过 2014、2021

回源 · PDF 第 303 页 · b_303_1

HTTP 是无连接的还是有连接的?

⚠️ HTTP 本身是无连接的 —— 虽然底层用 TCP,但在交换 HTTP 报文之前并不需要建立专门的"HTTP 连接"。

⚠️ HTTP 是无状态的 —— 协议服务器不必保存前一次请求的会话状态,就能解释并处理当前请求。它不等于同一请求总得到同一响应:资源内容、时间、请求头、认证、协商和缓存状态都可能让响应变化。

好处:简化了服务器设计,使其更易支持大量并发请求。实际应用中靠 Cookie + 数据库来跟踪用户行为。

回源 · PDF 第 303 页 · b_303_5
  • 用户首次访问启用 Cookie 的网站,服务器可生成会话标识(如 sid=12345),并以其为索引在后端保存会话数据
  • 服务器在 HTTP 响应报文中加一行 Set-Cookie: sid=12345;Cookie 至少必须是 name=value,还可带 Path、Expires/Max-Age、Secure、HttpOnly、SameSite 等属性
  • 浏览器把识别码连同服务器域名保存在本地的 Cookie 文件中
  • 再次访问时,浏览器在满足作用域和策略条件时附加 Cookie: sid=12345
  • 服务器据此从数据库检索该用户的活动记录,提供个性化服务

⚠️ 不要在 Cookie 中直接保存明文密码;会话 Cookie 也没有固定“30 分钟”寿命。

💡 记忆法:"响应里 Set-cookie 发牌,请求里 Cookie 亮牌"。

★ 考过 2015

回源 · PDF 第 303 页 · b_303_8;PDF 第 303 页 · b_303_10

非持续连接请求一个文档要几个 RTT? ★2考

HTTP/1.0 默认采用非持续连接,每个网页元素通常分别建立 TCP 连接;但历史上存在 Keep-Alive 扩展,所以不能写成“HTTP/1.0 只允许非持续连接”。

请求一个 Web 文档所需时间 = 文档传输时间 + 2×RTT - 一个 RTT 用于建立 TCP 连接的前两次握手 - 另一个 RTT 用于发送请求并接收响应

⚠️ 前提说明:客户端通常在第三次握手的 ACK 报文中捎带 HTTP 请求(若未捎带则紧随其后立即发送,时间间隔忽略不计)。

每个对象都要承担 2RTT 开销 → 现代浏览器创建多个并行 TCP 连接同时请求多个对象来减小时延。

★ 考过 2020、2024

回源 · PDF 第 303 页 · b_303_12

持续连接的两种工作方式差多少 RTT? ★2考

HTTP/1.1 支持持续连接(默认启用):服务器发送响应后仍保持该 TCP 连接,同一客户可继续用它发请求。

  • 非流水线方式:⚠️ 客户必须等前一个响应到达后才能发下一个请求 → 服务器发完一个对象后连接处于空闲,造成浪费;每个对象各需 1RTT
  • 流水线方式:客户可连续发送多个请求,服务器也连续发送响应 → ⚠️ 获取全部引用对象仅需 1RTT

⚠️ 这是 HTTP/1.1 教材计算模型。实际时间还受 TCP 发送窗口和拥塞控制影响;HTTP/2 的多路复用、HTTP/3 的 QUIC 传输也不能直接套此流水线公式。

★ 考过 2011、2022

回源 · PDF 第 304 页 · b_304_7

HTTP 报文的三部分结构?

在 HTTP/1.x 中,开始行和首部是文本形式,字段长度不固定;消息体可以是图片、音视频等任意二进制内容。HTTP/2 和 HTTP/3 使用二进制帧,不能概括为“整个 HTTP 只传 ASCII 文本”。HTTP/1.x 的请求和响应都可按三部分分析: - 开始行:请求报文叫请求行,响应报文叫状态行;⚠️ 三个字段之间用空格分隔,行末以 CRLF 结束 - 首部行:传递关于浏览器、服务器或报文主体的附加信息;每行是"字段名:值",行末 CRLF;⚠️ 所有首部行之后要用一个空行(仅含 CRLF)与实体主体分隔 - 实体主体:⚠️ 请求报文中通常没有,响应报文中也可能没有

  • 请求行三个字段:方法、请求资源的 URL、HTTP 版本
  • 状态行三个内容:HTTP 版本、状态码、解释状态码的短语
回源 · PDF 第 304 页 · b_304_9

六个 HTTP 请求方法? ★1考

方法 意义
GET 请求读取由 URL 标识的信息
HEAD 请求读取由 URL 标识的信息的首部
POST 给服务器添加信息(如注释)
PUT 在指定 URL 处存储一个文档
DELETE 删除由 URL 标识的资源
CONNECT 用于代理服务器

三个常见状态行:202 Accepted(接受请求)、400 Bad Request(错误的请求)、404 Not Found(找不到页面)。

★ 考过 2015

回源 · PDF 第 305 页 · b_305_3;PDF 第 305 页 · b_305_4

请求报文里的 Connection 字段怎么用?

教材示例:

GET /bbs/index.htm HTTP/1.1     ← 请求行,用的是相对 URL
Connection: Keep-Alive          ← 要求发完文档后保持这条连接
User-Agent: Mozilla/5.0         ← 用户代理是浏览器
Accept-Language: zh-CN          ← 优先要简体中文版本
                                ← 最后还有一个空行

  • ⚠️ 用相对 URL 是因为 Host 首部行已指明服务器域名
  • Connection: Keep-Alive = 持续连接;Connection: close = 非持续连接 ⚠️ 中文语言标签应写 zh 或 zh-CN,不是 cn。
回源 · PDF 第 305 页 · b_305_7

代理服务器的作用?

代理服务器(proxy server)把近期的请求与响应暂存在本地磁盘上,也称万维网高速缓存(Web cache)。

新请求到达时,只有在缓存键匹配、响应允许缓存且仍新鲜时才可直接返回;否则需按 Cache-Control/Expires 等规则重验证或回源。缓存键还可能受 Vary 指定的请求头、认证和 Cookie 等影响,不能只比较“请求文字相同”。

⚠️ 可部署在客户端、服务器端或网络中间节点。在内网中设置后,能把相当大一部分通信流量限制在内网内部 → 显著减少内网通往互联网的链路负载,降低访问延迟。

回源 · PDF 第 305 页 · b_305_12;PDF 第 305 页 · b_305_13

抓包题怎么定位各层首部?

以太网帧的字节划分(教材 Wireshark 实例): - 第 1~6 字节:目的 MAC 地址(默认网关地址) - 第 7~12 字节:源 MAC 地址(本机地址) - 第 13~14 字节:类型字段,值 0800 表示上层是 IP - 第 15~34 字节(20B):IP 数据报首部,其中第 27~30 字节是源 IP、第 31~34 字节是目的 IP - 第 35~54 字节(20B):TCP 报文段首部 - 第 55 字节开始:TCP 数据部分,即 HTTP 请求报文

💡 做题窍门:十六进制 IP 地址转点分十进制时逐字节转(如 dbdfd270 → 219.223.210.112),极易在这一步算错。

回源 · PDF 第 306 页 · b_306_4

九个应用层协议的传输层协议和端口? (必背表)

应用 FTP数据 FTP控制 TELNET SMTP DNS TFTP HTTP POP3 SNMP
协议 TCP TCP TCP TCP UDP/TCP UDP TCP(1.x/2)或 QUIC/UDP(3) TCP UDP
端口 20 仅主动模式;PASV 为临时端口 21 23 25 53 69 80(HTTP)/443(HTTPS) 110 161

💡 先记王道默认端口,再看题设版本和模式;DNS、FTP 数据连接、HTTP都不能只背一条无条件绑定。

回源 · PDF 第 306 页 · b_306_7;PDF 第 306 页 · b_306_8

【疑难点】第6章

客户端口号和服务器端口号有什么不同?

  • 服务器进程用熟知端口号:固定且公开,便于客户找到对应服务
  • 客户进程用临时端口号:由操作系统在连接发起时自动分配,仅在本次通信中有效

客户发起连接时连到服务器的熟知端口,并把自己的临时端口号告知服务器;服务器随后用这一对端口号(自身熟知端口 + 客户临时端口)建立唯一的端到端连接。

回源 · PDF 第 315 页 · b_315_1

互联网和万维网的区别?

  • 互联网(Internet):全球性的计算机网络互联系统,起源于 ARPAnet,采用 TCP/IP 协议族,提供主机之间的连通性
  • 万维网(WWW):构建在互联网之上的一套应用层生态,由相互链接的网页和网站组成,通过 HTTP 和浏览器访问

💡 一句话:互联网是"路",万维网是"路上跑的一种车"。

回源 · PDF 第 315 页 · b_315_3

持续连接为什么还要 4RTT?(拥塞控制的坑)

这是王道给定 cwnd 初值为 1MSS 的计算例子:即使 HTTP/1.1 能复用连接,服务器也不能在该题设下第一轮一次性发送全部数据。现代 TCP 的初始窗口常大于 1MSS,因此不能把“必需 4RTT”推广为协议定理。

设网页 1MSS、图片 3MSS: - 第 1 个 RTT:TCP 建连的前两次握手 - 第 2 个 RTT:第三次握手捎带 HTML 请求,服务器发 1MSS(cwnd=1) - 第 3 个 RTT:客户确认网页并捎带图片请求,cwnd 增至 2MSS,发 2MSS 图片 - 第 4 个 RTT:客户确认,cwnd 增至 4MSS,发剩余 1MSS 图片

⚠️ 总耗时由数据大小、给定初始 cwnd、拥塞窗口增长和 HTTP 版本共同决定;题目没给这些条件时,不能直接断言固定 RTT 数。

回源 · PDF 第 315 页 · b_315_7

主机刚开机访问 Web 站点的完整流程?

① DHCP 获取网络配置:自动取得 IP 地址、子网掩码、默认网关、DNS 服务器地址。⚠️ 封装链:DHCP(应用层)→ UDP → IP → 以太网 MAC 帧。

② DNS 解析得到目标 IP。

③ HTTP 获取网页:向 Web 服务器 80 端口发起 TCP 连接,连接建立后发 GET /index.html;服务器返回响应;浏览器解析 HTML,对引用的图片、视频等资源分别发起新的 HTTP 请求(按 HTTP 版本可能复用或新建连接);全部传完后 TCP 四次挥手释放连接。

回源 · PDF 第 315 页 · b_315_11

【易混点】第6章成对概念对照

概念 A 概念 B 一句话切分
C/S 模型 P2P 模型 地位不平等、扩展性差 vs 对等、容量随节点增长
递归查询 迭代查询 我帮你问到底 vs 我告诉你下一个问谁
权限域名服务器 本地域名服务器 管本区映射 vs 主机第一个问的那台
FTP 控制连接 FTP 数据连接 21,全程保持 vs 主动模式常用 20 / PASV 用临时端口,用完即关
PORT 主动模式 PASV 被动模式 服务器来连我 vs 我去连服务器
SMTP POP3/IMAP 推、发信、25 vs 拉、收信、110
POP3 IMAP 简单、下载即可删 vs 在线操作、服务器维护状态、可只取一部分
SMTP MIME 只能传 7 位 ASCII vs 把非 ASCII 编码成 ASCII 再交给 SMTP
HTTP 无连接 HTTP 无状态 不需建"HTTP 连接" vs 不记得你来过
非持续连接 持续连接 每个对象 2RTT vs 非流水线每对象 1RTT / 流水线共 1RTT
互联网 万维网 路 vs 路上跑的一种车

【必背数字】第6章

数字 含义
63 / 255 域名单个标号最大字符数 / 整个域名最大字符数
13 全球根域名服务器个数(每个是冗余集群)
本例 8 个报文(4 查 + 4 答) y.abc.com、无缓存且按图示委派层级的解析示例,不是 DNS 全局上限
20 / 21 FTP 主动模式服务器数据端口 / 控制端口;PASV 数据端口临时分配
25 / 110 SMTP / POP3 端口
80 HTTP 默认端口
53 / 69 / 161 DNS / TFTP / SNMP 端口;DNS 可用 UDP 或 TCP
7 位 ASCII SMTP 能直接传输的编码
5 个 MIME 新增的首部字段数
220 / 250 / 354 / 550 / 221 SMTP:服务就绪 / OK / 开始输入正文 / 无此用户 / 服务关闭
202 / 400 / 404 HTTP:接受请求 / 错误的请求 / 找不到页面
2RTT HTTP/1.0 默认非持续连接模型请求一个文档的时间(不含传输时间)
1MSS 本书持续连接例题采用的初始 cwnd,不是现代 TCP 固定值
50%~90% P2P 曾占互联网流量的比例