網路基本功(二):細說交換機

網路基本功(二):細說交換機

來自專欄計算機網路學習筆記

轉載請在文首保留原文出處:EMC中文支持論壇community.emc.com/go/ch

介紹

本節介紹交換機的幀轉發技術,MAC地址表的維護方式,三種幀轉發模式,以及衝突域和廣播域。

更多信息

幀轉發:

網路及電信中的交換概念

乙太網上的幀包含源MAC地址與目的MAC地址。交換機從源設備接收到幀並快速發往目的地址。交換的基本概念指基於以下兩條準則做出決策的設備:

  • 進入(ingress)埠
  • 目的地址

術語ingress用於描述幀通過特定埠進入設備,egress用於描述設備通過特定埠離開設備。交換機做出轉發決定的時候,是基於進入埠以及消息的目的地址的。

LAN交換機維護一張表,通過這張表決定如何轉發數據流。LAN交換機唯一智能部分是利用這張表基於消息的進入埠和目的地址來轉發。一個LAN交換機中只有一張定義了地址和埠的主交換表;因此,無論進入埠如何,同一目的地址的消息永遠從同一出口離開。

MAC地址表的動態更新

一個交換機要知道使用哪一個埠傳送幀,首先必須學習各埠有哪些設備。隨著交換機學習到埠與設備的關係,它建立起一張MAC地址表,或內容可定址寄存表(CAM)。CAM是一種應用於高速查找應用的特定類型的memory。交換機將連接到它的埠的設備的MAC地址記錄到MAC表中,然後利用表中信息將幀發送至輸出埠設備,該埠已指定給該設備。

記住交換機操作模式的一句簡單的話是:交換機學習「源地址」,基於「目的地址」轉發。幀進入交換機時,交換機「學習」接收幀的源MAC地址,並將此地址添加到MAC地址表中,或刷新已存在的MAC地址表項的老化寄存器;後續報文如果去往該MAC地址,則可以根據此表項轉發。幀轉發時,交換機檢查目的MAC地址並與MAC地址表中地址進行比較。如果地址在表中,則轉發至表中與MAC地址相對應的埠。如果沒有在表中找到目的MAC地址,交換機會轉發到除了進入埠以外的所有埠泛洪(flooding)。有多個互連交換機的網路中,MAC地址表對於一個連接至其他交換機的埠記錄多個MAC地址。

以下步驟描述了更新MAC地址表的方法:

1. 交換機在port 1接收到來自PC 1的幀。

2. 交換機檢查源MAC地址並與MAC地址表相比較。

  • 如果地址不在表中,則交換機在MAC地址表中將PC 1的源MAC地址關聯到進入埠(port 1)。

  • 如果已經存在該源地址的MAC地址表項,則交換機重置老化計時器。通常一個表項會保持5分鐘。

3. 交換機記錄源地址信息之後,檢查目的地址

  • 如果目的MAC地址不在表項中或如果它是一個廣播MAC地址,則交換機把該幀泛洪(flood)至除了進入埠以外的所有埠。

4. 目標設備(PC 3)返回目的地址為PC 1的單播幀。

5. 交換機地址表中輸入PC 3的源MAC地址以及進入埠的埠號。在表項中找到該幀的目的地址及關聯的輸出埠。

6. 交換機現在可以在源和目標設備之間傳送幀而無需泛洪,因為地址表中已有指定關聯埠的表項。

交換機轉發方式:

存儲轉發交換(Store-and-Forward)

運行在存儲轉發模式下的交換機在發送信息前要把整幀數據讀入內存並檢查其正確性。儘管採用這種方式比採用直通方式更花時間,但採用這種方式可以存儲轉發數據,從而保證其準確性。由於運行在存儲轉發模式下的交換機不傳播錯誤數據,因而更適合大型區域網。存儲轉發模式有兩大主要特徵區別於直通轉發模式:

差錯控制:

使用存儲轉發技術的交換機對進入幀進行差錯控制。在進入埠接收完整一幀之後,交換機將數據報最後一個欄位的幀校驗序列(frame check sequence, FCS)與自己的FCS進行比較。FCS校驗過程用以幫助確保幀沒有物理及數據鏈路錯誤,如果該幀校驗正確,則交換機轉發。否則,丟棄。

