浅谈路由器交换结构

一、路由器技术概述

        路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的TCP/IP协议。

        其功能主要可以划分成两点:路由和转发。        

        路由指的是分组从源端到目的端的过程中,确定端到端路径的过程;转发指的是路由器输⼊端的数据包移送⾄适当的路由器输出端的过程(在路由器内部进⾏)。

        其中路由部分由cpu和内存完成,属于控制平面;转发的部分由硬件处理芯片(交换结构)完成,属于数据平面。

二、交换结构

        交换结构是路由器的核心组件。作用是根据FID表(转发表)对分组进行处理将某个输入端口进入的分组从个合适的输出端转发出去。交换结构本身就是络(一种NoC,片上网络),但这种络完全包含在路由器中,因此交换结构可看成是”在路由器中的网络”。

        至今路由器的发展已经演化出了三种交换方式,分别是:

  • 通过存储器进行交互
  • 通过总线进行交换
  • 通过内部交换网络进行交换 表示分组通过纵横交换结构进行交换

2.1 通过存储器进行交换

       这种方式主要的工作原理是CPU负责运行预设的路由协议,同时读取线路卡(Linecard)中的数据,处理后通过写入新线路卡(Linecard)的方式完成转发。

        这种方式常见于第一代路由器,这一类的路由器具有共享总线背板,采用集中式的共享CPU和缓存的方式,完成数据包的转发判决(软件)。其主要的功能都是通过软件进行实现,结构简单。其特点是能够集中处理,但是吞吐率受限,原因在于CPU既要运行路由协议,又负责数据包的处理和转发,存在严重的处理瓶颈。

2.2 通过总线进行交换

        通过总线进行交换与之前提到的通过内存进行交换最大的区别在于,这种方式把CPU的权限和功能下放到了各个Linecard之中。以此技术为代表的有第二代路由器和第三代路由器。

        其中第二代路由器把转发表从路由器的处理器下发至接口线卡缓存,一次查表多次路由,接种类多,配置灵活。该体系结构的路由器主要是数据在第次到达时生成转发表,然后将转发表从路由处理器下发到接线卡缓存,次查表多次路由,这样的方式在定程度上释放了路由处理器(CPU)使得其有限次参与路由的转发,但是在路由状况不断变化的环境中,IP路由表的改变会使得转发无效,线卡缓存需要不断从路由处理器中同步转发表,性能优势会受到很限制(对总线的性能要求较高)。这样的发展方式就类似于计算机在演进过程中,缓存cache的诞生,通过把一部分需要频繁使用的数据进行单独缓存,可以有效提高系统的工作效率。

        第三代路由器通过提高Linecard的处理能力,同时将路由计算的处理器从路由转发中解放出来 ,把处理的任务下发到各个Linecard上。这种主板和从板的分布式结构大大提高了系统的整体性能,使得第二代路由器每块线卡(从板)是拥有自己的处理器、内存和如果网卡的独立子系统,在本地线卡进行存储和转发判断,主板基本上不参与路由转发操作,主要负责整个系统的管理操作和路由计算等任务,并把用于转发判决的转发表发布到各个从板上,共享总线的容量直接限制了路由器的吞吐率,成为系统无法避免的瓶颈。

