网络层

考点定位

  • 所属大纲章节:网络层的功能(转发与路由、虚电路与数据报);IPv4(分组格式、IPv4 地址与 NAT、ARP、DHCP、ICMP);IPv6(基本首部、地址、过渡);路由协议(RIP、OSPF、BGP、域内与域间);IP 组播;移动 IP;网络层设备;SDN 基本概念
  • 常见题型:选择题(首部字段辨析、协议归属、设备对比、路由协议特性);计算大题(分片、子网划分/CIDR、地址聚合设计);综合大题(跨网段通信中 IP 与 MAC 的变化、ARP 工作过程、路由表匹配转发)——这是 408 计网综合题的主场,与数据链路层的 MAC 帧配合出题
  • 考查频率:最高。网络层是 408 计网分值最重的一章,IP 地址计算与路由几乎每年必考,且综合题常以本章为核心组织

前置知识:分层与封装(计算机网络体系结构)、数据报存储转发(同上);MAC 帧结构与 MAC 地址(数据链路层)——本章"IP 不变、MAC 逐跳变化"的推演完全建立在 MAC 地址背景之上。

工程直觉迁移:你部署服务时配的 CIDR、安全组、路由表、traceroute 排障,全部是本章内容。本章任务是把这些运维直觉公式化、可计算化:任给一个 IP + 掩码,能在 30 秒内手工推出网络地址、广播地址、可用主机范围。

一、网络层的功能

1. 两大核心功能:转发与路由

网络层将源主机的分组通过路由器逐跳送达目的主机,靠两件分工明确的事:

  • 转发(forwarding):路由器收到分组后,根据转发表把分组从某个输入端口搬到某个输出端口。是单台路由器的本地动作,用硬件实现,纳秒级。数据平面的功能。
  • 路由(routing):路由协议(RIP/OSPF/BGP)在路由器之间交换信息,计算并生成路由表,进而得到转发表。是网络范围的全局动作,软件实现,秒级。控制平面的功能。

一句话区分:路由选路(生成表),转发走路(查表搬包)。SDN(见第七节)正是把这两件事在物理上彻底分开。

2. 网络层提供的服务:虚电路 vs 数据报

网络层向运输层提供服务的两种设计(延续体系结构中"服务"的定义):

虚电路服务:通信前先建立一条网络层逻辑连接(虚电路 VC),所有分组沿同一条路径按序到达,如 X.25、帧中继、ATM。可靠通信由网络负责。

数据报服务:无连接,每个分组独立选路、独立转发,可能失序、丢失,网络只"尽最大努力交付"(best-effort delivery),可靠通信由主机(运输层)负责。TCP/IP 网络层采用的就是数据报服务。

对比表(选择题高频):

对比维度虚电路服务数据报服务
连接的建立必须先建立虚电路不需要
目的地址仅连接建立时用;分组携带虚电路号 VCID每个分组携带完整目的地址
分组转发沿同一条虚电路,按序到达每个分组独立选路,可能失序
分组出错处理可由网络负责(可靠通信)网络尽力而为,主机负责(如 TCP)
路由器失效影响经过该路由器的虚电路全部中断后续分组可绕行,影响局部
网络复杂度/终端复杂度网络复杂、终端简单网络简单、终端复杂

互联网选择数据报的历史逻辑:让网络核心保持极简,把可靠性推给端系统——这是端到端原则的直接体现。

二、IPv4

1. IPv4 分组格式

IPv4 分组 = 首部 + 数据。首部前一部分固定 20 B(所有字段必需),后面可带可选字段(040 B),故首部长度 2060 B。首部格式(按 4 B 一行的 32 位视角):

逐字段考点(黑体为 408 高频):

