區域網路、乙太網路與交換

MAC 位址表(MAC address table)

MAC 位址表是交換器對「誰坐在哪裡」的記憶。它就是收發室職員手上那本小筆記本:每一行寫著一個 MAC 位址,以及從哪個埠可以抵達它。當有訊框要遞送時,交換器翻到這本筆記,找到目的地那一行,就只從那個埠把訊框送出去。

每筆項目把一個 MAC 位址對應到一個外送埠,外加一個鮮度計時器。交換器透過 MAC 學習自動填滿這張表:每個訊框的來源位址都教它一組(MAC、埠)對應。轉送訊框於是只是一次查表。若目的 MAC 在表中,交換器就只從那一個埠單播送出;若不在,就把訊框氾濫到所有其他埠;廣播與多播位址則永遠被氾濫。一段時間沒再見到的項目會被老化移除,使表反映當前網路、保持精簡。即使在線速下查表也必須夠快,所以硬體交換器把它存在特殊的內容可定址記憶體(CAM)裡,這也是它常被稱作 CAM 表的原因。

這張表也是交換器行為「動態而非固定」的原因。把筆電換到另一個埠,幾秒內它的下一個訊框就重新教會交換器新位置,舊項目隨之老化。但這張表有大小上限——用垃圾把它塞滿,交換器就被迫把一切都氾濫出去,既傷效能,也讓攻擊者看到本該私密的流量。

交換器內的一張小表: 11:22:33:aa:bb:cc -> 埠 1(年齡 12 秒), de:ad:be:ef:00:01 -> 埠 3(年齡 4 秒), 44:55:66:77:88:99 -> 埠 7(年齡 200 秒)。要送往 de:ad:be:ef:00:01 的訊框只從埠 3 送出。

一次查表就決定外送埠;過時的項目會自動老化。

別把這張第二層的表(MAC 位址對埠)和路由器第三層的轉送表(IP 前綴對下一跳)搞混。它們位於不同層,回答的是不同的問題。

又称
forwarding tableCAM tablefiltering database轉送表