網絡包從一個網口進入交換機的內部,通過MAC轉發(fā)表進行轉發(fā)到對應的網口出去绪穆。MAC轉發(fā)表是如何維護的辨泳?怎么知道網絡包的消息頭中某個MAC地址要走哪個端口的虱岂?
第一種情況是收到包時,將發(fā)送方MAC地址以及其輸入端口的號碼寫入MAC地址表中漠吻。由于收到包的那個端口就連接著發(fā)送這個包的設備量瓜,所以只要將這個包的發(fā)送方MAC地址寫入地址表,以后當收到發(fā)往這個地址的包時途乃,交換機就可以將它轉發(fā)到正確的端口了绍傲。交換機每次收到包時都會執(zhí)行這個操作,因此只要某個設備發(fā)送過網絡包耍共,它的MAC地址就會被記錄到地址表中烫饼。
另一種是刪除地址表中某條記錄的操作,是為了防止設備移動時產生問題试读。比如杠纵,我們在開會時會把筆記本電腦從辦公桌拿到會議室,這時設備就發(fā)生了移動钩骇。從交換機的角度來看比藻,本來連接在某個端口上的筆記本電腦消失了。這時如果交換機收到了發(fā)往這臺已經消失的筆記本電腦的包倘屹,那么它依然會將包轉發(fā)到原來的端口银亲,通信就會出錯,因此必須想辦法刪除那些過時的記錄纽匙。然而务蝠,交換機沒辦法知道這臺筆記本電腦已經從原來的端口移走了。因此地址表中的記錄不能永久有效烛缔,而是要在一段時間不使用后就自動刪除馏段。
只要筆記本電腦連接到會議室的交換機,交換機就會根據(jù)筆記本電腦發(fā)出的包來更新它的地址表践瓷。
過時記錄從地址表中刪除的時間一般為幾分鐘院喜,因此在過時記錄被刪除之前,依然可能有發(fā)給該設備的包到達交換機晕翠。
總之喷舀,交換機會自行更新或刪除地址表中的記錄,不需要手動維護崖面。當?shù)刂繁淼膬热莩霈F(xiàn)異常時元咙,只要重啟一下交換機就可以重置地址表梯影,也不需要手動進行維護巫员。
具備管理功能的高端交換機是提供手動維護地址表的功能的,但一般的低端機型中沒有這個功能甲棍。
以上是交換機的基本工作方式简识,下面來看一些特殊情況下的操作。比如,交換機查詢地址表之后發(fā)現(xiàn)記錄中的目標端口和這個包的源端口是同一個端口七扰。當交換機發(fā)現(xiàn)一個包要發(fā)回到原端口時奢赂,就會直接丟棄這個包。
另外一種情況颈走,如果地址表中找不到指定的MAC地址膳灶,可能是因為具有該地址的設備還沒有向交換機發(fā)送過包,或者這個設備一段時間沒有工作導致地址被從地址表中刪除了立由。這種情況下轧钓,交換機無法判斷應該把包轉發(fā)到哪個端口,只能將包轉發(fā)到除了源端口之外的所有端口上锐膜,無論該設備連接在哪個端口上都能收到這個包毕箍。這樣做不會產生什么問題,因為以太網的設計本來就是將包發(fā)送到整個網絡的道盏,然后只有相應的接收者才接收包而柑。只要返回了響應包,交換機就可以將它的地址寫入地址表荷逞,下次也就不需要把包發(fā)到所有端口了媒咳。
此外,如果接收方MAC地址是一個廣播地址颅围,那么交換機將包發(fā)送到除源端口之外的所有端口伟葫。廣播地址(broadcast address)是一種特殊的地址,將廣播地址設為接收方地址時院促,包會發(fā)送到網絡中所有的設備筏养。MAC地址中的FF:FF:FF:FF:FF:FF和IP地址中的255.255.255.255都是廣播地址。
本文摘取自周自恒翻譯的戶根勤編寫的《網絡是怎樣連接的》