前言
前面四章讲的是“数据通信是什么、网络怎么搭、以太网怎么走、TCP/IP 为什么赢”。这一章要回答一个更具体的问题:当 IP 网络的规模以指数级膨胀,路由器究竟该怎样把报文送到正确的目的地?
答案是两条路:一条是把 IP 路由本身做到极致——用优先级和最长匹配选出最优路径;另一条是干脆绕开 IP 逐位查表——用标签交换提升转发效率。而当两条路都撞上同一个瓶颈“最短路径未必是最佳路径”时,流量工程(TE)与源路由(SR)便依次登场。
本章沿着七条线展开,本质上是一部转发技术的进化史:
1. IP 简介——IP 地址、报文的收发过程与结构
2. IP 路由简介——路由表、动态路由协议、路由匹配原则
3. MPLS 的产生——路由表爆炸如何催生“标签交换”
4. MPLS 技术——FEC、标签、LSP、转发原理与 MPLS VPN
5. 最短路径之困——IP 和 MPLS 共同的技术瓶颈
6. RSVP-TE——流量工程的先驱
7. SR 入场——鱼和熊掌如何兼得
本章内容适用于通信行业入门读者,以及希望理解“报文如何在网络中高速转发”的工程师。
本章内容概览
本章共七节,是一条“从 IP 到 MPLS,再到 TE 与 SR”的技术演进主线:
|
章节 |
核心问题 |
关键技术 |
|
一、 IP 简介 |
报文长什么样、地址怎么编 |
IP 地址、 IPv4/IPv6 报文结构 |
|
二、 IP 路由简介 |
路由器怎么找路 |
路由表、 OSPF 、 BGP 、最长匹配 |
|
三、 MPLS 的产生 |
为什么要有标签交换 |
路由表膨胀问题 |
|
四、 MPLS 技术 |
标签交换怎么工作 |
FEC 、标签、 LSP 、 LDP 、 MPLS VPN |
|
五、最短路径之困 |
为什么最短 ≠ 最佳 |
流量工程 TE |
|
六、 RSVP-TE |
如何做流量工程 |
CR-LSP 、 RSVP-TE |
|
七、 SR 入场 |
如何既简单又可编程 |
SR-MPLS 、 SRv6 |
一、IP 简介
要理解报文如何在网络中高速转发,得先看清三件事:报文在分层模型里怎么收发、路由器怎么转发、“地址”到底是什么。
1.1 数据在 TCP/IP 模型中的收发
一条消息从计算机 1 发出、被计算机 2 接收,要经过“层层打包”与“逐层剥开”两个对称的过程——就像寄包裹时的层层封装、收包裹时的逐层拆解。
发送侧,数据自上而下逐层加上首部:
|
步骤 |
处理动作 |
|
应用层 |
产生应用程序数据,加上应用层首部( H5 ) |
|
传输层 |
加上传输层首部( H4 ) |
|
网络层 |
加上网络层首部( H3 ) |
|
链路层 |
加上链路层首部( H2 )与链路层尾部( T2 ) |
|
物理层 |
转换为比特流(如 10100110100101…110101110101 ),通过物理链路发送 |
接收侧则反向逐层剥离,最终还原出原始数据。这一“封装—解封装”的过程,正是所有网络分层的共同工作方式。
1.2 路由器的路由寻址与转发
报文进入路由器后,核心动作只有一句话:根据目的 IP 地址查路由表,找到出端口。
具体流程是:物理层与入端口数据链路层把帧“装入”并取出 IP 报文 → 网络层根据目的 IP 地址查询路由表,确定出端口 → 出端口数据链路层重新封装后发出。整个过程“逐跳”重复,直到报文抵达目的网络。
1.3 IP 地址
IP 是一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异,用于互相通信和数据交换。
IP 地址的核心价值在于“屏蔽差异”——无论底层是以太网、Wi-Fi 还是光纤,上层看到的都是同一种地址形式。两个版本的地址空间差距悬殊:
|
版本 |
地址位数 |
地址总量 |
|
IPv4 |
32 位 |
2³² 个(约 43 亿) |
|
IPv6 |
128 位 |
2¹²⁸ 个(近乎无限) |
1.4 IPv6 地址的三种格式
为了书写与兼容便利,IPv6 地址支持三种表现格式:
|
格式 |
规则 |
示例 |
|
展开格式 |
每部分中的前导 “0” 可以省略 |
2001:0DB8:130F:0000:0000:09C0:876A:130B → 2001:DB8:130F:0:0:9C0:876A:130B |
|
压缩格式 |
将多个连续为 0 的片段替换为双冒号 :: ,且该双冒号只能出现一次 |
1000::1:0:0:1 → 1000:0:0:0:1:0:0:1 |
|
混合格式 |
同时包含 IPv6 地址和内嵌 IPv4 地址,常用于 IPv4/IPv6 过渡场景,形如 “IPv6 前缀 + IPv4 地址 ” |
::ffff:w.x.y.z |
1.5 IPv4 报文结构
IPv4 报文头由若干固定字段构成,其中包含 Version、IHL、Type of Service、Total Length、Identification、Flags、Fragment Offset、Time to Live、Protocol、Header Checksum、Source Address、Destination Address、Options、Padding 等字段。
其结构可以概括为:20 字节固定报头 + 最长 40 字节的可选字段。其中 TTL 最大取值 255,源/目的 IP 各占 32 位,Protocol 字段用于指示上一层协议类型。
1.6 IPv6 报文结构
IPv6 报文头则做了明显简化:基本报头字段包括 Version、Traffic Class、Flow Label、Payload Length、Hop Limit、Next Header、Source Address、Destination Address,其后可跟随扩展报头(Extension Headers)。
与 IPv4 相比,IPv6 的关键变化是:基本报头简化、扩展报头提升灵活性;源/目的 IP 均为 128 位;取消了首部检验和;用 Hop Limit 取代 TTL。
二、IP 路由简介
知道了报文长什么样,接下来的问题是:路由器凭什么找到正确的方向? 答案藏在它的“地图”与“选路规则”里。
2.1 路由表:路由器的“地图”
路由表是路由器的“地图”,存储目的地址/掩码、下一跳、出接口等信息。
路由器每收到一个报文,都会拿目的 IP 去这张“地图”上查一遍,从而决定把报文交给哪个下一跳、从哪个接口发出。
2.2 路由条目的三个来源
路由表中的条目按来源可分为三类:
● 直连路由:路由器接口直接相连的网段自动生成
● 静态路由:由管理员手工配置
● 动态路由:由路由协议自动学习生成
2.3 动态路由协议:IGP 与 EGP
动态路由协议按作用范围分为两大类:
|
类别 |
全称 |
运行范围 |
常见协议 |
|
IGP |
内部网关协议( Interior Gateway Protocol ) |
在一个 AS (自治系统)内部运行 |
RIP (路由信息协议)、 OSPF (开放式最短路径优先)、 IS-IS (中间系统到中间系统) |
|
EGP |
外部网关协议( Exterior Gateway Protocol ) |
运行于不同自治系统之间 |
BGP (边界网关协议),是目前最常用的 EGP 协议 |
2.4 OSPF 简介
OSPF 通过计算最短路径树,为 IP 网络提供高效、动态的路由更新机制,广泛应用于中大型企业网络中。它在选路时依据“开销(Cost)”这一度量值:
默认公式:Cost = 100Mbps ÷ 接口带宽
例如,带宽越高,Cost 越小,链路越“优先”。若 R1、R2、R3 分别对应研发部、财务部、测试部,则不同链路会因带宽差异得到 cost = 1、cost = 2、cost = 10 等不同取值——OSPF 正是用这个数值把“最优路径”量化出来的。
2.5 BGP 简介
BGP 工作在自治系统之间,处理的是“企业 A 如何经由多个运营商到达企业 B”这类跨域路由问题。它的选路规则比 OSPF 复杂,常见的有:
● 优选最高的 Preferred-Value 值
● AS-path 短的路由原则——经过的自治系统数量越少,路径越优先
2.6 路由器的路由匹配原则
当路由表中存在多条都能匹配目的 IP 的条目时,路由器按两条原则做选择:
第一,按路由优先级进行选择。 各路由协议(包括静态路由)都被赋予了一个优先级,当存在多个路由信息源时,具有较高优先级的路由协议发现的路由将成为最优路由。
第二,按最长匹配原则进行选择。 IP 路由的前缀由 IP 地址与掩码长度共同定义。最长匹配原则,指的是路由设备收到 IP 数据包时,会将数据包的目的 IP 地址同自己本地路由表中的所有表项进行逐位匹配,直至找到最为精确的那条进行转发。
各类路由的默认优先级如下(数值越小越优先):
|
路由协议或路由种类 |
优先级 |
|
DIRECT (直连路由) |
0 |
|
OSPF |
10 |
|
IS-IS |
15 |
|
STATIC (静态路由) |
60 |
|
RIP |
100 |
|
BGP |
255 |
三、最长匹配之困:MPLS 技术的产生
IP 路由机制运行了很多年,但一个结构性问题随着互联网的爆发式增长逐渐暴露出来。
Internet 实现了爆炸式的发展,IP 网络的规模以指数级的方式在不断增长,这就导致了当时路由器中的路由表的表项也变得日益庞大。一个大型网络中的核心路由器的路由表项数往往能达到数十万,甚至上百万的规模。
路由表越大,最长匹配的查找代价越高。每一次转发都要在数十万乃至上百万条表项里做逐位匹配,这对路由器的转发性能提出了极其苛刻的要求。
有没有一种办法,能让转发不再依赖庞大的 IP 路由表? 答案就是 MPLS——用“标签”替代“IP 查表”。
四、MPLS 技术
4.1 MPLS 的定位:“2.5 层”协议
MPLS 是一种利用标签来指导数据报文高速转发的协议,它叠加在数据链路层与网络层之间,所以也被称为“2.5 层”协议。它向下可以适配不同的数据链路层协议,向上兼容 IPv4、IPv6 等多种网络层协议。
“2.5 层”这个说法非常形象——它既不属于纯粹的链路层,也不属于纯粹的网络层,而是插在两者之间,成为一层通用的转发平面。
4.2 MPLS 转发 vs IP 转发
两者的根本差异在于转发的依据:
|
对比项 |
IP 路由方式 |
MPLS 方式 |
|
转发依据 |
目的地址 / 掩码(查 IP 路由表) |
标签(查标签转发表) |
|
转发表内容 |
目的地址 / 掩码 → 下一跳、出接口 |
入标签 / 出标签 → 下一跳、出接口、标签动作 |
|
匹配方式 |
最长匹配(逐位比较) |
精确匹配(标签值直接命中) |
|
转发效率 |
表项庞大时开销高 |
标签精确匹配,转发更快 |
在标签转发表中,一条典型表项形如“入标签 Label1 / 出标签 Label2 → 下一跳 10.2.2.1 → 出接口 Interface 2 → 标签动作 Swap”。
4.3 MPLS 的三个基本概念
理解 MPLS 需要先掌握三个核心概念:
FEC(转发等价类)——将具有相同转发处理方式的数据分组归为一类,MPLS 对相同 FEC 的分组采取完全相同的处理方式。其划分方式灵活,可基于源地址、目的地址等要素的任意组合。例如,所有目的地址为 10.1.1.0/24 网络的 IP 报文可以构成一个 FEC。
MPLS 标签——长度为 4 个 Byte 的标识符,具有本地路由器意义,用于唯一标识分组所属的 FEC。在一台设备上,一个 MPLS 标签只能代表一个 FEC。
LSP(Label Switched Path,标签交换路径)——属于同一 FEC 的报文(即封装了 MPLS 标签的报文)在 MPLS 域内转发所经过的路径,是一条从入口到出口的单向通道。
4.4 MPLS 标签封装结构
一个 4 字节的 MPLS 标签,内部被精确切分为四个字段:
|
字段 |
位宽 |
含义 |
|
Label |
20 bit (第 0 ~ 19 位) |
标签值域 |
|
TC |
3 bit (第 20 ~ 22 位) |
流量等级 |
|
S |
1 bit (第 23 位) |
栈底标识 |
|
TTL |
8 bit (第 24 ~ 31 位) |
与 IP 分组中的 TTL 意义相同 |
值得注意的是 TTL 字段——MPLS 标签里同样保留了 TTL,说明它并未放弃 IP 网络那套“逐跳递减、防止环路”的基本机制。
4.5 三种标签操作:PUSH / SWAP / POP
MPLS 标签操作对应报文在 MPLS 域中的三类动作:
|
操作 |
触发位置 |
动作 |
|
PUSH (压入) |
MPLS 边界设备(入节点) |
当 IP 报文进入 MPLS 域时,在报文二层首部和 IP 首部之间插入一个新标签 |
|
SWAP (交换) |
MPLS 域内设备(中间节点) |
根据标签转发表,用下一跳分配的标签替换 MPLS 报文的栈顶标签 |
|
POP (弹出) |
MPLS 边界设备(出节点) |
当报文离开 MPLS 域时,将 MPLS 报文的标签去掉;或在倒数第二跳节点处去掉栈顶标签,减少标签栈中的标签数目 |
报文在 MPLS 域中的封装形态也随之变化:链路层首部 → 标签 → 三层首部 → 三层载荷。
4.6 MPLS 转发原理与网络结构
MPLS 网络中的设备按其位置有不同的角色划分:
|
角色 |
全称 |
说明 |
|
LSR |
标签交换路由器( Label Switching Router ) |
支持 MPLS 的网络设备 |
|
Core LSR |
核心 LSR |
MPLS 域内部的 LSR |
|
LER |
标签边缘路由器( Label Edge Router ) |
位于 MPLS 域边缘、连接其他网络的 LSR |
对应到 LSP 路径上,三个关键节点是:
● 入节点 Ingress:报文进入 MPLS 域的位置(PUSH 标签)
● 中间节点 Transit:MPLS 域内部转发(SWAP 标签)
● 出节点 Egress:报文离开 MPLS 域的位置(POP 标签)
PHP(倒数第二跳弹出)是一项重要优化:让倒数第二跳提前弹掉标签,从而减少出节点的负担。
4.7 LSP 的建立:静态与动态
MPLS 依靠标签交换来指导数据报文转发,因此 LSP 的建立过程,实际上就是沿途 LSR 为特定 FEC 确定标签的过程。LSP 的建立分为两种方式:
静态 LSP——管理员通过手工为各个 FEC 分配标签而建立。手工分配标签需要遵循一条原则:上游 LSR 出方向的标签值,等于下游 LSR 入方向的标签值。
动态 LSP——各 LSR 通过标签发布协议动态生成和发布标签而建立,下游 LSR 向上游 LSR 发送标签时需要依赖 IP 路由。MPLS 支持多种标签发布协议,例如:
● LDP(Label Distribution Protocol,标签分发协议)
● RSVP-TE(Resource Reservation Protocol Traffic Engineering,基于资源预留协议的流量工程)
● MP-BGP(Multiprotocol Border Gateway Protocol,多协议边界网关协议)
4.8 LDP 标签分发协议
LDP 是 MPLS 体系中非常重要的一种标签发布控制协议,负责 FEC 的分类、MPLS 标签分配以及 LSP 的动态建立和维护等操作,规定了标签分发过程中的各种消息以及相关处理过程。
两台 LSR 建立 LDP 会话的过程,是一个清晰的五步握手:
|
步骤 |
动作 |
|
① |
互相发送 Hello 消息 |
|
② |
建立 TCP 连接 |
|
③ |
主动发送 Initialization 消息 |
|
④ |
发送 Initialization 和 Keepalive 消息;若拒绝则发送 Notification 消息 |
|
⑤ |
接受则发送 Keepalive 消息;不接受则发送 Notification 消息 |
可以看到,LDP 建立在 TCP 之上,通过 Hello 发现邻居、通过 Initialization/Keepalive 协商与保活。
4.9 MPLS VPN:标签隧道的经典应用
MPLS 的标签转发机制本质上是一种隧道技术,它还支持封装多层标签,因此,业界基于 MPLS 技术开发出了多种多样的 MPLS VPN 方案。
VPN 的基本模型中有三个角色:
|
角色 |
全称 |
说明 |
|
CE |
用户网络边缘设备( Customer Edge ) |
用户侧的网络边缘设备 |
|
PE |
服务提供商网络的边缘设备( Provider Edge ) |
运营商侧接入用户的边缘设备 |
|
P |
服务提供商网络中的骨干设备( Provider ) |
运营商骨干网内部设备 |
MPLS VPN 的精妙之处在于双层标签:
|
标签层 |
作用 |
|
外层标签(隧道标签) |
指示 PE1 → PE2 的路径,用于骨干网传输 |
|
内层标签( VPN 标签) |
指示报文所属的 VPN 实例,用于标识用户业务、实现业务隔离 |
也就是说,外层负责“怎么走”,内层负责“是谁的”——两个正交通道叠加在一起,就把“大网传输”和“多租户隔离”这两件事同时解决了。
五、真实世界的痛点:最短路径 ≠ 最佳路径
5.1 导航系统的类比
IP 和 MPLS 有一个共同的通病:最短路径未必是最佳路径。
用导航来类比最直观——从 A 地到 B 地,导航给出的“最短路径”是 25 分钟,但那条路可能正在堵车;另一条路要多绕一点(30 分钟),反而一路畅通。如果所有车都被导航塞进同一条“最短”的路,这条路必然堵死。
网络上面临的正是同样的问题。IP 和 MPLS 的选路都只考虑“路径长度/开销”,不考虑“这条路还有多少带宽可用”。这需要引入 TE(Traffic Engineering,流量工程) 来动态调度。
5.2 一个具体的拥塞场景
设想一个真实网络:Router A 到 Router G 之间存在两条可达路径——
● 路径一:A - B - C - F - G
● 路径二:A - B - D - E - F - G
其中链路 Cost 均为 10,但带宽不同:一条带宽 100M,另一条带宽 40M。同时网络上跑着两股流量:流量 A 为 40M,流量 B 为 70M。
问题来了——由于两条路径 Cost 相同,按最短路径选路机制,路由器会把两条流量都往同一条路径上送(或出现不均衡的分配),结果就是某条链路被压满、另一条却闲着。这正是“面向流量”的调度与“面向资源”的现状之间的错位:
|
视角 |
关注点 |
|
面向流量 |
每条流需要多少带宽、什么优先级 |
|
面向资源 |
每条链路有多少剩余带宽、当前负载多少 |
流量工程要做的,就是把这两个视角对齐。
六、RSVP-TE:流量工程的先驱
6.1 MPLS TE 基本概念
MPLS TE 的核心思想是通过实时监控网络的流量和网络单元的负载,动态调整流量管理参数、路由参数和资源约束参数等,使网络运行状态迁移到理想状态,优化网络资源的使用,避免负载不均衡导致的拥塞。
MPLS TE 本质上还是利用 MPLS 的 LSP 作为数据传输的通道,但它会把多条 LSP 联合起来使用,并将这些 LSP 与一个虚拟隧道接口关联起来——这样一组 LSP 隧道就称为 MPLS TE 隧道。
在实现上,MPLS TE 依赖几个关键构件:
|
构件 |
作用 |
|
CR-LSP (基于约束路由的标签交换路径) |
按约束条件(如带宽)计算出的 LSP |
|
隧道接口( Tunnel Interface ) |
将一组 LSP 与一个逻辑隧道路口关联 |
|
CSPF 算法 |
基于约束的最短路径优先算法,计算满足带宽约束的路径 |
|
OSPF TE / IS-IS TE |
泛洪链路带宽、负载等 TE 信息,供 CSPF 计算使用 |
6.2 MPLS TE 工作原理
MPLS TE 网络和普通 MPLS 网络的最大区别,就在于它需要实现对于路径和资源的端到端计算和规划,从而构建基于 CR-LSP 的 MPLS TE 隧道。
构建 MPLS TE 网络有两个核心问题:
1. 如何实现 MPLS TE 隧道的构建——即如何算出并建立一条满足约束的 CR-LSP
2. 如何将流量引入到 MPLS TE 隧道中进行转发——即如何让业务流量“走进”这条隧道
回答第一问靠 CSPF + RSVP-TE,回答第二问靠各种隧道引流机制(如静态路由、策略路由等)。
6.3 RSVP 与 RSVP-TE
这一组分两个层次来理解:
RSVP(资源预留协议) 是为集成服务模型而设计的,用于在访问 Internet 应用程序时获得不同的 QoS 服务等级。它通过 IPv4 或 IPv6 运行,并由接收端发起资源预留请求,在一条传输路径的各节点上进行资源预留。RSVP 不是路由协议,它的唯一工作是通告和维护网络中的预留资源。
RSVP-TE(针对流量工程扩展的资源预留协议) 在消息中引入新的对象用于发起标签请求和标签分配,从而建立 MPLS LSP,并考虑了带宽和亲和属性等路径约束信息,实现网络流量的路径规划和调优。
一句话区分:RSVP 管“预留资源”,RSVP-TE 在这个基础上加了“标签分配 + 路径约束”,从而能建带约束的 LSP。
6.4 基于 RSVP-TE 的 CR-LSP 建立过程
CR-LSP 的建立过程有三个鲜明特征:
● 单向:LSP 是单向通道
● 面向接收者:由接收端发起预留
● 使用“软状态”:需要周期性刷新维持状态
在节点上会涉及两类状态块——PSB 与 RSB。信令沿 Ingress → Transit → Egress 的路径逐跳传递,沿途各节点据此完成带宽预留与标签分配。
6.5 传统网络面临的四个问题
在 RSVP-TE 之后,业界逐渐发现传统承载网存在更深层的结构性问题,而这正是 SR 出场的背景:
|
问题 |
具体表现 |
|
IP 承载网的孤岛问题 |
MPLS 统一了承载网,但承载网之间是独立的 MPLS 域,相互分离,需要使用复杂的技术来互联,导致端到端业务的部署非常复杂 |
|
应用与承载网隔离 |
应用与承载网的解耦,导致网络自身的优化困难,难以提升网络的价值 |
|
IPv4 与 MPLS 的可编程空间有限 |
新业务需要在转发平面加入更多信息,但 IPv4 标准停止更新, MPLS 也只有 20 bit 的标签空间,且缺乏可扩展性,难以满足未来业务的网络编程需求 |
|
网络数据面和控制面紧密耦合 |
传统网络数据面和控制面紧密耦合,在演进上相互依赖,业务上线周期长,难以应对现在新兴业务快速发展的局面 |
四个问题指向同一个诉求:网络需要一种既简单、又可编程、还能端到端贯通的转发机制。
七、SR:鱼和熊掌如何兼得
7.1 SDN 与 SR
SDN(软件定义网络)通过借鉴计算机领域的通用硬件、软件定义和开源理念,来解决传统网络架构中网络设备硬件、操作系统和网络应用紧密耦合、相互依赖的问题。它的三个特征非常清晰:
● 控制平面与转发平面分离
● 逻辑上的集中控制
● 网络开放可编程
而 SR(Segment Routing,分段路由) 是一种源路由协议,其核心思想是:将网络报文转发路径切割为不同的分段,并在路径起始点往报文中插入分段信息指导报文转发。
7.2 SR 的核心思想
SR 的机制可以用“导航”来理解——不用每个路口都问路,而是出发前就把整条路线写进车票里。
|
要素 |
说明 |
|
分段( Segment ) |
把转发路径切成若干段 |
|
指令序列( Segment List ) |
在起始节点一次性插入,形成有序的 “ 指令清单 ” |
|
后续节点 |
只需按指令执行,无需再查庞大的路由表 |
这样一来,SR 同时获得了 IP 的简单性和 MPLS 的可编程性——这正是“鱼和熊掌兼得”的含义。
7.3 两条路线:SR-MPLS 与 SRv6
SR 的落地有两条技术路线:
|
路线 |
承载方式 |
特点 |
|
SR-MPLS |
复用 MPLS 标签栈承载分段列表 |
兼容现有 MPLS 网络,平滑演进 |
|
SRv6 |
用 IPv6 扩展报头承载分段列表 |
基于 IPv6 ,可编程能力更强,便于端到端跨域贯通 |
从 MPLS 到 SR,本质上是把“逐跳分布式计算路径”变成了“源端集中编程路径”。
本章总结
本章的核心知识点可以归纳为十五条:
1. IP 协议定位:作为网络层核心协议,屏蔽数据链路层差异,通过统一 IP 地址和路由方式实现报文逐跳传输
2. IPv4 地址:32 位,点分十进制格式(如 192.168.1.1),地址空间约 43 亿,已枯竭,NAT 技术只能缓解
3. IPv4 报文结构:含 20 字节固定报头 + 最长 40 字节可选字段;核心字段有 TTL(最大 255)、32 位源/目的 IP、Protocol(指示下一层协议)
4. IPv6 地址:128 位,冒分十六进制格式(如 AA22:BB11:1122:CDEF:1234:AA99:7654:7410),地址空间极大,支持展开、压缩、混合三种格式
5. IPv6 报文结构:基本报头简化,扩展报头提升灵活性;源/目的 IP 为 128 位,无首部检验和,用 Hop Limit 替代 TTL
6. 路由表作用:路由器的“地图”,存储目的地址/掩码、下一跳、出接口等信息
7. 路由条目来源:直连路由、静态路由、动态路由
8. MPLS 技术定位:“2.5 层”协议,向下适配 Ethernet、ATM 等数据链路层协议,向上兼容 IPv4、IPv6;用标签交换替代 IP 查表提升转发效率
9. MPLS 核心概念:FEC、标签(支持压入、交换、弹出操作)、LSP(标签交换路径)
10. MPLS 转发流程:入节点(LER)压入标签,中间节点(核心 LSR)仅替换标签,出节点(LER)弹出标签还原 IP 报文;可通过 PHP(倒数第二跳弹出)减少出节点负担
11. MPLS VPN 转发:双层标签,外层“隧道标签”用于骨干网传输,内层“VPN 标签”标识用户业务,实现业务隔离
12. TE(流量工程):实时监控链路带宽、负载,分配流量到最优路径,避免拥塞
13. MPLS TE 核心:基于 CR-LSP,结合 OSPF TE / IS-IS TE、CSPF 算法、RSVP-TE,实现带宽保障
14. RSVP-TE 功能:基于 RSVP 扩展,传递标签绑定消息时携带 TE 信息,建立 CR-LSP,考虑带宽等约束,优化流量路径
15. SR 核心思想:源路由协议,起始节点将转发路径切割为“分段”,插入“指令序列”(Segment List),后续节点仅执行指令
结语
这一章讲的其实是一条“简单—复杂—再简单”的技术曲线。
IP 路由足够简单,但面对爆炸式增长的路由表,简单变成了昂贵;MPLS 用标签替换最长匹配,把转发重新变快,却又继承了“只看最短路径”的短视;流量工程(RSVP-TE)解决了能不能调度的问题,却带来了协议复杂、路径计算沉重的新负担;直到 SR 出现,把路径规划从“逐跳协商”变成“源端写死”。
每一次演进,都是在“简单”和“可控”之间重新找平衡点。而本章反复出现的那句话,正是这条曲线背后的驱动力:
最短路径,未必是最佳路径。
理解转发技术的演进,就是理解网络如何在“够简单”和“够聪明”之间,一次次做出取舍。