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

MPLS——多协议标签交换

目录

1 多协议标签交换 MPLS

1.1 MPLS 的工作原理

1.1.1 MPLS 工作特点

1.1.2 MPLS 协议的基本原理

1.1.3 MPLS 的基本工作过程

1.2 转发等价类 FEC 

1.2.1 FEC 用于负载平衡

1.3  MPLS 首部的位置与格式

1.3.1 MPLS 首部的位置

1.3.2 MPLS 首部的格式

1.4  新一代的 MPLS


1 多协议标签交换 MPLS

·MPLS (MultiProtocol Label Switching):互联网建议标准。

·多协议:在 MPLS 的上层可以采用多种协议。

·标签:MPLS 利用面向连接技术,使每个分组携带一个叫做标签 (label) 的小整数。标签交换路由器用标签值检索转发表,实现分组的快速转发。

·MPLS 并没有取代 IP,而是作为一种 IP 增强技术

·特点

        1.支持面向连接的服务质量;

        2.支持流量工程,平衡网络负载;

        3.有效地支持虚拟专用网 VPN。

1.1 MPLS 的工作原理

先看一下传统IP分组的转发:
 

传统IP分组的转发:

·当网络很大时,查找路由表要花费很多时间。

·在出现突发通信时,缓存会溢出,引起分组丢失、传输时延增大和服务质量下降。

1.1.1 MPLS 工作特点

        ·在 MPLS 域的入口处,给每一个 IP 数据报打上固定长度标签。

        ·对打上标签的 IP 数据报在第二层(链路层)用硬件进行转发。

        ·采用硬件技术对打上标签的 IP 数据报进行转发就称为标签交换

        ·可以使用多种数据链路层协议,如 PPP、以太网、ATM 以及帧中继等。

1.1.2 MPLS 协议的基本原理

MPLS 域

·MPLS 域 (MPLS domain) :指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持 MPLS 技术的标记交换路由器 LSR (Label Switching Router)。

·LSR 同时具有标记交换路由选择这两种功能。标记交换功能是为了快速转发,路由选择功能是为了构造转发表

1.1.3 MPLS 的基本工作过程

1.找出标签交换路径 LSP

        ·各 LSR 使用标签分配协议 LDP (Label Distribution Protocol) 交换报文,找出和标签相对应的标签交换路径 LSP (Label Switched Path)。整个标签交换路径就像一条虚连接一样。

2.打标签,然后转发

        ·入口节点 (ingress node) 给进入 MPLS 域的 IP 数据报打上标签(实际上是插入一个 MPLS 首部),并按照转发表把它转发给下一个 LSR。以后的所有 LSR 都按照标签进行转发。

        ·给 IP 数据报打标签的过程叫做分类 (classification)。

3.标签对换

        ·一个标签仅在两个 LSR 之间才有意义。

        ·LSR 要做两件事:转发,更新标记。

        ·更新标记:把入标记更换成为出标记。称之为标签对换 (label swapping)。

项目含义:从入接口 0 收到一个入标签为 3 的 IP 数据报,转发时,应当把该 IP 数据报从出接口 1 转发出去,同时把标签对换为 1。

4.去除标签

        ·当分组离开 MPLS 域时,MPLS 出口节点 (egress node) 把分组的标签去除。

        ·把 IP 数据报交付给非 MPLS 的主机或路由器。

·这种“由入口 LSR 确定进入 MPLS 域以后的转发路径”称为显式路由选择 (explicit routing)。

·与互联网中通常使用的“每一个路由器逐跳进行路由选择”有着很大的区别。

1.2 转发等价类 FEC 

·给 IP 数据报打标签的过程叫做分类 (classification)。

        ·第三层(网络层)分类:只使用 IP 首部中的目的 IP 地址等。

        ·大多数运营商实现了第四层(运输层)分类:除了要检查 IP 首部外,运输层还要检查 TCP 或 UDP 端口号

        ·有些运营商则实现了第五层(应用层)分类:进一步地检查数据报的内部并考虑其有效载荷

·转发等价类 FEC (Forwarding Equivalence Class) :路由器按照同样方式对待的分组的集合。

·按照同样方式对待含义:从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等。

例如:

(1) 目的 IP 地址与某一个特定 IP 地址的前缀匹配的 IP 数据报;

(2) 所有源地址与目的地址都相同的 IP 数据报;

(3) 具有某种服务质量需求的 IP 数据报。

·划分 FEC 的方法不受限制,由网络管理员来控制。

·入口节点并不是给每一个 IP 数据报指派一个不同的标签,而是将属于同样 FEC 的 IP 数据报都指派同样的标签。

·FEC 和标签是一一对应的关系。

1.2.1 FEC 用于负载平衡

