之前的文章介紹了Cisco網路交換器在網路中的定位和運作的原理,眼尖的讀者可能會想到,過去筆者所介紹的文章都是比較單純的網路環境,僅假設網路架構只有單一的網路交換器,這是為了方便說明,但大多企業型的網路環境不可能只有一個交換器,多個交換器存在時很容易出現一些網路問題。為此,本文將特別介紹多個交換器所可能發生的問題,以及相關的解決方案。
網路封包的封裝與拆解的過程,會經過重重的步驟,而這些步驟主要區分為七種不同的層面,是根據拆解方式與目的而區分。這七種不同的層面,就是很多人所謂的OSI(Open System Interconnection)網路七層架構,從與實體/硬體線路最相關的第一層,到最高應用程式相關的第七層,分別扮演不同的角色。
不過,這七層架構不是這篇文章的主要介紹內容,讀者只要有大約的概念即可。而網路交換器就是運作在第二層(Data Link Layer)之中。雖然目前交換器設備有分第二層和第三層的交換器,但是一般而言,談到交換器時,主要還是以運作於第二層的交換器為主。不僅是交換器,橋接器(Bridge)也是運作於第二層。
交換器的主要功能
基本上,用於乙太網路中的橋接器和交換器設備能夠增加網路的可用頻寬,同時可根據發送過來的Frame,分析其中的來源端與目的端的MAC位址,以製作出MAC位址表,並藉由這樣的MAC位址表正確地轉發封包。
交換器與橋接器設備雖然都是運作在網路七層架構的第二層,但由於交換器擁有較高速的內部結構以及擁有比較多的通訊埠介面,所以與傳統的橋接器比較起來,交換器設備能夠提供更多的網路流量。
關於MAC位址學習,橋接器或交換器設備會從它們的埠上監聽所傳進來的Frame,檢測這些資料的來源端MAC位址,並且把MAC位址與埠號的對應關係記錄下來,儲存在本地端的MAC資料庫中,而這份MAC資料庫通常稱為MAC address table或Content-addressable memory (CAM) table。
一旦橋接器或交換器設備再次收到Frame時,會先到MAC資料庫中查看從哪個埠出去可以到達這個目的地MAC位址所指定的機器,如果目的端的MAC位址能夠在MAC資料庫中被找到,則這個Frame就只會從學習到的埠號轉發出去。
若在MAC資料庫中找不到這樣的對應關係,則這個Frame會從所有其他的埠轉發出去(來源埠除外)。
網路交換器的傳送模式
交換器設備在傳送Frame時,有三種可用的運作模式(橋接器也用同樣的傳送模式):
1. Store and Forward
2. Cut Through
3. Fragment-Free
Store and Forward模式
在Store and Forward模式下,交換器設備會先把Frame完整地接收下來,然後才進行轉發的動作。因為在這個模式下,整個Frame都會被讀取,因此來源端和目的端的MAC位址也會被讀取。
另外,CRC(Cyclic Redundancy Check)的錯誤檢查動作也會被執行,也將採用相關的篩選動作,之後才會進行轉發。如果CRC的檢查失敗,這個Frame就被遺棄。
這種轉送模式雖然能夠確保Frame中資料的正確性,但也比較費時,其所需的延遲時間與Frame的資料長度有關。
Cut-Though模式
Cut-Through轉送模式就不像Store and Forward這樣麻煩,一旦接收到Header之後,看到目的端的MAC位址,就會馬上執行Frame的轉送動作。
因此,Cut-Though模式比Store and Forward模式快上許多,而且,Cut-Though模式所需要的時間並不會因為Frame的長度變長就變多,因為交換器設備只想取得目的端的MAC位址,而目的端的MAC位址都一定會存放在Frame資料中最前面的Header處。
雖然有些交換器設備在這種模式下只想讀取MAC位址,但還是有某些交換器設備會讀取CRC值並記錄下錯誤數目,不過,一旦有錯誤發生,在這種模式下並不會將這個Frame遺棄,而是針對設定值自動或手動切換成Store and Forward模式。
這種允許切換的Cut-Though又稱為Adaptive Cut-Though模式,此模式結合了Cut-Though模式與Store and Forward模式的優點。
Fragment-Free模式
在Fragment-Free模式下,交換器設備只會讀取Frame的前64個bytes(這也是乙太網路中Frame最小的資料大小),而最主要原因是,在乙太網路中碰撞幾乎都是發生在前64個bytes之中,因此一旦發生碰撞,就會產生小於64個bytes的Frame資料。
所以,交換器設備讀取前64個bytes資料,就可以初步篩選經由碰撞所產生的Frame資料。這種模式的速度比Cut-Though更快,而且一發現有錯誤的Frame,就會把這樣的Frame丟棄,這是它與Cut-Though模式不同的地方。這個模式也稱為Modified Cut-Though模式。