我們知道,交換機不像集線器那樣傻,對一個端口收到的每個字節都傳輸到其他所有端口。交換機能夠通過自主學習能力,認識自己的每一個端口上連接的主機。所以,當交換機收到一個mac幀時,它通過查看該幀的目的地址,知道了該數據包要發送到的目的主機后,就將該數據包通過另一個連接目的主機端口發送給目的主機。
那么交換機是如何認識和自己連接的主機的呢?這就是交換機一個智能的地方,它是通過自主學習能力,將每一個主機的信息存儲在交換表中,來認識每一臺主機的。
我們來通過一個簡單例子來說明交換機是如何進行自主學習的。如圖,有四臺主機,MAC地址分別是ABCD,分別通過接口1、2、3、4和交換機連接起來。
首先,當主機A向主機B發送數據。當交換機收到主機A的數據時,剛開始交換表是空的,所以向除了端口1之外所有端口廣播此數據。除了主機B之外,其他主機都將丟棄收到的數據包。除外之外,將主機A信息記錄到交換表中,此時交換表如下
當主機B向主機A發送數據,交換機查找交換表知道A主機在自己的1端口上,直接通過端口1發送到主機A,而不用廣播了。然后,也將主機B的信息記錄下,此時交換表如下
只要主機C和D也向其他主機發送數據,那么它們的信息也會被記錄到交換表,所以最終交換機會認識所有主機。
想想這樣一種情況,如果交換機接口1的更換了主機,那么交換機的交換表不就含錯誤的項目了么?所以阿,交換表它是有生存時間的,過期的項目會自動刪除,防止端口更換主機或主機更換網卡的情況。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END