计算机网络笔记(二十七)——4.9多协议标签交换MPLS

4.9.1MPLS的工作原理

一、MPLS基本工作原理

MPLS(Multiprotocol Label Switching)是一种介于数据链路层和网络层之间的转发技术,通过固定长度的标签进行高速数据转发。其核心特点是通过预建立的标签交换路径(Label Switching Path, LSP)实现优化路由。

关键角色:

  1. LER(标签边缘路由器)
    • 入口LER(Ingress LER):压入(Push)初始标签
    • 出口LER(Egress LER):弹出(Pop)标签
  2. LSR(标签交换路由器):根据标签转发表进行标签交换

二、工作流程

控制面:

在这里插入图片描述

数据面:

在这里插入图片描述

三、核心处理机制

  1. 标签压入(Push)

    • 入口LER收到IP包后:
      在这里插入图片描述
  2. 标签交换(Swap)

    • 中间LSR根据标签转发表:

      输入标签20 → 输出标签30,接口Gi0/1
      
  3. 标签弹出(Pop)

    • 出口LER移除标签恢复原始IP包

四、标签格式

在这里插入图片描述

五、MPLS关键特性

  1. 转发优势

    • 基于固定长度标签的硬件转发(对比IP的最长前缀匹配)
    • 典型转发速度:100ns级 vs 传统路由器1μs级
  2. 服务支持

    • 流量工程(避免网络拥塞)
    • QoS服务等级保障
    • VPN跨域互连

六、典型应用场景

在这里插入图片描述

七、与传统IP转发对比

特性传统IP转发MPLS转发
转发依据目标IP地址固定长度标签
转发方式逐跳路由预建立LSP路径
流量控制基本路由选择支持流量工程
包头解析层次网络层(IP头)数据链路层与网络层之间

这种基于标签的交换机制使得MPLS在大型运营商网络和企业骨干网中广泛应用,特别适合需要服务质量保障和流量优化的场景。通过预建立的LSP路径,可以有效避免网络拥塞并实现快速故障恢复。

4.9.2MPLS首部的位置与格式

一、MPLS首部的位置

MPLS首部位于数据链路层(如以太网)首部和网络层(如IPv4/IPv6)首部之间,它用于标签交换,是MPLS网络中数据包转发的核心标识。

1. 数据包封装结构:

在MPLS网络中,数据包的封装顺序如下(以以太网为例):

[ 以太网头 | MPLS标签头 | IP头 | 数据 ]
  • 数据链路层首部(如以太网帧头):标识链路层信息(MAC地址等)。
  • MPLS标签头:添加的标签,用于标识转发路径。
  • 网络层首部(如IPv4/IPv6):原始IP头。

2. 典型场景示意图:

在这里插入图片描述

二、MPLS首部的格式

MPLS首部长度固定为 32位(4字节),由以下字段组成:

字段名长度(位)描述
Label20标签值,标识转发路径(范围:0-1048575)。
TC3流量类别(Traffic Class),用于服务质量(QoS)优先级控制。
S(Bottom of Stack)1栈底标志:1表示当前是最后一个标签,0表示后续还有更多标签(多层标签栈)。
TTL8生存时间,与IP头的TTL类似,每经过一个路由器减1,防止环路。

1. 首部结构示意图:

在这里插入图片描述

2. 关键字段说明:

  • Label(标签值)
    • 标签的取值范围为 02^20-1(即 0-1048575)。
    • 特殊标签(如隐式空标签3、显式空标签0)有特定用途。
  • TC(流量类别)
    • 用于标记流量优先级,常见的应用是区分服务(DiffServ)模型。
  • S(栈底标志)
    • 当多层标签栈存在时(如VPN或流量工程),此标志指明是否为最后一层标签。
  • TTL(生存时间)
    • 初始值为IP头TTL的一部分,或直接赋值。每经一跳减1,防止环路。

三、MPLS标签栈(多层标签)

在实际场景中(如VPN或跨域流量),数据包可能携带多层MPLS标签,形成 标签栈
示例结构:

[ 以太网头 | 外层MPLS标签头 | 内层MPLS标签头 | IP头 | 数据 ]
  • 外层标签(S=0)标识转发路径,交换机根据外层标签转发。
  • 内层标签(S=1)标识应用场景(如VPN实例)。

流程示意图:

在这里插入图片描述

四、MPLS网络中的操作

  1. 压入(Push):入口路由器为数据包添加标签。
  2. 交换(Swap):核心路由器根据标签转发表修改标签值。
  3. 弹出(Pop):出口路由器删除标签,还原原始IP包。

五、MPLS vs 传统IP路由对比

特性MPLS标签交换传统IP路由
转发依据标签值目的IP + 路由表
效率硬件快速匹配固定长度标签逐跳匹配IP地址(较慢)
功能扩展支持流量工程、VPN、QoS功能有限

4.9.3新一代的MPLS

