408 知识网络
返回模块节点

CN-3 网络层(IP、子网与路由)

计算机网络

来源:40-CN3-网络层.md · 完整笔记(7 节,未删减)

计算机网络模块。计网计算题最密集的一层:子网划分、CIDR、分片、路由算法四大模板。 向上承接 CN-2(交换机只能管一个局域网),向下引出 CN-6 的逐跳转发全景。


核心问题

这一部分为什么存在?

数据链路层 + 交换机解决的是同一个局域网内的通信。但世界上的网络成千上万、技术各异(以太网、WiFi、广域链路),要互通必须回答:

  1. 统一编址:每台主机一个全球逻辑地址(IP),与具体链路技术解耦;
  2. 选路:从源到目的跨多个网络,每条岔路(路由器)怎么决定往哪转 → 路由算法与路由协议;
  3. 地址不够分:IPv4 只有 32 位,地址浪费曾是灾难 → 子网划分、CIDR、NAT 三代补丁;
  4. 链路大小不一:各链路 MTU 不同,大包过小网要切片 → 分片机制;
  5. 出错了怎么报告:IP 本身不可靠,需要一个“捎信人” → ICMP。

没有网络层:世界退回一个个孤立的局域网,互联网不存在。


概念体系

flowchart TD
    A["跨网络通信需求"] --> B["统一编址:IPv4 32 位"]
    B --> C["地址浪费 → 子网划分<br/>→ CIDR(无类别 + 聚合)"]
    B --> D["地址枯竭 → NAT"]
    B --> E["选路:路由器 + 路由表<br/>最长前缀匹配"]
    E --> F["路由表怎么来?<br/>RIP(DV) / OSPF(LS) / BGP(路径向量)"]
    A --> G["各链路 MTU 不同 → 分片"]
    A --> H["出错报告 → ICMP"]
    B -.每跳要找下一跳 MAC.-> I["ARP:IP → MAC"]
    B -.自动配地址.-> J["DHCP"]

核心概念:

概念 要点 易考点
IP 地址结构 网络前缀 + 主机号;/n 表示前缀长度 网络地址 = IP & 掩码(2022-35:183.80.72.48/18 → 183.80.64.0)
子网划分 从主机号借 nn 位 → 2n2^n 个子网,主机位 mm → 每子网可用 2m22^m - 2(减网络地址与广播地址) 2010-37:/24 借 5 位(/29)→ 32 子网 × 6 地址
CIDR 聚合 多条路由找最长公共前缀合成一条,缩小路由表 2018-38:四条 /21 聚成 /19;2011-37(补一条聚合路由)
最长前缀匹配 多条路由命中时选前缀最长 路由表查表题的默认规则
IP 分片 片内数据 ≤ MTU−20 且为 8 的倍数片偏移 = 数据起始偏移/8;MF=1 表示还有后续片 2021-36:1580B 过 MTU=800 → 片 2 总长 796、MF=1
ARP 同一广播域内 IP → MAC,广播请求、单播应答 2012-38;跨路由器时目的 MAC 是下一跳的 MAC(2015-47)
ICMP 网际控制报文:差错报告(源点抑制、超时、终点不可达)+ 询问(ping) 2010-36(拥塞丢包 → 源点抑制);由 IP 直接封装(2012-33)
DHCP UDP 67/68,动态分配 IP/掩码/网关/DNS;Discover 广播 2015-47(Discover 源 0.0.0.0、目的 255.255.255.255);2022-47(M=Discover,目的 MAC 全 F)
NAT 私网地址 ↔ 公网地址(+端口)转换 2023-38(经 R2 后源 IP 变为 R2 公网口地址)

实现机制

1. 子网划分两模板(来源:复习资料 P5 模板 3/4)

定长划分:借 nn 位满足子网数、主机位 mm 满足 2m22^m - 2 \geq 主机数,两者挤占 32 位 → 2017-38:/16 划 128 子网 → /23,每子网 292=5102^9 - 2 = 510

VLSM 变长划分(大题核心):按需求从大到小排序,逐个取满足 2m2h2^m - 2 \geq h 的最小 mm,沿地址空间连续切分不重叠。2025-47(3):/24 分给 120/60/60 → /25 + /26 + /26 恰好铺满。2019-37:/20 划 5 个子网,问可能的最小子网(VLSM 下可以让大需求吃饱后,小需求用很长前缀)。2021-35:已知一子网 192.168.9.128/26,判断另两个子网哪个不可能(二进制边界不重叠检查)。

2. IP 分片计算(来源:复习资料 P5 模板 6)

每片最大数据=MTU208×8,片偏移=该片数据起始位置8\text{每片最大数据} = \left\lfloor \frac{MTU - 20}{8} \right\rfloor \times 8,\qquad \text{片偏移} = \frac{\text{该片数据起始位置}}{8}

  • 2018-47:1500B(数据 1480B)过 MTU=800 → 每片 776B → 2 片,偏移 0 与 97。
  • 2021-36:1580B(数据 1560B)过 MTU=800 → 776+776+8 → 3 片;第 2 片总长 776+20=796、MF=1
  • 为什么偏移以 8 为单位(补充理解):片偏移字段只有 13 位却要标记最大 64KB 数据报内的位置,213×8=2162^{13} \times 8 = 2^{16},所以协议规定一切分片数据长度必须是 8 的倍数。

3. 路由算法:DV vs LS(两种“学地图”的方式)

