《深入理解Linux網路技術內幕》閱讀筆記(十三)

2021-07-05 13:55:42 字數 2087 閱讀 1762

中繼器:

通常配有兩個埠,只是簡單地把乙個埠所接收的東西複製到另乙個埠,反之亦然。它複製的資料是按位複製的,並且對協議毫不關心。

網橋:

它了解鏈路層協議,因此可以按幀複製資料,而非按位複製。也就是說,網橋在每個埠上至少可以快取乙個幀。大多數lan都用網橋——也常稱為交換機(switch)。

路由器:

它是了解l3網路層協議,例如ip,的裝置,它可以根據路由表**入口封包。在使用路由器之前,通常使用術語「閘道器」指這類裝置。

術語網橋和交換機可以指相同的裝置,但是,在討論網橋的行為以及stp的執行方式的文件中,主要使用術語網橋。相反,當指那些真實的物理裝置時,通常都是使用術語交換機。

圖14-2拓撲就是讓一些處在不同lan中的主機共享相同的l2以及相同的ip子網。圖14-3拓撲可以把主機隔離在不同的子網內,也許是基於管理方面的原因。

圖14-4具體示例過程如下:

a. 主機a向主機b發出乙個幀。因為主機a和主機b在相同的lan中,因而它接收到該幀,並且網橋也接收到乙份副本。因為網橋不知道主機b在何處,所以該幀也複製到lan2。但是,由於網橋在其lan1埠上接受了來自主機a的幀,現在網橋知道主機a在lan1。

b. 主機b向主機a發出乙個幀(主機b不發包的話,就沒辦法知道了)。主機a和網橋都接收到該幀。因為網橋已知道主機a在lan1內,而其接收的幀也來自於相同的lan,所以網橋不會把幀複製到lan2。

c. 主機a向主機c發出乙個幀。主機b和網橋都會接收到幀。主機b丟棄該幀,因為主機b不是接收者,而網橋會把該幀複製到lan2,因為網橋不知道主機c在何處。但網橋已經知道主機a位於lan1,因此,網橋不需要在lan1埠的可到達位址列表中新增任何專案。

d. 主機c向主機a發出乙個幀。主機d和網橋都會接收到其副本。主機d會丟棄該幀,因為它不是接收者,而網橋會將其複製到lan1,因為網橋知道主機a在lan1內。

當網橋不知道該用哪個介面來連線特定的l2位址時,就會把幀複製到所有介面上(接收該幀的介面除外),這種行為就稱為擴散。

當網橋接收到乙個目的位址是鏈路層廣播位址(ff:ff:ff:ff:ff:ff)或l2多播位址的幀時,會將該幀複製給每個埠(接收該幀的介面除外)。多播位址和廣播位址不能在幀中作為源位址,所以不會被網橋學習而分配給某個特定埠(這會產生錯誤)。

為了讓網橋的知識能適應拓撲的變化,網橋學習到的位址會在乙個可配置的時間量後過期,這種老化機制通常是由乙個簡單的定時器實現。

一條重要規則:透明網橋不能用在環路拓撲上。

原因:

同乙個lan中有多台網橋是有用的,例如,可以提高不同lan之間的連通能力。如果一台網橋因某種原因無法使用,其他網橋就可以維持這種連通性。但是會產生問題:

就是所謂的網橋環路。

網橋用於找出最佳無環路拓撲的演算法是生成樹協議。

《深入理解Linux網路技術內幕》閱讀筆記(五)

通過中斷,nic能夠告知其驅動程式幾種不同的事情,包括 1.接收一幀。2.傳輸失敗。3.dma傳輸已成功完成。給定乙個幀傳輸,當幀上載至nic的記憶體準備在此媒介上傳輸時,驅動程式就會將持有該幀的緩衝區釋放掉。使用同步傳輸時 無dma 當該幀已上傳至nic,驅動程式就會立刻知道。但使用dma時,也就...

《深入理解Linux網路技術內幕》閱讀筆記(六)

pci的優點之一是,其支援尋找irq和每個裝置所需的其他資源的探測方式相當優雅。模組可以在載入期間接收一些輸入引數,以告知該如何配置其所負責的所有裝置。但是,有些時候,特別是pci這類匯流排,讓驅動程式自行檢查系統上的裝置,然後為其負責的那些裝置做配置會比較簡單一點。必要時,可以退回到手動配置。探測...

《深入理解Linux網路技術內幕》閱讀筆記(九)

當特定事件發生時,裝置驅動程式會代表核心指示裝置產生硬體中斷。處理函式會把該幀排入佇列某處,然後通知核心。該技術是低流量負載下的最佳選擇。遺憾的是,在高流量負載下就無法良好運作 每接收乙個幀就強制產生中斷,很快就會讓cpu為處理中斷事件浪費所有的時間。負責接收幀的 分成兩部分,首先,驅動程式把該幀拷...