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)。

欢迎一起学习~

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

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

相关文章

STM32 HAL NTC(3950 10k)查表法

NTC(Negative Temperature Coefficient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制…

vue项目开发vscode配置

配置代码片段 步骤如下: 文件->首选项->配置用户代码片段新增全局代码片段起全局代码片段文件名“xxx.code-snippets” 这里以配置vue2初始代码片段为例,配置具体代码片段 {"name": "vue-sph","version": "…

modelsim仿真使用到vivado的IP,该如何使用!

modelsim仿真时,如果使用到了vivado的IP就会报错,本次就告诉大家如何将vivado的IP添加到modelsim中直接仿真。 一、生成ini文件以及IP打包 打开vivado,点击上方的Tools-->Compile Simulation Libraries得到如下界面 simulator&#xff1…

【Python基础】案例分析:泰坦尼克分析

泰坦尼克分析 1 目的: 熟悉数据集熟悉seaborn各种操作作 import pandas as pd import seaborn as sns import numpy as np import matplotlib.pyplot as plt %matplotlib inline home rdata df sns.load_dataset(titanic, data_homehome) df.head()survivedpcl…

mmdetection使用自己的voc数据集训练模型实战

一.自己数据集整理 将labelimg格式数据集进行整理 1.1. 更换图片后缀为jpg import os import shutilroot_path/media/ai-developer/imgfileos.listdir(root_path)for img in file:if img.endswith(jpeg) or img.endswith(JPG) or img.endswith(png):img_pathos.path.join(root…

理想汽车学华为,年终奖红包有点大(含算法原题)

理想年终奖红包 2月5日,有微博用户发帖称,脉脉上看到,今年理想汽车的年终奖红包有点大。 对此,李想转发并评论: ❝ 不能只学华为的流程,而不学华为的利益分配。奖罚不分明,是组织低效的最大原因…

C++ lambda [],[=] ,[],[this] 的使用

在c11标准中引入了lambda表达式,一般用于定义匿名函数 [],[] ,[&],[this] 都是捕获列表 [] 的作用: 什么也不捕获 [] 的作用: 按值捕获所有变量 [&] 的作用: 引用捕获所有外部作用域内的变量 [this]的作用&#xf…

怎么理解 Redis 事务

背景 在面试中经常会被问到,redis支持事务吗?事务是怎么实现的?事务会回滚吗?又是一键三连,我下面分析下,看看能不能吊打面试官 什么是Redis事务 事务是一个单独的隔离操作:事务中的所有命令…

企业为什么选择SASE?香港电讯专家给你答案!

2019年,Gartner发布了全新的网络安全模型:安全访问服务边缘(Secure Access Service Edge, SASE),并预测到2025年80%的企业将使用SASE/SSE架构统一网络、云服务和私人应用程序的安全访问。那么企业为什么选择SASE&#…

Web课程学习笔记--CSS-Position学习

CSS Position学习 CSS Position有四个属性&#xff1a; relativeabsolutefixedstatic&#xff08;默认&#xff09; 样例 <div id"parent"><div id"sub1">sub1</div><div id"sub2">sub2</div> </div>su…

Git合并多个commit

git rebase -i commitId 假设想要合并最后3个commit&#xff0c; git log显示 commit id 1 commit id 2 commit id 3 commit id 4 则执行git rebase -i commitId4. 注意是4&#xff0c;不是3. 然后&#xff0c;pick最老的commit (commit id 3). https://blog.csdn.net/qiao…

企业计算机服务器中了mallox勒索病毒怎么办,mallox勒索病毒处理流程

由于网络技术的不断发展与应用&#xff0c;越来越多的企业开始依赖计算机技术来提高企业效率。然而&#xff0c;网络安全威胁无处不在&#xff0c;严重影响着企业计算机服务器中的数据安全。近期&#xff0c;云天数据恢复中心接到许多中大型企业的求助&#xff0c;企业的多台服…

Quicker读取浏览器的书签(包括firefox火狐)

从edge换了火狐&#xff0c;但是quicker不能读取本地的bookmarks文件了&#xff0c;就研究了一下。 方法1&#xff1a;读取本地Bookmarks文件&#xff08;仅谷歌内核浏览器&#xff09; 谷歌内核的浏览器本地会有Bookmarks文件&#xff0c;放了所有的书签数据&#xff0c;直接…

(注解配置AOP)学习Spring的第十七天

基于注解配置的AOP 来看注解式开发 : 先把目标与通知放到Spring里管理 : Service("userService") public class UserServiceImpl implements UserService {Overridepublic void show1() {System.out.println("show1......");}Overridepublic void show2…

SpringBoot 事务管理Transactional 数据回滚 数据一致性

介绍 SpringBoot当中的事物他保证了一致性&#xff0c;要么全部一起成功&#xff08;提交&#xff09;&#xff0c;要么一起失败&#xff0c;失败&#xff08;回滚&#xff09;后数据会回到当初的样子&#xff0c;是一组操作的集合。 事物类型 开启事物提交事物回滚事物 案…

安卓学习笔记之八:本地化的简单例子(kotlin版本)

本地化及多语言支持&#xff0c;是目前手机软件必须面对的问题&#xff0c;这里用一个简单的例子来说明在Android Studio下如何实现。 创建一个Empty Views Activity项目&#xff0c;语言选择Kotlin 实现一个简单的功能&#xff0c;一条欢迎&#xff0c;一个按钮&#xff0c;…

远程主机可能不符合glibc和libstdc++ VS Code服务器的先决条件

报错信息 VSCode无法连接远程服务器&#xff0c;终端一直提醒&#xff1a; [22:46:01.906] > Waiting for server log... [22:46:01.936] > Waiting for server log... [22:46:01.951] > [22:46:01.967] > Waiting for server log... [22:46:01.982] > [22:…

幻兽帕鲁怎么样?好玩? Mac版的玩《幻兽帕鲁》也很简单,只需三个步骤

幻兽帕鲁怎么样 幻兽帕鲁是一款集合了多种游戏元素的游戏&#xff0c;它巧妙地融合了《方舟:生存进化》的野外生存挑战、《荒野之息》的开放世界探索、《魔兽世界》的多元角色互动以及宝可梦的精灵捕捉与培养等经典游戏元素。游戏的核心系统是「帕鲁」捕获&#xff0c;你可以让…

【动态规划】【子序列除重】【C++算法】1987不同的好子序列数目

作者推荐 【动态规划】【状态压缩】【2次选择】【广度搜索】1494. 并行课程 II 本文涉及知识点 动态规划汇总 LeetCode1987:不同的好子序列数目 给你一个二进制字符串 binary 。 binary 的一个 子序列 如果是 非空 的且没有 前导 0 &#xff08;除非数字是 “0” 本身&…

机器学习-线性回归法

线性回归算法 解决回归问题思想简单&#xff0c;实现容易许多强大的非线性模型的基础结果具有很好的可解释性蕴含机器学习中的很多重要思想 样本特征只有一个&#xff0c;称为&#xff1a;简单线性回归 通过分析问题&#xff0c;确定问题的损失函数或者效用函数 通过最优化…