系统屋 - 系统光盘下载网站!

当前位置:首页 > 系统教程 > Linux教程 > 详细页面

Linux系统硬件路由的转发原理

时间:2023-02-17来源:系统屋作者:zhijie

  在Linux系统中路由转发指的是信号从一个站点转向另一个站点的一种协议,因为有些信号转发,有些信号不转发,才构成了纷繁复杂的网络世界。本文就来介绍一下Linux系统硬件路由的转发原理。

  硬件转发原理图:

Linux系统硬件路由的转发原理

  请注意,没有任何优化,你可以试着用一些小技巧将其进一步的优化,也可以直接用标准的TCAM来映射它。此图里,我详细展示了“最长前缀”逻辑是怎么做的,而在TCAM路由转发表的实例中,往往被画成了黑盒子,叫做“优先级逻辑控制器”,不过,这个逻辑电路比较简单,相信大家稍微思考都可以自己设计出来的。

  其实,在上图中,有一个容器叫做“反掩码”,将这个反掩码逐位地安排在译码器后面的位线比较键旁边,这就是一个标准的TCAM做法了。

  关于内容寻址和地址寻址

  我们都知道cache比较贵所以不能太大,而内容就可以做很大,因为它比较便宜。

  但是能否从技术层面解释一下呢?其实,贵与便宜的差异就是技术原因造成的,我们先看一下内存的存储阵列的电路:

Linux系统硬件路由的转发原理

  这是个非常典型的矩阵,也很简单。但是对于CAM电路,就不是这么简单了,下图所示:

Linux系统硬件路由的转发原理

  对于TCAM,需要加一个care逻辑,就更加复杂了,不光是电路复杂了,功耗也增加了,要知道,在CAM/TCAM匹配的过程中,电路的所有部分都是同时工作的。

  关于硬件HASH

  很多人都说CPU cache里面有一个硬件HASH,比如取地址的第n到m位,事实上就是一个移位,取模操作!这在程序员看来只能呵呵了,程序员们知道的最简单的HASH算法都比这个复杂。其实硬件工程师对程序员的呵呵是不屑一顾的,因为他们的关注点是如何使得电路同时工作时功耗最低,电路规模更小。CAM/TCAM都用了硬件HASH,很简单的硬件HASH,然而电路是可以同时工作的。这可是软件hash的大难题,软件hash旨在使得hash分布更加均匀,平均性能更好。这样冲突链表长度的平均方差最小。软件hash旨在解决冲突,而硬件HASH不需要这么做,因为在软件看来必须串行遍历冲突链表的时候,硬件却是可以同时进行的。

  顺序执行的CPU

  计算机被设计之初,就是一个顺序执行的模型,指令是一条接一条执行的。这是因为它是完全模拟真实世界中人的行为的。这就意味着所有的跑在计算机上的算法步骤都是要时间流逝中串行实施的,一个好的算法旨在让时间花费最短。然而硬件电路的设计并不遵循真实世界的人做事的样子,起码说不是太像。一个人不可能同时做很多事,硬件电路的执行流程更像是洪水泛滥的过程,由于势能,洪水同时往(注意,同时!)所有它可以去的地方冲去,瞬时就吞噬了一切。

  以上就是Linux系统硬件路由的转发原理了,当然路由转发只是Linux网络环节中的一部分,当然也是最不可替代的部分。

分享到:

相关信息

  • Linux系统如何渲染Chrome浏览器的字体

    在Linux系统下可以对Chrome浏览器的字体进行渲染,从而让Chrome的字体看起来更加美观,而且Linux字体渲染相对于的Windows的半吊子,还是大有可为的。本文就来介绍一下Linux系统如何渲染Chrome浏览器的字体。...

    2023-02-16

  • Linux屏蔽浏览器上http请求警报的方法

    在Linux系统中浏览器的页面上是不允许出现http请求的,如果出现了http请求就会发生错误,并且Linux系统会向用户发出警报。本文就来介绍一下Linux系统屏蔽浏览器页面上的http请求警报的方法。...

    2023-02-16

评论

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载

公众号