CS 168 · LECTURE 01 · 2026-08-27 · 互联网地基

互联网的架构与协议

先别把互联网想成一堆协议名:它是一组彼此独立管理的网络,在极少共同约束下仍能把数据包送到全球任意端点。

版本快照:Fall 2026 官方课表与在线教材,核对日期 2026-09-02;官网仍标注 under construction,日期与政策可能变化。

  1. 互联网地基
  2. 路由
  3. 传输
  4. 应用与端到端
  5. 数据中心
  6. 群体通信
  7. 无线与移动

本章核心问题

为什么一个没有中央总控、链路与主机随时可能失败的系统,仍能持续演化并保持互通?

1 · 从一次请求建立对象图

在浏览器访问一个 URL,至少会涉及应用进程、socket、操作系统网络栈、网卡、链路、交换机、路由器与远端服务。真正贯穿它们的不是“Internet”这个抽象名词,而是一串逐跳搬运、逐层解释的消息。

端到端路径上的设备看到的信息不同:链路设备关心下一跳,路由器关心 IP 前缀,TCP 端点关心字节流状态,HTTP 端点才理解方法与资源。把这些对象分开,是整门课最重要的第一步。

2 · 协议、服务与接口

协议(protocol)规定同层实体怎样通信;服务(service)描述下一层向上一层提供什么能力;接口(interface)是本机跨层调用的边界。TCP 协议在两台主机间交换 segment,而 socket API 是应用调用本机 TCP 的接口,两者不能混为一谈。

协议正确性来自双方共享状态机。例如发送方把序号为 100 的字节发出,接收方用 ACK 150 表示“150 以前都已连续收到”。如果双方对 ACK 含义不一致,链路再快也无法得到可靠字节流。

3 · 尽力而为为何是一种力量

IP 不承诺可靠、按序或固定延迟,看似很弱,却因此能运行在以太网、无线、光纤和蜂窝等不同底层之上。新应用也不需要先修改全球路由器。核心的简单性降低了部署耦合,复杂可靠性由需要它的端点实现。

“弱网络 + 强端点”不是说网络什么都不做。路由器仍要维护转发表、执行队列与调度、限制 TTL,并在必要时产生 ICMP。关键是把必须由网络共同完成的机制与只应由端点完成的语义分开。

4 · 四类性能量

延迟回答一个对象多久到达,吞吐回答单位时间能完成多少工作,丢包率描述不成功传递的比例,利用率描述资源有多忙。带宽高不等于延迟低:100 Gbit/s 链路发送一个小包很快,但跨洋传播仍受距离限制。

后续每个机制都要回到这四类量:缓存减少等待,拥塞控制限制注入速率,CDN 缩短传播距离,多路径提升可用容量。先说明优化目标,才能讨论设计是否“更好”。

纠错:最容易带走的错误模型

闭卷推演

画出“手机浏览器 → 校园 Wi‑Fi → ISP → CDN”路径,为每个节点写下它必须理解的最高层协议;再说明哪个故障能由重试掩盖,哪个必须换路。

检查:下列哪项最准确地区分协议与接口?

机制工作台:before → event → after

Before / local state

主机发送首个数据包前只持有目标名字

Event / after / output

主机发送首个数据包前只持有目标名字;DNS 返回地址后,socket/route/neighbor state 依次补齐,最后才有可发帧。

检查:判断一个实现分支是否必要,最有力的问题是什么?

Explain It Yourself

为什么 Internet architecture 允许局部实现不同,只要求协议接口一致?

自检方法

答案必须出现 packet/message、local state/table、触发 event、after state 与 output;只给定义不算完成。

一手资料

正文是 CourseStack 的中文解释与重新绘制的教学例子;官方页面负责课程原始定义,历史仓库只提供你的实现证据。