《计算机网络:自顶向下方法》第 2 章 应用层|核心知识梳理 + 原版习题解析
一、第 2 章 核心知识梳理
1. 应用层总览:网络的 “最上层、最实用” 一层
应用层是五层协议体系的最高层,直接面向用户与应用程序,是我们日常上网真正感知和使用的一层。
- 核心功能:定义应用进程之间如何通信,规定数据格式、交互规则、错误处理。
- 设计思想:下层为上层服务。应用层不需要关心数据如何路由、如何传输,只需要向运输层 “订购服务”(可靠 / 快速)。
- 代码类比:应用层 ≈ 业务逻辑代码(你想实现什么功能);运输层及以下 ≈ 底层网络库(负责把数据发出去)。
2. 网络应用的两种体系结构
(1)客户 / 服务器结构(C/S)
- 服务器:长期在线、固定 IP / 域名、统一提供服务,能同时处理大量客户端请求。
- 客户端:主动发起通信,使用服务器资源,不直接与其他客户端通信。
- 优点:架构清晰、管理方便、安全易控。
- 缺点:服务器压力集中,成本高,容易成为瓶颈。
- 典型应用:Web 网站、电子邮件、FTP、手机 App 后端。
(2)P2P 结构(对等结构)
- 没有集中式服务器,每个节点既是客户端,也是服务器。
- 节点自愿贡献带宽与资源,节点越多,系统整体服务能力越强。
- 优点:去中心化、扩展性强、成本低、抗崩溃。
- 缺点:管理难、安全难、版权难控制。
- 典型应用:BT 下载、文件传输、直播加速、分布式存储。
(3)混合结构
现实中最常用:登录、索引用 C/S;数据传输用 P2P。例:迅雷、微信视频通话。
3. 进程通信
真正在网络上 “对话” 的不是计算机,而是进程。
- 进程:运行中的程序,是通信的最小单元。
- 进程寻址:
- IP 地址:定位到某一台主机。
- 端口号(Port):定位到主机上的某一个进程。
- 组合:
IP:Port唯一标识一个网络进程。
- 套接字(Socket)应用层与运输层之间的编程接口。应用程序通过 Socket 发送和接收数据,是实现网络应用的基础。
代码类比:IP 是 “小区地址”,端口是 “门牌号”,Socket 是 “门”。
4. 运输层为应用层提供的两种服务
应用层可自由选择运输层协议,这是网络设计的核心灵活性。
🧩 TCP(传输控制协议)
- 面向连接(三次握手、四次挥手)。
- 可靠数据传输:不丢、不乱、不重复。
- 流量控制 + 拥塞控制。
- 优点:安全可靠。
- 缺点:开销大、延迟高。
- 适用:网页、邮件、文件、支付。
🧩 UDP(用户数据报协议)
- 无连接,直接发。
- 不可靠,不保证到达、不保证顺序。
- 速度极快、延迟极低、开销极小。
- 优点:快、实时性强。
- 缺点:可能丢包、乱序。
- 适用:DNS、视频通话、直播、游戏、实时监控。
5. Web 应用与 HTTP 协议
(1)HTTP 基本概念
- 全称:HyperText Transfer Protocol 超文本传输协议。
- 基于 TCP,默认端口 80;HTTPS 基于 TLS,端口 443。
- 请求 - 响应模式:客户端先发请求,服务器后响应。
- 无状态:服务器不保存任何客户端历史信息。
(2)非持续连接 vs 持续连接
- 非持续连接(HTTP/1.0):一次请求就断开,效率低。
- 持续连接(HTTP/1.1 默认):一次 TCP 连接传输多个请求,减少握手开销。
(3)HTTP 报文格式
请求报文
- 请求行:方法、URL、版本
- 请求首部:Host、User-Agent、Connection 等
- 空行
- 实体体(POST 才有)
响应报文
- 状态行:版本、状态码、短语
- 响应首部
- 空行
- 实体体(网页内容)
常见状态码
- 200:成功
- 301/302:重定向
- 404:找不到
- 500:服务器错误
(4)Cookie:解决 HTTP 无状态
- 服务器通过
Set-Cookie首部发送标识。 - 浏览器本地保存。
- 下次请求自动带上 Cookie。
- 作用:登录状态、购物车、个性化推荐、会话跟踪。
(5)Web 缓存(代理服务器 & 浏览器缓存)
- 核心:重复请求直接返回旧数据。
- 优点:降低延迟、减轻服务器压力、节省带宽。
- 条件:新鲜度、有效期、校验机制。
6. 电子邮件系统
电子邮件是最经典的异步通信应用,由三部分组成:
- 用户代理:Foxmail、Outlook、网页邮箱。
- 邮件服务器:负责存储、转发、队列管理。
- 三大核心协议
- SMTP:发送邮件,push 模式,基于 TCP,端口 25。
- POP3:接收邮件,下载后删除服务器副本。
- IMAP:接收邮件,云端同步,多设备一致,现代主流。
邮件报文格式:首部行 + 空行 + 正文。MIME 扩展:支持图片、附件、非 ASCII 文本。
7. DNS:域名系统
DNS 是因特网的分布式目录服务,核心功能:域名 ↔ IP 地址转换。
(1)DNS 提供的服务
- 主机名解析(最核心)。
- 邮件服务器寻址(MX 记录)。
- 负载均衡(一个域名对应多个 IP)。
- 别名(CNAME)。
(2)DNS 服务器层次结构
- 根 DNS 服务器:知道所有顶级域服务器。
- 顶级域(TLD)服务器:com、cn、net、edu 等。
- 权威 DNS 服务器:机构 / 公司自己的 DNS,存真实 IP。
- 本地 DNS 服务器:运营商提供,负责缓存与转发。
(3)DNS 解析流程
- 浏览器查本地缓存。
- 查本地 DNS 缓存。
- 本地 DNS 访问根服务器。
- 根服务器返回 TLD 地址。
- TLD 返回权威 DNS 地址。
- 权威 DNS 返回最终 IP。
- 本地 DNS 缓存并返回给主机。
(4)DNS 协议
- 通常使用 UDP 端口 53,轻量、快速。
- 数据量大时自动切换 TCP。
8. P2P 文件分发、视频流与 CDN
(1)P2P 文件分发
- 核心:文件切块,节点互相传输。
- 优势:人越多,下载越快。
- 对比 C/S:C/S 受服务器带宽限制,P2P 无瓶颈。
(2)视频流
- 实时性要求极高,延迟敏感。
- 多用 UDP。
- 自适应比特率(ABR):网络差 → 降清晰度;网络好 → 升清晰度。
(3)CDN(内容分发网络)
- 把视频、图片、静态资源缓存到离用户最近的边缘节点。
- 用户访问就近节点,不回源站。
- 优点:延迟低、速度快、抗拥堵、源站压力小。
9. 套接字编程
应用层开发的基础:
- TCP 套接字:面向连接、可靠、先连接后传输。
- UDP 套接字:无连接、不可靠、直接发送。
- 所有应用层协议(HTTP、DNS、SMTP)底层都是 Socket。
二、第 2 章 核心习题 + 标准答案
习题 1
题目:简述 C/S 结构与 P2P 结构的区别、优缺点,并各举一例。
答案:
- C/S 结构:有集中式服务器长期提供服务,客户端主动请求。优点:架构清晰、易于管理、安全可控。缺点:服务器成本高、易成为瓶颈。例子:Web 网站、电子邮件。
- P2P 结构:无中心服务器,各节点对等,既是客户端也是服务器。优点:去中心化、扩展性强、成本低。缺点:管理困难、安全难以保证。例子:BT 下载、P2P 直播。
习题 2
题目:应用层何时选择 TCP?何时选择 UDP?说明理由。
答案:
- 选择 TCP:需要可靠传输,不允许丢包、乱序,如网页浏览、文件传输、电子邮件。
- 选择 UDP:需要低延迟、高实时性,允许少量丢包,如 DNS 查询、视频通话、直播、网络游戏。
习题 3
题目:什么是 HTTP 无状态?Cookie 如何解决无状态带来的问题?
答案:
- HTTP 无状态:服务器不保存任何客户端的历史请求信息,每次请求都被视为 “第一次”。
- Cookie 是服务器发送给浏览器的小型标识,浏览器保存后,每次请求自动带上,使服务器能够识别用户身份、维持登录状态、记录购物车等。
习题 4
题目:简述电子邮件系统的组成,并说明 SMTP、POP3、IMAP 的作用。
答案:组成:用户代理、邮件服务器、协议。
- SMTP:用于发送邮件,把邮件从客户端传到服务器,再传到目标服务器。
- POP3:用于接收邮件,下载到本地后通常删除服务器副本。
- IMAP:用于接收邮件,支持云端同步、多设备一致,功能更强,是当前主流。
习题 5
题目:DNS 的作用是什么?简述域名解析的完整过程。
答案:
- DNS 作用:将方便人记忆的域名转换为机器使用的 IP 地址。解析过程:
- 主机查询本地缓存。
- 查本地 DNS 服务器。
- 本地 DNS 访问根服务器。
- 根服务器返回顶级域服务器地址。
- 顶级域服务器返回权威 DNS 地址。
- 权威 DNS 返回最终 IP。
- 本地 DNS 缓存并返回给主机。
习题 6
题目:为什么现在大型视频、网站、直播平台都使用 CDN?CDN 的优点是什么?
答案:CDN 把内容缓存到遍布各地的边缘节点,使用户就近访问。优点:
- 降低访问延迟,提升加载速度。
- 减轻源站服务器压力,提高稳定性。
- 支持高并发,不易崩溃。
- 降低跨地域网络拥堵,提升观看流畅度。
习题 7
题目:持续连接相比非持续连接的优点是什么?
答案:
- 非持续连接:一次请求就断开 TCP 连接,多次请求需多次握手,效率低、延迟高。
- 持续连接:一次 TCP 连接可以传输多个 HTTP 请求 / 响应,减少握手开销,显著提升性能。HTTP/1.1 默认开启。
习题 8
题目:为什么 DNS 一般使用 UDP,而不是 TCP?
答案:DNS 查询报文短小,不需要可靠传输的额外开销。UDP 更快、更轻量,能快速完成域名解析,符合 DNS 的使用场景。只有在返回数据量很大时,DNS 才会使用 TCP。
三、第 2 章 核心总结
- 应用层是五层模型最顶层,直接面向用户与应用,定义进程通信规则。
- 网络应用分为 C/S、P2P、混合结构。
- 进程通过
IP+端口寻址,通过 Socket 与运输层交互。 - 应用可选择 TCP(可靠) 或 UDP(快速)。
- HTTP、电子邮件、DNS 是因特网三大经典应用层协议。
- P2P、视频流、CDN 是现代网络高性能的关键技术。
- 套接字编程是实现所有网络应用的基础。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)