当前位置: 首页 > article >正文

计算机网络-MPLS基础概念

早期传统IP报文依赖路由器查询路由表转发,但由于硬件技术存在限制导致转发性能低,路由器的查表转发成为了网络数据转发的瓶颈。因此旨在提高路由器转发速度的MPLS(Multi-Protocol Label Switching,多协议标签交换) 被提出。

随着设备硬件性能不断提升,MPLS在提高数据转发速度上的优势逐渐弱化,但其支持多层标签嵌套和设备内转控分离的特点,使其在VPN(Virtual Private Network,虚拟私有网络)QoS(Quality of Service,服务质量) 等新兴应用中得到广泛应用。

一、MPLS概述

1.1 传统IP路由转发的痛点

在传统IP路由中,数据报文经过每一台路由器时,都需要逐跳解封装并查找路由表,这一过程不仅重复且效率低下。具体特点如下:

  • 全网路由依赖:所有路由器必须知道全网路由信息。
  • IP头部处理效率低:IP头部不定长,处理效率低下。
  • 无连接性:传统IP转发面向无连接,无法提供良好的端到端QoS保证。

传统IP路由转发

依赖路由表

正是由于IP路由转发的这些特点,因此出现了MPLS多协议标签交换协议。

1.2 MPLS基本概念

MPLS位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务。通过在数据链路层和网络层之间增加额外的MPLS头部,基于MPLS头部实现数据快速转发。

MPLS以标签交换替代IP转发。标签是一个短而定长的、只具有本地意义的标识符。

MPLS起源于IPv4(Internet Protocol version 4),其核心技术可扩展到多种网络协议,包括IPv6(Internet Protocol version 6)、IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。MPLS中的"Multiprotocol"指的就是支持多种网络协议。

MPLS标签转发

1.3 MPLS基础术语概念

1.3.1 MPLS域与LSR

MPLS域(MPLS Domain):一系列连续的运行MPLS的网络设备构成的区域。

LSR(标签交换路由器):支持MPLS的路由器或交换机等网络设备。

  • LER(边沿路由器):位于MPLS域边缘,连接其他网络。
  • Core LSR(核心LSR):位于MPLS域内部。

就是支持MPLS的网络设备称为LSR,然后又类似OSPF区分了那些是在MPLS的边缘,那些是在MPLS内部分为LER边缘路由器和核心LSR,所有这些设备组成MPLS域。

MPLS域与LSR

1.3.2 LSR分类

除了安装设备的位置还可以安装对标签的处理方式进行划分,根据LSR在MPLS域中的位置和数据处理方式,可分为:

  • 入站LSR(Ingress LSR):负责向IP报文中压入MPLS头部。
  • 中转LSR(Transit LSR):负责标签置换操作,继续转发报文。
  • 出站LSR(Egress LSR):负责移除MPLS头部,还原为IP报文。

LSR分类

1.3.3 FEC(转发等价类)

FEC(Forwarding Equivalence Class):是一组具有某些共性的数据流的集合,这些数据流在转发过程中被网络节点以相同方式处理。

  • 在MPLS网络中,FEC可以通过多种方式划分,例如基于目的IP地址及网络掩码、DSCP等特征来划分。
  • 数据属于哪一个LSP,由数据进入MPLS域时的Ingress LSR决定。
  • MPLS标签通常是与FEC相对应的,必须有某种机制使得网络中的LSR获得关于某FEC的标签信息。

FEC示意图

在传统的采用最长匹配算法的IP转发中,匹配到同一条路由的所有报文就是一个转发等价类。在MPLS中,关于FEC最常见的例子是:目的IP地址匹配同一条IP路由的报文被认为属于同一个FEC。

关于FEC如果单看概念是不容易理解,可以理解为FEC简单的就是到达某个相同目的路由的一类数据包。在IP路由中通过静态路由ip route-static 192.168.1.0 24 10.0.0.1表示到达192.168.1.0/24网段的数据依据下一跳10.0.0.1进行转发,而在MPLS中也是类似的,匹配到目的地址192.168.1.0/24就分为一类FEC,这是最简单的表示,也可以进行细分。

1.3.4 LSP(标签交换路径)

LSP(Label Switched Path,标签交换路径) 是标签报文穿越MPLS网络到达目的地所走的路径。与上面的FEC进行相关联。同一个FEC的报文通常采用相同的LSP穿越MPLS域,所以对同一个FEC,LSR总是用相同的标签转发。