新一代MPLS的核心改进方向

现代MPLS演进的主要方向:

  1. SR-MPLS(Segment Routing MPLS)
    通过引入段路由技术,简化传统MPLS的标签分配流程,原生支持流量工程和快速故障恢复。
  2. SDN与MPLS的结合
    通过SDN控制器集中化管理标签路径,提高网络灵活性。
  3. 服务增强
    支持更细粒度的QoS、低延迟转发(如5G承载网中的uFRR)。
  4. 虚拟化支持
    以MPLS为基础构建灵活叠加的网络架构(如EVPN over MPLS)。

新一代MPLS的关键技术细节

1. SR-MPLS的工作原理

SR通过“路径分段”代替传统的LDP/RSVP协议,标签由控制器或头节点统一分配:

  • Segment(段):分为前缀段(Node/Adjacency Segments)、绑定段(Binding Segments)。
  • 标签生成:由入口节点(Ingress)直接指定路径的段列表(Label Stack)。
  • 优势:避免分布式协议的开销,支持短路径和显式路径。

流程图示例(SR-MPLS标签分配与转发):

在这里插入图片描述

2. MPLS与SDN的融合架构

通过集中控制取代传统分布式信令协议(如LDP)的标签分配:

  • SDN控制器:计算最优路径,下发Flow Rule到LSR(标签交换路由器)。
  • 转发表简化:仅需按控制器指示匹配标签,无需维护复杂的路由协议状态。

架构图示例(SDN+MPLS):

在这里插入图片描述

3. 流量工程(MPLS-TE)的优化

新一代MPLS在流量工程中的改进:

  • 动态带宽调整:根据实时流量需求重优化路径。
  • 低延迟路径:通过显式路径配置。

流程示意图(动态流量调整):

在这里插入图片描述

4. MPLS在虚拟化网络中的应用(如EVPN)

通过MPLS构建叠加网络,支持多租户虚拟化(如云计算数据中心互联):

  • EVPN over MPLS:BGP协议分发MAC地址+MPLS标签。
  • 标签代表VXLAN VNI,实现跨数据中心的二层互通。

转发逻辑图(EVPN over MPLS):
在这里插入图片描述

与传统MPLS的核心对比

特性传统MPLS新一代MPLS
标签分发协议LDP/RSVP-TESegment Routing/SDN
控制平面分布式协议集中式SDN控制器
故障恢复速度秒级(依赖协议收敛)毫秒级(快速重路由)
流量工程能力静态路径配置动态实时优化
编程灵活性仅支持预定义策略可编程路径(P4/OpenFlow)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/81596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI 赋能 Copula 建模:大语言模型驱动的相关性分析革新

技术点目录 R及Python语言及相关性研究初步二元Copula理论与实践(一)二元Copula理论与实践(二)【R语言为主】Copula函数的统计检验与选择【R语言为主】高维数据与Vine Copula 【R语言】正则Vine Copula(一)…

【洛谷P3386】二分图最大匹配之Kuhn算法/匈牙利算法:直观理解

题目:洛谷P3386 【模板】二分图最大匹配 🥕 匈牙利算法本来是针对带权图最大匹配的,这里由于题目只是求最大匹配的边数,所以我们也只考虑无权的情况。 🚀 本文旨在服务于看了别的关于匈牙利算法的文章但不甚理解的童…

【数据结构】二分查找(返回插入点)5.14

