MPLS技术基础

一、MPLS的基本概述

1、MPLS【Multi-Protocol Label Switch|多协议标签交换】

2、MPLS最早由Cisco System公司开发,最早早该技术称之为Tagging Switch,后被IETF(internet 工程任务小组)改名为MPLS,进而向业界公开推广;

3、在上世纪90年代初期,互联网中的数据量激增,而当时各个网络设备厂商的硬件性能低下,造成过大的数据量进入网络设备,而网络设备根据传统的IP路由表转发,效率低下

4、ATM(异步传输)改变了网络设备基于IP路由表转发的规则,使用VPI/VCI【虚路径标识符/虚电路标识符】的方式进行转发,实现一次查表,唯一匹配,效率较高,但ATM交换机成本高昂,且需要管理员手动的在每台ATM交换机上配置VPI/VCI数值,同时在ATM交换机上部署QoS极为复杂,因此该技术很难普及

5、MPLS技术在上述问题面前应运而生

6、MPLS改变了传统路由器根据IP路由表转发数据的特征,而是使用一个短而定长【32bit】的标签来实现数据分组的封装,令支持MPLS功能点的路由器或交换机根据该标签进行数据的转发

7、MPLS的多协议指:

        7.1、MPLS可以运行在PPP、ATM、FR【Frame Relay|帧中继】、以太网环境中

        7.2、各种报文均可以承载在MPLS之上,如IPv4、IPv6以及ATM

二、MPLS网络组成

构成一个MPLS网络环境的设备,需要先开启MPLS功能,在MPLS网络环境中,共存以下概念:

1、LSR【Lable Switching Router|标签交换路由器】:指工作在MPLS网络环境中的,负责根据标签来转发数据的路由器

2、LER【Label Edge Router|标签边界路由器】:指工作在MPLS网络环境中,一方面负责连接MPLS网络,另一方面负责连接非MPLS网络环境的客户设备

3、LSP【Lable Switching Path】:在MPLS网络环境中转发标签数据所使用的转发路径

4、FEC【Forwarding Equivalence Class|转发等价类】:去往同一目的地,按照相同的方式进行处理、分配得到相同的标签的一组数据成为同一转发等价类

三、MPLS的标签定义

1、MPLS网络令路由器不再根据传统IP路由表转发数据,而是使用一个短而定长的标签来实现数据的交换

2、MPLS的标签共32bit

3、MPLS的标签封装在数据链路层头部与网络层头部之间,相当于形成了一条【天然隧道】,用来满足VPN的连接需求

4、MPLS标签的组成

        4.1、标签字段(20bit):是MPLS网络中最重要的索引值字段

        4.2、优先级 字段(3bit):Exp字段,共3bit,用来配合QoS使用,类似于数据链路层的802.1p【8种优先级】

        4.3、S字段(1bit):栈低位,共1bit,MPLS可以根据需求进行多个标签的嵌套,当存在多个标签嵌套时,最后一个标签的S位置为1,其他的标签的S位置为0;若只有1个标签,则S位为1

        4.4、TTL字段(8bit):生存时间字段,直接通过IP报文数据复制过来,每进行一次标签交换时,TTL就减1

5、MPLS的标签标识

在传统的IP网络中,二层头部中Type字段值为:0x0800

在MPLS构建的网络中,二层头部的Type字段值为:0x8847

四、MPLS标签分配

标签分配协议用于在MPLS网络中LSR之间分配标签:

1、LDP【Label Distribution Protocol|标签分发协议】:业界公有协议

2、RSVP-TE【资源预留协议-流量控制】:用于端到端的流量工程

3、MP-BGP【多协议BGP|BGPv4 Plus】:增强型的BGPv4

4、TDP【Tagging Distribution Protocol】:Cisco私有协议

五、LDP【标签分发协议】

1、LDP协议中共存在4种类型的消息:

        1.1、发现消息【Discovery Message】:用于发现LDP邻居设备

        1.2、会话消息【Sission Message】:用于LDP邻居会话的建立、维护

        1.3、通知消息【Notification Message】:用于向LDP邻居通知错误事件

        1.4、通告消息【Advertisement Message】:用来向LDP邻居通告标签、地址等信息

2、LDP邻居关系的建立

        2.1、在邻居发现阶段,LDP使用UDP作为承载协议,使用其端口号码646,在组播地址224.0.0.2上寻找邻居,发送Hello报文

        2.2、当找到邻居时,LDP使用TCP建立连接,使用其端口号码646,地址大的一方主动发起 连接请求

        2.3、主路由器首先向从路由器发送LDP初始化消息并携带协商参数(LDP版本号码、Keepalive的时间180s、标签分配的方式、以及PDU的大小,默认4096Byte)

        2.4、从路由器接收到该消息后,查看参数是否可以接收,若能够接受,则向主路由器也发送初始化消息,也携带从路由器的各项参数

        2.5、主路由器接收到该消息后也查看参数是否可以接受,若能接受,则LDP关系随即启动,会话立即建立

        2.6、期间若接收到任何错误消息,则会话关闭,TCP连接中断

