热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

计算机网络413MPLS

多协议标记交换MPLS(MultProtocolLabelswitching)MPLS利用面向连接技术,使每一个分组携带一个标记(label)的小整数(这里叫做打上标记)当分组到达

多协议标记交换MPLS(MultProtocol Label switching)

MPLS利用面向连接技术,使每一个分组携带一个标记(label)的小整数(这里叫做打上标记)当分组到达交换机(即标记交换路由器)时,交换机读取分组的标记,并用标记值来检索分组转发表。这样就比查找路由器来转发分组要快的多。

MPLS具有以下三方面的特点:



  1. 支持面向连接的服务质量。



  2. 支持流量工程,平衡网络负载。



  3. 有效的支持虚拟专用网VPN。




MPLS工作原理


基本工作过程

在传统的IP网络中,分组每到达一个路由器,就必须查找路由表,并按照最长前缀匹配原则找到下一跳的IP地址(前缀长度是不确定的。当网络很大时,查找含有大量项目的路由表要花费很多的时间。在出现突发性的通信量的时候,往往还会使缓存溢出,这样就会引起分组丢失、传输时延增大以及服务质量下降。

MPLS的一个重要的特点就是在MPLS域 的入口处,给每一个IP地址打上固定长度的标记,然后对打上标记的IP数据报用“硬件”进行转发。这就使得IP数据报转发的过程大大加快。采用硬件技术对打上标记的IP数据报进行转发称之为标记交换。“交换“也表示在转发时不再上升到第三层查找转发表,而是根据标记在第二层(数据链路层)用硬件进行转发。MPLS可以使用多种链路层协议,如PPP,以太网,帧中继等。图4-61是MPLS协议的基本原理的示意图。

image

MPLS域(MPLS domain)是指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持MPLS技术的标记交换路由器LSR(Label Switching Router)。LSR同时具有标记和路由选择这两种功能,标记交换是为了快速转发,但在这之前LSR需要使用路由选择功能构造路由表。

图4-61中给出了MPLS的基本工作过程如下:



  1. MPLS 域中的各LSR使用专门的标记分配协议LDP(Label Distribution Protocol)交换

    报文,并找出和特定标记相对应的路径,即标记交换路径 LSP (Label Switched Path)。例如在图中的路径 A→B→C→D。各 LSR 根据这些路径构造出转发表。这个过程和路由器构造自己的路由表相似[RFC 3031],限于篇幅,这里不讨论转发表构造的详细步骤。但应注意的是,MPLS是面向连接的,因为在标记交换路径LSP上的第一个LSR就根据IP数据报的初始标记确定了整个的标记交换路径,就像一条虚连接一样。



  2. 当一个IP数据报进入到MPLS域时,MPLS入口结点(ingress node)就给它打上标记(后面我们就会知道,这实际上是插入一个MPLS首部),并按照转发表把它转发给下一个LSR。以后的所有 LSR 都按照标记进行转发。给IP 数据报打标记的过程叫做分类(classification)。严格的第三层(网络层)分类只使用了IP首部中的字段,如源IP地址和目的IP地址等。大多数运营商实现了第四层(运输层)分类(除了要检查IP首部外,运输层还要检查TCP或UDP首部中的协议端口号),而有些运营商则实现了第五层(应用层)分类(更进一步地检查数据报的内部并考虑其有效载荷)。



  3. 由于在全网内统一分配全局标记数值是非常困难的,因此一个标记仅仅在两个标记

    交换路由器 LSR 之间才有意义
    。分组每经过一个 LSR,LSR 就要做两件事:一是转发,

    是更换新的标记,即把入标记更换成为出标记。这就叫做标记对换(label swapping)°。做这两件事所需的数据都已清楚地写在转发表中。例如,图 4-61 中的标记交换路由器 B 从入接口0收到一个入标记为3的IP数据报,查找了如下的转发表:



image



  1. 当 IP 数据报离开 MPLS 域时,MPLS 出口结点(egress node)就把 MPLS 的标记去除,把 IP 数据报交付非 MPLS 的主机或路由器,以后就按照普通的转发方法进行转发。上述的这种“由入口 LSR 确定进入 MPLS 域以后的转发路径”称为显式路由选(explicitrouting),它和互联网中通常使用的“每一个路由器逐跳进行路由选择”有着很大的区别。


转发等价类FEC

MPLS有一个很重要的概念就是转发等价类EFC(Forwarding Equivalence Class),所谓的”转发等价类“就是路由器按照同样方式对待的IP数据报的集合。这里"按照同样方式对待"表示从同样接口转发到同样的下一跳地址,并且具有同服务类别和同样丢弃优先级等。FEC的例子是:



  1. 目的 IP 地址与某一个特定 IP 地址的前缀匹配的 IP 数据报(这就相当于普通的 IP路由器);



  2. 所有源地址与目的地址都相同的IP数据报;



  3. 具有某种服务质量需求的IP数据报。



总之,划分 FEC 的方法不受什么限制,这都由网络管理员来控制,因此非常灵活。入口结点并不是给每一个IP数据报指派一个不同的标记,而是将属于同样 FEC 的 IP 数据报都指派同样的标记。FEC和标记是一一对应的关系。图4-62给出一个把FEC用于负载平衡的例子。

图 4-62(a)的主机 H1和 H2分别向 H3和H4发送大量数据。路由器 A 和 C 是数据传输必须经过的。但传统的路由选择协议只能选择最短路径A→B→C,这就可能导致这段最短路径过载。

image

4-62(b)表示在MPLS的情况下,入口结点A可设置两种FEC:“源地址为H1而目的地址为 H3”和“源地址为 H2而目的地址为 H4”,把前一种 FEC 的路径设置为 H1→A→B→C→H3,而后一种的路径设置为 H2→A→D→E→C→H4。这样可使网络的负载较为平衡。网络管理员采用自定义的 FEC 就可以更好地管理网络的资源。这种均衡网络负载的做法也称为流量工程 TE(Traffic Engineering)或通信量工程。


原文链接:https://www.cnblogs.com/xiaomitu/p/15782838.html



推荐阅读
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 本文介绍了SELinux的两种主要工作模式——强制模式和宽容模式,并提供了如何在CentOS 7中正确启用和配置SELinux的方法,以及在遇到登录问题时的解决策略。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • 本笔记为自用,倘若没有相关的学习基础,也确实无法看懂文章写的是什么。近来有点越学越回去的感觉。竟然突然在想,为什么深度学习模型可以对图像进行分类或者语义分割。可怕的是,当时想到这里 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • 本文详细介绍了如何利用 Bootstrap Table 实现数据展示与操作,包括数据加载、表格配置及前后端交互等关键步骤。 ... [详细]
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
  • 本文介绍了如何利用Python中的Matplotlib库来绘制三维点云数据,并展示其外接的最大边界框。通过具体代码示例,帮助读者理解点云数据的可视化方法。 ... [详细]
  • 本文介绍了一种在ZC公司的员工评估系统中,如何根据动态设置的评分指标,在后台查询时动态生成并显示数据表的方法。该方法确保了评分指标与被评人员信息的有效整合。 ... [详细]
  • 本文介绍了一个使用Slideview组件实现循环轮播效果的例子,并将其作为ListView顶部的一项。此ListView包含了两种不同的模板设计,一种以Slideview为核心,另一种则是标准的单元格模板,包含按钮和标签。 ... [详细]
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
  • 管理UINavigationController中的手势返回 - Managing Swipe Back Gestures in UINavigationController
    本文介绍了如何在一个简单的闪存卡片应用中实现平滑的手势返回功能,以增强用户体验。 ... [详细]
  • 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是 ... [详细]
  • 本文探讨了在UIScrollView上嵌入Webview时遇到的一个常见问题:点击图片放大并返回后,Webview无法立即滑动。我们将分析问题原因,并提供有效的解决方案。 ... [详细]
author-avatar
sferra石_455
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有