距离向量 DV(RIP) 链路状态 LS(OSPF)
思想 只和邻居交换整张路由表,Bellman-Ford 迭代 全网泛洪自己的链路状态,每台路由器画出全图后跑 Dijkstra
度量 跳数,15 上限、16 = 不可达 费用(带宽等)
收敛 慢、可能计数到无穷(RIP 适合小 AS) 快、无环路(大 AS 选 OSPF——2024-47 第 1 问:AS4 直径超 15 跳必须 OSPF)
真题 2010-35(<net1,16> → 该网络不可达)、2016-37(收敛后收到新 DV 更新距离)、2021-37(DV 计算) 2014-42(由 LSI 表构图 + Dijkstra 逐点求最短路径 + 写 R1 路由表)

BGP(AS 之间):路径向量,交换“可达性 + 经过的 AS 路径”,走 TCP 179;eBGP(AS 间)/iBGP(AS 内)会话与 UPDATE 报文(2024-47 大题全链条)。三种协议的封装层不同是常考点:RIP→UDP、OSPF→IP、BGP→TCP(2017-37)。

4. 一次转发的完整动作(与 CN-2、CN-6 的连接点)

路由器收到帧 → 解封得 IP 分组 → 查路由表(最长前缀匹配)→ TTL−1(为 0 则丢弃并发 ICMP 超时报文)→ 重算首部校验和 → 用 ARP 找下一跳的 MAC → 重新封装帧发出。IP 地址全程不变(NAT 除外),MAC 地址每跳重写——2018-37 与 2015-47 的核心考点,也是链路层/网络层分工的实体化。


方案比较

数据报 vs 虚电路(网络层第一易混对):为什么易混——都是分组交换的子类。本质区别——数据报无连接:每个分组独立选路(可能乱序、路径不同),网络不保证可靠,可靠交给端系统(TCP),这是互联网的选择;虚电路面向连接:先建通路,所有分组沿同一路径(如 ATM)。判别线索:题目说“IP 网络/互联网”→ 数据报;说“建立连接后按序到达、网络层保证可靠”→ 虚电路。

ARP vs DNS vs DHCP(三个“问路人”):ARP 问“这个 IP 的 MAC 是什么”(链路层帮手,广播域内);DNS 问“这个域名的 IP 是什么”(应用层,跨网络);DHCP 问“谁能给我一套网络配置”(开机入网)。判别线索:看解析的对象:域名→DNS、IP→MAC 是 ARP、要地址是 DHCP。


应用与考法

形态一:子网划分/聚合计算:2010-37、2012-39(广播地址 180.80.79.255)、2017-38、2018-38、2019-37、2021-35、2022-35/36、2023-39(/20 最小/最大可分配地址 168.16.80.1 / 168.16.95.254)、2009-47(划分 + 写路由表大题)、2013-47(聚合最简路由表大题)。

形态二:分片:2018-47、2021-36、2024-47(FTP 场景 MTU=1000 与 TCP 综合)。

形态三:路由算法与协议:2010-35、2014-42(OSPF 大题)、2016-37、2017-37(封装层)、2021-37、2024-47(RIP/OSPF/BGP 选择与会话大题)。

形态四:辅助协议与综合:2010-36(ICMP 源点抑制)、2012-33/38、2015-47(DHCP+ARP+网关大题)、2022-47(DHCP Discover 广播)、2023-38(NAT)、2018-37(跨路由器的 MAC 重写)。

做题触发词:看到“掩码 + 一个 IP”→ 先求网络地址与广播地址;看到“划分 N 个子网”→ 借位 + 减 2;看到“MTU”→ 每片数据取 8 的倍数、偏移除以 8;看到“16”→ RIP 不可达;看到“目的 MAC”→ 想的是下一跳不是最终目的。

来源:真题markdown/2009-2024统考真题.md、2025 年真题 md;复习资料 P5 §1.3、模板 3–7。


前后联系

  • 向前依赖:CN-2(帧的封装与交换机;ARP 依赖广播域概念)、CN-0(分层与封装)。
  • 向后引出
    • IP 只到主机且不可靠 → CN-4 传输层(端口 + 可靠);
    • IP 地址从哪来 → DNS/DHCP(CN-5);一次完整通信中 IP 与 TCP、ARP、DNS 的接力 → CN-6 全景(2021-47、2022-47、2019-47、2020-47 历年大题都是这一层的综合应用);
    • 路由表查找 → 数据结构中的前缀树(2020-42 前缀编码大题暗合,X-8);
    • Dijkstra → DS-4 图的最短路径(同一算法,DS 与 CN 的交叉点)。

闭卷回忆链

  1. 交换机能连全世界吗?跨网络必须新增什么?(统一编址 + 选路)
  2. IP 地址怎么切分子网?为什么可用主机数要减 2?
  3. 路由表太大怎么办?聚合的规则和转发的匹配规则各是什么?(最长公共前缀 / 最长前缀匹配)
  4. IPv4 地址不够了有哪三代补丁?(子网划分 → CIDR → NAT)
  5. 大包过小网怎么办?片偏移为什么以 8 为单位?MF 和 DF 各管什么?
  6. 路由表是谁算出来的?DV 和 LS 各怎么“学地图”?(邻居换表 vs 泛洪 + Dijkstra)
  7. RIP 的 16 意味着什么?为什么大 AS 要用 OSPF?
  8. RIP、OSPF、BGP 分别封装在什么协议里?BGP 解决什么问题?
  9. IP 出错谁报告?拥塞丢包发什么 ICMP 报文?
  10. 主机怎么把 IP 变成 MAC?跨路由器时帧的目的 MAC 是谁?(下一跳;IP 不变、MAC 每跳重写)
  11. 新主机开机怎么拿到地址?(DHCP 四步,Discover 广播)
  12. 一个 IP 分组从源到目的,每一跳网络层和链路层各做了什么?(接 CN-6 全景)