二分查找基础版 package 二分查找; public class BinarySearch { public static void main(String[] args) { // TODO Auto-generated method stub } public static int binarySearchBasic(int[] a,int target) { int i0,ja.length-1; //设置指针初值 while…

Ubuntu 命令

Ubuntu 命令速查表​ ​分类​​命令​​功能描述​​示例/常用选项​​​​文件与目录​ls列出目录内容ls -a(显示隐藏文件); ls -lh(详细列表易读大小) cd切换目录cd ~(主目录); cd ..(上级…

Java集合框架详解与使用场景示例

Java集合框架是Java标准库中一组用于存储和操作数据的接口和类。它提供了多种数据结构,每种数据结构都有其特定的用途和性能特点。在本文中,我们将详细介绍Java集合框架的主要组成部分:List、Set和Queue,并通过代码示例展示它们的…

《Python星球日记》 第78天:CV 基础与图像处理

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、计算机视觉(CV)简介1. 什么是计算机视觉?2. 计算机视觉的应用场景3. 图像的基本属性a》像素(Pixel)b》通道(Channel)c》分辨率(Res…

LabVIEW在电子电工教学中的应用

在电子电工教学领域,传统教学模式面临诸多挑战,如实验设备数量有限、实验过程存在安全隐患、教学内容更新滞后等。LabVIEW 作为一款功能强大的图形化编程软件,为解决这些问题提供了创新思路,在电子电工教学的多个关键环节发挥着重…

【优选算法 | 字符串】字符串模拟题精选:思维+实现解析

算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟链表哈希表 在众多字符串算法题中,有一类题目看起来没有太多算法技巧,却经常让人“翻车”——那就是字符串模拟题。这类题型往往不依赖复杂的数据…

虚幻引擎5-Unreal Engine笔记之Default Pawn与GamMode、Camera的关系

虚幻引擎5-Unreal Engine笔记之Default Pawn与GamMode、Camera的关系 code review! 文章目录 虚幻引擎5-Unreal Engine笔记之Default Pawn与GamMode、Camera的关系1.Default Pawn与Camera的关系1.1. Default Pawn 是什么?1.2. Default Pawn 的主要组件1.3. Default…

HarmonyOs开发之———UIAbility进阶

谢谢关注!! 前言:上一篇文章主要介绍开发之———使用HTTP访问网络资源:HarmonyOs开发之———使用HTTP访问网络资源-CSDN博客 代码资源:https://download.csdn.net/download/this_is_bug/90841580 一、基本概念 UIAbility 是 HarmonyOS 应用的核心组件,负责用户界面的…

java实现根据Velocity批量生成pdf并合成zip压缩包

Velocity 模版操作 用的之前写好的: 传送门 其中需要新加一个转成输入流的方法 public static InputStream convertToPdf(StringWriter stringWriter) throws IOException {//将 HTML 转为字节流byte[] htmlBytes stringWriter.toString().getBytes(StandardCharsets.UTF_8)…

SCDN能够运用在物联网加速当中吗?

在当今的科技化时代当中,物联网已经广泛渗透在各个领域行业当中,随着物联网规模的不断扩大,数据信息的传输速度和网络稳定性成为企业需要重视的两点因素,而SCDN也成为安全内容分发网络作为一种融合了内容加速和安全防护的技术&…

二程运输的干散货船路径优化

在二程运输中,干散货船需要将货物从一个港口运输到多个不同的目的地港口。路径优化的目标是在满足货物运输需求、船舶航行限制等条件下,确定船舶的最佳航行路线,以最小化运输成本、运输时间或其他相关的优化目标。 影响因素 港口布局与距离…

Oracle物理恢复相关注意点

如果需要恢复的数据库或者数据文件不存在,则需要将全量备份集RESTORE[ 将全量备份集恢复到目标数据库中,称之为RESTORE。]到目标数据库中,然后再RECOVER[ 将增量备份集或者归档日志恢复到目标数据库中,称之为RECOVER。]增量备份集…

C++ string小记

#include<string> using std::string;string s1; string s2 "hello" //初始化一个hello字符串 string s3(5,a) //连续5个字符a组成的串&#xff0c;即aaaaa///字符串操作int length s1.size() //.size()求字符串长度char c1 s1[1]; //从下标0开始&#xf…

自然语言处理入门级项目——文本分类(预处理)

文章目录 前言1.数据预处理1.1数据集介绍1.2数据集抽取1.3划分数据集1.4数据清洗1.5数据保存 2.样本的向量化表征2.1词汇表2.2向量化2.3自定义数据集2.4备注 结语 前言 本篇博客主要介绍自然语言处理领域中一个项目案例——文本分类&#xff0c;具体而言就是判断评价属于积极还…

C++面试2——C与C++的关系

C与C++的关系及核心区别的解析 一、哲学与编程范式:代码组织的革命 过程式 vs 多范式混合 C语言是过程式编程的典范,以算法流程为中心,强调“怎么做”(How)。例如,实现链表操作需手动管理节点指针和内存。 C++则是多范式语言,支持面向对象(OOP)、泛型编程(模板)、函…

HTTP与HTTPS协议的核心区别

HTTP与HTTPS协议的核心区别 数据传输安全性 HTTP采用明文传输&#xff0c;数据易被窃听或篡改&#xff08;如登录密码、支付信息&#xff09;&#xff0c;而HTTPS通过SSL/TLS协议对传输内容加密&#xff0c;确保数据完整性并防止中间人攻击。例如&#xff0c;HTTPS会生成对称加…

PotPlayer 安装 madVR、LAV Filters 以提升解码能力和视频音频效果

PotPlayer自带的解码器并不是最好&#xff0c;如下两张截图都是出自 TOP GUN: Maverick 较暗、灰蒙蒙的一张&#xff0c;是安装插件之前明亮的一张&#xff0c;是安装插件之后 详细安装参考 https://www.bilibili.com/video/BV1UV5qzuE74?spm_id_from333.788.videopod.sectio…

深入理解 OpenCV 的 DNN 模块:从基础到实践

在计算机视觉领域蓬勃发展的当下&#xff0c;深度学习模型的广泛应用推动着技术的不断革新。OpenCV 作为一款强大且开源的计算机视觉库&#xff0c;其 DNN&#xff08;Deep Neural Network&#xff09;模块为深度学习模型的落地应用提供了高效便捷的解决方案。本文将以理论为核…