LSP示意图

  • 一条LSP包含一台入站LSR一台出站LSR以及数量可变的中转LSR,因此LSP也可以看做是这些LSR的有序集合。
  • LSP需要在数据转发开始前建立完成,只有这样报文才能顺利穿越MPLS域。
  • LSP可通过静态动态两种方式建立。
  • 需要注意的是,LSP是一个从"起点"到"终点"的单向路径,若需要双向数据互通,则需要在双方之间建立双向的LSP。

缺省情况下MPLS的每个LSR路由器都对标签进行处理也就是每个路由器都验证标签,LSP就是每一个LSR路由器处理过程的路径,而且标签是没有方向的,也就是来回数据都需要LSP。

小结:从上面我们可以知道运行MPLS的网络设备组成MPLS域,而这些MPLS的设备称为LSR,根据对标签的处理分为入站LSR、出站LSR和中转LSR。到达同一目的网络的LSR路径的有序集合称为LSP(标签转发路径),LSP关联到FEC转发等价类进行分类,而且LSP是单向的,如果需要互相通信需要双向建立LSP。

二、MPLS标签

IP报文进入MPLS域之前,会被入站LSR压入MPLS头部(又叫MPLS标签),形成一个MPLS标签报文。一个标签报文可以包含一个或多个MPLS标签。

MPLS标签结构

2.1 标签结构

MPLS标签位于二层帧头部和IP头部之间,包含以下字段:

  • Label(标签值):20bit,用于标识FEC。
  • EXP(实验用途):3bit,主要用于CoS(服务质量)。
  • S(栈底位):1bit,栈底位,用于指示该标签头部是否为最后一层标签,长度1bit。如果该字段为1,则表示当前标签头部为栈底;如果该字段为0,则表示当前标签头部之后依然还有其他标签头部。
  • TTL(生存时间):8bit,防止报文在网络中无限循环。

2.2 标签栈

MPLS标签栈

  • MPLS支持一层或多层标签头部,这些标签头部的有序集合被称为标签栈(Label Stack)。
  • 当标签栈中存在多个标签时,这些标签的顺序是非常讲究的:
    • 栈顶标签:最靠近二层头部的标签,S字段为0。
    • 栈底标签:最靠近IP头部的标签,S字段为1。

通过前面标签结构中的S栈底为确定是否为栈顶或者栈底。当上层为MPLS标签栈时,以太网头部中的Type字段为0x8847,PPP头部中的Protocol字段为0x8281。

2.3 标签空间

前面我们讲了那么多的标签,那么标签究竟是怎样的呢?标签是一个短而定长的、只具有本地意义的标识符。标签空间就是指标签的取值范围,简单说标签就是一个数字,具有本地意义的数字。标签值的范围及规划如下:

MPLS标签空间

2.4 MPLS标签的处理

LSR对标签的操作类型包括标签压入(Push)标签交换(Swap)标签弹出(Pop)

  • LSR对标签的操作类型包括:
    • Push(标签压入):在报文进入MPLS域时,压入新的标签。
    • Swap(标签交换):在MPLS域内转发时,替换标签。
    • Pop(标签弹出):在报文离开MPLS域时,移除标签。

标签操作示意图

结合前面的入站LSR和出站LSR和转发LSR可以理解各个标签路由器对于标签的压入、转发、弹出,然后在最后一跳转换为平台的IP数据包。

总结:

  • MPLS通过标签转发显著提升了数据转发速度。
  • MPLS术语(如MPLS域、LSR、FEC、LSP)是理解MPLS的关键。
  • MPLS标签的结构和操作机制是实现高效转发的核心。

通过本章的学习,我们对MPLS的基本概念、术语和标签有了全面的了解,可以知道传统IP转发路由器需要每次进行查找路由表匹配到数据包然后进行转发,而MPLS只要规划好LSP和FEC只对标签进行处理即可,是执行压入标签、转发标签还是弹出标签就行相对来说效率更高。

相关文章:

计算机网络-MPLS基础概念

早期传统IP报文依赖路由器查询路由表转发,但由于硬件技术存在限制导致转发性能低,路由器的查表转发成为了网络数据转发的瓶颈。因此旨在提高路由器转发速度的MPLS(Multi-Protocol Label Switching,多协议标签交换) 被提…...

南京某企业面试题整理

[1]. 消息队列主要是传递什么消息的? 消息队列主要用于在不同的应用程序或服务之间传递异步消息。这些消息通常包含需要处理的数据或事件通知,使得系统能够解耦、提高并发性和可伸缩性。 消息队列中传递的常见消息类型包括: 事件通知&#…...

NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)

循环嵌套 循环嵌套的使⽤ while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决问题,就是我们所说的:循环嵌套。这三种循环都可以任意嵌套使⽤ ⽐如: 写⼀个代码,打印⼀个乘法⼝…...