自動緩存:

存儲轉發交換機通過進入埠緩存,支持不同速率乙太網的混合連接。例如,接收到一個以1Gb/s速率發出的幀,轉發至百兆乙太網埠,就需要使用存儲轉發方式。當進入與輸出埠速率不匹配時,交換機將整幀內容放入緩存中,計算FCS校驗,轉發至輸出緩存之後將幀發出。

Cisco的主要交換方式是存儲轉發交換。

直通交換(Cut-Through)

直通交換的一個優勢是比存儲轉發技術更為快速。採用直通模式的交換機會在接收完整個數據包之前就讀取幀頭,並決定把數據發往哪個埠。不用緩存數據也不用檢查數據的完整性。這種交換方式有兩大特點:快速幀轉發以及無效幀處理。

快速幀轉發:

如下圖所示,一旦交換機在MAC地址表中查找到目的MAC地址,就立刻做出轉發決定。而無需等待幀的剩餘部分進入埠再做出轉發決定。

使用直通方式的交換機能夠快速決定是否有必要檢查幀頭的更多部分,以針對額外的過濾目的。例如,交換機可以檢查前14個位元組(源MAC地址,目的MAC,乙太網類型欄位),以及對之後的40位元組進行檢查,以實現IPv4三層和四層相關功能。

無效幀處理:

對於大多數無效幀,直通方式交換機並不將其丟棄。錯誤幀被轉發至其他網段。如果網路中出現高差錯率(無效幀),直通交換可能會對帶寬造成不利影響,損壞以及無效幀會造成帶寬擁塞。在擁塞情況下,這種交換機必須像存儲轉發交換機那樣緩存。

無碎片轉發(Fragment Free)

無碎片轉發是直通方式的一種改進模式。交換機轉發之前檢查幀是否大於64位元組(小於則丟棄),以保證沒有碎片幀。無碎片方式比直通方式擁有更好的差錯檢測,而實際上沒有增加延時。它比較適合於高性能計算應用,即進程到進程延時小於10毫秒的應用場景。

交換機域:

交換機比較容易混淆的兩個術語是衝突域和廣播域。這一段講述這兩個影響LAN性能的重要概念。

衝突域

設備間共享同一網段稱為衝突域。因為該網段內兩個以上設備同時嘗試通訊時,可能發生衝突。使用工作在數據鏈路層的交換機可將各個網段的衝突域隔離,並減少競爭帶寬的設備數量。交換機的每一個埠就是一個新的網段,因為插入埠的設備之間無需競爭。結果是每一個埠都代表一個新的衝突域。網段上的設備可以使用更多帶寬,衝突域內的衝突不會影響到其他網段,這也成為微網段

如下圖所示,每一個交換機埠連接到一台主機,每一個交換機埠代表一個隔離的衝突域。

廣播域

儘管交換機按照MAC地址過濾大多數幀,它們並不能過濾廣播幀。LAN上的交換機接收到廣播包後,必須對所有埠泛洪。互連的交換機集合形成了一個廣播域。網路層設備如路由器,可隔離二層廣播域。路由器可同時隔離衝突和廣播域。

當設備發出二層廣播包,幀中的目的MAC地址被設置為全二進位數,廣播域中的所有設備都會接收到該幀。二層廣播域也稱為MAC廣播域。MAC廣播域包含LAN上所有接收到廣播幀的設備。廣播通信比較多時,可能會帶來廣播風暴。特別是在包含不同速率的網段,高速網段產生的廣播流量可能導致低速網段嚴重擁擠,乃至崩潰。

PS:在gitbook上看到一本好書,但是無奈gitbook不掛梯子訪問太慢了。為了方便自己查閱,也方便知識共享,將文章轉載到知乎專欄,由於沒有聯繫到作者(據說是個女神)冒昧掛上來,如果有冒犯的地方,聯繫我我隨時進行刪除。謝謝。

作者:Zhang Jiawen

來源:網路基本功系列:細說網路那些事兒


推薦閱讀:

LBS基站定位如何營救來自手機的「致命呼救」
Linux配置網路
「茴」字的五種寫法
ZT.RTL8723BE在win10系統下不支持承載網路,獵豹wifi老是掉線解決辦法

TAG:交換機 | 計算機網路 |