複製鏈接
請複製以下鏈接發送給好友

MAC地址表

鎖定
MAC(Media Access Control, 介質訪問控制)地址是識別LAN(局域網)節點的標識。網卡的物理地址通常是由網卡生產廠家燒入網卡的EPROM(一種閃存芯片,通常可以通過程序擦寫),它存儲的是傳輸數據時真正賴以標識發出數據的電腦和接收數據的主機的地址。
中文名
MAC地址表
外文名
Media Access Control,
釋    義
識別LAN(局域網)節點的標識
存    儲
主機的地址

MAC地址表摘要

交換機之所以能夠直接對目的節點發送數據包,而不是像集線器一樣以廣播方式對所有節點發送數據包,最關鍵的技術就是交換機可以識別連在網絡上的節點的網卡MAC地址,並把它們放到一個叫做MAC地址表的地方。這個MAC地址表存放於交換機的緩存中,並記住這些地址,這樣一來當需要向目的地址發送數據時,交換機就可在MAC地址表中查找這個MAC地址的節點位置,然後直接向這個位置的節點發送。所謂MAC地址數量是指交換機的MAC地址表中可以最多存儲的MAC地址數量,存儲的MAC地址數量越多,那麼數據轉發的速度和效率也就就越高。
但是不同檔次的交換機每個端口所能夠支持的MAC數量不同。在交換機的每個端口,都需要足夠的緩存來記憶這些MAC地址,所以Buffer(緩存)容量的大小就決定了相應交換機所能記憶的MAC地址數多少。通常交換機只要能夠記憶1024個MAC地址基本上就可以了,而一般的交換機通常都能做到這一點,所以如果對網絡規模不是很大的情況下,這參數無需太多考慮。當然越是高檔的交換機能記住的MAC地址數就越多,這在選擇時要視所連網絡的規模而定了。

MAC地址表地址表建立過程

交換機技術在轉發數據前必須知道它的每一個端口所連接的主機的MAC地址,構建出一個MAC地址表。當交換機從某個端口收到數據幀後,讀取數據幀中封裝的目的地MAC地址信息,然後查閲事先構建的MAC地址表,找出和目的地地址相對應的端口,從該端口把數據轉發出去,其他端口則不受影響,這樣避免了與其它端口上的數據發生碰撞。因此構建MAC地址表是交換機的首要工作。下面舉例説明交換機建立地址表的過程。
假設主機A向主機C發送一個數據幀(每一個數據幀中都包含有源MAC地址和目的MAC地址),當該數據幀從E0端口進入交換機後,交換機通過檢查數據幀中的源MAC地址字段,將該字段的值(主機A的MAC地址)放入MAC地址表中,並把它與E0端口對應起來,表示E0端口所連接的主機是A。此時,由於在MAC地址表中沒有關於目的地MAC地址(主機C的MAC地址)的條目。交換機技術將此幀向除了E0端口以外的所有端口轉發,從而保證主機C能收到該幀(這種操作叫flooding)。
同理,當交換機收到主機B、C、D的數據後也會把他們的地址學習到,寫入地址表中,並將相應的端口和MAC地址對應起來。最終會把所有的主機地址都學習到,構建出完整的地址表。此時,若主機A再向主機C發送一個數據幀,應用交換機技術則根據它的MAC地址表中的地址對應關係,將此數據幀僅從它的E2端口轉發出去。從而僅使主機C接收到主機A發送給它的數據幀,不再影響其他端口。那麼在主機A和主機C通信的同時其他主機(比如主機B和主機D)之間也可以通信。
當交換機建立起完整的MAC地址表之後,對數據幀的轉發是通過查找MAC地址表得到對應的端口,從而將數據幀通過特定的端口發送出去的。但是,對於從一個端口進入的廣播數據及在地址表中找不到地址條目的數據,交換機會把該數據幀從除了進入端口之外的所有端口轉發出去。從這個角度來説,交換機互連的設備處於同一個廣播域內,但它們處於不同的碰撞域內,並且處於不同區域!
提示這裏為了解釋交換機如何建立MAC地址表,假設A向C發了一個數據幀。實際情況並非如此,並不是主機間必須進行通信交換機才能學習到MAC地址。實際上是當網卡驅動加載之後交換機就學習到了主機的MAC地址。讀者如果仔細觀察就會發現,Windows系統啓動過程還沒完成,交換機技術就學習到了主機的MAC地址。