一、第 2 章 核心知识梳理

1. 应用层总览:网络的 “最上层、最实用” 一层

应用层是五层协议体系的最高层,直接面向用户与应用程序,是我们日常上网真正感知和使用的一层。

  • 核心功能:定义应用进程之间如何通信,规定数据格式、交互规则、错误处理。
  • 设计思想:下层为上层服务。应用层不需要关心数据如何路由、如何传输,只需要向运输层 “订购服务”(可靠 / 快速)。
  • 代码类比:应用层 ≈ 业务逻辑代码(你想实现什么功能);运输层及以下 ≈ 底层网络库(负责把数据发出去)。

2. 网络应用的两种体系结构

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

  • 服务器:长期在线、固定 IP / 域名、统一提供服务,能同时处理大量客户端请求。
  • 客户端:主动发起通信,使用服务器资源,不直接与其他客户端通信。
  • 优点:架构清晰、管理方便、安全易控。
  • 缺点:服务器压力集中,成本高,容易成为瓶颈。
  • 典型应用:Web 网站、电子邮件、FTP、手机 App 后端。

(2)P2P 结构(对等结构)

  • 没有集中式服务器,每个节点既是客户端,也是服务器
  • 节点自愿贡献带宽与资源,节点越多,系统整体服务能力越强。
  • 优点:去中心化、扩展性强、成本低、抗崩溃。
  • 缺点:管理难、安全难、版权难控制。
  • 典型应用:BT 下载、文件传输、直播加速、分布式存储。

(3)混合结构

现实中最常用:登录、索引用 C/S;数据传输用 P2P。例:迅雷、微信视频通话。


3. 进程通信

真正在网络上 “对话” 的不是计算机,而是进程

  1. 进程:运行中的程序,是通信的最小单元。
  2. 进程寻址
    • IP 地址:定位到某一台主机。
    • 端口号(Port):定位到主机上的某一个进程。
    • 组合:IP:Port 唯一标识一个网络进程。
  3. 套接字(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. 电子邮件系统

电子邮件是最经典的异步通信应用,由三部分组成:

  1. 用户代理:Foxmail、Outlook、网页邮箱。
  2. 邮件服务器:负责存储、转发、队列管理。
  3. 三大核心协议
    • SMTP发送邮件,push 模式,基于 TCP,端口 25。
    • POP3:接收邮件,下载后删除服务器副本。
    • IMAP:接收邮件,云端同步,多设备一致,现代主流。

邮件报文格式:首部行 + 空行 + 正文。MIME 扩展:支持图片、附件、非 ASCII 文本。


7. DNS:域名系统

DNS 是因特网的分布式目录服务,核心功能:域名 ↔ IP 地址转换。

(1)DNS 提供的服务

  • 主机名解析(最核心)。
  • 邮件服务器寻址(MX 记录)。
  • 负载均衡(一个域名对应多个 IP)。
  • 别名(CNAME)。

(2)DNS 服务器层次结构

  1. 根 DNS 服务器:知道所有顶级域服务器。
  2. 顶级域(TLD)服务器:com、cn、net、edu 等。
  3. 权威 DNS 服务器:机构 / 公司自己的 DNS,存真实 IP。
  4. 本地 DNS 服务器:运营商提供,负责缓存与转发。

(3)DNS 解析流程

  1. 浏览器查本地缓存。
  2. 查本地 DNS 缓存。
  3. 本地 DNS 访问根服务器。
  4. 根服务器返回 TLD 地址。
  5. TLD 返回权威 DNS 地址。
  6. 权威 DNS 返回最终 IP。
  7. 本地 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 地址。解析过程:
  1. 主机查询本地缓存。
  2. 查本地 DNS 服务器。
  3. 本地 DNS 访问根服务器。
  4. 根服务器返回顶级域服务器地址。
  5. 顶级域服务器返回权威 DNS 地址。
  6. 权威 DNS 返回最终 IP。
  7. 本地 DNS 缓存并返回给主机。

习题 6

题目:为什么现在大型视频、网站、直播平台都使用 CDN?CDN 的优点是什么?

答案:CDN 把内容缓存到遍布各地的边缘节点,使用户就近访问。优点:

  1. 降低访问延迟,提升加载速度。
  2. 减轻源站服务器压力,提高稳定性。
  3. 支持高并发,不易崩溃。
  4. 降低跨地域网络拥堵,提升观看流畅度。

习题 7

题目:持续连接相比非持续连接的优点是什么?

答案

  • 非持续连接:一次请求就断开 TCP 连接,多次请求需多次握手,效率低、延迟高。
  • 持续连接:一次 TCP 连接可以传输多个 HTTP 请求 / 响应,减少握手开销,显著提升性能。HTTP/1.1 默认开启。

习题 8

题目:为什么 DNS 一般使用 UDP,而不是 TCP?

答案:DNS 查询报文短小,不需要可靠传输的额外开销。UDP 更快、更轻量,能快速完成域名解析,符合 DNS 的使用场景。只有在返回数据量很大时,DNS 才会使用 TCP。


三、第 2 章 核心总结

  1. 应用层是五层模型最顶层,直接面向用户与应用,定义进程通信规则。
  2. 网络应用分为 C/S、P2P、混合结构。
  3. 进程通过 IP+端口 寻址,通过 Socket 与运输层交互。
  4. 应用可选择 TCP(可靠) 或 UDP(快速)
  5. HTTP、电子邮件、DNS 是因特网三大经典应用层协议。
  6. P2P、视频流、CDN 是现代网络高性能的关键技术。
  7. 套接字编程是实现所有网络应用的基础。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