全书骨架:把异构网络讲成一个系统
Comer 的中心命题是:互联网不是某一种网络, 而是用一组共同协议把许多底层网络拼成“网络的网络”。 阅读时始终追问每个机制解决哪一个边界问题。
先定义服务与边界, 再解释实现;同一 IP 层可以覆盖以太网、点对点链路与无线网络。
可靠性、排序与应用语义尽量留在端系统, 中间网络保持简单、可扩展。
IP 只承诺尽力而为;每台路由器都独立查表、重封装, 整体因此容忍局部故障。
地址、前缀和端口把“谁、在哪、给哪个进程”拆成三个可组合的命名空间。
互联网概念与体系结构
第一组章节建立共同词汇:网络、互联网络、主机、路由器以及协议。 Comer 反复提醒, 理解架构比记忆字段更重要。
网络的网络
单一局域网可以拥有统一介质和管理者;互联网则允许每个自治网络保留自己的技术与政策。 IP 层提供最低共同服务, 把差异隔离在接口以下。
分层与封装
应用数据向下穿过传输层、网络层和链路层, 每层增加自己的控制信息;接收端按相反顺序剥离。 封装不是装饰, 它让每层只看见本层契约。
端系统与中间节点
端系统运行应用和传输协议, 路由器只需转发数据报。 将复杂状态集中在端点, 换来中间网络的通用性与规模。
底层网络与编址
IP 抽象之下是各种底层网络。 要读懂数据报如何离开主机, 必须同时掌握链路服务、接口和地址前缀。
链路提供什么
链路负责在相邻接口间传送帧, 可能可靠也可能不可靠;IP 不假设具体介质, 只要求能承载一组字节。
地址、前缀与接口
一个主机可以有多个接口, 每个接口属于某个前缀。 地址的网络部分用于路由, 主机部分用于识别接口;前缀长度决定聚合粒度。
广播与多播边界
局域网广播适合发现邻居, 却不应跨越路由边界。 多播把一份数据交给一组接收者, 语义不同于简单广播。
ARP 与 IP 数据报
本章把“下一跳”与“最终目的”拆开。 ARP 解决本地映射, IP 数据报则携带跨网络旅程所需的逻辑地址。
ARP 的问答
发送者知道目标 IP 却不知道同网段接口的链路地址时, 广播询问“谁拥有这个 IP”, 目标单播回应。 结果暂存于缓存, 减少重复广播。
数据报字段的职责
版本、长度、寿命、上层协议号和源/目的地址共同描述一个独立数据报。 每个数据报都可被单独转发, 不依赖网络保存连接状态。
分片与重组
当链路最大传输单元较小时, 数据报可能被拆成片段;目的端依据标识和偏移重组。 现代路径发现尽量避免分片, 但理解机制仍有助于排障。
IP 转发与 ICMP
路由器如何做出下一跳决定, 以及当尽力而为服务无法继续时如何反馈, 是理解互联网“简单内核”的关键。
最长前缀匹配
路由表保存目的前缀、下一跳与出口接口。 多条记录同时匹配时选择最长前缀;没有匹配则使用默认路由或丢弃。
寿命与错误反馈
数据报携带寿命字段, 每经过路由器递减, 归零后丢弃以防环路。 ICMP 用于报告不可达、超时等控制信息, 但不替 IP 传输应用数据。
从主机到主机的逐跳链路
端系统只需把包交给默认网关;之后每跳重新解析链路地址。 逻辑路径由 IP 决定, 物理路径由每台路由器当下的表决定。
UDP:轻量的端到端复用
UDP 展示了端到端原则的另一面:只做端口复用和差错校验, 把排序、重传与节奏交给应用。
报文与端口
UDP 头部短小, 源端口与目的端口把报文交给正确进程, 长度和校验和帮助接收端确认边界与完整性。
何时选择无连接
DNS 查询、实时媒体或自定义控制协议常需要低延迟和简单状态。 应用愿意容忍丢失或自行设计恢复时, UDP 更合适。
UDP 不保证的事
没有握手、顺序、拥塞控制或重复抑制。 网络可能重排、复制或丢弃报文, 应用必须明确处理这些情况。
TCP:可靠字节流
TCP 在不可靠 IP 之上建立可靠、有序、全双工的字节流。 Comer 关注的是机制如何组合, 而非某个实现的代码细节。
连接与序号空间
三次握手交换初始序号并确认双方能力;连接状态由四元组和控制变量标识。 序号描述字节位置, 不是报文编号。
确认与滑动窗口
累计确认表达“此前字节都已收到”, 窗口限制在途数据量。 发送者据此流水线发送, 接收者可暂存乱序段并等待缺口。
关闭与半关闭
两个方向独立结束, FIN 表示一侧不再发送但仍可接收。 TIME-WAIT 等状态用于吸收迟到报文, 避免旧连接污染新连接。
路由体系:IGP 与 BGP
当网络规模扩大, 单一算法无法同时满足内部收敛与组织间政策。 Comer 将路由协议分为自治系统内部和自治系统之间两类。
自治系统与内部网关
IGP(如链路状态或距离向量家族)服务同一管理域, 追求根据拓扑和代价计算可达路径。
BGP 的路径与政策
BGP 在自治系统之间传播前缀与路径属性。 选择路径不只看最短, 还受商业关系、过滤与本地策略影响。
收敛与故障
链路变化会触发更新, 路由器逐步收敛到新状态。 短时黑洞和环路是分布式控制的现实代价, 需要计时器与策略抑制。
组播、DHCP、DNS、NAT:服务拼图
最后把几个常见机制放回架构图:它们分别解决一对多分发、主机启动配置、名字解析和地址边界转换。
组播与多播转发
组播地址代表接收者集合, 网络可复制分支而不是让发送者重复单播。 成员关系需要协议维护, 路由器据此建立树。
DHCP 与 DNS
DHCP 在接入时分配地址、前缀、网关和 DNS 等参数;DNS 把稳定名字映射到可能变化的地址, 二者共同让主机“即插即用”。
NAT 的边界作用
NAT 将私有地址与端口映射到公共地址, 缓解地址短缺并形成边界状态。 它破坏端到端可见性, 因此应用常需穿透或中继机制。