原文网址:http://blog.163.com/s_zhchluo/blog/static/1501470820118259244838/

三层交换技术—LPM+HD技术

1.1 三层交换技术的概念

交换技术是随着交换设备的出现而出现的一种数据转发技术,主要分为二层交换技术、三层交换技术和四层交换技术。

二层交换技术是最传统的交换技术,为了实现二层交换,交换机需要维护一张“MAC地址、交换机端口”的硬件转发表,当交换机接收到数据时,根据数据包中的“目的MAC地址”查询硬件转发表,匹配到相同“目的MAC地址”表项时根据对应的“交换机端口”进行线速的数据转发,由于“MAC地址”属于OSI网络参考模型中的第二层——数据链路层的地址,所以称为二层交换技术。

而为了实现三层交换技术,交换机将维护一张至少包括“目的IP地址,下一跳MAC地址”在内的硬件转发表,当交换机接收到数据时,根据数据包中的“目的IP地址”查询硬件转发表,根据匹配结果进行相应的数据转发,并且采用硬件芯片或高速缓存支持,可以达到线速。由于“IP地址”属于OSI网络参考模型中的第三层——网络层的地址,所以称为三层交换技术。

除了三层交换技术,在三层数据转发技术中还有路由技术的概念,该技术在中低端路由器和早期交换机中采用,进行数据的转发时通过检测数据包中的“目的IP地址”来判断应该如何进行数据包的转发,但不采用硬件芯片或高速缓存支持,而只是通过CPU进行软件计算转发,所以在大流量数据条件下无法线速。由于数据处理能力的限制,该技术在高端路由器已经不被采用,高端路由器和三层交换机一样大量地使用了三层交换技术。

如果在三层交换技术的转发过程中增加对四层TCP/UDP端口的检测和硬件转发表匹配,则成为四层交换技术,由于四层交换技术在局域网中应用极少,所以该技术并不成为交换机处理性能的衡量标准。

1.2 三层交换技术带来的影响

在早期网络中,交换机只具备二层交换功能,所有的跨网段通信或跨广域网通信都通过采用路由技术的路由器设备(后来局域网内部短暂出现过采用路由技术的三层交换机),由于CPU实现路由技术的处理能力限制,当初的局域网基本不部署跨网段的网络应用,绝大部分的局域网甚至不进行任何网段的划分,不仅网络的安全性降低,网络的可管理性降低,而且由于广播的全网泛滥极大地降低了局域网的性能,无法组建大规模的网络。同样,路由技术的性能限制也影响了早期网络跨广域网的应用发展。在三层交换技术出现以后,所有的这一切都发生了改变,局域网可以随意部署大量的跨网段应用,网络的安全性和可管理性得到了极大的提升,可以通过三层交换技术构建大规模的各种网络,而广域网的应用也随着采用三层交换技术的高端路由器和高端路由交换机的出现而不断丰富。

2 三层交换技术的代表

网络设备在进行数据跨网段转发前需要查询路由转发表,然后才能做出数据转发的决定,路由转发表由非主机路由表(包括直连路由、静态路由、动态学习到的路由)和主机路由表(二层用户直接连接到三层设备时的路由或由系统管理员设定的某指定主机路由)两大部分组成,路由转发表的概念有助于更好地了解后文提到的三层交换技术。

技术1:一次路由、多次交换

在一次路由、多次交换的技术中,有一个非常重要的概念——数据流。

流是具有相同数据特征的数据包的集合,相同数据特征可以指相同的源/目的MAC地址、相同的源/目的IP地址,以及相同的四层协议和四层端口号。但在三层交换技术里,流的概念是指具有相同的源/目的IP地址的数据包的集合。

例如表1(流精确匹配硬件表):

所有源IP地址为192.168.1.1,目的IP地址为192.168.2.1的数据包都属于同一个数据流,但源IP地址为192.168.1.1,目的IP地址为192.168.2.2的数据包属于不同的数据流。

一次路由,多次交换的工作机制:

数据流的第一个数据包采用CPU软件实现三层路由,然后交换机把数据流三层转发需要的相关信息表项(源IP地址、目的IP地址、下一跳MAC地址、数据转发出口MAC地址)下载到ASIC芯片,该数据流后续数据包的三层转发就可以直接通过ASIC芯片采用流精确匹配来硬件实现。当另一个不同的数据流需要进行三层交换的时候需要重复同一个过程:一次路由、多次交换。

表一:流精确匹配硬件表

