网络学习:MPLS技术基础知识

目录

一、MPLS技术产生背景

二、MPLS网络组成(基本概念)

1、MPLS技术简介:Multiprotocol Lable Switching,多协议标签交换技术

2、MPLS网络组成

三、MPLS的优势

四、MPLS的实际应用


一、MPLS技术产生背景

1、IP采用最长掩码匹配原则,需要多次查表,效率不高。

        上世纪90年代初,网络上的数据量日益增大,而当时由于硬件技术的限制,传统IP转发路由器日益成为限制网络转发性能的一大瓶颈。假设一台路由器的路由表里面有2万条路由信息,路由器每收到一个数据包就会用最长掩码匹配规则去遍历路由表,这样当网络中的数据量增大的时候,每个数据包都去查表会增加路由器的性能负担,导致路由器工作效率低下。

2、当时路由器多采用CPU 处理数据转发,性能有限。

image/png

3、ATM技术(异步传输网络)采用唯一精确匹配,一次查表,效率高但协议复杂、成本高。

        ATM技术因为技术复杂,和现行的IP网络不兼容,例如它在编址方式、封装方式、信令控制等方面和IP网络完全不一样,这就意味着我们要使用ATM技术,必须将现行的网络设备全部替换成ATM设备,所以成本高昂让人望而却步,此技术也没普及,它取代IP网络的计划失败饿了。在这种情况下,急需要一种介于IP和ATM之间的技术,以适应网络发展的需要,这时MPLS技术就出现了。它和IP网络是兼容的,甚至可以说MPLS网络是基于IP网络的,也就是说,IP网络搞通后,才能运行MPLS网络。

        MPLS网络也有缺点,它虽然比ATM技术好用,但它出现的初衷是为了取代IP网络的,可是它没完全达到这个目的,原因是后来出现了三层交换技术,比如:快速转发技术、FIB表、IPFDB表、L3 Table表等等,极大的提高了路由器的查表效率。虽然MPLS技术没能取代IP技术,但却意外发现它是天然做VPN的一把好手,不会像IPSEC\GRE那么复杂。所以现在的MPLS可以说成为了一种VPN技术,但是我们要明白设计MPLS技术的初衷是为了让它彻底的取代IP网络,而不是让它做VPN。

image/png

二、MPLS网络组成(基本概念)

1、MPLS技术简介:Multiprotocol Lable Switching,多协议标签交换技术

  • 它可承载在各种链路层协议上,如:PPP\ATM\帧中继\以太网等

  • 原理上各种报文也可以承载在MPLS之上,如IPV4\IPV6、也包括各种链路层报文如ATM等

  • 采用一个短而定长的标签来封装网络层,交换机或路由器根据标签转发数据

MPLS的转发数据的思想:

image/png

备注:IN:代表进标签

        OUT:代表出标签

        INTERFACE:代表出接口

(1)在使用MPLS技术组成的网络中,假设:192.168.1.1要和192.168.2.1 去通信,在通信之前每个路由器上会形成去往192.168.2.1的标签表,这个表中记录了转发路径,数据从PC1来到AR1的时候,此时数据的样子应该是这样的(只考虑路由器的头部信息):1500+D:192.168.1.1+S:192.168.2.1+数据,AR1收到这个带标签的数据会查下标签表,根据标签表和出接口,此时在IN为空,OUT为1500,将数据转发至AR2。

(2)数据进入AR2,此时数据的样子应该是这样的:1500+D:192.168.1.1+S:192.168.2.1+数据,AR2不会关心数据的目标IP,只会关心数据的标签值,路由器会查看标签表,根据标签表会将此数据的标签值修改为1600,此时数据的样子应该是这样的:1600+D:192.168.1.1+S:192.168.2.1+数据,再根据出接口,将重新封装后的数据发给AR3。

(3)数据进入AR3,此时数据的样子应该是这样的:1600+D:192.168.1.1+S:192.168.2.1+数据,AR3不会关心数据的目标IP,只会关心数据的标签值,路由器会查看标签表,根据标签表会将此数据的标签值修改为3,此时数据的样子应该是这样的:3+D:192.168.1.1+S:192.168.2.1+数据,再根据出接口,将重新封装后的数据发给AR4。

