系統之家 - 系統光盤下載網站!

當前位置:系統之家 > 系統教程 > Linux硬件路由轉發(fā)

Linux系統硬件路由的轉發(fā)原理

時間:2015-09-15 14:07:48 作者:zhijie 來源:系統之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150915/57742.html 手機查看 評論

  在Linux系統中路由轉發(fā)指的是信號從一個站點轉向另一個站點的一種協議,因為有些信號轉發(fā),有些信號不轉發(fā),才構成了紛繁復雜的網絡世界。本文就來介紹一下Linux系統硬件路由的轉發(fā)原理。

  硬件轉發(fā)原理圖:

Linux系統硬件路由的轉發(fā)原理

  請注意,沒有任何優(yōu)化,你可以試著用一些小技巧將其進一步的優(yōu)化,也可以直接用標準的TCAM來映射它。此圖里,我詳細展示了“最長前綴”邏輯是怎么做的,而在TCAM路由轉發(fā)表的實例中,往往被畫成了黑盒子,叫做“優(yōu)先級邏輯控制器”,不過,這個邏輯電路比較簡單,相信大家稍微思考都可以自己設計出來的。

  其實,在上圖中,有一個容器叫做“反掩碼”,將這個反掩碼逐位地安排在譯碼器后面的位線比較鍵旁邊,這就是一個標準的TCAM做法了。

  關于內容尋址和地址尋址

  我們都知道cache比較貴所以不能太大,而內容就可以做很大,因為它比較便宜。

  但是能否從技術層面解釋一下呢?其實,貴與便宜的差異就是技術原因造成的,我們先看一下內存的存儲陣列的電路:

Linux系統硬件路由的轉發(fā)原理

  這是個非常典型的矩陣,也很簡單。但是對于CAM電路,就不是這么簡單了,下圖所示:

Linux系統硬件路由的轉發(fā)原理

  對于TCAM,需要加一個care邏輯,就更加復雜了,不光是電路復雜了,功耗也增加了,要知道,在CAM/TCAM匹配的過程中,電路的所有部分都是同時工作的。

  關于硬件HASH

  很多人都說CPU cache里面有一個硬件HASH,比如取地址的第n到m位,事實上就是一個移位,取模操作!這在程序員看來只能呵呵了,程序員們知道的最簡單的HASH算法都比這個復雜。其實硬件工程師對程序員的呵呵是不屑一顧的,因為他們的關注點是如何使得電路同時工作時功耗最低,電路規(guī)模更小。CAM/TCAM都用了硬件HASH,很簡單的硬件HASH,然而電路是可以同時工作的。這可是軟件hash的大難題,軟件hash旨在使得hash分布更加均勻,平均性能更好。這樣沖突鏈表長度的平均方差最小。軟件hash旨在解決沖突,而硬件HASH不需要這么做,因為在軟件看來必須串行遍歷沖突鏈表的時候,硬件卻是可以同時進行的。

  順序執(zhí)行的CPU

  計算機被設計之初,就是一個順序執(zhí)行的模型,指令是一條接一條執(zhí)行的。這是因為它是完全模擬真實世界中人的行為的。這就意味著所有的跑在計算機上的算法步驟都是要時間流逝中串行實施的,一個好的算法旨在讓時間花費最短。然而硬件電路的設計并不遵循真實世界的人做事的樣子,起碼說不是太像。一個人不可能同時做很多事,硬件電路的執(zhí)行流程更像是洪水泛濫的過程,由于勢能,洪水同時往(注意,同時。┧兴梢匀サ牡胤經_去,瞬時就吞噬了一切。

  以上就是Linux系統硬件路由的轉發(fā)原理了,當然路由轉發(fā)只是Linux網絡環(huán)節(jié)中的一部分,當然也是最不可替代的部分。

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統推薦

掃碼關注
掃碼關注

掃碼關注 官方交流群 軟件收錄