六、MPLS网络的上游和下游

1、在MPLS网络中,靠近信源的设备称为上游设备,靠近接收方的设备称为下游设备

2、在MPLS网络中,标签是由下游设备分配给上游设备的

3、在分配的过程中,倒数第一路由器给倒数第二路由器分配的标签永远是3

注:16以下的标签都是网络设备系统使用的,在分配时不会分配出去(0:显示空标签、1:路由器报警标签、3:隐式空标签)

4、因此当倒数第二路由器在给倒数第一路由器传送数据时,倒数第二路由器就可以直接将标签3抹除,将一个不带标签的数据直接传送给倒数第一路由器(该技术称之为:PHP【倒数第二跳弹出】)

5、上游设备在向下游设备发送数据时,就使用下游设备分配给上游设备的标签做封装

七、标签的分配与管理

1、标签的分配模式分为2种:

        1.1、DOD(下游按需标签分配):上游设备首先向下游设备发送请求分配标签的报文,下游设备再根据FEC为不同的类别的数据分配标签

        1.2、DU(下游自主标签分配):下游设备无需等待上游设备的请求消息,自主为上游设备分配标签

2、标签的控制模式分为2种:

        2.1、有序方式:只有下游设备为我分配了标签后,我才能为我的上游设备分配标签

        2.2、独立方式:无论下游设备是否为我分配了标签,我都能够为我的上游设备分配标签【默认模式】

3、标签的保存方式分为2种:

        3.1、保守模式:只保存下一跳路由器为我分配的标签,而其他非下一跳路由器分配的标签并不保存;优点在于节省标签存储空间,缺点在于当主路径出现故障时,备份路径需要重新申请标签,切换速度较慢

        3.2、自由模式:无论是否为下一跳路由器分配的标签,只要能接收,全部标签都保存;优点在于需要占用过多的标签存储空间【默认模式】

八、MPLS的应用

1、随着这些年,各个厂商的硬件配置越来越多,基于ASIC【专用交换集成路由】与NP【网络架构|转/控分离技术】架构的交换机与路由器性能越发强进,因此传统的IP路由表转发不再存在性能低下的问题,在当今环境中,MPLS用来替代传统路由的性能问题,已经没有了优势。

2、但由于MPLS的天然隧道的形成,令其在广域网VPN、TE【流量工程】等方面依然保持着强大的竞争力。

3、MPLS单独使用已没有竞争力,但与其他技术混合使用时,效果明显。

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

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

相关文章

SpringAI 技术解析

1. 发展历史 SpringAI 的发展历史可以追溯到对 Spring 框架的扩展和改进,以支持人工智能相关的功能。随着人工智能技术的快速发展,SpringAI 逐渐成为 Spring 生态系统中的一个重要组成部分,为开发者提供了便捷、灵活的解决方案。 项目的灵感来…

如何用opencv去掉单元格的边框线,以提高Tesseract识别率?

在OpenCV中处理从表格切割下来的图片,并去掉单元格的边框线,以提升Tesseract的识别准确率,确实是一个具有挑战性的任务。在这种情况下,我们需要采取一种策略来预处理图像,使得数字与背景之间的对比度增强,同…

数据缓存,可以尝试RocksDB了

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen shigen在最近的学习中,接触到了一款新的缓存数据库RocksDB&#xff…

NodeJS编写后端接口

技术栈 1.express:Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建 各种 Web 应用,和丰富的 HTTP 工具,使用 Express 可以快速地搭建一个完整功能的网站。 2.mysql:用于操作MySQL数据库 3.bod…

Spring:深入理解 Spring 事务原理

Spring 事务 Spring 框架支持两种主要的事务管理方式:编程式事务(Programmatic Transaction Management)和声明式事务(Declarative Transaction Management)。 1.编程式事务   编程式事务管理指的是在代码中显式地控…

使用 LangGraph 实现邮件智能处理系统来处理客户咨询【附代码】

简介 在这篇博文中,我们将探讨如何使用 LangGraph 结合 RAG(Retrieval-Augmented Generation)技术来构建一个响应客户邮件的电子邮件智能系统。LangGraph 是一个强大的框架,专为构建和部署基于图的语言应用而设计。它支持复杂的查…

【Linux】centos7安装软件(rpm、yum、编译安装),补充:查找命令的相关文件路径,yum安装mysql