自定义的 FEC 可以更好地管理网络的资源。这种均衡网络负载的做法也称为流量工程 TE (Traffic Engineering) 或通信量工程。

1.3  MPLS 首部的位置与格式

1.3.1 MPLS 首部的位置

·MPLS 不要求下层的网络都使用面向连接的技术。

·MPLS 采用封装技术:在把 IP 数据报封装成以太网帧之前,先要插入一个 MPLS 首部。

从层次的角度看,MPLS 首部处在第二层和第三层之间。

1.3.2 MPLS 首部的格式

给 IP 数据报打上标记就是在以太网帧首部和 IP 数据报首部之间插入一个 4 字节的 MPLS 首部。

(1) 标签值(占 20 位),可以同时容纳高达 220 个流(即 1048576 个流)。

(2) 试验(占 3 位)。保留用作试验。

(3) 栈S(占 1 位)。在有“标签栈”时使用。

(4) 生存时间 TTL(占 8 位),用来防止 MPLS 分组在 MPLS 域中兜圈子。

MPLS 存在的问题

        ·控制协议(如 LDP)比较复杂,扩展性差,运行维护较困难。

        ·协议 LDP 无法做到基于时延或带宽等要求的流量调度。

        ·为灵活地选择流量的转发路径,还需要再使用资源预留协议 RSVP。但是:

                ·RSVP 的信令非常复杂,每个节点都要维护一个庞大的链路信息数据库。

                ·RSVP 只会选择一条最优路径,不支持等价多路径路由选择 ECMP (Equal-Cost Multipath Routing) 。

1.4  新一代的 MPLS

·新一代的 MPLS:段路由选择协议 SR (Segment Routing)。

· (segment):标签,是转发指令的一种标识符。

·SR 工作原理:

        ·基于标签交换,但不需要使用协议 LDP。

       ·由源节点为发送的报文指定路径,并将路径转换成有序的段列表 (Segment List),即 MPLS 标签栈,它被封装在分组首部。

        ·网络中的其他节点就执行首部中的指令(即标签)进行转发。

控制器

·即 SDN 控制器。

·负责:

        ·收集并掌握全网的拓扑信息和链路状态信息,计算出分组应传送的整个路径。

        ·给分组分配 SR 标签,指明分组从源点到终点的路径。

SR 向 IPv6 演进,这就是 SRv6。

SRv6 直接利用 IPv6 字段作为标签寻址 (Locator)。

欢迎一起学习~

相关文章:

MPLS——多协议标签交换

目录 1 多协议标签交换 MPLS 1.1 MPLS 的工作原理 1.1.1 MPLS 工作特点 1.1.2 MPLS 协议的基本原理 1.1.3 MPLS 的基本工作过程 1.2 转发等价类 FEC 1.2.1 FEC 用于负载平衡 1.3 MPLS 首部的位置与格式 1.3.1 MPLS 首部的位置 1.3.2 MPLS 首部的格式 1.4 新一代的…...

Idea使用Lombok失效解决方案

问题描述 启动项目时,使用lombok插件中slf4g注解后其中的log显示找不到变量 解决方案 在以下位置加入该配置-Djps.track.ap.dependenciesfalse Preferences | Build, Execution, Deployment | Compiler 之后保存应用就好,亲测有效。...

Java实现网上药店系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 药品类型模块2.3 药品档案模块2.4 药品订单模块2.5 药品收藏模块2.6 药品资讯模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 药品表3.2.3 药品订单表3.2.4 药品收藏表3.2.5 药品留言表…...

谁是嫌疑犯问题

问题描述: 有6名犯罪嫌疑人A、B、C、D、E、F,已知如下事实: A、B至少有1人作案; A、E、F三人中至少有2人参与作案; A、D不可能是同案犯; B、C或同时作案,或与本案无关; C、D中…...

Netty中使用编解码器框架

目录 什么是编解码器? 解码器 将字节解码为消息 将一种消息类型解码为另一种 TooLongFrameException 编码器 将消息编码为字节 将消息编码为消息 编解码器类 通过http协议实现SSL/TLS和Web服务 什么是编解码器? 每个网络应用程序都必须定义如何…...

【漏洞复现】斐讯FIR151M路由器未授权下载漏洞

Nx01 产品简介 斐讯数据通信技术有限公司成立于2009年,是为用户提供智慧家庭领域智能产品和云服务的科技创新性企业。 Nx02 漏洞描述 斐讯 FIR151M路由器配置文件未授权下载漏洞,攻击者可利用该漏洞获取敏感信息。 Nx03 产品主页 fofa-query: app"PHICOMM-F…...

【SpringBoot】application配置(5)