2.3 通过内部交换网络进行交换 表示分组通过纵横交换结构进行交换

        不同于前两种交换方式,这种方式采用了不再采用共享背板的方式,而是采用了交换式背板,采用分散的CPU和缓存,使用ASIC+RISC的CPU系统。这样的交换机我们称之为交换式路由器,第四代路由器、第五代路由器和第六代路由器都是采用的这种交换结构。

        第四代路由器引入了交换网。它的引解决了总线的瓶颈,实现阻塞交换。但是对QOS、MPLS VPN、组播、IPv6支持弱。 该体系结构路由器引了交换结构代替原有的共享总线,交换结构可以提供比共享总线得多的带宽,线卡上般不再采处理器,而是采ASIC实现的专转发引擎或者是针对络处理进行了优化的网络处理器,以提高对报文的处理和转发能力。中央处理器负责完成路由协议和其它控制协议的处理,并根据路由表成转发引擎所需要的转发表,将转发表同步到各个线卡上。路由器的整体性能主要由线卡对报文的转发处理能力,以及交换结构的交换容量决定。

        第五代路由器出来之前:路由器都是专用路由器。第五代路由器有了np芯片(有可编程性),可以对很多的业务进行处理加速(全业务加速)。

        第六代路由器采用三级交换结构、严格意义上的无阻塞结构。第二级通常是单独的中央交换框,F1、F2、F3之间采用光纤互连(光背板) 。随着分组搜索系统的日趋复杂,设计师需要采用各种各样的解决方案以满足千差万别的搜索要求。策略查表法(例如存取控制表(ACL)和服务质量(QoS))需要高性能以及超群的搜索灵活性和易用性——而所有这些都需要采用TCAM。另一方面,转发查表(包括虚拟路由器转发(VRF)和虚拟专用网络(VPN))也可以使用TCAM技术进行加速。

        随着网络速度的剧增,传统的解决方案已经无法满足速度要求,这时就需要一个专门的硬件来解决这个矛盾,该硬件通常称为NSE(网络搜索引擎),TCAM其实就是一种基于CAM技术的NSE多级交换结构是由多个交换单元互联起来的,每个交换单元具有一整套输入输出,与普通交换机类似,提供输入输出的连接。通过互联多个小的交换单元,就可以制造一个大型的、可扩展的交换结构。多级结构之间的不同取决于交换单元之间是如何互联的。典型的结构包括Benes网、Butterfly网、Clos网等形式。

          ​​​​​

三、总结

        在最初的交换结构中,我们采用存储器实现交换结构,这样的方式特点是能够集中处理,但是吞吐率受限,原因在于CPU既要运行路由协议,又负责数据包的处理和转发,存在严重的处理瓶颈;为了进一步提高处理速度,我们把CPU的功能逐渐下放,让linecard有了更高的处理能力,由此诞生了第二第三代路由器;但是对于linecard来说,它并不必要完成路由的计算功能,我们希望的是更快的处理和转发速度,因此将linecard中通用的CPU优化成专用属性更强的ASIC,进一步优化交换网络结构,这才有了第四第五第六代路由器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/678926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文章页的上下篇功能是否有必要?boke112百科取消上下篇功能

也不知道是从什么时候开始,我们很多站长的博客网站文章页都会在文末添加上“上一篇”和“下一篇”功能,目的是进行站内SEO优化和方便用户阅读上下篇文章。 boke112百科不管是以前使用的Three主题还是现在使用的YIA主题,刚开始的文章页都是有…

学习Android的第十天

目录 Android CheckBox 复选框 获得选中的 CheckBox 的值 自定义点击效果 改变文字与选择框的相对位置 修改文字与选择框的距离 Android ToggleButton 开关按钮 改变 ToggleButton 的状态和文本 Android Switch 开关 改变 Switch 的状态和文本 Android CheckBox 复选框…

腾讯云4核8G服务器可以用来干嘛?怎么收费?

腾讯云4核8G服务器适合做什么?搭建网站博客、企业官网、小程序、小游戏后端服务器、电商应用、云盘和图床等均可以,腾讯云4核8G服务器可以选择轻量应用服务器4核8G12M或云服务器CVM,轻量服务器和标准型CVM服务器性能是差不多的,轻…

sheng的学习笔记-docker部署springboot

部署文章目录:目录 docker部署,原理,命令,可以参考:docker原理图,部署,命令 目录 将springboot部署到docker中 遇到过的问题: pom配置 操作步骤 生成jar 构建镜像 查看镜像d…

CTFshow-WEB入门-信息搜集

