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)。
欢迎一起学习~
相关文章:

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 新一代的…...

Idea使用Lombok失效解决方案
问题描述 启动项目时,使用lombok插件中slf4g注解后其中的log显示找不到变量 解决方案 在以下位置加入该配置-Djps.track.ap.dependenciesfalse Preferences | Build, Execution, Deployment | Compiler 之后保存应用就好,亲测有效。...

Java实现网上药店系统 JAVA+Vue+SpringBoot+MySQL
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 药品类型模块2.3 药品档案模块2.4 药品订单模块2.5 药品收藏模块2.6 药品资讯模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 药品表3.2.3 药品订单表3.2.4 药品收藏表3.2.5 药品留言表…...

谁是嫌疑犯问题
问题描述: 有6名犯罪嫌疑人A、B、C、D、E、F,已知如下事实: A、B至少有1人作案; A、E、F三人中至少有2人参与作案; A、D不可能是同案犯; B、C或同时作案,或与本案无关; C、D中…...

Netty中使用编解码器框架
目录 什么是编解码器? 解码器 将字节解码为消息 将一种消息类型解码为另一种 TooLongFrameException 编码器 将消息编码为字节 将消息编码为消息 编解码器类 通过http协议实现SSL/TLS和Web服务 什么是编解码器? 每个网络应用程序都必须定义如何…...

【漏洞复现】斐讯FIR151M路由器未授权下载漏洞
Nx01 产品简介 斐讯数据通信技术有限公司成立于2009年,是为用户提供智慧家庭领域智能产品和云服务的科技创新性企业。 Nx02 漏洞描述 斐讯 FIR151M路由器配置文件未授权下载漏洞,攻击者可利用该漏洞获取敏感信息。 Nx03 产品主页 fofa-query: app"PHICOMM-F…...

【SpringBoot】application配置(5)
type-aliases-package: com.rabbiter.cm.domaintype-aliases-package: 这个配置用于指定mybatis的别名,别名是一个简化的方式,让你在Mapper xml 文件中引用java类型,而不需要使用使用完整的类名。例如,如果你在 com.rabbiter.cm.d…...

Linux安全技术与iptables防火墙
一.安全技术: 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,…...
QT QCombox 样式表 比起作用
对QCombox在ui编辑器中进行美化,发现外表美化有效果,但下拉框的高度美化的没效果,查看样式表也没有没问题,样式表中内容如下。 QComboBox#curve_comboBox {min-width: 150px;min-height:40;max-width: 150px;max-height:40;borde…...

在 Windows 10 上使用 Visual Studio 2022 进行 C++ 桌面开发
工具下载链接:https://pan.quark.cn/s/c70b23901ccb 环境介绍 在今天的快速发展的软件开发行业中,选择合适的开发环境是非常关键的一步。对于C开发人员来说,Visual Studio 2022(VS2022)是一个强大的集成开发环境&…...

如何安装x11vnc并结合cpolar实现win远程桌面Deepin
文章目录 1. 安装x11vnc2. 本地远程连接测试3. Deepin安装Cpolar4. 配置公网远程地址5. 公网远程连接Deepin桌面6. 固定连接公网地址7. 固定公网地址连接测试 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂ÿ…...
C++基础入门Day1
C基础入门Day1 1.1 第一个C程序 编写一个C程序需要四个步骤 创建项目创建文件编写代码运行程序 1.1.1 创建项目 VS2022 1.1.2 创建文件 main.cpp 1.1.3 编写代码 注意:编写时键盘必须调整成英文 基本框架 #include <iostream> using namespace std…...

【高质量精品】2024美赛A题22页word版成品论文+数据+多版本前三问代码及代码讲解+前四问思路模型等(后续会更新)
一定要点击文末的卡片,进入后,即可获取完整资料后续参考论文!! 整体分析:这个题目是一个典型的生态系统建模问题,涉及到动物种群的性比例变化、资源可用性、环境因素、生态系统相互作用等多个方面。这个题目的难点在于如何建立一个合理的数学…...
Spark context stopped while waiting for backend
目录 报错信息 解决办法 解释 报错信息 Spark context stopped while waiting for backend 翻译过来就是 :Spark上下文在等待后端时停止 解决办法 通过在yarn-site.xml中添加如下配置项,并重启yarn,程序在 “–driver-memory 600m --e…...
保研机试算法训练个人记录笔记(三)
目录 基于范围的for循环 push_back return {it->second, i} 基于范围的for循环 for (const string& ageValue : age["Peter"]) 是C中的一种范围基于的for循环(也称为基于范围的for循环),它用于遍历容器中的元素。在这个…...

2月6日作业
1.现有无序序列数组为23,24,12,5,33,5347,请使用以下排序实现编程 函数1:请使用冒泡排序实现升序排序 函数2:请使用简单选择排序实现升序排序 函数3:请使用快速排序实现升序排序 函数4:请使用插入排序实现升序排序 #include<stdio.h> #include<string.h&…...
rust给py写拓展如此简单
很久没写rust,主要是写业务逻辑实在用不上这高性能.不过惊奇发现rust和py结合的如此之好,记录下: 搞一个python环境,pip install maturin建立一个项目文件,cd进去 maturin init照着生成模版正常写rust,完毕后maturin develop,注意这个命令包括把拓展包安装到虚拟环境site pack…...

白嫖10款游戏加速器,一年都不用开会员!
过年期间你们是走亲串戚还是窝家玩游戏、追剧?相信很多小伙伴都不会放过这个难得的假期,肯定是会百忙之中来两把的,那么人一多玩游戏肯定就会拥堵,有延迟。解决延迟最好的办法就是用加速器,当你的网络比别人强时&#…...

Kafka SASL_SSL双重认证
文章目录 1. 背景2. 环境3. 操作步骤3.1 生成SSL证书3.2 配置zookeeper认证3.3 配置kafka安全认证3.4 使用kafka客户端进行验证3.5 使用Java端代码进行认证 1. 背景 kafka提供了多种安全认证机制,主要分为SASL和SSL两大类。 SASL: 是一种身份验证机制&…...

css新手教程
css新手教程 课程:14、盒子模型及边框使用_哔哩哔哩_bilibili 一.什么是CSS 1.什么是CSS Cascading Style Sheet 层叠样式表。 CSS:表现(美化网页) 字体,颜色,边距,高度,宽度&am…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...