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

2024-03-03 18:20

本文主要是介绍网络学习: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等方面得到广泛应用。

这篇关于网络学习:MPLS技术基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/770500

相关文章

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.