数字化转型的深度思考与最佳实践

引言:数字化转型的时代背景 在数字经济迅猛发展的今天,数字化转型已成为企业生存和发展的必由之路。根据IDC的报告,到2025年,全球数字经济规模将超过23万亿美元,占GDP的比重将超过50%。然而,数字化转型并非…...

支持向量机原理

支持向量机(简称SVM)虽然诞生只有短短的二十多年,但是自一诞生便由于它良好的分类性能席卷了机器学习领域。如果不考虑集成学习的算法,不考虑特定的训练数据集,尤其在分类任务中表现突出。在分类算法中的表现SVM说是排…...

LLM - 理解 DeepSeek 的 GPRO (分组相对策略优化) 公式与源码 教程(2)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145640762 GPRO,即 Group Relative Policy Optimization,分组相对的策略优化,是 PPO(Proximal Policy Optimiz…...

通过用户名和密码登录服务器有哪些方法

通过用户名和密码登录到服务器的方式取决于你使用的工具和协议。以下是几种常见的方法: 1. 使用 SSH 登录到 Linux 服务器 你可以通过 SSH(Secure Shell)使用用户名和密码连接到远程服务器。通常,你会使用 ssh 命令来进行连接。…...

基于springboot 以及vue前后端分离架构的求职招聘系统设计与实现

基于springboot 以及vue前后端分离架构的求职招聘系统设计与实现 随着互联网技术的飞速发展,求职招聘行业也在不断发生变革。传统的求职招聘方式往往存在着信息不对称、效率低下、交易成本高等问题,导致企业的招聘成本增加,求职者的体验下降…...

Spring Boot整合协同过滤算法,实现个性化推荐

1. 引言 在这篇文章中,我们将展示如何使用 Spring Boot 框架与 协同过滤算法 相结合来构建一个简单的推荐系统。推荐系统广泛应用于电商、电影推荐、社交平台等领域。协同过滤算法通过分析用户行为,找出相似的用户或者物品,从而实现个性化推荐…...

自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 自己…...

光谱相机在天文学领域的应用

天体成分分析 恒星成分研究:恒星的光谱包含了其大气中各种元素的吸收和发射线特征。通过光谱相机精确测量这些谱线,天文学家能确定恒星大气中氢、氦、碳、氮、氧等元素的含量。如对太阳的光谱分析发现,太阳大气中氢元素占比约 71%&#xff0…...

深度卷积神经网络实战海洋动物图像识别

本文采用深度卷积神经网络作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv11以其高效的特征提取能力,在多个图像分类任务中展现出卓越性能。本研究针对5种海洋动物数据集进行训练和优化,该数据集包含丰富的海…...

MySQL-mysql zip安装包配置教程

网上的教程有很多,基本上大同小异。但是安装软件有时就可能因为一个细节安装失败。我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的。 安装环境:win11 1、下载zip安装包: MySQL8.0 For Windows zip包下载地址…...

Python爬虫实战:获取笔趣阁图书信息,并做数据分析

注意:以下内容仅供技术研究,请遵守目标网站的robots.txt规定,控制请求频率避免对目标服务器造成过大压力! 1. 环境准备与反爬策略 python import requests from bs4 import BeautifulSoup import pandas as pd import re import time import random from fake_useragent …...

redis底层数据结构——整数集合

文章目录 定义内部实现升级升级的好处提升灵活性节约内存 降级总结 定义 整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层…...

机器学习 网络安全

实现机械学习网络安全的流程 概述 在实现“机器学习 网络安全”这个任务中,我们需要经历一系列步骤,从数据准备、训练到模型评估。在这篇文章中,我将详细介绍每个步骤的具体操作,并附上相应的代码示例和解释。 步骤 下面是实现…...

ECP在Successfactors中paylisp越南语乱码问题

导读 pyalisp:ECP中显示工资单有两种方式,一种是PE51,一种是hrform,PE51就是划线的那种, 海外使用的比较多,国内基本没人使用,hrform就是pdf,可以编辑pdf,这个国内相对使用的人 比…...

PDF另存为图片的一个方法

说明 有时需要把PDF的每一页另存为图片。用Devexpress可以很方便的完成这个功能。 窗体上放置一个PdfViewer。 然后循环每一页 for (int i 1; i < pdfViewer1.PageCount; i) 调用 chg_pdf_to_bmp函数获得图片并保存 chg_pdf_to_bmp中调用了PdfViewer的CreateBitmap函数…...

【C/C++】联合体

零.导言 在学习了结构体和位段后&#xff0c;聪明的你一定意识到了像这样的数据结构一定还有很多。没错&#xff0c;和结构体相似的数据结构还有联合体。 一.什么是联合体&#xff1f; 联合体&#xff0c;顾名思义&#xff0c;和其成员的储存性质相关。联合&#xff0c;是指联合…...

本地部署DeepSeek集成VSCode创建自己的AI助手

文章目录 安装Ollama和CodeGPT安装Ollama安装CodeGPT 下载并配置DeepSeek模型下载聊天模型&#xff08;deepseek-r1:1.5b&#xff09;下载自动补全模型&#xff08;deepseek-coder:1.3b&#xff09; 使用DeepSeek进行编程辅助配置CodeGPT使用DeepSeek模型开始使用AI助手 ✍️相…...

无人机雨季应急救灾技术详解

无人机在雨季应急救灾中发挥着至关重要的作用&#xff0c;其凭借机动灵活、反应迅速、高效安全等特点&#xff0c;为救灾工作提供了强有力的技术支撑。以下是对无人机雨季应急救灾技术的详细解析&#xff1a; 一、无人机在雨季应急救灾中的应用场景 1. 灾情侦查与监测 无人机…...

DeepSeek本地化部署【window下安装】【linux下安装】

一、window 本地安装指导 1.1、下载window安装包 https://ollama.com/download/OllamaSetup.exe 1.2、点击下载好的安装包进行安装 检测安装是否成功&#xff1a; C:\Users\admin>ollama -v ollama version is 0.5.7有上面的输出&#xff0c;则证明已经安装成功。 配置…...

Ae:常见的光照控件和材质控件

在 After Effects中&#xff0c;几种模拟效果都有类似的光照控件和材质控件&#xff0c;比如&#xff0c;焦散、卡片动画、碎片等。 光照控件和材质控件允许用户模拟不同光源、阴影和高光效果&#xff0c;控制表面反射特性&#xff0c;从而实现真实的光照和反射模拟。适用于材质…...

【鸿蒙开发】第三十章 应用稳定性-检测、分析、优化、运维汇总

目录​​​​​​​ 1 概述 2 使用Asan检测内存错误 2.1 背景 2.2 原理概述 2.3 使用约束 2.4 配置参数 2.4.1 在app.json5中配置环境变量 2.4.2 在Run/Debug Configurations中配置环境变量 2.5 Asan使能 方式一 方式二 运行ASan 2.6 ASan异常检测类型 heap-buf…...

紫光展锐蜂窝物联网芯片V8850荣获国密一级安全认证

近日&#xff0c;紫光展锐蜂窝物联网芯片V8850荣获国密一级认证&#xff0c;标志着展锐V8850在安全能力方面获得权威认可&#xff0c;位居行业领先水平。这是紫光展锐继短距物联网芯片V5663在2020获得ARM PSA Level 2认证&#xff0c;蜂窝物联网芯片V8811在2021年获得ARM PSA L…...

在freertos中,中断优先级和任务优先级之间的关系和使用方法

中断优先级和任务优先级如何匹配&#xff1f;任务优先级不同任务之间该用多高的优先级&#xff1f;中断优先级不同中断中该用多高的优先级&#xff1f;中断优先级和任务优先级设置时&#xff0c;怎样设置可以让任务在调度时屏蔽中断&#xff1f;怎样设置可以让任务在调度时&…...

Linux软件编程:IO编程

IO&#xff08;linux输入输出&#xff09; 1. IO概念&#xff1a; I&#xff1a;输入 O&#xff1a;输出 Linux 一切皆是文件 屏幕 -> /dev/tty 磁盘 -> /dev/sda 网卡 键盘 -> /dev/event 鼠标-> /dev/mice 都是一个文件 2. IO操作的对象&#xff1a; 文件 3. 文…...

2025-2-14算法打卡

一&#xff0c;右旋字符串 1.题目描述&#xff1a; 字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k&#xff0c;请编写一个函数&#xff0c;将字符串中的后面 k 个字符移到字符串的前面&#xff0c;实现字符串的右旋转操…...

在 debian 12 上安装 mysqlclient 报错

报错如下 Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting mysqlclientUsing cached https://pypi.tuna.tsinghua.edu.cn/packages/61/68/810093cb579daae426794bbd9d88aa830fae296e85172d18cb0f0e5dd4bc/mysqlclient-2.2.7.tar.gz (91 kB)Installi…...

javaEE2

maven 搭建 前后端交互 HTML servlet 后台和数据库交互 servlet jdbc 未来 servlet-->springmvc jdbc-->mybatis-->mybatisplus/jpa javaee-->spring-->springboot SERVLET tomcat ~Apache 服务 Apache(音译为阿帕奇)是世界上使用排名第一的Web服务器…...