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.mfbz.cn/a/374802.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter 示例,格式为001-100,按顺序生成三位数的函数

1.先添加一个循环控制器,每次执行生成一个数, 2.添加一个beanshell Sample,编写代码,把按00X这个格式的数字,赋值给一个变量LoopCount // 从JMeter变量中获取当前的计数器值 String loopCountStr vars.get("LoopCount"); int loopCount (lo…

1896_Linux中free命令小结

1896_Linux中free命令小结 全部学习汇总: little_bits_of_linux: 一星半点的Linux经验 (gitee.com) 查看Linux中存储的使用情况,我经常使用htop,毕竟这个命令提供的信息是十分直观的。我现在常用的一个小主机其实是我的树莓派3B,虽…

ETL是什么,有哪些ETL工具?就业前景如何?

ETL是什么 ETL(Extract-Transform-Load),用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目标端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。它可以自动化数据处理过程,减少…

C#向数组指定索引位置插入新的元素值:自定义插入方法 vs List<T>.Add(T) 方法

目录 一、使用的方法 1.自定义插入方法 2.使用List.Add(T) 方法 二、实例 1.示例1:List.Add(T) 方法 2.示例:自定义插入方法 一、使用的方法 1.自定义插入方法 首先需要定义一个一维数组,然后修改数组的长度(这里使用Length属性获取…

正点原子--STM32基本定时器学习笔记(1)

这部分是笔者对基本定时器的理论知识进行学习与总结!主要记录学习过程中遇到的重难点,其他一些基础点就一笔带过了! 1. 定时器概述 1.1 软件定时原理 使用纯软件(CPU死等)的方式实现定时(延时&#xff0…

C++ 动态规划 状态压缩DP 蒙德里安的梦想

求把 NM 的棋盘分割成若干个 12 的长方形,有多少种方案。 例如当 N2,M4 时,共有 5 种方案。当 N2,M3 时,共有 3 种方案。 如下图所示: 2411_1.jpg 输入格式 输入包含多组测试用例。 每组测试用例占一行…

A64指令集架构之PCS过程调用标准

Arm架构对通用寄存器的使用几乎没有限制。简而言之,整数寄存器和浮点寄存器都是通用寄存器。然而,如果你希望你的代码与他人编写的代码互动,或者与编译器生成的代码互动,那么你需要就寄存器的使用达成一致的规则。对于Arm架构&…

Chronos靶机渗透

Chronos靶机 一.信息收集1.靶机IP地址确认2.目录扫描3.常见漏洞扫描5.web网站探测1.网页2.源代码 二.网站渗透1.命令执行2.抓包---burp suite3.反弹shell 三.提权1.node.js原核污染第一个flag 2.sudo提权第二个flag 一.信息收集 1.靶机IP地址确认 ┌──(root㉿kali)-[/] └─…

【Linux系统化学习】文件描述符fd

目录 基础IO预备知识 C语言文件接口 "w"的方式打开,fputs写入 以"a"的方式打开,fputs写入 使用位图传参 系统调用操作文件 open的使用 第一种形式 第二种形式 write() 文件描述符 文件描述符和进程的关系 默认的三个IO流…

JAVASE进阶:高级写法——方法引用(Mybatis-Plus必学前置知识)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:JAVASE进阶:一文精通Stream流函数式编程 📚订阅专栏:JAVASE进阶 希望文章对你们有所帮助 相信…

SpringCloud--Eureka注册中心服务搭建注册以及服务发现

注意springboot以及springcloud版本&#xff0c;可能有莫名其妙的错误&#xff0c;这里使用的是springboot-2.6.13&#xff0c;springcloud-2021.0.5 一&#xff0c;Eureka-Server搭建&#xff1a; 1.创建项目&#xff1a;引入依赖 <dependency><groupId>org.sp…

MyBatis 分页插件 PageHelper-Dazer007

文章目录 MyBatis 分页插件 PageHelper-Dazer0071、使用方式1.1 原始PageHelper1.2 ruoyi框架封装PageHelper1.3 MyBaits-Plus自带分页&#xff0c;无需PageHeler 2、作用原理3、数据方言实现3.1、MySqlDialect3.2、OracleDialect3.3、SqlServer2012Dialect 3、数据方言实现 My…

【Spring】Spring事务和事务传播机制

文章目录 什么是事务事务的操作Spring 中事务的实现Spring编程式事务Spring 声明式事务 TransactionalTransactional作用Transactional 详解rollbackFor事务隔离级别Spring 事务隔离级别Spring 事务传播机制 什么是事务 事务&#xff08;Transaction&#xff09;是一个程序中一…

嵌入式软件的设计模式与方法

思想有多远&#xff0c;我们就能走多远 4、状态与工作流类设计模式 4.1 状态与事件 行为随条件变化而改变&#xff0c;这里状态切换的模式也称为状态机。有限状态机 (Finite State Machine&#xff0c;FSM) 是由3 个主要元素组成的有向图: 状态、转换和动作。 状态是系统或者…

jsp教材管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 教材管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

python常用的深度学习框架

目录 一&#xff1a;介绍 二&#xff1a;使用 Python中有几个非常受欢迎的深度学习框架&#xff0c;它们提供了构建和训练神经网络所需的各种工具和库。以下是一些最常用的Python深度学习框架&#xff1a; 一&#xff1a;介绍 TensorFlow&#xff1a;由Google开发的TensorF…

LeetCode-第171题-Excel表的序列号

1.题目描述 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 2.样例描述 3.思路描述 遍历时将每个字母与 A 做减法&…

python 动态数据 展示 ,数据是由51单片机发送过来的,温度传感器。

import tkinter as tk import randomimport seriallis[] for i in range(50):lis.append(i1) # 打开串行端口 ser serial.Serial(COM3, 9600) # 9600为波特率&#xff0c;根据实际情况进行调整# 初始化数据 lis [random.randint(15, 35) for _ in range(50)]def update_data…

jenkins 发布远程服务器并部署项目

安装参考另一个文章 配置maven 和 jdk 和 git 注意jdk的安装目录&#xff0c;是jenkins 安装所在服务器的jdk目录 注意maven的目录 是jenkins 安装所在服务器的maven目录 注意git的目录 是jenkins 安装所在服务器的 git 目录 安装 Publish Over SSH 插件 配置远程服务器 创…

信号系统之线性系统详解

1 线性系统 信号描述了一个参数如何随另一个参数变化。例如&#xff0c;电子电路中的电压随时间变化&#xff0c;或图像中随距离变化的亮度。系统是响应输入信号而产生输出信号的任何过程。如图中的框图所示。 有几个规则用于命名信号&#xff1a; 连续信号使用圆括号&#x…