当你在游戏里“五杀”时卡顿,当你在视频会议中突然掉线,这些抓狂瞬间的背后,大多是数据传输丢包或者延迟造成的。而如何保证不丢包、低延迟,MPLS(Multiprotocol Label Switching,多协议标签交换)和SR(Segment Routing,分段路由)这两种先进的传输技术就是关键“武器”。
今天我们要聊的两位主角MPLS和SR,就像网络世界的"老司机",用不同方式在数据高速路上运送你的每个比特。它们到底谁更胜一筹?让我们一探究竟!
1
MPLS是什么?
举例:想象你寄快递时填写的地址标签,MPLS就是给每个数据包贴上专属“目的地”。这个标签包含转发路径信息,路由器像智能分拣机一样,根据标签快速决定数据包去向。
MPLS采用简化的ATM(Asynchronous Transfer Mode,异步传输模式)技术,来完成L3和L2的转换,为每个IP数据包提供一个标签,与IP数据包一起封装到新的MPLS数据包,标签决定IP数据包的传输路径以及优先顺序。
MPLS路由器在IP数据包转发前仅读取包头标签,而不会去读取IP数据包中的IP地址等信息,因此数据包的交换转发速度大大加快,所以称MPLS为2.5层协议,如下图所示。
在MPLS的网络内(即MPLS域内),路由器之间运行MPLS标签分发协议(如LDP、RSVP等),使MPLS域内的各设备都分配到相应的标签。
IP数据包通过MPLS域的传播过程如下:
入口边界LER(标签边界路由器)接收数据包,为数据包分配相应的标签,用标签来标识该数据包。
主干LSR(标签交换路由器)接收到被标识的数据包,查找标签转发表,使用新的出栈标签代替输入数据包中的标签。
出口边界LER接收到该标签数据包,删除标签,对IP数据包执行传统的第三层查找。
举例:在视频会议场景中,数据包从深圳到长春经过10个节点:
传统路由方式在经过 10 个节点时需要查找 10 次 “地图”,这里的 “地图” 可以理解为路由表,每次查找路由表来确定数据包的下一跳。
MPLS只需在入口处为数据包贴上标签,后续节点就可以根据这个标签像接力赛一样快速传递数据包,无需再频繁查找路由表,大大提高了数据包的转发速度。
2
SR是什么?
这是因为MPLS的路径建立,控制中心要为每个站点规划路径,还要下发路径规划到每一个站点,每一个站点除了数据转发,还需要维护规划的路线和线路的状态。
为了更好的匹配高速5G,SR(Segment Routing,分段路由)技术应运而生。SR是一种基于源路由的隧道技术。
源路由允许在数据包的发送源头,即源节点,指定数据包的传输路径。具体来说,源节点可以指定数据包经过的部分路径节点,也可以指定全部路径节点,还可以定义数据包经过的链路信息。
如下图所示,假设给节点1~8依次分配Node SID(201~208),给节点4和7互联链路分配的Local Segment SID是507。那Segment List={204, 507, 208}描述了一条Node1→Node2→Node3→Node4→Node7→Node8的指定转发路径。
Push:表示将Segment插入到Segment List的头部,通常在入口节点执行。
Continue(Swap):表示当前Segment尚未完成,继续沿着当前路径转发。
Next(POP):表示当前Segment完成,激活下一个Segment继续转发。
数据包的转发流程描述如下:
数据包在Node1上被压入{204, 507, 208}的Segment List。
Node1提取栈顶SID 204,根据最短路径算法查找转发表,确定转发下一跳是Node2,由于Node2不是SID 204的最后一跳,因此Node1不弹出栈顶SID 204。
Node2收到该数据包时,提取栈顶SID 204,根据最短路径算法查找转发表,确定转发下一跳是Node3,由于Node3不是SID 204的最后一跳,因此Node2不弹出栈顶SID 204。
Node3收到该数据包时,提取栈顶SID 204,根据最短路径算法查找转发表,确定转发下一跳是Node4,由于Node4是SID 204的最后一跳,因此Node3弹出栈顶SID 204,暴露出新的栈顶SID 507。
Node4收到该数据包时,提取栈顶SID 507,根据最短路径算法查找转发表,确定转发下一跳是Node7,由于Node7是SID 507的最后一跳,因此Node4弹出栈顶SID 507,暴露出新的栈顶SID 208。
Node7收到该数据包时,提取栈顶SID 208,根据最短路径算法查找转发表,确定转发下一跳是Node8,由于Node8是SID 208的最后一跳,因此Node7弹出栈顶SID 208,将数据包转发给Node8。
举例:在始发地深圳,调度中心指定运输路径需经过武汉和北京到达长春。这种在始发站指定路径的方式就是源路由:在始发地(如深圳),SR的调度中心指定包裹要途经的部分或者全部的城市和路线信息,其他城市只需根据规划的路线直接转发。
3
MPLS和SR的区别
对比维度 | MPLS | SR |
---|---|---|
技术原理 | 基于标签交换技术,通过预先分配的标签转发数据包 | 基于源路由技术,由源节点指定分段路径(Segment List) |
架构复杂度 | 需要维护路径状态(控制平面复杂,依赖LDP/RSVP等协议) | 中间节点无状态,路径由源节点集中控制(控制平面简化) |
协议依赖 | 需要额外协议(如LDP、RSVP)建立标签转发路径 | 利用IGP扩展(如OSPF/ISIS)传播SID,无需独立协议 |
转发机制 | 逐跳标签交换(入口LER压入标签,中间LSR替换标签,出口LER移除标签) | 按Segment List逐段转发(栈顶SID指导路径,节点弹出已完成的SID) |
扩展性 | 在大规模网络中标签分发和维护成本较高 | 支持大规模网络,通过分段路径灵活控制流量 |
维护复杂度 | 需要维护标签分发协议和路径状态 | 中间节点无需维护路径状态,仅需支持SID解析 |
应用场景 | 传统企业网络、VPN服务、QoS保障 | 5G网络、SDN环境、大规模数据中心互联 |
怎么样?是不是一口气搞懂了MPLS和SR区别?