# Modern Network Skill

> 现代计算机网络完整知识库与实现指南——覆盖从 TCP/IP 协议栈、路由与拥塞控制，到数据中心、SDN/NFV、物联网、AI 网络、区块链与量子网络的全谱系教材。任何时候用户提到计算机网络、TCP/IP、TCP 实现、IP 路由、LPM、滑动窗口、拥塞控制、AIMD、RTT 估计、排队论、Little 定律、M/M/1、CRC、校验和、ARP、VLAN、VXLAN、EVPN、MPLS、流量工程、OpenFlow、SDN、NFV、数据中心拓扑、胖树、PFC、ECN、6LoWPAN、RPL、AI for networking、区块链网络、量子密钥分发 QKD、BB84、或任何网络协议/数学推导/Modern C++ 网络编程问题时，都必须使用本 skill 从 45 章教材中查找对应章节获取权威讲解与可编译代码，即使只是提问网络概念也不例外。这是最全面的中英文计算机网络参考库。

- Skill: `aresbit/modern-network-skill` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add aresbit/modern-network-skill`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aresbit/modern-network-skill/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aresbit (https://skillmd.com/u/aresbit)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aresbit/modern-network-skill

---


# Modern Network Skill

一个把《计算机网络：从原理到实现》45 章教材作为知识库的技能。每章含**完整数学推导** +
**可编译的 Modern C++20 代码**。回答网络问题时，先查对应章节再作答，引用章节的推导与代码。

## 章节地图（先查这里再回答）

45 章按 12 部分组织。遇到某个主题，直接读对应章（文件在 `references/`，用 Read 打开）。

### 基础篇（CS144 体系，第 0–31 章）

| 主题 | 章文件 |
|---|---|
| 导读/学习路线、课程信息、互联网历史 | ch00_导读与学习路线.md |
| 应用的一天、TTFB 分解、封装/四层模型 | ch01_一个应用的一天.md |
| IP 服务模型、分组交换、IPv4 首部、分片、TTL | ch02_IP服务模型与分组交换.md |
| IP 地址、CIDR、LPM、二叉 trie、TCAM | ch03_IP地址与最长前缀匹配.md |
| 字节序、以太网、ARP、广播域、最小帧长 | ch04_字节序与ARP.md |
| TCP/UDP 服务模型、端到端原则、可靠 vs 逐跳 | ch05_传输层服务模型与端到端原则.md |
| 差错检测：奇偶/Internet 校验和/CRC/HMAC | ch06_差错检测的数学.md |
| 有限状态机、停等、滑动窗口、流量控制 | ch07_有限状态机与流量控制.md |
| 重传策略、EWMA、Jacobson/Karels、指数退避 | ch08_重传与RTT估计.md |
| TCP 首部、三次握手、Wrap32、TIME_WAIT | ch09_TCP连接的建立与拆除.md |
| 排队论：四种时延、Little 定律、M/M/1、M/D/1 | ch10_速率时延与排队论.md |
| 交换结构、HoL 阻塞、WFQ、网络演算、令牌桶 | ch11_交换结构与调度.md |
| 弹性缓冲、C×RTT 法则、√N 法则、bufferbloat | ch12_弹性缓冲区与缓冲区定容.md |
| 拥塞崩溃、吞吐模型、公平性 | ch13_为什么需要拥塞控制.md |
| AIMD 收敛证明、效率与公平 | ch14_AIMD的数学.md |
| TCP 拥塞控制演进：Tahoe/Reno/CUBIC/BBR、吞吐公式 | ch15_TCP拥塞控制算法演进.md |
| 主动队列管理：RED、CoDel、ECN | ch16_主动队列管理.md |
| 距离向量、Bellman-Ford、无穷计数 | ch17_距离向量与BellmanFord.md |
| 链路状态、Dijkstra 证明、洪泛、OSPF | ch18_链路状态与Dijkstra.md |
| 域间路由、BGP、路径向量、Gao-Rexford | ch19_域间路由BGP.md |
| DNS、HTTP、缓存、队首阻塞 | ch20_DNS与HTTP.md |
| NAT、中间盒、家庭网络、端口容量 | ch21_NAT中间盒与家庭网络.md |
| 密码学基础：对称/公钥/HMAC/签名/攻击 | ch22_密码学基础与互联网安全.md |
| TLS、证书链、前向保密、攻击面 | ch23_TLS证书与攻击面.md |
| 实验 0：ByteStream（可靠字节流） | ch24_Lab0网络热身与字节流.md |
| 实验 1：Reassembler（乱序子串重组） | ch25_Lab1重组器.md |
| 实验 2：TCPReceiver（确认号+窗口） | ch26_Lab2_TCP接收方.md |
| 实验 3：TCPSender（窗口+重传定时器） | ch27_Lab3_TCP发送方.md |
| 实验 4：测量真实世界（吞吐/RTT/丢包） | ch28_Lab4测量真实世界.md |
| 实验 5：NetworkInterface（IP↔以太网+ARP） | ch29_Lab5网络接口.md |
| 实验 6：IP Router（LPM 转发+TTL） | ch30_Lab6_IP路由器.md |
| 实验 7：组装完整互联网 | ch31_Lab7组装互联网.md |

### 高级篇（CSE 5700S 体系，第 32–44 章）

| 主题 | 章文件 |
|---|---|
| 数据中心拓扑：胖树/叶脊、等分带宽、ECMP | ch32_网络趋势与数据中心拓扑.md |
| 数据中心以太网：PFC、ECN、无损网络、DCTCP | ch33_数据中心以太网.md |
| 运营商网络：MPLS、流量工程、FRR | ch34_运营商网络.md |
| 虚拟桥接：VLAN、VXLAN、VTEP 洪泛抑制 | ch35_虚拟桥接.md |
| L3 局域网扩展：VPLS、EVPN、控制面学习 | ch36_L3局域网扩展与虚拟化.md |
| 物联网网络层：6LoWPAN、RPL 的 DODAG/ETX | ch37_物联网网络层.md |
| OpenFlow：流表、匹配-动作、反应式填充 | ch38_OpenFlow协议.md |
| 软件定义网络 SDN：三层架构、控制器瓶颈 | ch39_软件定义网络.md |
| 网络功能虚拟化 NFV：软件数据面成本、SFC | ch40_网络功能虚拟化.md |
| AI 与网络：可学性、RL 拥塞控制、流预测 | ch41_AI与网络.md |
| 网络 AI 代理：IBN、意图验证、错误级联 | ch42_网络AI代理.md |
| 区块链与网络：PoW、双花概率、共识 | ch43_区块链与网络.md |
| 量子计算与量子网络：Shor、QKD、BB84 | ch44_量子网络.md |

术语对照表：`references/glossary.md`（中英术语的单一事实来源）。

## 使用方式

### 回答网络概念问题
1. 用上面的章节地图定位相关章节（可能不止一章——概念常有前置依赖）。
2. 打开对应 `references/chXX_*.md`，把**完整推导**作为答案基础。
3. 回答时引用章节的结论与数值算例；若用户问"为什么"，给出推导而不是只给结论。
4. 术语首次出现用 `中文 (English)` 格式，之后用中文；以 glossary.md 为准。

### 写网络代码 / 解释实现
1. 先找对应实验章或主题章，复制其中的代码骨架与接口。
2. **代码一律 Modern C++20**：RAII（无裸 new/delete）、`std::span`/`std::string_view`、
   `std::optional`、`std::ranges`、Rule of Zero/Five、`const` 正确、移动 `noexcept`、
   逐行中文注释解释"为什么"。
3. 遵循实验章的**接口不变量**（如滑动窗口 `una ≤ nxt ≤ una+W`、LPM 掩码边界）。

### 生成/扩充教材章节
如果用户要写新章节，遵循各章模板：`一、要解决的问题 / 二、核心概念 / 三、数学推导 /
四、工程实现 / 五、常见误区 / 六、小结 / 七、练习`，每章至少 2 个完整推导 + 1 段
可编译代码。

## 数学与格式规范（重要）

这些章节会发布到 GitHub Pages（Jekyll + kramdown）。若用户要**修改或新增**章节内容，
必须遵守（否则公式渲染会坏）：

- **所有公式用 `$$...$$`**，行内和行间都是；**绝不用单 `$`**。
- 数学里**禁止裸 `|`**：条件概率用 `\mid`、绝对值用 `\lvert x \rvert`、范数用
  `\lVert x \rVert`、基数用 `\lvert S \rvert`。
- 正文里的字面 `$` 写 `\$`；正文/标题里的字面 `|` 写 `\\|`。
- **文件首行绝不能是 `---`**（会被 Jekyll 当 YAML frontmatter）。
- **正文中不能出现 `{{` 或 `{%`**（Liquid 冲突），包括代码块；嵌套大括号写成
  `{ {a, b} }`。
- 代码块用 ```cpp / ```text 围栏，围栏内 `$`/`|` 自由。
- 每章结尾必须有 prev/next 导航 HTML 块。

发布前校验（在 docs/ 目录跑）：
```bash
GEM_HOME=/tmp/ghp-gems ruby scripts/verify_math_kramdown.rb   # 目标：leaked$=0, emph=0, phantom=0
grep -rlE '\{\{|\{%' ch*.md || echo "Liquid clean"
for f in ch*.md; do [ "$(head -1 "$f")" = "---" ] && echo "CHECK: $f"; done
```

## 参考标准

- CS144（Stanford）：基础 32 章，含 8 个 lab 的接口规范（`ByteStream`/`Reassembler`/
  `TCPReceiver`/`TCPSender`/`NetworkInterface`/`Router`）与作业原文翻译。
- CSE 5700S（Washington Univ. in St. Louis, Raj Jain）：高级 13 章（数据中心、
  SDN/NFV、IoT、AI、区块链、量子）。
- 每章末尾"扩展"练习给出 RFC 或论文指引（如 RFC 6298、RFC 7432、RFC 6282、
  RFC 3031、NIST PQC 等）。