web1(查看注释1) wp 右键查看源代码即可找到flag web2(查看注释2) wp 【CtrlU】快捷键查看源代码即可找到flag web3(抓包与重发包) wp 抓包后重新发包,在响应包中找到flag web4(robo…

物联网和工业4.0

在当今这个快速发展的技术时代,物联网(IoT)和工业4.0成为了推动全球进入新工业时代的两大驱动力。对于刚入行的人来说,深入理解这两个概念及其背后的技术原理,对于把握未来的职业机会至关重要。 物联网,简…

关于java的多线程初识

关于java的多线程初识 我们从今天开始,正式学习java的多线程,我们在前面的文章中学习到了java的基础, 但是距离我们工作实战还差的很远,我们学习好了基础,以后的文章会逐步的深入,去讲解各种前端框架&…

Flink从入门到实践(三):数据实时采集 - Flink MySQL CDC

文章目录 系列文章索引一、概述1、版本匹配2、导包 二、编码实现1、基本使用2、更多配置3、自定义序列化器4、Flink SQL方式 三、踩坑1、The MySQL server has a timezone offset (0 seconds ahead of UTC) which does not match the configured timezone Asia/Shanghai. 参考资…

【python】网络爬虫与信息提取--requests库

导学 当一个软件想获得数据,那么我们只有把网站当成api就可以 requests库:自动爬取HTML页面,自动网络请求提交 robots协议:网络爬虫排除标准(网络爬虫的规则) beautiful soup库:解析HTML页面 工具&…

算法---回溯(正文)

1.什么是回溯? 回溯算法的定义就是和暴力枚举一样枚举所有可能并加撤回,也能和暴力一样去掉一些重复(在之前就被筛出,但还要枚举这个,我们可以跳过这个了---------这个就是回溯剪枝)。但为什么回溯不是暴力…

【精选】java多态进阶——多态练习测试

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…

Mac上新版InfluxDB使用教程

一、简介 官网:influxdb 二、influxdb安装 建议使用Homebrew在 macOS 上安装 InfluxDB v2: brew install influxdb启动influxdb服务:brew services start influxdb 停止influxdb服务:brew services stop influxdb 查看是否启…

使用R语言fifer包进行分层采样

使用R语言fifer包中的stratified()函数用来进行分层采样非常方便,但fifer包已经从CRAN存储库中删除,需要从存档中下载可用的历史版本,下载链接:Index of /src/contrib/Archive/fifer (r-project.org)https://cran.r-project.org/s…

opencv 图像色彩空间转化

今天看了b站贾志刚的课,觉得不错,特地做学习笔记来和小伙伴分享 贾志刚的这个好像是2.0版本,30小时的,语言更加精炼,适合初级入门学习 第一节是常规安装 看他的步骤装就行了,记得配置完点应用再点确定,我第一次就是 没点然后就失败了,又得重配置一次…

python+flask+django农产品供销展销电子商务系统lkw43

供销社农产品展销系统的设计与实现,最主要的是满足使用者的使用需求,并且可以向使用者提供一些与系统配套的服务。本篇论文主要从实际出发,采用以对象为设计重点的设计方法,因此在进行系统总体的需求分时借助用例图可以更好的阐述…

电缆线的阻抗50Ω,真正含义是什么?

当我们提到电缆线的阻抗时,它到底是什么意思?RG58电缆通常指的是50Ω的电缆线。它的真正含义是什么?假如取一段3英尺(0.9144米)长的RG58电缆线,并且在前端测量信号路径与返回路径之间的阻抗。那么测得的阻抗是多少?当然…

使用UMAP降维可视化RAG嵌入

大型语言模型(LLMs)如 GPT-4 已经展示了出色的文本理解和生成能力。但它们在处理领域特定信息方面面临挑战,比如当查询超出训练数据范围时,它们会产生错误的答案。LLMs 的推理过程也缺乏透明度,使用户难以理解达成结论…

指针的基本含义及其用法

1.前言 在学习C语言的时候,我们会经常接触一个概念,指针和地址,关于这两个概念很多人并不能理解地十分透彻,接下来我将详细介绍一下这两者的概念 2.地址 我们知道计算机的上CPU(中央处理器)在处理数据的时…

C++重新入门-循环

目录 1.循环类型 while循环: for循环 基于范围的for循环(C11) do...while 循环 2.循环控制语句 3.无限循环 有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着…

AI:126-基于深度学习的人体情绪识别与分析

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…