type-aliases-package: com.rabbiter.cm.domaintype-aliases-package: 这个配置用于指定mybatis的别名,别名是一个简化的方式,让你在Mapper xml 文件中引用java类型,而不需要使用使用完整的类名。例如,如果你在 com.rabbiter.cm.d…...

Linux安全技术与iptables防火墙

一.安全技术: 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,…...

QT QCombox 样式表 比起作用

对QCombox在ui编辑器中进行美化,发现外表美化有效果,但下拉框的高度美化的没效果,查看样式表也没有没问题,样式表中内容如下。 QComboBox#curve_comboBox {min-width: 150px;min-height:40;max-width: 150px;max-height:40;borde…...

在 Windows 10 上使用 Visual Studio 2022 进行 C++ 桌面开发

工具下载链接:https://pan.quark.cn/s/c70b23901ccb 环境介绍 在今天的快速发展的软件开发行业中,选择合适的开发环境是非常关键的一步。对于C开发人员来说,Visual Studio 2022(VS2022)是一个强大的集成开发环境&…...

如何安装x11vnc并结合cpolar实现win远程桌面Deepin

文章目录 1. 安装x11vnc2. 本地远程连接测试3. Deepin安装Cpolar4. 配置公网远程地址5. 公网远程连接Deepin桌面6. 固定连接公网地址7. 固定公网地址连接测试 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂&#xff…...

C++基础入门Day1

C基础入门Day1 1.1 第一个C程序 编写一个C程序需要四个步骤 创建项目创建文件编写代码运行程序 1.1.1 创建项目 VS2022 1.1.2 创建文件 main.cpp 1.1.3 编写代码 注意&#xff1a;编写时键盘必须调整成英文 基本框架 #include <iostream> using namespace std…...

【高质量精品】2024美赛A题22页word版成品论文+数据+多版本前三问代码及代码讲解+前四问思路模型等(后续会更新)

一定要点击文末的卡片&#xff0c;进入后&#xff0c;即可获取完整资料后续参考论文!! 整体分析:这个题目是一个典型的生态系统建模问题&#xff0c;涉及到动物种群的性比例变化、资源可用性、环境因素、生态系统相互作用等多个方面。这个题目的难点在于如何建立一个合理的数学…...

Spark context stopped while waiting for backend

目录 报错信息 解决办法 解释 报错信息 Spark context stopped while waiting for backend 翻译过来就是 &#xff1a;Spark上下文在等待后端时停止 解决办法 通过在yarn-site.xml中添加如下配置项&#xff0c;并重启yarn&#xff0c;程序在 “–driver-memory 600m --e…...

保研机试算法训练个人记录笔记(三)

目录 基于范围的for循环 push_back return {it->second, i} 基于范围的for循环 for (const string& ageValue : age["Peter"]) 是C中的一种范围基于的for循环&#xff08;也称为基于范围的for循环&#xff09;&#xff0c;它用于遍历容器中的元素。在这个…...

2月6日作业

1.现有无序序列数组为23,24,12,5,33,5347&#xff0c;请使用以下排序实现编程 函数1:请使用冒泡排序实现升序排序 函数2:请使用简单选择排序实现升序排序 函数3:请使用快速排序实现升序排序 函数4:请使用插入排序实现升序排序 #include<stdio.h> #include<string.h&…...

rust给py写拓展如此简单

很久没写rust,主要是写业务逻辑实在用不上这高性能.不过惊奇发现rust和py结合的如此之好,记录下: 搞一个python环境,pip install maturin建立一个项目文件,cd进去 maturin init照着生成模版正常写rust,完毕后maturin develop,注意这个命令包括把拓展包安装到虚拟环境site pack…...

白嫖10款游戏加速器,一年都不用开会员!

过年期间你们是走亲串戚还是窝家玩游戏、追剧&#xff1f;相信很多小伙伴都不会放过这个难得的假期&#xff0c;肯定是会百忙之中来两把的&#xff0c;那么人一多玩游戏肯定就会拥堵&#xff0c;有延迟。解决延迟最好的办法就是用加速器&#xff0c;当你的网络比别人强时&#…...

Kafka SASL_SSL双重认证

文章目录 1. 背景2. 环境3. 操作步骤3.1 生成SSL证书3.2 配置zookeeper认证3.3 配置kafka安全认证3.4 使用kafka客户端进行验证3.5 使用Java端代码进行认证 1. 背景 kafka提供了多种安全认证机制&#xff0c;主要分为SASL和SSL两大类。 SASL&#xff1a; 是一种身份验证机制&…...

css新手教程

css新手教程 课程&#xff1a;14、盒子模型及边框使用_哔哩哔哩_bilibili 一.什么是CSS 1.什么是CSS Cascading Style Sheet 层叠样式表。 CSS&#xff1a;表现&#xff08;美化网页&#xff09; 字体&#xff0c;颜色&#xff0c;边距&#xff0c;高度&#xff0c;宽度&am…...

