本節課我們介紹集線器與交換機的區別,我們首先來看早期的匯流排型乙太網,這是我們之前課程中經常用來舉例的匯流排型乙太網,他最初使用粗銅軸電纜作為傳輸媒體,後來演進到使用價格相對便宜的細同軸電纜。
當初認為這種連線方法既簡單又可靠,因為在那個時代普遍認為有源器件不可靠而無緣的電纜線才是最可靠的。然而這種使用無源、電纜和大量機械接頭的匯流排型乙太網,並不像人們想象的那麼可靠。
後來乙太網發展出來了一種使用大規模積體電路,可靠性非常高的裝置,叫做集線器,並且使用更便宜更靈活的雙絞線。作為傳輸媒體如圖所示,這是一個使用集線器和雙腳線電纜,互聯了 4 臺主機的新型拓撲的乙太網。主機中的乙太網卡,以及極限器各介面,使用 RJ-45 插座,它們之間透過雙絞線電纜進行連線,在雙腳線電纜的兩端是 RJ-45 插頭,也就是我們俗稱的水晶頭。
實踐證明,使用雙絞線和集線器比使用具有大量機械接頭的無源電纜,要可靠的多,並且價格便宜,使用方便。因此粗纜和細纜乙太網早已成為了歷史,從市場上消失了。
使用集線器的乙太網,雖然物理拓撲是星型的,但在邏輯上仍然是一個匯流排網,各站共享邏輯上的匯流排資源,使用的還是 CSMA/CD 協議,集線器只工作在物理層,它的每個介面僅簡單的轉發位元,不進行碰撞檢測,碰撞檢測的任務由各站的網路卡負責
在分析問題時,我們可將集線器簡單看作是一條匯流排,集線器一般都有少量的容錯能力和網路管理功能。例如若網路中某個網路卡出現了故障,不停的傳送幀,此時集線器也可以檢測到這個問題,在內部斷開與出故障網路卡的連線,使整個乙太網仍然能正常工作。
使用集線器可以對乙太網進行擴充套件。由於集線器只工作在物理層,所以更具體的說法是使用集線器在物理層擴充套件乙太網。我們來舉例說明,假設某學院下設三個系部,每個系部都有一個使用集線器作為互聯裝置的乙太網,這三個乙太網相互獨立,各自共享自己的匯流排資源,是三個獨立的碰撞域或稱衝突域。
例如一系中的某臺主機給另一臺主機傳送資料幀,由於匯流排特性,表示該資料幀的訊號會傳輸到一系中的其他各主機,
二系中的多臺主機同時傳送資料幀,由於匯流排特性,這必然會產生訊號碰撞,碰撞後的訊號會傳輸到二系中的各主機。
為了使各系部的乙太網能夠相互通訊,可再使用一個集線器,將它們互聯起來。這樣原來三個獨立的乙太網就要互聯成為了一個更大的乙太網,而原來三個獨立的碰撞域就要合併成了一個更大的碰撞域。換句話說,形成了一個更大的匯流排型乙太網。比如一系中的某臺主機,給二系中的某臺主機傳送資料幀,由於匯流排特性,表示該資料幀的訊號會傳輸到整個網路中的其他各主機。
在集線器之後發展出了更先進的網路互聯裝置,也就是乙太網交換機。我們先從一個典型的例子來看看乙太網交換機與集線器的區別:
- 使用集線器互聯而成的,共享匯流排式乙太網上的某個主機,要給另一個主機傳送單播幀,該單播幀會透過共享匯流排傳輸到匯流排上的其他各個主機
- 使用交換機互聯而成的交換式乙太網上的某個主機,要給另一個主機傳送播幀針,該單波幀進入交換機後,交換機會將該單波幀轉發給目的主機,而不是網路中的其他各個主機
很顯然交換機具有明顯的優勢,需要說明的是為了簡單起見,本節課所有舉例的前提條件是忽略 ARP 過程,並假設交換機的幀交換表已經學習或配置好了,乙太網交換機通常都有多個介面,每個介面都可以透過雙絞線電纜與一臺主機或另一個乙太網交換機相連,一般都工作在全雙工方式,也就是傳送幀和接收幀,可以同時進行。
注意使用集線器的乙太網在邏輯上是共享匯流排的,需要使用 csma/cd 協議來協調各主機徵用匯流排,只能工作在半雙工模式,也就是收發幀不能同時進行。乙太網交換機具有並行效能,同時連通多對介面,使多對主機能同時通訊而無碰撞。
乙太網交換機的介面一般都支援多種速率,例如 10 兆位元每秒,100 兆位元每秒,1G 位元每秒,10G 位元每秒等。乙太網交換機工作在資料鏈入層,當然也包括物理層,他收到幀後,在幀交換表中查詢幀的目的 MAC 地址所對應的介面號,然後透過該介面轉發幀
假設這是該交換機的幀交換表,主機 A 給主機 B 傳送資料幀,交換機收到該幀後,在幀交換表中查詢該幀的目的 MAC 地址,也就是主機 B 的 Mac 地址,發現應該從介面2 轉發,於是就從介面2 將該幀轉發出去。
乙太網交換機是一種即插即用的裝置,上電即可工作。其內部的幀交換表是透過自學習演算法自動的逐漸建立起來的。許多乙太網交換機對收到的幀採用儲存轉發方式進行轉發,但也有一些交換機採用直通交換方式,直通交換不必把整個幀先快取後再進行處理,而是在接收幀的同時,就立即按幀的目的 MAC 地址決定該幀的轉發介面,因而提高了幀的轉發速率。一般採用基於硬體的交叉矩陣,這樣交換時延就非常小,但直通交換的一個缺點,他不檢查幀是否有差錯,就直接將幀轉發出去。
接下來我們再透過舉個例子,進一步對比集線器和交換機,這是前提條件。我們首先來對比主機傳送單播幀的情況,對於使用集線器的共享匯流排型乙太網,單播幀會傳播到匯流排上的其他各主機,各主機中的網路卡,根據幀的目的 MAC 地址決定是否接受該幀。
對於使用交換機的交換式乙太網,交換機收到單播幀之後,根據幀的目的 MAC 地址和自身的幀交換表,將幀轉發給目的主機,而不是網路中的其他各主機。
我們再來對比傳送廣播幀的情況:
- 對於使用集線器的共享匯流排型乙太網,廣播幀會傳播到匯流排上的其他各主機,各主機中的網路卡,檢測到幀的目的 MAC 地址是廣播地址,就接受該幀
- 對於使用交換機的交換式乙太網。交換機收到廣播幀之後,檢測到幀的目的 MAC 地址是廣播地址,於是從除該幀進入交換機介面外的其他各介面,轉發該幀,網路中除源主機外的其他各主機收到廣播幀後接受該廣播幀。
- 從本例可以看出,使用集線器的共享匯流排型乙太網中的各主機屬於同一個廣播域,而使用交換機的交換式乙太網中的各主機也屬於同一個廣播域。因此對於廣播幀的情況,從效果上看沒有什麼區別。
我們再來對比網路中的多臺主機,同時給另一臺主機傳送單播幀的情況:
- 對於使用集線器的共享匯流排型乙太網,這必然會產生碰撞,遭遇碰撞的幀會傳播到匯流排上的各主機
- 對於使用交換機的交換式乙太網,交換機收到多個幀時會將它們快取起來,然後逐個轉發給目的主機,不會產生碰撞
接下來我們來對比使用集線器,擴充套件乙太網和 使用交換機擴充套件乙太網有什麼區別:
- 首先對比傳送單播幀的情況,這是僅使用集線器擴充套件乙太網後傳送單波幀的情況
- 這是僅使用交換機擴充套件乙太網後傳送單播幀的情況,很顯然交換機具有非常明顯的優勢
- 再來對比傳送廣播幀的情況,這是僅使用集線器擴充套件乙太網後傳送廣播幀的情況,這是僅使用交換機擴充套件乙太網後傳送廣播幀的情況,從效果上看是一樣的
- 可見不管是用集線器還是交換機來擴充套件乙太網,擴充套件後的乙太網中的各主機都屬於同一個廣播域,僅使用集線器擴充套件的乙太網,在邏輯上仍然是共享匯流排的,並且形成為一個更大的碰撞域。換句話說,參與競爭匯流排的主機比擴充套件前的更多了,這是競爭匯流排併產生碰撞的一個例子
- 同樣的傳輸任務,在僅使用交換機擴充套件的乙太網上就不會產生碰撞
- 因此如果僅僅使用集線器來擴充套件乙太網,不僅會擴大廣播域,還同時擴大了碰撞域,但是如果使用交換機將原來各自獨立的碰撞域連線起來,只會擴大廣播域,而不會擴大碰撞域,也就是說交換機可以隔離碰撞域
我們將集線器和交換機的區別小結如下:
需要說明的是工作在資料鏈路層的乙太網交換機,其效能遠遠超過工作在物理層的集線器,而且價格並不貴,這就使得集線器逐漸被市場淘汰。目前很難在市場上再見到集線器了。