从表1的内容可以看到,虽然例子中数据三层转发的下一跳地址和数据转发出口都相同(也就是数据转发目的属于同一网段),但由于属于不同的数据流,分别占用了一个硬件表项。因此,在一次路由、多次交换的三层交换工作模式下,存在两个明显的缺点:首先,每种数据流的第一数据包采用CPU软件实现路由,在大型网络、应用繁多或病毒和***泛滥的数据流复杂环境下,数据的三层转发将大量耗费CPU资源,不仅影响了效率,而且CPU利用率过高后有可能导致设备死机;其次,由于采用了流精确匹配的硬件转发方式,在大型网络、应用繁多等数据流复杂的环境下对交换机硬件转发表的存储空间是一个极大的挑战,尤其在病毒和***网络环境下,由于每个数据包都有可能是一个独立的数据流,能在很短时间内就使硬件存储空间溢出,从而导致其它的数据流只能使用纯CPU软件实现三层路由,交换机将迅速因为资源耗竭而瘫痪直接死机。

一次路由、多次交换的缺点可以简单概括为:

1. 一次路由:采用CPU软件实现,CPU利用率高

2. 多次交换:流精确匹配,硬件存储空间承受巨大压力

技术2:最长前缀匹配硬件三层交换(LPM:Longest Prefix Matching)

在最长前缀匹配硬件三层交换技术中,三层硬件转发表里存储着和软件路由表一样的转发表项(主机路由表和网段路由表,不是流形式存在的转发表),而且可以支持网段相互包容的网络规划,在硬件转发过程中利用最长匹配技术进行准确的表项查询。

LPM实现机制:

1. 三层交换机刚启动完毕

表二:最长匹配硬件转发表——刚启动完毕

在交换机刚启动完毕时,交换机就把设备的软件路由表下载到ASIC芯片,但由于MAC地址是未知的,无法同时下载MAC地址,此时的硬件转发表是无效的。

2. 下载和工作机制

在需要进行三层交换的数据包到达交换机以后,交换机首先会查询最长匹配硬件转发表,但由于MAC地址未知,所以无法进行硬件数据转发。所以交换机将利用CPU对数据进行软件路由转发,交换机在数据的转发过程中获取下一跳和数据转发出口的MAC地址,然后会自动下载到三层硬件转发表,此时包含了下一跳和数据转发出口MAC地址的硬件转发表项才真正生效。在这之后,发往相同目的IP网段的数据包到达交换机都可以直接通过最长匹配硬件转发表进行硬件转发,而其它网段的数据转发需要重复上述的同一过程。

由于只有下载了MAC地址以后硬件表项才真正生效,业界通常把下载MAC地址的动作为真正意义上的下载三层转发表。

表三:最长匹配硬件转发表——正常运行

当数据是发往三层交换机的直连网段(该网段的主机直接二层连接到三层交换机),三层交换机除了把发往这些主机的数据发往对应的三层网关,交换机还负责把数据直接发往这些主机,交换机需要知道“主机IP地址”对应的“主机MAC地址”,为了提高转发效率,交换机将生成主机转发表,直接进行数据的转发,但表项匹配部分内容只有“目的IP地址”字段,不是数据流的存储形式,因此依然节约了非常大量的存储空间。假设表三例子中的192.168.2.0/24是直连路由,生成的最长匹配硬件转发表将为“表四”的形式。
表四:最长匹配硬件转发表——正常运行(包含直连网段)

最长匹配(LPM)三层交换技术可以解决传统方式“多次交换”中采用“流精确匹配”而带来存储空间压力过大的问题。最长匹配(LPM)技术支持静态路由、动态学习到的路由都直接以网段形式存储于硬件转发表,一个目的网段使用一个转发表项,而直连网段仅生成表项内容为“目的IP地址”的主机转发表,对于其它不明目的网段IP地址的数据包直接通过硬件缺省路由转发。因此,LPM技术的优点是极大地节约存储空间,病毒和***数据可以通过硬件网段路由或缺省路由进行转发,不增加额外的硬件表项,避免了存储溢出问题,保障设备的正常运行。

技术3:最长前缀匹配硬件三层交换的优化(LPM+HDR)

在LPM技术中依然保留了CPU参与一次路由的需要,虽然每个网段只有一次CPU参与的需要,但是在三层设备拥有直连网段,主机转发表数量比较多的情况下,CPU的第一次参与依然会对三层转发的处理效率产生一些影响,HDR技术可以进一步优化LPM技术的处理效率,主机直接路由(HDR:Host direct Route)用于解决CPU参与“一次路由”的不足。主机直接路由(HDR)支持三层设备在最长匹配硬件转发中的下一跳节点和数据转发出口运行ARP协议时把对应的MAC地址直接下载到硬件转发表。因此,没有了第一次CPU参与路由的效率影响,网络中的所有主机(Host)都可以通过最长匹配硬件转发表进行直接的三层转发。

LPM+HDR三层交换技术不需要CPU参与、节约了缓存空间,不仅极大地提高了路由效率,而且避免了病毒和***对网络设备本身的影响,提高设备的稳定性。

转载于:https://blog.51cto.com/1478762/1662794