(4)数据进入AR4,此时数据的样子应该是这样的:3+D:192.168.1.1+S:192.168.2.1+数据,AR4不会关心数据的目标IP,只会关心数据的标签值,路由器会查看标签表,根据标签表会将此数据的标签值修改,但此时OUT值为空,就代表这个数据已经到达最后一跳了,所以数据离开AR4路由器的时候,应该是这样的:D:192.168.1.1+S:192.168.2.1+数据,直接被弹出发给192.168.2.1。

总结:在整个数据转发的过程中,所有路由器都不看目标IP地址,只关心标签,上一个路由器的出标签=下一个路由器的进标签,比IP网络查表转发快的多。

2、MPLS网络组成

image/png

(1)基本概念:

  • 非MPLS网络:没有运行MPLS的网络,如;普通网络

  • MPLS网络:使用支持MPLS协议传输数据的网络设备(路由器)

注:MPLS网络和非MPLS网络可兼容,报文可在MPLS网络和非MPLS网络之间平滑过渡。

  • LSR:Lable Switching Router,标签交换路由,指运行了MPLS协议的网络设备,LSR具有标签分发和标签交换能力,是MPLS网络中的基本元素。

  • Transit LSR:中间节点LSR,根据标签沿着由一系列LSR构成的LSP将报文传送给出口LSR。

  • ingress LSR:入节点LSR,指数据报文的入口LSR,负责为进入MPLS网络的报文添加标签

  • Egress LSR:出节点LSR,负责报文中的标签,并转发至非MPLS网络

注意点:出入节点根据数据流的方向划分,边缘LSR可能既是入节点,也是出节点。

  • FEC:Forwarding Equivalence Class,转发等价类,MPSL将具有相同特征的报文归为一类,称FEC

例如: 一组按照同一LSP路径转发的数据流,他们去往同一目的IP地址,拥有相同的QOS优先级。

  • LSP:Lable Switching Path,标签交换路径,同一个报文在MPLS网络中经过的路径。

三、MPLS的优势

  • 转发数据唯一精确匹配,查询速度快

  • 支持多协议,无需改换专用设备

四、MPLS的实际应用

  • 随着硬件技术的进步,进行转发的高速路由和三层交换机得到了广泛的应用,使得IP转发性能大为提高,可以满足网络数据转发性能的需求,MPLS技术在提高转发性能应用上未能发挥优势。
  • 但MPLS支持多层标签嵌套和面向连接的特点,使得其在VPN、流量工程(TE)、QOS等方面得到广泛应用。

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

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

相关文章

Power BI vs Superset BI 调研报告

调研结论 SupersetPower BI价格开源①. Power BI Pro 每人 $10/月($120/年/人) ②. Power BI Premium 每人 $20/月($240/年/人) ③. Power BI Embedded:4C10G $11W/年 权限基于角色的访问控制,支持细粒度的访问: 表级别、库级别、图表级别,看板级别,用户级别 基于角色…

每天一个数据分析题(一百八十五)

给定下述Python代码段,试问哪个选项正确描述了该代码段的功能? data_raw[‘gender’] data_raw[‘gender’].map({‘Male’: 1, ‘Female’: 0}) A. 代码中对gender变量进行了独热编码(One-Hot Encoding),并将gender中的缺失值填充为类别平…

深度学习API——keras初学

keras定义: Keras是一个深度学习API(人工神经网络库),使用Python语言编写的github开源项目,主要开发者为谷歌工程师。Keras底层可调用不同的机器学习平台,如TensorFlow、Theano或micsoft-CNTK。 作用&…

Tomcat的配置文件

Tomcat的配置文件详解 一.Tomcat的配置文件 Tomcat的配置文件默认存放在$CATALINA_HOME/conf目录中,主要有以下几个: 1.server.xml: Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息&#x…

【推荐】免费AI论文写作神器-「智元兔 AI」

还在为写论文焦虑?免费AI写作大师来帮你三步搞定! 智元兔AI是ChatGPT的人工智能助手,并且具有出色的论文写作能力。它能够根据用户提供的题目或要求,自动生成高质量的论文。 不论是论文、毕业论文、散文、科普文章、新闻稿件&…

#WEB前端(浮动与定位)

1.实验&#xff1a; 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; float、position 没有应用浮动前 应用左浮动和右浮动后 应用定位 4.代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><me…

pyqt5怎么返回错误信息给页面(警告窗口)

