考慮一個標準的 GigE 網路交換器。為了進行交換,大概需要維護網路上存在的所有事物的 MAC 位址與其(交換器)連接埠號碼的對應。
- 它如何維護這樣的地圖?
- 涉及哪些協議?
- 如果我更改網路一部分的拓撲,整個網路是否會收到通知,或者是否會「延遲」發現某些內容(即在第一次需要時)?
答案1
交換器透過查看每個傳入封包的來源 MAC 位址來了解 MAC 連接埠對映。這樣,交換器就可以逐步建立mac表。
當它需要轉送封包時,它會查看目標 MAC 位址,並根據 MAC 表將其轉送到適當的連接埠。如果沒有找到任何條目,則將封包傳送至所有連接埠(傳送埠除外)。
為了僅保留 mac 表中的有效條目,交換機會在特定逾時後刷新未使用的條目。
當網路拓撲發生變化時,交換器收到新資料包時可以獲知 MAC 位址的新位置。它將覆蓋此 mac 位址的舊映射。
欲了解更多信息,請查看這個連結。
答案2
它稱為 MAC 位址表,包含port
、MAC address
和 a timestamp
。如果更改拓撲,由於會斷開一些電纜,此時包含所涉及連接埠的所有條目都將從 MAC 位址表中丟棄。從裝置接收到每個第一個資料包後,就會得知新條目。如果設備沒有直接連接,則某些條目會保留在錯誤的連接埠上,但是,通常,由於廣播,它很快就會被獲悉。如果沒有來自設備的流量,則它必須經過逾時,直到其條目被丟棄。超時時間通常為 120 秒。
答案3
採取這種情況:
主機_a - 連接埠 1 主機_b - 連接埠 2
當host_a 想要向host_b 發送封包時,將觸發交換機,該交換器將記錄host_a 的mac 位址,並且由於host_b 尚未發送任何內容,因此將在所有連接埠上廣播該訊框- host_b 會注意到已傳送給他並做出回應在b港。
此時交換器知道 host_a 在連接埠 1 上有 mac1,host_b 在連接埠 2 上有 mac2。
- 如何維護映射是特定於供應商的,但它歸結為 MAC 及其關聯連接埠的清單。
- 在最簡單的模型中,除了所有發生在 OSI 2 級的情況外,實際上沒有任何協議
- 如果您變更拓撲,交換器將刪除舊條目並用新條目更新它(因為 host_1 mac1 位於連接埠 10 而不是 1)。
我所說的適用於非託管交換機,也可以適用於託管交換機,但事情會變得更加複雜。例如,cisco 可以配置哪些 mac 連接到哪個端口,它們運行專有協議,如 ISL 或開放 dot1q http://en.wikipedia.org/wiki/IEEE_802.1Q連結文字