三层交换技术——精确匹配、最长前缀匹配与最长前缀匹配+主机直接路由相关推荐

  1. ES第十三天-扩展查询-前缀匹配、通配符查询、正则查询、模糊匹配、句子前缀匹配

    前言 ES的无论什么搜索,对于text类型字段其实都是基于倒排索引去进行搜索的,也就是进行分词后的,因此如果想像传统数据库一样的模糊匹配,一般可以使用它的keyword进行搜索.(keyword不会被 ...

  2. 第六周作业(等值字串,KMP匹配,大整数相乘,最长公共子串,判断两个字符串是否匹配,最长回文子串,年号字串)

    目录 1.等值字串 2.KMP匹配 3.大整数相乘 4.最长公共子串 5.判断两个字符串是否匹配 6.最长回文字串 7.年号字串 补发一下,原来忘记发了. 1.等值字串 [问题描述]如果字符串的一个子 ...

  3. 【Excel高效工作3】VLOOKUP函数实例使用(二):精确匹配进阶——反向查找,多条件查找 / 模糊匹配的使用

    本章内容: 上一章用实例展示了VLOOKUP函数最基本的功能:精确匹配 的基础用法.然而,实际工作中对我们提出的需求会更高,面对某些更加复杂的情况,我们可能需要对Excel表格数据先进行预处理,再使用 ...

  4. 如何精确统计用户在页面的停留时长?

    作者:今日头条技术 链接:https://techblog.toutiao.com/2018/06/05/ru-he-jing-que-tong-ji-ye-mian-ting-liu-shi-cha ...

  5. 交换机二层交换和三层交换技术比较

    转载:http://1350429.blog.51cto.com/1340429/310079 在今天的网络建设中,三层交换机以其高效的性能.优良的性能价格比得到用户的认可和赞许.目前,三层交换机在企 ...

  6. 新手必读:三层交换技术基础知识详解

    数据来源 一.三层交换技术出现背景: 解决之前给网段划分VLAN控制端口,然后使用路由器设置单臂路由的让不同VLAN可以通信的缺点, 单臂路由缺点:         1)容易出现网络瓶颈 2)容易发生 ...

  7. 【2018亚太数据中心峰会】辜茂军:绿色智能数据机房技术- 精确送风

    过去的2017年,亚太地区的数据中心市场增速接近15%,领先于全球其他主要地区,与整体经济增长水平保持同步.区域内多元化的经济体发展特征使各国数据中心市场形成了鲜明的差异,以香港.新加坡为代表的成熟市 ...

  8. R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串、str_replace_all函数替换所有匹配到的

    R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串.str_replace_all函数替换所有匹配到的 ...

  9. 匹配内容主要分为三部分,负载电容的匹配,驱动功率的调试,负性阻抗的测量。...

    匹配内容主要分为三部分,负载电容的匹配,驱动功率的调试,负性阻抗的测量. 转载于:https://www.cnblogs.com/duwenqidu/p/10077510.html

  10. 配置单臂路由、三层交换技术以及动态路由

    实验05:配置单臂路由 一. 实验目标 通过Cisco Packet Tracer来配置单臂路由. 二.实验环境和拓扑 window 7操作系统,Cisco Packet Tracer软件. 拓扑结构 ...

最新文章

  1. 矩阵计算在计算机科学中,开发者必读:计算机科学中的线性代数(附论文)
  2. springboot集合jpa使用
  3. PHP 字符处理 加密解密 函数收集
  4. 阿里云查看mysql版本_查看mysql版本的四种方法及常用命令
  5. python和perl区别_对比平台--Perl与Python之间的差异
  6. [bzoj3489]A simple rmq problem
  7. 删除右键菜单中的选项:在Visual Studio中打开
  8. C# DllImport的用法(转)
  9. c语言const常量用法,C++ const常量在多文件编程中的3种用法
  10. python batch_size_Python config.batch_size方法代码示例
  11. Unity快速安装教程
  12. Prolog 语言入门教程(转)
  13. Android5.0+win8双系统平板PK苹果ipad
  14. Dynamic Programming 什么意思
  15. Linux,你了解多少!
  16. 【转】微信小程序日期时间选择器(年月日时分秒)
  17. SAP税务处理---采购/销售相关
  18. MongoDB+robomongo
  19. Python实现北邮人论坛模拟登录
  20. solidworks flexnet server服务无法启动解决方案:

热门文章

  1. 用unity制作简单的AR,亲测有效
  2. uniapp中使用阿里云视频点播功能
  3. 中国茶道的基本精神(转)
  4. python蜂鸣器天空之城频率_蜂鸣器版天空之城 - osc_lopdl9qi的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. 完美解决浏览器劫持方法,简单实用百试百灵!
  6. win10+tensorflow-gpu+1050ti(终于安装成功了T﹏T)
  7. mysql workbench pk_mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI_MySQL - numeric
  8. 积分兑换系统怎样设置“新花样”?
  9. 整合dubbo报错严重 Exception sending context initialized event to listener instance of class 解决
  10. 基于GoLang的MMO游戏服务器(四)