Linux系統(tǒng)硬件路由的轉(zhuǎn)發(fā)原理是什么
學(xué)習(xí)Linux系統(tǒng)的朋友們應(yīng)該了解過系統(tǒng)硬件路由的轉(zhuǎn)發(fā),在Linux系統(tǒng)中路由轉(zhuǎn)發(fā)指的是信號(hào)從一個(gè)站點(diǎn)轉(zhuǎn)向另一個(gè)站點(diǎn)的一種協(xié)議,那么具體原理是什么呢。本文就來(lái)介紹一下Linux系統(tǒng)硬件路由的轉(zhuǎn)發(fā)原理。
硬件轉(zhuǎn)發(fā)原理圖:
請(qǐng)注意,沒有任何優(yōu)化,你可以試著用一些小技巧將其進(jìn)一步的優(yōu)化,也可以直接用標(biāo)準(zhǔn)的TCAM來(lái)映射它。此圖里,我詳細(xì)展示了“最長(zhǎng)前綴”邏輯是怎么做的,而在TCAM路由轉(zhuǎn)發(fā)表的實(shí)例中,往往被畫成了黑盒子,叫做“優(yōu)先級(jí)邏輯控制器”,不過,這個(gè)邏輯電路比較簡(jiǎn)單,相信大家稍微思考都可以自己設(shè)計(jì)出來(lái)的。
其實(shí),在上圖中,有一個(gè)容器叫做“反掩碼”,將這個(gè)反掩碼逐位地安排在譯碼器后面的位線比較鍵旁邊,這就是一個(gè)標(biāo)準(zhǔn)的TCAM做法了。
關(guān)于內(nèi)容尋址和地址尋址
我們都知道cache比較貴所以不能太大,而內(nèi)容就可以做很大,因?yàn)樗容^便宜。
但是能否從技術(shù)層面解釋一下呢?其實(shí),貴與便宜的差異就是技術(shù)原因造成的,我們先看一下內(nèi)存的存儲(chǔ)陣列的電路:
這是個(gè)非常典型的矩陣,也很簡(jiǎn)單。但是對(duì)于CAM電路,就不是這么簡(jiǎn)單了,下圖所示:
對(duì)于TCAM,需要加一個(gè)care邏輯,就更加復(fù)雜了,不光是電路復(fù)雜了,功耗也增加了,要知道,在CAM/TCAM匹配的過程中,電路的所有部分都是同時(shí)工作的。
關(guān)于硬件HASH
很多人都說CPU cache里面有一個(gè)硬件HASH,比如取地址的第n到m位,事實(shí)上就是一個(gè)移位,取模操作!這在程序員看來(lái)只能呵呵了,程序員們知道的最簡(jiǎn)單的HASH算法都比這個(gè)復(fù)雜。其實(shí)硬件工程師對(duì)程序員的呵呵是不屑一顧的,因?yàn)樗麄兊年P(guān)注點(diǎn)是如何使得電路同時(shí)工作時(shí)功耗最低,電路規(guī)模更小。CAM/TCAM都用了硬件HASH,很簡(jiǎn)單的硬件HASH,然而電路是可以同時(shí)工作的。這可是軟件hash的大難題,軟件hash旨在使得hash分布更加均勻,平均性能更好。這樣沖突鏈表長(zhǎng)度的平均方差最小。軟件hash旨在解決沖突,而硬件HASH不需要這么做,因?yàn)樵谲浖磥?lái)必須串行遍歷沖突鏈表的時(shí)候,硬件卻是可以同時(shí)進(jìn)行的。
順序執(zhí)行的CPU
計(jì)算機(jī)被設(shè)計(jì)之初,就是一個(gè)順序執(zhí)行的模型,指令是一條接一條執(zhí)行的。這是因?yàn)樗峭耆M真實(shí)世界中人的行為的。這就意味著所有的跑在計(jì)算機(jī)上的算法步驟都是要時(shí)間流逝中串行實(shí)施的,一個(gè)好的算法旨在讓時(shí)間花費(fèi)最短。然而硬件電路的設(shè)計(jì)并不遵循真實(shí)世界的人做事的樣子,起碼說不是太像。一個(gè)人不可能同時(shí)做很多事,硬件電路的執(zhí)行流程更像是洪水泛濫的過程,由于勢(shì)能,洪水同時(shí)往(注意,同時(shí)!)所有它可以去的地方?jīng)_去,瞬時(shí)就吞噬了一切。
補(bǔ)充:計(jì)算機(jī)硬件常見故障及其原因
1.1 計(jì)算機(jī)自動(dòng)重啟
在計(jì)算機(jī)運(yùn)行中,自動(dòng)重啟的現(xiàn)象時(shí)有發(fā)生,造成這一問題的原因是多樣化的。但從硬件角度而言,主要可能由以下原因所致:
1.1.1 內(nèi)存問題所致
內(nèi)存問題是電腦的常見故障,若內(nèi)存上的某個(gè)芯片受損,就對(duì)計(jì)算機(jī)的穩(wěn)定運(yùn)行造成極大影響。特別是內(nèi)存芯片受損,導(dǎo)致產(chǎn)生發(fā)熱現(xiàn)象,就會(huì)造成部分功能的喪失,而出現(xiàn)計(jì)算機(jī)重啟問題的發(fā)生。
1.1.2 CPU問題所致
CPU是計(jì)算機(jī)的核心硬件,但當(dāng)CPU的功能電路受到損壞之時(shí),會(huì)出現(xiàn)散熱不良等問題,這樣一來(lái),計(jì)算機(jī)在特殊功能的運(yùn)行中,就會(huì)因無(wú)法承受運(yùn)行請(qǐng)求而出現(xiàn)自動(dòng)啟動(dòng)。
1.2 計(jì)算機(jī)死機(jī)
計(jì)算機(jī)運(yùn)行速度下降,甚至出現(xiàn)藍(lán)屏死機(jī)的現(xiàn)象比較常見,有因計(jì)算機(jī)散熱不佳,溫度過高所致的原因,也有主板故障所致的因素所在。因此,在計(jì)算機(jī)運(yùn)行中,若出現(xiàn)計(jì)算機(jī)死機(jī)問題,應(yīng)從以下幾個(gè)方面查找原因:
1.2.1 CPU散熱不佳
在計(jì)算機(jī)運(yùn)行中,CPU散熱不良、超頻等情況的出現(xiàn),都會(huì)造成計(jì)算機(jī)CPU產(chǎn)生較大的熱量,一旦散熱不暢或持續(xù)產(chǎn)生較大熱量,就會(huì)造成計(jì)算機(jī)出現(xiàn)死機(jī)。
1.2.2 硬盤故障
硬盤出現(xiàn)老化,或使用不當(dāng)而導(dǎo)致壞道區(qū)和壞扇區(qū)出現(xiàn)問題,這都會(huì)對(duì)計(jì)算機(jī)的運(yùn)行造成影響,形成死機(jī)現(xiàn)象。
1.2.3 主板故障
主板故障導(dǎo)致死機(jī)的原因有多種,主要有電容質(zhì)量問題、電源管理芯片性能下降等。
1.3 顯示器圖像抖動(dòng)
散熱問題是計(jì)算機(jī)穩(wěn)定運(yùn)行的重要因素。但由于計(jì)算機(jī)硬件的運(yùn)行,都會(huì)產(chǎn)生熱量,這就會(huì)對(duì)計(jì)算機(jī)的運(yùn)行形成影響。在計(jì)算機(jī)運(yùn)行中,顯示器突顯出現(xiàn)抖動(dòng)、色差的情況時(shí)有發(fā)生,究其緣由,主要是硬件設(shè)備在長(zhǎng)時(shí)間的運(yùn)行中,出現(xiàn)硬件溫度過高,特別是在散熱不良(不暢)的情況之下,顯示器、CPU的問題過高,更容易出現(xiàn)計(jì)算機(jī)顯示器圖像抖動(dòng)或失真現(xiàn)象。因此,在計(jì)算機(jī)的日常運(yùn)行中,要特別注意計(jì)算機(jī)的散熱狀況,若計(jì)算機(jī)長(zhǎng)時(shí)間運(yùn)行,計(jì)算機(jī)出現(xiàn)溫度過高等情況,都會(huì)對(duì)就算的硬件造成影響,加速硬件老化的發(fā)生。
相關(guān)閱讀:電腦硬件維護(hù)小技巧
不要強(qiáng)行關(guān)閉筆記本電腦。一定要根據(jù)正確的關(guān)閉程序步驟來(lái)關(guān)閉電腦的運(yùn)行,因?yàn)殡娔X在運(yùn)行中會(huì)不斷讀寫數(shù)據(jù)。如果強(qiáng)行關(guān)閉,很容易損壞硬盤,造成重要數(shù)據(jù)丟失。只有在電腦死機(jī)或者系統(tǒng)無(wú)法響應(yīng)時(shí)才可以強(qiáng)行關(guān)機(jī)。
不要用筆記本電腦的電池里電玩游戲。筆記本電腦的電池電量只能支撐兩個(gè)小時(shí)左右,而且游戲的時(shí)候CPU和顯卡帶來(lái)的大功率會(huì)對(duì)鋰電池造成嚴(yán)重?fù)p耗和壽命迅速衰減。如果玩游戲應(yīng)該插電再玩,這樣才能更好的保護(hù)電池。
開不了機(jī)就拔掉內(nèi)存條試試。一般的筆記本最容易出問題的就是內(nèi)存條接口,接口壞了就不能開機(jī),俗稱“點(diǎn)不亮”。因此一般遇到開不了機(jī)的情況就先檢查一下是不是內(nèi)存條接口出現(xiàn)了問題,可以清潔一下接口。
加強(qiáng)散熱的方法。大多數(shù)的筆記本電腦采用的是風(fēng)冷散熱系統(tǒng),風(fēng)冷的一大問題就是灰塵淤積造成散熱差,可以試試除一下塵。如果自己不能很熟練拆開,建議還是找專業(yè)人員,這樣可以避免因不小心造成內(nèi)部損壞。另外,經(jīng)過一段時(shí)間導(dǎo)熱的硅脂會(huì)變性,導(dǎo)致散熱能力降低,建議兩年左右換一次硅脂。
秋冬季節(jié)防靜電。秋冬時(shí)節(jié)非常干燥,特別是在北方地區(qū)。靜電對(duì)人體沒什么傷害,但是對(duì)電腦就不一樣了,很容易造成電路燒毀。也有的筆記本電腦主板會(huì)有靜電保護(hù)措施,自動(dòng)切斷電路,但是即使這樣也是無(wú)法開啟的,解決的辦法就是靜置幾個(gè)小時(shí),一般都會(huì)恢復(fù)正常。
不要在電腦工作時(shí)拔插頭。電腦工作時(shí)不能拔插頭或者插板卡,這樣會(huì)損壞電腦的板卡,因?yàn)殡娔X工作時(shí)拔掉它們會(huì)產(chǎn)生靜電,造成信號(hào)電壓不匹配導(dǎo)致電腦損壞。