字段长度考点
版本4 bitIPv4 取 4,IPv6 取 6
首部长度4 bit单位是 4 B("字"),取值范围 515,对应 2060 B;无选项时为 5
区分服务8 bit旧称服务类型 TOS,一般不用
总长度16 bit首部 + 数据的总字节数,上限 216−1=655352^{16}-1=65535 B,单位是 1 B
标识16 bit同一数据报的各分片标识相同,用于重装;不是"序号",与按序到达无关
标志3 bit只有 2 位有效:DF(Don't Fragment,置 1 则不许分片,遇小 MTU 丢弃并回 ICMP)、MF(More Fragment,"后面还有分片",最后一片 MF=0)
片偏移13 bit本片数据在原数据报数据部分的相对偏移,单位是 8 B;除最后一片外,每片数据长度必须是 8 B 的整数倍
TTL8 bit路由器每转发一次减 1,减为 0 就丢弃并向源点发 ICMP 时间超过——防止分组永久环路
协议8 bit上层协议:TCP=6,UDP=17,ICMP=1,OSPF=89,IGMP=2
首部校验和16 bit只校验首部,不校验数据;每台路由器 TTL 减 1 后重新计算(逐跳校验)
源/目的地址各 32 bit分组经过各路由器时始终不变(NAT 除外)

2. 分片与重装

背景:链路层帧的数据字段有上限(MTU,以太网 1500 B)。当数据报总长度超过出接口 MTU 时(且 DF=0),路由器将其分片;重装只在最终目的主机进行,中间路由器不重装(因为各片可能走不同路径)。

分片规则:

  1. 每片加上自己的 20 B 首部(若原首部含选项则各片同长,以 20 B 基本情形为主)
  2. 除最后一片外,每片数据部分长度必须是 8 B 的整数倍,且尽量装满
  3. 标识复制原值;中间片 MF=1,最后一片 MF=0;片偏移 = 本片数据在原数据中的起始字节 ÷ 8

例题(分片完整计算,模拟题):一个数据报总长度为 3820 B(首部 20 B,数据 3800 B),经过 MTU=1420 B 的链路,如何分片?

数据部分每片最多 1420−20=14001420-20=1400 B(1400 是 8 的倍数,合法)。3800=1400+1400+10003800 = 1400+1400+1000,共 3 片:

分片数据长度总长度标识MF片偏移(原数据位置 ÷ 8)
11400 B1420 BX10/8=00/8=0
21400 B1420 BX11400/8=1751400/8=175
31000 B1020 BX02800/8=3502800/8=350

验算套路:最后一片片偏移 ×8 + 其数据长度 = 原数据长度,即 350×8+1000=3800350\times8+1000=3800,成立。

常见坑:片偏移单位是 8 B 而不是 1 B(选择题最爱);总长度字段是"每片自身首部+自身数据",不是原数据报长度;MTU 减去的是首部 20 B 而非数据 1400 之外又扣错。

3. IPv4 地址:分类编址

IPv4 地址 32 位,点分十进制表示(每 8 位一组,0~255)。由网络号 + 主机号两级组成。分类编址(历史方案):

类别第一字节范围网络号位数最大网络数每网最大主机数备注
A1~1268126(27−22^7-2)224−22^{24}-20 保留、127 环回
B128~191162142^{14}216−22^{16}-2
C192~223242212^{21}28−2=2542^8-2=254
D224~239———组播地址,不标识主机
E240~255———保留实验

特殊地址(必背):

  • 主机号全 0:网络地址(代表网络本身,不能分给主机)
  • 主机号全 1:广播地址(对本网络所有主机广播)
  • 255.255.255.255:受限广播(本局域网广播,路由器不转发)
  • 0.0.0.0:本网络本主机(DHCP DISCOVER 中作源地址)
  • 127.x.x.x:环回测试
  • 私有地址(不可在公网路由):A 类 10.0.0.0/8;B 类 172.16.0.0~172.31.255.255(172.16.0.0/12);C 类 192.168.0.0/16

4. 子网划分与子网掩码

三级编址:在两级地址的网络号与主机号之间借出若干位作子网号,即"网络号 + 子网号 + 主机号"。子网划分对外仍表现为一个网络,对内细分。

子网掩码:32 位,网络号+子网号部分全 1,主机号部分全 0。例如借 3 位划分子网的 B 类地址掩码为 255.255.224.0。掩码可与 CIDR 记法统一书写:a.b.c.d/na.b.c.d/n 中 /n 表示掩码前 n 位为 1。

已知地址 + 掩码求网络/广播/主机范围——固定五步套路(本章所有计算题的母版):

第一步:写出 IP 地址的 4 组二进制(每组 8 位) 第二步:写出掩码二进制(/n 即前 n 个 1) 第三步:地址 AND 掩码 → 网络地址 第四步:网络地址的主机位全置 1 → 广播地址 第五步:夹在两者之间(不含两端)→ 可用主机范围,可用主机数 =2h−2=2^h-2(h 为主机号位数)

例题(五步套路演示,模拟题):主机 IP 为 192.168.10.70,掩码 255.255.255.192(/26),求网络地址、广播地址、可用主机范围。

步骤计算结果
1. 地址二进制11000000.10101000.00001010.01000110192.168.10.70
2. 掩码二进制11111111.11111111.11111111.11000000255.255.255.192(/26)
3. AND → 网络地址主机位归 0:…01000000192.168.10.64
4. 主机位全 1 → 广播…01111111192.168.10.127
5. 可用范围.65 ~ .126,共 26−2=622^6-2=62 台62 台

地址块与主机数的计算套路(反向问题):

  • 块大小口诀:/26 的块是 64(232−262^{32-26}),网络地址沿 64 的倍数对齐(0、64、128、192)
  • 要容纳 H 台主机:取主机号位数 h=⌈log⁡2(H+2)⌉h=\lceil \log_2(H+2) \rceil(加 2 是扣除网络地址与广播地址),掩码为 /(32−h)/(32-h)
  • 等分 2s2^s 个子网:掩码加 s 位(/n → /n+s),每个子网块大小为 232−n−s2^{32-n-s}

例题(子网划分,模拟题):把 194.24.0.0/24 划分为 4 个等大小子网,写出各子网的网络地址、广播地址与可用主机数。

借 2 位,/24 → /26,块大小 232−26=642^{32-26}=64:

子网网络地址广播地址可用主机范围可用主机数
1194.24.0.0/26194.24.0.63.1 ~ .6262
2194.24.0.64/26194.24.0.127.65 ~ .12662
3194.24.0.128/26194.24.0.191.129 ~ .19062
4194.24.0.192/26194.24.0.255.193 ~ .25462

5. CIDR 与路由聚合(超网)

CIDR(无分类域间路由):彻底抛弃 A/B/C 类,地址只写 a.b.c.d/na.b.c.d/n,斜线后 n 为网络前缀长度。 CIDR 把前缀相同的连续地址组织为地址块,n 越小块越大。两级地址→"网络前缀 + 主机号",且掩码位数任意——子网划分是 CIDR 的特例。

路由聚合(构成超网):路由器把前缀公共部分相同的多个地址块合并通告一个更短前缀的路由,减小路由表、隐藏内部细节。方法是取各地址块二进制的公共前缀。

例题(聚合完整计算,模拟题):某路由器连着 192.4.153.0/26 与 192.4.153.64/26 两个网络,如何向外部聚合通告?

步骤计算结果
1. 各块二进制(末字节)00000000 与 01000000前缀 26 位
2. 公共前缀前 25 位相同/25
3. 聚合网络地址公共前缀 + 主机位归 0192.4.153.0/25
4. 验证覆盖192.4.153.0∼192.4.153.127192.4.153.0\sim192.4.153.127 恰含两块正确

注意聚合陷阱:聚合块必须"恰好覆盖"欲聚合的所有块且尽量不引入多余地址;若两个块不连续(公共前缀切入了别的块),不能简单取公共前缀聚合,需分别通告或调整分配。

最长前缀匹配:路由表中同一目的可能命中多条路由(如 /16 与 /25 都匹配),转发时选前缀最长(最具体)的那条。这是 CIDR 时代的转发规则,也是选择题与综合题常客。

NAT(网络地址转换,简明掌握):私有地址出公网时由路由器把(私有 IP:端口)映射为(公网 IP:端口),维护转换表;NAPT 复用端口让多台主机共享一个公网地址。缺点是破坏端到端(外网不能主动进来)。ICMP 差错报文穿过 NAT 依赖关联表匹配,此处不展开。

6. ARP 协议

ARP(地址解析协议):已知同局域网内目的主机(或网关)的 IP 地址,求其 MAC 地址。完成网络层地址到链路层地址的映射(MAC 帧封装需要目的 MAC,见数据链路层)。

工作过程(分步):

  1. 主机查本机 ARP 高速缓存;命中则直接取 MAC 封装帧
  2. 未命中则发送 ARP 请求分组:源 IP/源 MAC 填自己,目的 IP 填要解析的 IP,目的 MAC 填 FF-FF-FF-FF-FF-FF,广播发出(封装在以太网帧中,帧类型 0x0806)
  3. 局域网内所有主机收到请求,只有目的 IP 匹配的主机单播回应 ARP 响应(帧类型 0x0806 之下为 ARP 应答),内容含自己的 MAC
  4. 请求方把 IP→MAC 映射写入 ARP 缓存(典型老化时间几分钟到几十分钟);响应方通常也顺手记录请求方映射
  5. 之后的数据通信直接查缓存封装

要点:ARP 请求是广播、响应是单播;ARP 解决的是同一局域网内的地址解析,跨网段时解析的是默认网关的 MAC。

跨网段通信全流程串讲(ARP + IP + 路由器,综合题母版,待动画化)

拓扑:主机 H1(IP 192.168.1.10/24,MAC M1M_1)——路由器 R(接口 f0/0:192.168.1.1,MAC R1R_1;接口 f0/1:10.0.0.1,MAC R2R_2)——主机 H2(IP 10.0.0.20/24,MAC M2M_2)。H1 首次向 H2 发送一个 IP 分组:

  1. 判网段:H1 用自己的掩码 /24 对目的 10.0.0.20 做 AND:10.0.0.0 ≠ 192.168.1.0,不同网络 → 交给默认网关(假设已配 192.168.1.1)
  2. ARP 网关:H1 查 ARP 缓存无 192.168.1.1 → 广播 ARP 请求"谁是 192.168.1.1" → R 从 f0/0 单播应答 R1R_1 → H1 缓存之
  3. H1 发送:IP 层源 192.168.1.10、目的 10.0.0.20(全程不变);以太网帧源 MAC M1M_1、目的 MAC R1R_1
  4. R 转发:R 收帧,验 MAC、剥去帧首尾得 IP 分组;查路由表(10.0.0.0/24 直连 f0/1)→ TTL 减 1、重算首部校验和 → 查 ARP 缓存无 10.0.0.20 → 在 f0/1 所在局域网广播 ARP → H2 应答 M2M_2 → R 从 f0/1 发出:帧源 MAC R2R_2、目的 MAC M2M_2;IP 源/目的仍不变
  5. H2 接收:验 MAC 是自己 → 交给 IP 层,目的 IP 是自己 → 上交运输层
  6. 回程对称:H2 → H2 先判网段(10.0.0.10? no——目的 192.168.1.10 不同网)→ ARP 解析网关 10.0.0.1 得 R2R_2 … 每一跳同理

逐跳变化总表(综合题答案模板):

帧所在链路源 IP目的 IP源 MAC目的 MAC
H1→R192.168.1.1010.0.0.20M1M_1R1R_1
R→H2192.168.1.1010.0.0.20R2R_2M2M_2
H2→R(回程)10.0.0.20192.168.1.10M2M_2R2R_2
R→H1(回程)10.0.0.20192.168.1.10R1R_1M1M_1

口诀:IP 端到端不动,MAC 跳到跳换。若中途经过多台路由器,则每个链路段源/目的 MAC 都换成该段的发送者/下一跳。此全流程建议做成动画逐步推进(当前为分步文字推演,待动画化)。

7. DHCP

DHCP(动态主机配置协议):主机接入网络后自动获取 IP 地址、子网掩码、默认网关、DNS 服务器地址等。应用层 C/S 协议,基于 UDP(服务器 67、客户 68 端口),408 中放在网络层章节讨论,因为它配置的就是网络层参数。

四步交互(DORA):

要点:DISCOVER 阶段客户机尚无 IP,用 0.0.0.0 作源、255.255.255.255 作目的(本网广播,DHCP 中继可跨网转发);分配有租用期,到期前续租(单播 REQUEST);每台服务器有一个 IP 地址池。

8. ICMP

ICMP(网际控制报文协议):让主机/路由器报告差错与异常,直接封装在 IP 分组中(协议字段=1)。分两大类:

ICMP 差错报告报文(五类):

类型触发场景
终点不可达路由器无法交付(网络/主机/端口不可达)
源点抑制因拥塞丢弃分组,令源点放慢(已废弃但仍列大纲)
时间超过TTL 减为 0 丢弃分组;或重装超时
参数问题首部字段有错
改变路由(重定向)告诉主机有更优的下一跳

不发送 ICMP 差错报告的四种情况(选择题高频):①对 ICMP 差错报告报文本身不再发;②对第一个分片之后的后续分片不发;③对具有组播地址的分组不发;④对特殊地址(127.0.0.1 / 0.0.0.0)的分组不发。

ICMP 询问报文:回送请求/应答(ping 用)、时间戳请求/应答。

ping 原理:向目的发ICMP 回送请求,对方返回回送应答,据此判断连通性并测往返时延。注意 ping 直接用 ICMP,不经过 TCP/UDP。

traceroute 原理(结合 TTL,综合题素材):源主机依次发送 TTL=1,2,3,… 的分组(Linux/Unix 传统上发 UDP 高端口包,Windows tracert 发 ICMP 回送请求)。第 k 跳路由器把 TTL 减为 0,丢弃并回 ICMP 时间超过差错报告,源由此逐跳"点名"沿途路由器地址;当分组到达终点(UDP 端口无人监听 / ICMP 应答返回),收到 ICMP 终点不可达(端口不可达)或回送应答,路径探测结束。

三、IPv6

1. 引入动机

IPv4 32 位地址约 43 亿,早已耗尽;NAT 破坏端到端、路由表膨胀。IPv6 把地址扩到 128 位,地址空间约 3.4×10383.4\times10^{38},同时简化首部以加快转发、内建安全与自动配置能力。

2. 基本首部特点

  • 固定长度 40 B(8 个字段),选项功能移出基本首部,放"扩展首部"链中(逐跳、路由、分片、认证等),路由器按需才处理,转发更快
  • 取消了首部校验和(减轻逐跳计算负担,链路层与运输层已有校验)
  • 分片只能由源主机进行,路由器不分片:源端用路径 MTU 发现,超长时分片信息放分片扩展首部
  • 增设流标号(Flow Label,20 位)支持资源预分配/QoS
  • 取消了"首部长度""标识/标志/片偏移(移入扩展首部)""校验和""区分服务改流量类别"等字段

3. 地址表示

128 位按 16 位一组共 8 组,冒号十六进制:2001:0DB8:0000:0000:0000:0000:0000:0123。两条压缩规则:

  1. 每组前导 0 可省略(0DB8→db8)
  2. 连续全 0 组可用 :: 代替,但整个地址只能用一次:2001:db8::123

零压缩考点::: 只能出现一次,否则无法还原。IPv6 没有广播,只有单播、组播、任播(anycast,发给组内"最近"一个成员)。

4. IPv4 与 IPv6 差异对比表

对比项IPv4IPv6
地址长度32 位,点分十进制128 位,冒号十六进制
基本首部20~60 B 可变40 B 固定
首部校验和有,逐跳重算取消
分片路由器可分片仅源主机分片(扩展首部承载)
选项首部内可选字段扩展首部
广播有取消,用组播/任播
QoS/流区分服务字段有限流标号
地址配置手工/DHCPSLAAC 自动配置 + DHCPv6

5. 过渡技术(三种)

  1. 双协议栈(双栈):主机/路由器同时运行 IPv4 与 IPv6 栈,按对端协议选择。最彻底但设备需双份协议栈
  2. 隧道:IPv6 分组整体作为数据封装进 IPv4 分组,穿过 IPv4 "隧道"到达对端后解封。用于 IPv6 孤岛穿越 IPv4 海洋
  3. 翻译(转换):NAT-PT / 网络地址协议转换类,IPv4 与 IPv6 分组在边界做首部与地址转换。仅 IPv4 主机与 IPv6 主机互通时使用

四、路由协议

1. 路由表与转发流程

路由器中每个路由表项至少含:目的网络地址 + 掩码(前缀)、下一跳地址、出接口,另有度量、管理距离等。路由表由路由协议(控制平面)生成,再导出为供高速查表的转发表。

转发一个 IP 分组的流程:

  1. 提取目的 IP D
  2. 逐项用表项的掩码 AND D,结果等于表项目的网络地址即匹配
  3. 多条匹配时取最长前缀;都不匹配则走默认路由(0.0.0.0/0);仍无则丢弃并回 ICMP 终点不可达
  4. 下一跳若是直连网络则直接 ARP 目的主机,否则 ARP 下一跳路由器;TTL−1、重算首部校验和、重组装 MAC 帧发出

路由分类:静态路由(人工配置,简单、省资源、不能自适应)与动态路由(协议自动学习)。动态路由又分域内(内部网关协议 IGP:RIP、OSPF)与域间(外部网关协议 EGP:BGP)。

2. RIP:距离向量路由

RIP(路由信息协议):基于 Bellman-Ford 距离向量算法;度量是跳数,每经过一个路由器加 1;最大跳数 15,16 表示不可达(限制了网络规模 ≤15 跳);仅和相邻路由器交换信息;每 30 s 发送整表;基于 UDP(端口 520)(应用层实现,RIP 报文经 UDP 封装)。RIP 是"坏消息传得慢"的典型(计数到无穷问题),收敛慢。

距离向量迭代计算(完整例题,模拟题):拓扑如下(边上数字为跳数,均为 1),求路由器 A 的距离向量逐轮收敛过程。

规则:每轮各路由器同时基于邻居上一轮的向量更新:distA(X)=min⁡N∈{B,D}(1+distN(X))\text{dist}_A(X)=\min_{N\in\{B,D\}}\big(1+\text{dist}_N(X)\big)。

A 的向量演化:

轮次到 B到 C到 D到 E说明
初始1∞1∞只知直连邻居
第 1 轮12(经 B 或 D)1∞B、D 初始也只知直连,E 尚未传到
第 2 轮1213(经 B 或 D)B、D 第 1 轮已学到 E=2
第 3 轮1213不再变化,收敛

可见距离向量的信息是一圈圈"扩散"的:k 跳外的网络要 k 轮才知道——这正是"坏消息传得慢"的根源:某链路断开后,误报的短距离要通过逐轮 +1 慢慢"膨胀"到 16 才判死。

水平分割防环说明:RIP 的经典环路场景——A→B 链路断开,B 从 A 学到"经 A 到 X",A 又从 B 学回"经 B 到 X",互相甩锅形成计数到无穷。水平分割(split horizon)规定:从某接口学到的路由信息,不再从同一接口发回去,从机制上切断"学来的信息原路弹回"这一环路;增强版毒性逆转则从该接口发回度量 16(毒化)的显式不可达信息,加速收敛。二者只防两节点环,多节点环仍需超时机制兜底。

3. OSPF:链路状态路由

OSPF(开放最短路径优先):基于链路状态算法。工作流程:

  1. 每台路由器用 Hello 分组发现邻居,测链路开销(可配置,与带宽相关,不限于跳数)
  2. 用洪泛(flooding)向本自治系统内所有路由器发送链路状态通告 LSA(描述"我和谁相邻、代价多少"),全网拓扑数据库(LSDB)最终一致
  3. 每台路由器基于 LSDB 用 Dijkstra 最短路算法以自己为根计算最短路径树,生成路由表
  4. 只有链路状态变化时才洪泛更新,且每 30 min 刷新一次;收敛快

Dijkstra 思想(回顾图的最短路径):维护已确定最短距离的集合 S,每轮从 S 外选距离最小的结点并入并松弛其邻边——每台路由器独立以自己为源点跑一次,得到全网的"最短路径树"。

细节:OSPF 直接用 IP 数据报封装(协议字段 89,不用 TCP/UDP);五种分组(Hello、数据库描述、链路状态请求、链路状态更新、链路状态确认);分区域:大网络切分为区域(Area),主干区域编号 0.0.0.0,区域内部只同步域内 LSA,大幅减少洪泛与计算量;多路访问网络选举 DR/BDR 减少邻接关系数。

4. RIP 与 OSPF 对比表(选择题高频)

对比项RIPOSPF
算法距离向量(Bellman-Ford)链路状态(Dijkstra)
度量跳数(最大 15)链路代价(可配带宽相关)
交换对象仅相邻路由器本区域内所有路由器(洪泛 LSA)
交换内容整张路由表链路状态(增量)
交换时机每 30 s 定期链路变化时(30 min 刷新)
承载UDP 520直接 IP 封装(协议 89)
收敛速度慢(坏消息传得慢)快
规模小网络大网络(分区域扩展)
环路问题存在,需水平分割/毒性逆转拓扑全知,天然无环

5. BGP 与域间路由

BGP-4(边界网关协议):域间(AS 之间)路由协议,当前互联网的实际标准。为什么域间不用 RIP/OSPF?——度量不再是唯一标准:AS 之间选路要考虑政治/商业策略(不经过某国网络、优先走付费对等)、AS 规模太大导致跳数/代价无意义。

BGP 采用路径向量协议:每个路由表项携带到达目的网络的完整 AS 路径序列(如 "AS1 AS5 AS9"),收到通告时看自己是否已在路径中即可避免环路;选择基于策略而非单纯度量。BGP 用 TCP(端口 179)承载;AS 之间用 eBGP,AS 内部边界路由器之间用 iBGP 传递外部路由。

域内 vs 域间总结:

维度域内(IGP)域间(EGP/BGP)
优化目标技术:性能(最短/最快)策略:政治、经济
算法距离向量/链路状态路径向量
代表RIP、OSPFBGP-4

五、IP 组播与移动 IP(按大纲了解层次)

IP 组播:一对多通信只发送一份分组,沿途路由器按需复制,比单播多次发送与广播都高效。

  • 组播地址:D 类 224.0.0.0 ~ 239.255.255.255(224.0.0.0/4);224.0.0.0/24 永久组播组(如 224.0.0.1 全主机、224.0.0.5 OSPF 路由器),不转发出本地网
  • IGMP(网际组管理协议):主机告知本地路由器加入/离开某组播组(成员管理),组播路由协议(如 PIM)负责在路由器间构建组播分发树
  • 以太网组播 MAC 映射:01-00-5E-xx-xx-xx,取组播 IP 地址低 23 位填入后 23 位(IP 有 28 位有效组标志,丢弃 5 位,故 IP 组与 MAC 组为 32:1 的非单射映射,网卡收到的组需再由 IP 层过滤)

移动 IP(了解):主机换网接入仍保持原 IP 可达。三要素:永久地址(归属地址)、归属代理、外部代理/转交地址。三阶段:①代理发现(获知归属/外部代理及转交地址)→ ②注册(向归属代理登记当前位置)→ ③隧道传送(通信对端仍发往永久地址,归属代理截获并用隧道封装转发到转交地址,由外部代理拆封交付)。回程由移动主机直接(或经反向隧道)发给对端。

六、网络层设备:路由器

1. 路由器的组成与功能

路由器 = 路由选择部分(控制平面) + 分组转发部分(数据平面):

  • 路由选择处理机:运行路由协议、维护路由表,还可运行网管;它的"表"是路由表(软件、面向路由计算)
  • 交换结构:把分组从输入端口搬到输出端口,三种实现——经存储器(早期,CPU 控制)、经总线(一次一个分组,速率受总线限制)、经互联网络(交叉矩阵)(可并行多条,高性能)
  • 输入/输出端口:完成物理层、链路层、网络层三级处理;输入端口可分布式查表转发,不必惊动中央处理机;排队与丢包发生在端口缓存

路由表 vs 转发表:路由表由路由协议生成(软件优化对象是收敛正确);转发表由路由表导出(硬件查表优化对象是匹配速度)。408 选择题常混用两词,但综合题里"路由器根据转发表转发"更严谨。

2. 路由器与(链路层)交换机对比(呼应数据链路层设备一节)

对比项路由器以太网交换机
工作层次网络层数据链路层
转发依据目的 IP 地址 + 掩码(最长前缀匹配)目的 MAC 地址(精确匹配)
地址性质IP 地址有层次、可聚合、逻辑地址MAC 地址平面、物理烧录
表内容与建立路由表,路由协议动态学习(或静态配置)MAC 地址表,自学习(帧源地址)
隔离冲突域隔离隔离
隔离广播域隔离不隔离
连接对象异构网络互联同类型局域网段
生成树需求无(靠 TTL 防环)需要 STP 防环

七、SDN 基本概念(按大纲了解)

传统路由器控制平面与数据平面在同一盒子里(协议计算与转发都在路由器上)。SDN(软件定义网络)把两者物理分离:

  • 远程控制器集中掌握全网视图、计算路由;网络设备退化为只执行查表转发的通用交换机
  • 控制器与设备间的南向接口标准是 OpenFlow:核心抽象是流表(Flow Table),每条表项 = 匹配字段 + 动作 + 优先级 + 计数器(如"匹配目的 IP 前缀 x → 从端口 y 转发");分组按优先级依次匹配流表,命中即执行动作(转发/丢弃/改写/上交控制器)
  • 优点:全网集中优化、网络行为可编程、新协议快速试验;北向 API 供上层应用编排网络
  • 代价:控制器单点风险、控制器与交换机之间时延影响反应速度

工程类比:OpenFlow 之于网络,近似"把每台设备变成白盒、把网络操作系统装进控制器"——你在云厂商控制台里写路由规则,本质就是 SDN 思想的产品化。

常见坑

  1. 片偏移单位 8 B、首部长度单位 4 B、总长度单位 1 B——三个单位必须分开记;"总长度 = 首部 + 数据"而"片偏移只算数据部分"
  2. TTL=1 的分组:到达路由器后减为 0 丢弃;到达目的主机则正常交付(不再转发)
  3. 首部校验和只校验首部且逐跳重算;IPv6 直接取消
  4. 分类编址判断类别的口诀看第一字节:A 1–126、B 128–191、C 192–223;D 类组播没有主机号概念,别往主机数公式里套
  5. /n 的可用主机数是 232−n−22^{32-n}-2,别忘了扣网络地址与广播地址;"需要 H 台"时是 2h≥H+22^h \ge H+2 不是 ≥H\ge H
  6. 聚合方向:子网划分是前缀变长(/24→/26,分),路由聚合是前缀变短(/26→/25,合);聚合必须连续且块对齐,否则出现"洞"
  7. ARP 解析的是下一跳(同网段为目的主机,跨网段为默认网关)的 MAC;ARP 请求广播、应答单播
  8. RIP "16 = 不可达",跳数上限 15;RIP 基于 UDP、BGP 基于 TCP、OSPF 直接 IP 封装——三者的承载方式是高频选择题
  9. ICMP 差错报告不对 ICMP 差错报告、非首片分片、组播、特殊地址发送
  10. IPv6 零压缩 :: 只能用一次;IPv6 取消广播、路由器不分片、无首部校验和
  11. 交换机隔离冲突域不隔离广播域;路由器两个都隔离;集线器两个都不隔离
  12. 转发用最长前缀匹配,不是"最匹配掩码最长数字最大的默认路由"

自测

  1. 数据报总长度 1500 B(首部 20 B),MTU=580 的链路上分片后第二片的片偏移与 MF 各是多少?
  2. 主机 172.16.7.165/255.255.255.240,其所在子网的网络地址、广播地址、可用主机数分别是多少?该地址按分类编址属于哪一类?
  3. 简述主机 A(跨网段)第一次 ping 主机 B 的完整过程中,共发生几次 ARP(设路径为 A—R—B,各缓存初始为空)?A 发出的第一个帧的目的 MAC 是谁?
  4. 为什么域间路由不采用 OSPF 而要设计路径向量的 BGP?
  5. 一个 IPv6 地址 0:0:0:0:0:0:128.10.2.1 的完整压缩写法是什么?它还能再压缩吗?

自测答案与简析

  1. 数据 1480 B,每片数据 ≤ 560 B:1480=560+560+3601480=560+560+360。第二片数据 560 B,片偏移 =560/8=70=560/8=70,MF=1(非最后一片)。考分片单位换算。
  2. /28 块大小 16,165 = 10×16+5,网络地址 172.16.7.160,广播地址 172.16.7.175,可用 .161~.174 共 14 台;B 类(128–191)。考五步套路与分类编址。
  3. 3 次:A 广播 ARP 解析网关 R 左接口;R 广播 ARP 解析 B;回程时 B 广播 ARP 解析 R 右接口(R 右接口的 ARP 缓存通常在收到 B 的应答时已顺带记录,但 B 自己解析 R 仍需一次)。A 发出的第一个帧(ARP 请求)目的 MAC 是 FF-FF-FF-FF-FF-FF。考 ARP 跨网段行为。
  4. 域间选路首要目标是策略(政治/商业)而非最短路径;AS 规模巨大、度量不可比;路径向量携带完整 AS 路径天然防环且便于施加策略。考域内/域间差异。
  5. ::128.10.2.1(IPv4 映射式末组保留点分十进制);不能再压缩,全 0 串已被 :: 使用过一次。考零压缩规则。