【小菜學網絡】交換機與MAC地址學習

上一小節介紹了 集線器 ,一種工作於物理層的簡單網絡設備。由於集線器採用廣播的方式中繼、轉發物理信號,傳輸效率受到極大制約。

精準轉發

爲了解決集線器工作效率低下的尷尬,我們需要設計一種更高級的網絡設備。新設備根據以太網幀的目的 MAC 地址,將它精準地轉發到正確端口:

註釋:這裏 端口 ( port )指的是轉發設備的插口,也可叫做網口。

如上圖,中間節點是轉發設備,它在內部維護着一張主機 MAC 地址與對應端口的映射表,現與 3 臺主機相連。這樣一來, 當轉發設備接到主機 A 發給主機 C 的數據後,根據目的 MAC 地址搜索映射表,便可將數據準確地轉發到對應的端口 3

現在,傳輸模式變得更有針對性了——數據幀被精準轉發到正確的端口,其他端口不再收到多餘的數據:

不僅如此,主機 AB 通訊的同時,其他計算機也可通訊,互不干擾。轉發設備每個端口是一個獨立的衝突域,帶寬也是獨立的。

集線器的缺陷全部避免了!

交換機

能夠根據以太網幀目的地址轉發數據的網絡設備就是 以太網交換機 ( ethernet switch ):

交換機長相跟集線器沒啥區別嘛。當然了,大部分網絡設備都是一個佈滿端口的盒子,關鍵在於內部構造。

再看看現實中的交換機長啥樣:

總結起來,以太網交換機屬於 二層網絡設備 ,特點如下:

  • 根據目的地址轉發以太網幀;
  • 每個端口是獨立衝突域;
  • 每個端口帶寬獨立;

Mac地址學習

交換機完美地解決集線器的缺點,但新問題又來了,映射表如何獲得呢?

最原始的方式是:維護一張靜態映射表。當新設備接入,向映射表添加一條記錄;當設備移除,從映射表刪除對應記錄。然而,純手工操作方式多少有些煩躁。

好在計算機領域可以實現各種花樣的自動化——通過算法自動學習映射表。我們先來看看大致思路:

初始狀態下,映射表是空的。現在,主機 AB 發送一個數據幀 FRAME1 。因爲映射表中沒有地址 B 的記錄,交換機便將數據幀廣播到其他所有端口。

由於交換機是從 Fa0/1 端口收到數據幀的,便知道 A 連接 Fa0/1 端口,而數據幀的源地址就是 A 的地址!此時,交換機可以將 A 的地址和端口 Fa0/1 作爲一條記錄加入映射表。交換機學習到 A 的地址!

接着,主機 BA 回覆一個數據幀 FRAME2  。由於映射表中已經存在地址 A 的記錄了,因此交換機將數據幀精準轉發到端口 Fa0/1 。同理,交換機學習到主機 B 的地址。

當主機 C 開始發送數據時,交換機同樣學到其地址,學習過程完成!

這就是 MAC地址自動學習 的基本原理。

小菜學網絡】系列文章首發於公衆號【小菜學編程】,敬請關注:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章