全书骨架:从分层地图到一次端到端通信
速读时先抓住「谁负责什么」,再把协议放回数据路径。全书可压缩为下面这条从应用意图到链路发送、再由对端逐层还原的主线:
每层只向相邻层交付明确结果;同层协议在通信两端形成逻辑对话,实际数据仍由下层承载。
端口定位进程,IP 定位跨网终点,MAC 定位当前链路的下一跳;三者不能互相替代。
ARP、ICMP、DHCP、DNS 与 NAT 分别解决邻居、差错、配置、名称和地址复用问题。
先记住各协议解决的问题,再用抓包、RFC 与站内演示验证字段和时序,不必首次阅读就背完格式。
网络基础与分层模型
先建立共同语言:分层不是把现实切成互不相干的盒子,而是把复杂通信拆成可替换、可排查的职责边界。
协议:通信双方共同遵守的约定
协议规定消息如何表示、按什么顺序交换、收到后如何响应。网络能容纳不同厂商与操作系统,靠的不是实现完全相同,而是接口与线上行为一致。协议族则是一组彼此协作的协议,TCP/IP 的范围远大于 TCP 和 IP 两个名字。
OSI 用来定位,TCP/IP 用来工作
OSI 七层适合作为分析尺,TCP/IP 常被归纳为应用、传输、网际和网络接入四层。二者不是必须逐格硬配的竞争答案:前者细分职责,后者更贴近互联网协议的实际组合。排障时问「问题出现在哪层、上层依赖什么服务」比背层号更有价值。
封装让每层加入自己的控制信息
发送端的数据向下经过各层,每层添加头部;接收端由下向上检查并去除相应头部。应用看到的是内容,TCP 关注端口与可靠性,IP 关注源与目的地址,以太网关注当前链路上的帧传送。
IP 编址与子网
IP 地址的重点不是把十进制数字背下来,而是理解「网络前缀定位范围、主机部分定位接口」,以及路由器如何用前缀作决定。
地址属于接口,前缀描述网络
IPv4 地址通常写成四组十进制数,但机器按 32 位二进制处理。CIDR 后缀如 /24 表示前 24 位是网络前缀,其余位区分该网络中的接口。设备可有多个接口,因此也可能拥有多个 IP 地址。
子网划分是在地址空间里切边界
子网掩码把地址分成网络位与主机位。判断两个地址是否同网段,就是分别与掩码做按位与,再比较网络地址。划分更长前缀会得到更多、更小的子网;规划时还要保留网络地址与广播地址等特殊用途。
192.0.2.73
前缀/24,前三个八位组属于网络部分
网络地址192.0.2.0
判断方法地址 AND 掩码 → 网络地址;网络地址相同即处于同一子网
同网直达,异网交给默认网关
主机先以目标地址和本地掩码判断目标是否在本子网。同网时直接解析目标的链路地址;异网时把帧交给默认网关,由路由器逐跳转发。这里「交给网关」只改变下一跳 MAC,IP 包的最终目的地址仍是远端主机。
IP 周边技术:DNS · ARP · ICMP · DHCP · NAT
IP 只提供尽力而为的寻址与转发,真实网络还需要一组配套机制,补齐名称解析、邻居发现、状态反馈、自动配置与私网出口。
DNS 与 ARP:分别回答名字和下一跳
DNS 把域名解析为地址,并以分层命名、分布式权威和缓存提升规模能力。ARP 则在本地 IPv4 链路上,根据下一跳 IP 询问对应 MAC。前者面向应用可读的名称,后者服务于本地帧交付,作用域完全不同。
ICMP:让 IP 网络能够反馈
ICMP 携带差错与诊断信息,例如目标不可达、超时或回显请求与应答。它不是让 IP 变成可靠传输,而是让主机和路由器有机会说明「为什么没送到」或响应探测。网络策略可能过滤部分 ICMP,所以无响应不能单独证明主机离线。
DHCP 与 NAT:自动配置和地址复用
DHCP 让终端自动获得地址、掩码、默认网关和 DNS 等参数,配置通常带有租约。NAT 在边界转换地址,家用场景还常结合端口转换,让多个私网连接共享一个公网地址。转换设备需要保存映射状态,入站连接因此不能凭空找到内部主机。
TCP 与 UDP
传输层把主机到主机的 IP 能力延伸为进程到进程的通信;TCP 与 UDP 的差异,应从应用需要什么服务来理解。
端口把数据交给正确的应用
IP 地址定位主机接口,端口号标识通信端点上的进程。一个会话通常由源地址、源端口、目的地址、目的端口与传输协议共同区分,因此多项应用能共享同一网络接口而不混淆。
TCP:面向字节流的可靠传输
TCP 建立连接后,用序号、确认、重传和校验处理丢失与乱序;滑动窗口允许多个未确认数据段在途,流量控制保护接收方,拥塞控制则根据网络状态调整发送节奏。它交付有序字节流,但不会替应用保留每次写入的消息边界。
UDP:把及时性与控制权留给应用
UDP 以独立数据报发送,不先建立传输层连接,也不内建重传和有序交付。它适合一次问答、广播/多播或由应用自定恢复策略的场景。简洁不等于永远更快:若应用需要可靠性,仍须在上层补上相应机制。
路由协议速览
数据平面按路由表转发每个包,控制平面负责形成和更新这些路径。速读本章,只需先掌握路由表匹配和协议分工。
最长前缀匹配决定下一跳
路由表记录目的前缀、下一跳、出口接口与度量等信息。一个目标可能同时匹配默认路由和若干更具体路由,设备选择前缀最长、范围最精确的条目。没有可用条目时,路由器不会猜测路径,而会丢弃并可能返回差错信息。
静态路由与动态路由各有边界
静态路由由管理员明确配置,行为可预测,适合小型或稳定路径;网络变化时需要人工维护。动态路由协议让设备交换可达性并重新计算路径,适合更大或经常变化的拓扑,但也带来收敛、策略和运维复杂度。
域内求可达,域间讲策略
RIP 以距离向量方式传播距离,OSPF 通过链路状态形成拓扑视图;它们主要服务一个管理域内部。BGP 在自治系统之间交换前缀可达性,路径选择不仅考虑技术距离,还承载运营策略。速读阶段先记住使用范围,不必背完报文格式。
应用层协议一览
应用层把网络能力变成用户可见的服务。与其孤立背端口,不如用「请求什么、返回什么、依赖哪种传输与安全机制」建立索引。
Web 与名称服务构成最常见入口
HTTP 描述资源请求与响应语义,方法、状态码和首部共同表达操作与元数据;HTTPS 是 HTTP 运行在 TLS 保护之上。DNS 在访问之前把名称解析成地址,也能承载邮件交换等其他资源记录,是多数应用流程的前置依赖。
邮件、文件与远程管理各有协议组合
电子邮件通常由发送与中继协议配合收取协议完成;文件传送与远程登录也各自定义控制和数据交互方式。传统协议的设计背景、安全能力差异很大,实际部署应优先选择加密版本,并区分「协议概念」与具体产品。
用一次访问串起全书
打开网页时,终端可能先通过 DHCP 获得配置,用 DNS 找到服务器地址,借 ARP 找到本地下一跳,经 IP 路由到远端,再由 TCP 或其他传输机制承载 HTTP。遇到 HTTPS 还要建立 TLS 安全通道。能按顺序讲清这条链,就已经抓住全书主干。