在软件设计中&#xff0c;我们可能会遇到对异常的处理&#xff0c;有些异常是用户需要看到的&#xff0c;比如说&#xff0c;当我们登录出错的时候&#xff0c;后端需要给我们返回响应的错误信息&#xff0c;就像下图实现的这样。 类似这种效果&#xff0c;我们该如何实现&…

javaWebssh题库管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh题库管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Mye…

「MySQL」基本操作类型

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;数据库 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 数据库的操作 创建、显示数据库 使用 create 创建一个数据库 create database goods;然后可以用 show databases 来查看已经创建的数…

我们如何知道人工智能系统有多智能?

1967 年&#xff0c;人工智能 &#xff08;AI&#xff09; 领域的创始人马文明克西 &#xff08;Marvin Minksy&#xff09; 做出了一个大胆的预测&#xff1a;“在一代人之内…创造’人工智能’的问题将得到实质性解决。假设一代人大约是 30 年&#xff0c;明斯基显然过于乐观…

javaWebssh网上超市销售管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh网上超市销售管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCA…

指针深刻理解

指针深刻理解 看完鹏哥讲的c语言进阶视频后&#xff0c;又找来C语言深度剖析这本书仔细看了一遍&#xff0c;来进一步巩固和理解指针这个重点。 1&#xff1a;数组 如上图所示&#xff0c;当我们定义一个数组 a 时&#xff0c;编译器根据指定的元素个数和元素的类型分配确定大…

突破编程_C++_STL教程( list 的实战应用)

1 std::list 的排序 1.1 基础类型以及 std::string 类型的排序 std::list的排序可以通过调用其成员函数sort()来实现。sort()函数使用默认的比较操作符&#xff08;<&#xff09;对std::list中的元素进行排序。这意味着&#xff0c;如果元素类型定义了<操作符&#xff…

身份证识别系统(安卓)

设计内容与要求&#xff1a; 通过手机摄像头捕获身份证信息&#xff0c;将身份证上的姓名、性别、出生年月、身份证号码保存在数据库中。1&#xff09;所开发Apps软件至少需由3-5个以上功能性界面组成。要求&#xff1a;界面美观整洁、方便应用&#xff1b;可以使用Android原生…

ChatGPT聊图像超分

笔者就YOLO系列方法询问了ChatGPT的看法&#xff0c;可参考&#xff1a; ChatGPT是如何看待YOLO系列算法的贡献呢&#xff1f; 续接前文&#xff0c;今天继续拿图像超分领域的经典方法来询问ChatGPT的看法&#xff0c;这里主要挑选了以下几个方案SRCNN、ESPSRN、EDSR、RCAN、…

JS 对象数组排序方法测试

输出 一.Array.prototype.sort() 1.默认排序 sort() sort() 方法就地对数组的元素进行排序&#xff0c;并返回对相同数组的引用。默认排序是将元素转换为字符串&#xff0c;然后按照它们的 UTF-16 码元值升序排序。 由于它取决于具体实现&#xff0c;因此无法保证排序的时…

数据可视化基础与应用-02-基于powerbi实现医院数据集的指标体系的仪表盘制作

总结 本系列是数据可视化基础与应用的第02篇&#xff0c;主要介绍基于powerbi实现医院数据集的指标体系的仪表盘制作。 数据集描述 医生数据集doctor 医生编号是唯一的&#xff0c;名称会存在重复 医疗项目数据projects 病例编号是唯一的&#xff0c;注意这个日期编号不是真…

面试时如何回答接口测试怎么进行

一、什么是接口测试 接口测试顾名思义就是对测试系统组件间接口的一种测试&#xff0c;接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 …

【C++ 07】string 类的常用接口介绍

文章目录 &#x1f308; Ⅰ string 类对象的常见构造函数&#x1f308; Ⅱ string 类对象的容量相关操作&#x1f308; Ⅲ string 类对象的访问及遍历1. 下标访问及遍历2. 正向迭代器访问3. 反向迭代器访问 &#x1f308; Ⅳ string 类对象的修改操作1. 插入字符或字符串2. 字符…

数据分析业务面试题

目录 Q1:请简述数据分析的工作流程? Q2:你经常用到的数据分析方法有哪些,举例说明? Q3:公司最近一周的销售额下降了,你如何分析下降原因? Q4:店铺销售额降低如何分析? Q5:若用户留存率下降如何分析? Q6:店铺商品销售情况分布后 Q7:如何描述店铺经营状况?…