Chapter 4-2:IP、编址、分片、NAT 与 IPv6 的网络层逻辑

Chapter 4-2:IP、编址、分片、NAT 与 IPv6 的网络层逻辑
agsdChapter 4-2:IP、编址、分片、NAT 与 IPv6 的网络层逻辑
Chapter 4-2 的主线是网络层中的 IP 协议本身。上一节 Chapter 4-1 更关注数据平面的整体结构:路由器如何查表、如何通过交换结构搬运分组、如何排队和调度。本节则进入更具体的问题:IP 数据报长什么样,为什么会被分片,IP 地址到底分配给谁,子网和 CIDR 如何组织地址空间,主机如何自动获得网络配置,NAT 如何缓解 IPv4 地址不足,以及 IPv6 为什么要重新设计地址和头部格式。
这一节的核心不是背字段名,而是理解一条机制链:
1 | 传输层 segment |
❗ 本节核心结论: IP 地址体系的核心不是“给机器编号”,而是“给接口编号,并用前缀、掩码和路由表项把接口组织成可转发、可聚合、可扩展的网络结构”。
1. IP 数据报:网络层传输的基本单位
IP 数据报是网络层传输的基本单位。传输层把 TCP segment 或 UDP segment 交给网络层后,网络层会在外面加上 IP 头部,形成 IP datagram。
一个典型封装关系是:
1 | IP datagram |
其中,IP 头部保存网络层转发和控制所需的信息,例如:
- 源 IP 地址;
- 目的 IP 地址;
- 版本号;
- 头部长度;
- 数据报总长度;
- TTL;
- 上层协议字段;
- 首部校验和;
- 分片相关字段;
- 可选项。
这些字段不是装饰,而是为了让网络层能够回答几个关键问题:
| 问题 | 对应字段 |
|---|---|
| 这个数据报从哪里来? | 源 IP 地址 |
| 这个数据报要到哪里去? | 目的 IP 地址 |
| 这个数据报还能在网络中存在多久? | TTL |
| 到达目的主机后交给 TCP 还是 UDP? | upper-layer protocol |
| 这个数据报是否被分片? | identifier、flags、fragment offset |
| IP 头部在传输中是否出错? | header checksum |
1.1 payload 长度是什么
payload 指的是某一层协议真正承载的“上层数据”。
对 IP 层来说:
1 | IP 数据报总长度 = IP header 长度 + IP payload 长度 |
例如,一个 IPv4 数据报总长度是 4000 字节,IP 头部是 20 字节,那么:
1 | IP payload 长度 = 4000 - 20 = 3980 字节 |
这 3980 字节通常装的是 TCP segment 或 UDP segment。
注意,payload 是相对概念。站在不同层看,payload 的含义不同:
| 所在层 | header | payload |
|---|---|---|
| 链路层 | frame header | IP datagram |
| 网络层 | IP header | TCP/UDP segment |
| 传输层 | TCP/UDP header | 应用层数据 |
所以,不能笼统说“payload 就是用户数据”。更准确地说,payload 是当前层承载的上层内容。
❗ 本节核心结论: IP 数据报由 IP 头部和 IP payload 组成;总长度包含头部和数据部分,payload 长度只指 IP 头部后面承载的上层内容。
2. frame、hop 与 MTU:IP 数据报如何穿过链路
学习 IP 分片之前,必须先分清三个概念:frame、hop 和 MTU。
2.1 frame 不是视频帧
这里的 frame 是数据链路层的帧,不是视频帧率或游戏帧数里的“帧”。
链路层 frame 是一跳链路上的传输单位。它大致可以理解为:
1 | 链路层 frame |
IP 数据报不能直接在物理链路上裸奔,它要被封装进链路层 frame 里,再通过以太网、Wi-Fi 或其他链路发送。
2.2 hop 是一跳,不是一个完整端到端路径
hop 可以理解为从一个网络层设备到下一个网络层设备之间的一段转发。
例如:
1 | 主机 A → 路由器 R1 → 路由器 R2 → 主机 B |
这条路径中:
- 主机 A 到 R1 是一跳;
- R1 到 R2 是一跳;
- R2 到主机 B 是一跳。
每经过一个路由器,通常就多走了一跳。TTL 每经过一个路由器减 1,正是为了避免数据报在网络中无限循环。
2.3 MTU 是链路层限制,却会影响 IP 层
MTU 是 Maximum Transmission Unit,最大传输单元。它表示某条链路的链路层 frame 最多能承载多大的网络层数据。
重点是:MTU 是链路层约束,但它限制的是能放进 frame 里的 IP 数据报大小。
例如,以太网常见 MTU 是 1500 字节。这意味着一个链路层 frame 最多能携带 1500 字节的 IP 数据报。如果 IP 数据报大于 1500 字节,就无法完整放进这一跳的 frame 中,IPv4 下可能需要分片。
flowchart LR
A[IP datagram] --> B{是否超过下一跳 MTU}
B -- 否 --> C[封装进一个 frame]
B -- 是 --> D[IPv4 分片]
D --> E[多个较小 IP datagram]
E --> F[分别封装进多个 frame]
这张图说明:IP 数据报的大小必须服从下一跳链路的 MTU 限制。
❗ 本节核心结论: frame 是链路层传输单位,hop 是逐跳路径单位,MTU 是链路层对可承载 IP 数据报大小的限制。
3. IPv4 分片与重组:当数据报太大时怎么办
互联网由不同链路组成,不同链路的 MTU 可能不同。源主机发出的 IP 数据报,在某一跳可能遇到较小 MTU,无法完整放进链路层 frame。这时 IPv4 可以进行分片。
3.1 分片的基本思想
假设一个 IPv4 数据报总长度为 4000 字节,其中 IP 头部 20 字节,payload 3980 字节。它要经过一条 MTU 为 1500 字节的链路。
每个分片本身都要有自己的 IP 头部。因此,每片最多能携带的 payload 不是 1500 字节,而是:
1 | 1500 - 20 = 1480 字节 |
所以原来的 3980 字节 payload 需要被拆成:
1 | 1480 + 1480 + 1020 |
每个分片都会成为一个新的 IP 数据报:
1 | 分片 1:20 字节 IP 头部 + 1480 字节数据 |
3.2 分片偏移量为什么以 8 字节为单位
IPv4 的 fragment offset 字段不是直接记录字节偏移,而是以 8 字节为单位记录偏移。
例如:
| 分片 | 数据范围 | 字节偏移 | fragment offset |
|---|---|---|---|
| 第 1 片 | 0 ~ 1479 | 0 | 0 |
| 第 2 片 | 1480 ~ 2959 | 1480 | 185 |
| 第 3 片 | 2960 ~ 3979 | 2960 | 370 |
因为:
1 | 1480 / 8 = 185 |
这也是为什么除最后一片外,每个分片的数据长度通常要是 8 字节的整数倍。否则后续分片的 offset 无法准确表达。
3.3 为什么不在每个路由器重组
IPv4 分片通常在最终目的主机重组,而不是每经过一个路由器就重组。原因很直接:
- 路由器要高速转发,不能为了重组等待所有分片;
- 不同分片可能走不同路径;
- 中间重组会增加路由器状态和缓存压力;
- 重组后下一跳可能又遇到更小 MTU,还要再次分片。
因此,中间路由器可以分片,但不负责把分片重新组回原始数据报。最终目的主机根据 identifier、fragment offset 和 flags 等字段完成重组。
❗ 本节核心结论: IPv4 分片是为了解决数据报超过下一跳 MTU 的问题;每个分片都有自己的 IP 头部,偏移量以 8 字节为单位,重组通常只在最终目的主机进行。
4. IP 地址属于接口,而不是简单属于主机
一个常见误解是:“IP 地址属于一台电脑。”这句话在日常表达中可以接受,但在网络层概念上不够准确。
更准确的说法是:
1 | IP 地址分配给 interface |
interface 是设备连接网络链路的出入口。一个设备可以有多个接口,因此也可以有多个 IP 地址。
例如:
- 一台笔记本有 Wi-Fi 接口和以太网接口;
- 一个路由器有多个物理端口;
- 一台服务器可能有多块网卡;
- 一个接口也可能配置多个 IP 地址。
所以,IP 地址不是贴在“整台设备”上的标签,而是贴在设备的某个网络接口上的标识。
4.1 interface 是哪两个层之间的接口吗
interface 不是简单指“网络层和链路层之间的软件接口”。它更像是一个设备接入某个网络链路的通信端点。
从协议栈看,一个 interface 同时具有多层含义:
| 层次 | interface 的意义 |
|---|---|
| 物理层 | 具体的物理连接或无线收发能力 |
| 链路层 | 有 MAC 地址,能收发 frame |
| 网络层 | 配置 IP 地址,参与 IP 转发或收发 |
因此,interface 不是只属于某两层之间的边界,而是一个贯穿物理层、链路层和网络层的网络出入口。
❗ 本节核心结论: IP 地址严格来说绑定在接口上;interface 是设备接入网络链路的通信端点,不只是某两层之间的抽象边界。
5. 子网:一组不经过路由器即可互相到达的接口
子网 subnet 可以理解为一组共享相同 IP 地址前缀、并且不经过路由器就可以彼此到达的接口集合。
例如:
1 | 主机 A:192.168.1.2/24 |
它们都属于:
1 | 192.168.1.0/24 |
在典型以太网或 Wi-Fi 局域网中,如果这些主机连在同一个二层网络里,它们可以通过链路层机制直接通信,不需要经过路由器转发。
5.1 没有路由器的局域网算不算子网
可以算。
子网的核心不是“里面必须有路由器”,而是:
- 这些接口共享同一个网络前缀;
- 它们在网络层上被视为同一个 IP 网络;
- 它们之间通信不需要经过路由器。
局域网 LAN 和子网 subnet 关注角度不同:
| 概念 | 关注点 | 典型问题 |
|---|---|---|
| LAN | 链路层/物理连接 | 这些设备怎么连在一起? |
| subnet | 网络层地址结构 | 这些接口是否属于同一个 IP 前缀? |
二者经常重合,但不是同一个概念。一个 LAN 可以承载一个子网,也可以通过 VLAN 等方式承载多个逻辑子网;一个子网通常对应一个二层广播域,但具体实现可以更复杂。
❗ 本节核心结论: 子网是网络层地址概念,LAN 是链路层或物理组织概念;没有路由器的局域网也可以构成一个子网。
6. 子网号与子网掩码:一个是结果,一个是规则
子网号和子网掩码经常一起出现,但它们不是一回事。
6.1 子网号是什么
子网号是一个子网的网络地址,用来代表整个子网。
例如:
1 | 192.168.1.0/24 |
其中:
1 | 192.168.1.0 |
就是这个子网的子网号或网络地址。
它表示:这是 192.168.1.x 这一段网络,而不是某一台具体主机。
6.2 子网掩码是什么
子网掩码是用来区分 IP 地址中“网络部分”和“主机部分”的规则。
例如:
1 | 255.255.255.0 |
等价于:
1 | /24 |
意思是:前 24 bit 是网络部分,后 8 bit 是主机部分。
6.3 二者的关系
给定:
1 | IP 地址:192.168.1.37 |
把 IP 地址和子网掩码做按位与:
1 | 192.168.1.37 & 255.255.255.0 = 192.168.1.0 |
得到的结果就是子网号。
所以可以这样区分:
| 概念 | 含义 | 例子 |
|---|---|---|
| IP 地址 | 某个接口的地址 | 192.168.1.37 |
| 子网掩码 | 划分网络部分和主机部分的规则 | 255.255.255.0 |
| 前缀长度 | 掩码的简写形式 | /24 |
| 子网号 | 根据掩码算出的网络地址 | 192.168.1.0 |
❗ 本节核心结论: 子网掩码是切分规则,子网号是按规则计算出的网络地址;/24 和 255.255.255.0 表达的是同一种前缀长度。
7. CIDR:从固定分类到灵活前缀
早期 IPv4 地址采用 classful addressing,即按 A、B、C 类固定划分网络规模。
大致可以理解为:
| 类别 | 网络部分 | 可容纳主机规模 | 问题 |
|---|---|---|---|
| A 类 | 很短 | 很大 | 对多数组织过大 |
| B 类 | 中等 | 仍然很大 | 容易浪费 |
| C 类 | 较长 | 较小 | 对很多组织又太小 |
这种方式的问题是“档位太粗”。
如果一个组织需要 2000 个地址:
- 一个 C 类地址不够;
- 一个 B 类地址又太大;
- 分配 B 类会浪费大量地址。
这就是传统分类地址容易浪费的根本原因。
7.1 classless 怎么理解
classless 的意思是:不再强制按照 A/B/C 类的固定边界划分地址,而是用任意长度的前缀表示网络范围。
CIDR 写法是:
1 | a.b.c.d/x |
其中 x 表示前多少 bit 是网络前缀。
例如:
1 | 200.23.16.0/23 |
表示前 23 bit 是网络部分,剩下 9 bit 是主机部分。这个网络可以容纳的地址数量大约是:
1 | 2^(32 - 23) = 512 |
相比固定 A/B/C 类,CIDR 可以更接近实际需求分配地址块。
7.2 CIDR 与路由聚合
CIDR 不只减少地址浪费,还支持路由聚合。
例如,某 ISP 拥有:
1 | 200.23.16.0/20 |
它可以把这块地址切成多个更小的 /23 分给不同组织:
1 | 200.23.16.0/23 |
对外通告时,ISP 不一定要把每个小块都通告出去,而可以说:
1 | 凡是 200.23.16.0/20 这一大块地址,都交给我。 |
这就是路由聚合 route aggregation。
flowchart TD
A[ISP: 200.23.16.0/20] --> B[组织1: 200.23.16.0/23]
A --> C[组织2: 200.23.18.0/23]
A --> D[组织3: 200.23.20.0/23]
A --> E[组织4: 200.23.22.0/23]
F[外部路由器] --> G[只需记录 200.23.16.0/20]
这张图说明:CIDR 既能灵活分配地址,也能把多个连续地址块聚合成较少的路由表项。
7.3 more specific route
路由聚合不是无脑越粗越好。如果某个组织虽然地址属于某个 ISP 的聚合范围,但实际接入了另一个 ISP,就可能需要更具体的路由项。
例如:
1 | 200.23.16.0/20 → ISP A |
当目标地址落在 200.23.18.0/23 中时,/23 比 /20 更具体,应优先匹配 /23。这和最长前缀匹配是一致的。
❗ 本节核心结论: CIDR 的 classless 思想是取消 A/B/C 固定分类,用任意长度前缀灵活分配地址;它同时支持路由聚合,减少全网路由表规模。
8. DHCP:主机接入网络时需要的不只是 IP 地址
DHCP 是 Dynamic Host Configuration Protocol,动态主机配置协议。它的作用不是简单“发一个 IP 地址”,而是给主机一整套联网配置。
典型 DHCP 过程可以概括为 DORA:
1 | Discover → Offer → Request → ACK |
也就是:
- 客户端广播 Discover:有没有 DHCP 服务器?
- 服务器返回 Offer:可以给你这个配置。
- 客户端发送 Request:我想使用这个配置。
- 服务器发送 ACK:确认租约生效。
8.1 为什么 DHCP 要返回这么多东西
DHCP 通常会返回:
- IP 地址;
- 子网掩码;
- 默认网关,也就是第一跳路由器地址;
- DNS 服务器地址;
- 地址租约时间。
因为主机接入网络后,不只是需要知道“我是谁”,还需要知道“怎么通信”。
| 配置项 | 解决的问题 |
|---|---|
| IP 地址 | 我在这个网络中的地址是什么? |
| 子网掩码 | 哪些目标和我在同一个子网? |
| 默认网关 | 不在本子网的目标应该交给谁? |
| DNS 服务器 | 域名应该找谁解析成 IP? |
| 租约时间 | 这个地址我能用多久? |
如果只有 IP 地址,没有子网掩码,主机不知道哪些地址可以直接发 ARP 找对方,哪些地址要交给默认网关。
如果没有默认网关,主机只能和本子网通信,无法访问外部网络。
如果没有 DNS,主机可以访问 IP 地址,但无法正常使用域名访问网站。
❗ 本节核心结论: DHCP 提供的是完整网络配置,不只是 IP 地址;主机需要 IP、掩码、默认网关和 DNS 才能真正接入网络。
9. 路由表项:匹配条件加转发动作
路由表项可以理解为路由器或主机中的一条转发规则。
它通常包含:
- 目标网络前缀;
- 子网掩码或前缀长度;
- 下一跳地址;
- 输出接口;
- 度量值或优先级等附加信息。
例如:
1 | 目的网络:200.23.16.0/20 |
含义是:
1 | 凡是目标地址落在 200.23.16.0/20 这一范围内的数据报,都交给下一跳 IPx,并从 wan0 发出去。 |
9.1 为什么减少路由表项是好事
路由器要对大量数据报做高速转发。每来一个 IP 数据报,它都需要:
- 读取目标 IP 地址;
- 查转发表;
- 找到匹配项;
- 决定输出接口;
- 转发。
如果路由表项特别多,会带来多方面成本:
| 问题 | 影响 |
|---|---|
| 存储开销变大 | 路由器要维护更大的表 |
| 查表更复杂 | 数据平面压力增大 |
| 路由更新更多 | 控制平面传播和计算成本更高 |
| 收敛更慢 | 网络变化后恢复稳定更困难 |
| 可扩展性变差 | 全球互联网规模下难以承受 |
CIDR 和路由聚合的价值就在这里。它们允许用一个较大的前缀代表一批更小的网络。
例如,原本需要记录:
1 | 200.23.16.0/23 |
聚合后可以记录成:
1 | 200.23.16.0/20 |
这样就显著减少了表项数量。
但减少表项不是绝对目标。遇到特殊路径需求时,仍然需要更具体的路由项。网络系统的真实目标是:在正确转发的前提下尽量提高可扩展性。
❗ 本节核心结论: 路由表项是“匹配条件 + 转发动作”;减少表项可以降低存储、查表、更新和收敛成本,但更具体路由在特殊情况下仍然必要。
10. NAT:IPv4 地址不足下的地址复用机制
NAT 是 Network Address Translation,网络地址转换。它的典型场景是:内网中大量设备使用私有地址,对外共享一个或少数几个公网 IP 地址。
例如家庭网络中:
1 | 手机:192.168.1.2 |
它们访问互联网时,外部看到的可能都是同一个公网 IP。
10.1 NAT 如何区分不同内网主机
NAT 不只是改 IP 地址,通常还会改端口号。
例如:
| 内网连接 | NAT 后公网连接 |
|---|---|
192.168.1.2:5001 → 8.8.8.8:443 |
203.0.113.5:62001 → 8.8.8.8:443 |
192.168.1.3:5001 → 8.8.8.8:443 |
203.0.113.5:62002 → 8.8.8.8:443 |
NAT 设备维护一张转换表:
1 | 公网 IP:公网端口 ↔ 内网 IP:内网端口 |
当外部响应回来时,NAT 根据目的端口查表,把数据转回对应内网主机。
10.2 NAT 的争议
NAT 解决了 IPv4 地址不足问题,但也引入了争议:
- 它修改端口号,跨越了网络层和传输层边界;
- 它破坏了端到端原则;
- 外部主机通常无法直接主动连接内网主机;
- 某些 P2P、VoIP、游戏联机等应用需要额外穿透机制;
- 它是 IPv4 地址不足下的现实折中,而不是最干净的体系设计。
NAT 不是防火墙。它可能带来类似“外部无法直接访问内部”的效果,但其本质是地址和端口转换,而不是安全策略控制。
❗ 本节核心结论: NAT 通过地址和端口转换让多个内网设备共享公网 IP,缓解 IPv4 地址不足;但它跨层处理端口号,并削弱了端到端连接模型。
11. IPv6:不是把 IPv4 地址写长一点
IPv6 的提出,主要是为了从根本上解决 IPv4 地址空间不足,并改进 IP 头部设计。
IPv6 地址长度从 IPv4 的 32 bit 扩展到 128 bit,地址空间极大增加。但 IPv6 的变化不只是地址变长,还包括头部格式简化和功能调整。
11.1 IPv6 头部设计的关键变化
IPv6 相比 IPv4 有几个重要变化:
| 变化 | 意义 |
|---|---|
| 地址长度变为 128 bit | 大幅扩展地址空间 |
| 固定基本头部长度 | 便于路由器快速处理 |
| 去掉 IPv4 header checksum | 减少每跳重新计算开销 |
| 不允许路由器中途分片 | 简化路由器数据平面 |
| 使用扩展头部 | 把可选功能移出基本头部 |
| TTL 改为 Hop Limit | 语义更直接,表示最多还能经过多少跳 |
这些变化体现了一个方向:让路由器转发更简单、更快,把复杂性更多放到端系统或扩展机制中。
11.2 IPv6 与隧道
互联网不可能瞬间从 IPv4 切换到 IPv6,因此会出现 IPv6 和 IPv4 共存的阶段。隧道 tunneling 是一种过渡机制。
基本思想是:把 IPv6 数据报封装进 IPv4 数据报中,穿过只支持 IPv4 的网络区域,到另一端再解封装出来。
flowchart LR
A[IPv6 主机] --> B[IPv6 路由器]
B --> C[封装进 IPv4 datagram]
C --> D[IPv4 网络]
D --> E[解封装出 IPv6 datagram]
E --> F[IPv6 目的网络]
这说明 IPv6 部署不是单点替换,而是需要长期过渡机制。
❗ 本节核心结论: IPv6 不只是更长地址,而是重新设计了 IP 层的地址空间和头部处理方式;其目标包括扩大地址空间、简化路由器处理和支持逐步过渡。
12. 易混点集中整理
12.1 IP 地址不是简单属于主机
更准确地说,IP 地址属于接口。多网卡主机、路由器、多地址配置都说明了这一点。
12.2 同一个子网不只是 IP 看起来相似
同一个子网要求共享相同网络前缀,并且不经过路由器可直接到达。只是前几段数字相似并不一定说明它们处于同一个子网,必须结合子网掩码或前缀长度判断。
12.3 DHCP 不只是分配 IP
DHCP 提供完整网络配置,包括 IP、掩码、默认网关、DNS 和租约时间。只给 IP 地址,主机仍然不知道如何完整联网。
12.4 NAT 不是防火墙
NAT 的核心是地址和端口转换。它可能间接阻止外部主动访问内网主机,但这不是它的本质功能。
12.5 IPv6 不是 IPv4 地址写长一点
IPv6 同时改变了地址长度、基本头部、分片方式、校验和处理和扩展机制。它是网络层协议设计的系统性调整。
12.6 MTU 不是 IP 层字段
MTU 是链路层的最大承载限制,但会影响 IP 数据报是否需要分片。它体现了分层系统中的跨层约束:链路层能力会影响网络层行为。
❗ 本节核心结论: 本章最容易混淆的是概念边界:IP 地址绑定接口,子网依赖前缀和掩码,MTU 是链路约束但影响 IP,NAT 是地址转换而不是安全机制。
13. 复习清单
学完本节后,应能回答:
- IP 数据报由哪两大部分组成?
- IP payload 长度和 IP 数据报总长度有什么区别?
- frame 是什么?它和视频帧有什么区别?
- hop 是什么?为什么 TTL 每过一个路由器要减 1?
- MTU 是哪一层的概念?为什么会影响 IP 分片?
- 一个 4000 字节 IPv4 数据报经过 MTU 1500 的链路时,如何分片?
- 分片偏移量为什么以 8 字节为单位?
- 为什么 IP 分片通常只在最终目的主机重组?
- 为什么说 IP 地址属于接口,而不是简单属于主机?
- interface 在物理层、链路层和网络层分别有什么意义?
- 没有路由器的局域网是否可以构成子网?
- 子网号和子网掩码有什么区别?
/24和255.255.255.0是什么关系?- 传统 A/B/C 分类地址为什么容易浪费?
- classless addressing 的核心思想是什么?
- CIDR 如何支持路由聚合?
- DHCP 为什么要提供 IP、掩码、默认网关和 DNS?
- 路由表项由哪些部分组成?
- 为什么减少路由表项有利于互联网可扩展性?
- NAT 为什么需要修改端口号?
- NAT 为什么会引发端到端原则争议?
- IPv6 相比 IPv4 的关键变化有哪些?
最终总结
Chapter 4-2 的核心是 IP 协议和地址体系。IP 数据报是网络层的基本传输单位,链路层 frame 是逐跳承载它的单位,MTU 决定一个数据报是否需要被分片。IP 地址严格说绑定在 interface 上,多个接口通过相同前缀组织成 subnet,而子网掩码和 CIDR 决定如何解释这些前缀。
CIDR 的 classless 思想解决了传统固定分类地址过粗的问题,并通过路由聚合减少路由表项,提高互联网可扩展性。DHCP 解决主机自动配置问题,NAT 在 IPv4 地址不足下通过地址和端口转换实现地址复用,而 IPv6 则从地址空间和头部设计上提供更长期的解决方向。
这一章可以压缩成一句话:
1 | IP 层通过数据报格式表达转发所需信息,通过接口地址和子网前缀组织网络,通过 CIDR 和路由聚合提升可扩展性,并用 DHCP、NAT、IPv6 分别解决配置、地址复用和长期地址空间问题。 |