嵌入式电子罗盘教学原型:磁力计与IMU传感器融合实践

1. 项目概述 “LCD-Ecompass-Postemsky”是一个面向嵌入式教学实践的简易电子罗盘&#xff08;E-Compass&#xff09;系统&#xff0c;由阿根廷圣路易斯国立大学&#xff08;Universidad Nacional de San Luis, UNSL&#xff09;电子工程系为本科生实验课程设计。项目名称中的“…...

Jetson Orin Nano上YOLOv8训练避坑实录:从CUDA报错到ONNX导出,我的踩坑与修复指南

Jetson Orin Nano上YOLOv8训练避坑实录&#xff1a;从CUDA报错到ONNX导出实战指南 在边缘计算设备上部署深度学习模型总是充满挑战&#xff0c;特别是当硬件架构与主流x86平台存在差异时。Jetson Orin Nano作为NVIDIA最新的边缘AI计算平台&#xff0c;其ARM架构和独特的CUDA核心…...

conda创建环境报错repodata.json failed?手把手教你更换国内镜像源(2024最新)

Conda环境创建报错repodata.json失败&#xff1f;2024年国内镜像源配置全攻略 最近在帮团队新来的实习生配置开发环境时&#xff0c;遇到了一个经典问题——conda创建环境时卡在"Collecting package metadata (repodata.json)"这一步&#xff0c;要么报错要么无限等待…...

LFM2.5-1.2B-Thinking效果实测:Ollama中对比Qwen2-1.5B/Llama3-1B生成质量

LFM2.5-1.2B-Thinking效果实测&#xff1a;Ollama中对比Qwen2-1.5B/Llama3-1B生成质量 1. 测试背景与模型介绍 最近在Ollama平台上测试了一款很有意思的小模型——LFM2.5-1.2B-Thinking。这个模型虽然只有12亿参数&#xff0c;但号称能在设备端实现接近大模型的性能。为了验证…...

Mojo调用Python生态的7种方式,第4种连PyTorch官方文档都没写!——混合编程兼容性白皮书首发

第一章&#xff1a;Mojo与Python混合编程全景概览Mojo 是一种兼具 Python 语法亲和力与系统级性能的现代编程语言&#xff0c;专为 AI 基础设施和高性能计算场景设计。它原生兼容 Python 生态&#xff0c;允许开发者在同一个项目中无缝调用 Python 模块、复用 NumPy/Torch 接口…...

别再让扰动拖慢你的系统!手把手教你用MATLAB/Simulink实现非线性扰动观测器(附完整代码)

非线性扰动观测器实战指南&#xff1a;从理论到MATLAB/Simulink完整实现 在控制工程领域&#xff0c;非线性扰动观测器&#xff08;NDOB&#xff09;就像一位隐形的守护者&#xff0c;默默抵消着系统运行中各种未知干扰的影响。想象一下&#xff0c;当你精心设计的控制器因为突…...

[特殊字符] Kimi 智能助手完全使用指南:从入门到精通

Kimi 是由月之暗面&#xff08;Moonshot AI&#xff09;开发的国产 AI 智能助手&#xff0c;自发布以来凭借超长上下文窗口、强大的 Agent 能力和多模态交互&#xff0c;成为国内 AI 工具的重要选择。本指南将系统介绍 Kimi 的核心功能、使用技巧及进阶玩法&#xff0c;帮助你充…...

Syncfusion Dashboard部署指南:从开发到生产环境的完整流程

Syncfusion Dashboard部署指南&#xff1a;从开发到生产环境的完整流程 【免费下载链接】project_syncfusion_dashboard This is a code repository for the corresponding YouTube video. In this tutorial we are going to build and deploy a an admin dashboard app using …...

RTKLIB解算精度上不去?可能是这5个RTKNAVI选项你没调对(附参数优化建议)

RTKLIB解算精度优化实战&#xff1a;5个关键参数设置与场景化调优指南 当你已经能够熟练运行RTKNAVI完成基本定位解算&#xff0c;却发现动态RTK结果总在浮点解徘徊、固定率忽高忽低&#xff0c;或是基线稍长就精度骤降时&#xff0c;问题往往藏在那些容易被忽略的高级参数里。…...

高效掌握开源工具抖音直播录制:从基础搭建到高级应用指南

高效掌握开源工具抖音直播录制&#xff1a;从基础搭建到高级应用指南 【免费下载链接】DouyinLiveRecorder 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveRecorder 一、直播内容捕获工具的核心价值解析 核心价值&#xff1a;实现直播内容自动化捕获与管理&…...