【Linux】技术上,Linux是内核。而术语上,我们通常说的Linux是完整的操作系统,其实称为"Linux发行版",是将Linux内核和应用系统打包,由不同的发行家族发行了不同版本。Linux发行版众多,主要有RedH…

职校智慧校园现状及问题分析

各大中职院校及高职院校是校园信息化的先行者和开拓者,很早就开始注重信息化基础设施建设和信息化人文素养的提升。在过去几年里,随着国家大力发展与扶植职校教育,学校投入相当的经费进行了校园信息通信网络、计算机等基础硬件设备建设&#…

Python3 笔记:help()查看函数的用法

一些不常用的函数或是模块的用法记不清了怎么办? Python的内置函数help()可以查看函数或模块用途的详细说明。 操作方法很简单,直接在help()括号内填写参数,然后运行就可以看到结果了。 举例: help(input) # 查询input()函数的…

RabbitMQ 面试题(一)

1. 简述为什么要使用 RabbitMQ ? 使用 RabbitMQ 的主要原因包括以下几点: 解耦:在复杂的系统中,不同的服务或组件之间往往需要通信和协作。RabbitMQ 作为消息队列,允许这些组件或服务通过发送和接收消息来交互,而无…

CLion 写 Rust 报Project directory `/Users/.../rsheets` does not exist.

每次打开CLion都会看到像下面这样的报错,Project directory /Users/.../rsheets does not exist.,虽然不会影响你写代码,但每次看到还是不舒服,所以研究一下怎么解决。 原因是这样的,每当我们创建一个 Cargo 项目&…

PDF Squeezer for Mac,让PDF压缩更高效

还在为PDF文件过大而烦恼吗?试试PDF Squeezer for Mac吧!它拥有强大的压缩功能,可以快速将PDF文件压缩至更小的体积,让你的文件传输更快捷。同时,它还支持多种压缩方式,满足你的不同需求。赶快下载体验吧&a…

革新机器人任务规划:TREE-PLANNER引领高效、准确的机器人动作生成新趋势

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! 引言 任务规划在机器人技术中扮演着至关重要的角色。它涉及到为机器人设计一系列中级动作(技能),使其能够完成复杂的高级任…

C语言基础-枚举类型

C语言中的枚举类型(enum)是一种用户定义的数据类型,它允许为整数常量指定一个名称,使得代码更易于阅读和维护。枚举类型本质上是一种特殊的整数类型,但每个枚举值都有一个名字,而不是直接使用整数。 枚举类…

掌握 Linux Crontab:完整指南与实用案例

一.简介 1. 什么是 Crontab? Crontab 是一个在 Unix 和类 Unix 操作系统上用来定期执行任务的工具。它是从 “cron table” 衍生而来的,“cron” 是一个 Unix 系统自带的后台守护进程,用于定期执行预定的任务或命令,比如备份文件…

电视剧电影原声背景音乐,经典影视配乐片段音效合集

一、素材描述 本套影视配乐素材,大小1.89G,27个压缩文件。 二、素材目录 宰相刘罗锅配乐片段.rar 影视配乐65首.rar 太极张三丰原声.rar 东邪西毒原声配乐15首.rar 东方不败之风云再起配乐24首.rar 东方不败原声配乐16首.rar 电影大话西游原声配…

python绘制圣诞树 如何用python绘制一个圣诞树

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.总结 一.前言 圣诞树,是指用灯烛和装饰品把枞树或洋松装点起来的常青树。作为是圣诞节重要的组成元素之一,近代圣诞树起源于德国,后来逐步在世界范围内流行起来

聊聊Mysql锁问题

聊聊Mysql锁问题 一、 Mysql锁概述二、Myisam锁问题2. 1 表级锁的锁模式2.2 如何加表锁2.3 并发插入2.4 Myisam的锁调度 三、InnoDB锁问题3.1 事务及ACID属性3.2 并发事务处理带来的问题3.3 事务隔离级别3.4 获取InnoDB行锁争用情况3.5 InnoDB行锁模式及加锁方法3.6 InnoDB行锁…

sql-行转列(转置)

- 行转列的常规做法是,group bysum(if())【或count(if())】 例题: 已知 yearmonthamount199111.1199121.2199131.3199141.4199212.1199222.2199232.3199242.4 查成这样一个结果 yearm1m2m3m419911.11.21.31.419922.12.22.32.4 解答: us…

串转并74hC595控制流水灯

#include <reg51.h> //重新定义系统数据类型 typedef unsigned int u16; typedef unsigned char u8; //宏定义数据端口 #define LEDDZ_COL_PORT P0 #define SER_AP_PORT P1 //定义数据存储端口 sbit SERP3^4; sbit SRCLKP3^6; sbit RCLKP3^5; //依次闪烁…