看书总结:网络协议

看书总结:网络协议

孤独的哈士奇 0 2026-03-26

DNS 解析

DNS 解析的流程像 “层层问路”:

  1. 浏览器先查本地 DNS 缓存,如果有对应 IP,直接使用;

  2. 缓存没找到,本地域名服务器(比如运营商的 DNS 服务器)会先问根域名服务器;

  3. 根服务器不知道具体 IP,会指引本地服务器去问顶级域名服务器(.com 服务器);

  4. 顶级域名服务器再指引去问目标域名服务器(百度的 DNS 服务器);

  5. 最终拿到 IP 后,会把结果写入 DNS 缓存,方便后续复用。


浏览器做的第一件事不是直接请求数据,而是要知道这个域名对应的 IP 地址 —— 这就是 DNS(域名系统)的核心作用。

TCP-建立可靠连接

三次握手:

TCP 连接的建立必须经过三次 “确认”,少一次都不行:

  1. 客户端发 SYN 包:“我想和你建立连接”,客户端进入 SYN_SENT 状态;

  2. 服务器回 SYN-ACK 包:“我收到你的请求了,我也同意建立连接”,服务器进入 SYN_RECEIVED 状态;

  3. 客户端发 ACK 包:“我确认收到你的同意了”,客户端进入 ESTABLISHED 状态。


四次挥手:

TCP 断开连接需要四次交互,因为连接是双向的,关闭也需要双方确认:

  1. 客户端发 FIN 包:“我这边数据发完了,想断开连接”,客户端进入 FIN_WAIT_1 状态;

  2. 服务器回 ACK 包:“我收到你的断开请求了,你等我处理完剩余数据”,服务器进入 CLOSE_WAIT 状态;

  3. 服务器处理完数据后发 FIN 包:“我这边也处理完了,咱们断开吧”,服务器进入 LAST_ACK 状态;

  4. 客户端回 ACK 包:“确认断开”,客户端进入 TIME_WAIT 状态(等待 2MSL,确保服务器收到确认)。


HTTP:

HTTP 版本

核心优化

核心问题

0.9

极简 HTML 传输

仅支持 GET、无头部

1.0

新增请求头 / 响应头

每次请求新建 TCP 连接

1.1

持久连接、Host 字段

队头阻塞、带宽利用率低

2.0

多路复用、头部压缩

TCP 层队头阻塞

3.0

基于 QUIC、无队头阻塞

设备兼容差、升级成本高