網絡基礎知識1:集線器,網橋,交換機

source:https://www.cnblogs.com/hyddd/archive/2009/01/18/NetWorking.html#

網絡基礎知識1:集線器,網橋,交換機

2009-01-18 21:45  hyddd  閱讀(8485)  評論(7)  編輯  收藏

  最近一直在看網絡方面的東東,先把基礎的東西總結一下,注意:以下的概念現在已經不一定準確了,因爲硬件發展相當迅速,集成電路的集成度越來越多高,拿交換機爲例,現在俗稱交換機的東西已經具有一定的路由器的功能了,有些時候很多概念已經混在了一起。而下面講到的內容是最基本的概念,和你現在實際上能看到的可能不一樣了,但是思想是一樣的。咳咳,下面是我自己最近看資料總結的,如有錯漏之處,也請大家指出:>

一.集線器

  集線器(HUB),它是工作在物理層的設備, 由於它只是工作在物理層的設備,所以它並不關心也不可能關心OSI上面幾層所涉及的,它的工作機制流程是:從一個端口接收到數據包時,會在其他端口把這個 包轉發一次,因爲它不知道也不可能知道這個包是發給誰的(物理層設備只關心電壓這些物理概念),它也只能對所有人廣播(這裏和下文提到的 廣播該詞的意思和ARP請求時的廣播有些不同,這裏的廣播意思是:使用物理層轉發設備,如HUB,導致的廣播,可以說這個廣播是被逼的,因爲設備的問題! 是設備轉發包引起的廣播!而ARP請求的廣播是自己要求的,主動的,因爲ARP請求包的目標地址IP是255.255.255.255,但ARP請求的廣 播涉及IP層的知識,不在這篇文章討論的範圍,所以這裏提到的廣播,除非特別說明,否則都是第一個意思,也就說是"因設備轉發數據包引起的廣播" ),讓他們自己處理了。

  這樣一來會有不少問題,你發的數據其他人都收到了,私隱這總東西是不存在的!別入可以隨便監聽你信息!所以會話劫持在那個年代相當容易(記得俺第一次接觸會話劫持這個概念的時候還是高2,那是2001~2002,呵,那時候集線器還是比較普遍的)。

  另外一個比較嚴重的問題是,如果一個大型的局域網,比如有500臺機器,全部用HUB連接的,後果會怎麼樣呢??相當慢,網絡的效率極差!爲什麼?如果500臺機器都發一個包,那就是說每臺機器,都需要接收差不多499個無用包...並且如果是需要回應的話......無用的數據包會充斥着整個的局域網,這就是傳說中的廣播風暴!

  爲了減少廣播風暴,網橋產生了(注意這裏用的時候“減少”,不是“杜絕”,僅僅是減少!如果僅僅用網橋說能杜絕廣播風暴,個人覺得還是不太準確,後來交換機的出現纔可以說是完全杜絕了廣播風暴的發生)!

  在介紹網橋之前,還想簡單介紹另一個物理層的設備:“中繼器”,這種設備的作用是把物理層傳輸的信號放大,由於長距離的傳輸,信號會有一定的損耗的,這種設備主要解決的就是這個問題。它和HUB的區別是:HUB主要是爲了在物理層上轉發數據的,所以它不關心電壓值的大小,也不會放大物理信號;而中繼器它的作用就是爲了放大信號用的,SO.....

二.網橋:

  網橋又稱橋接器,英文名Network Bridge,數據鏈路層設備。它也是轉發數據包的設備,但和HUB不一樣的是,它工作在數據鏈路層,HUB只能看懂物理層上的東西(比如一段物理信號),網橋卻能看懂一些幀的信息(在鏈路層上,把上面傳下來的數據封裝後,封裝好了的數據就是幀,但這裏我用“數據包”這樣的泛指去代替“幀”這個專業術語)。在以太網構造的局域網上,最終的尋址是以數據鏈路層的MAC地址作爲標識的(就是用MAC地址可以在局域網上找到一臺唯一的機器),網橋能從發來的數據包中提取MAC信息,並且根據MAC信息對數據包進行有目的的轉發,而不採用廣播的方式,這樣就能減少廣播風暴的出現,提升整個網絡的效率,在詳細說網橋這東西之前,我想先介紹一下交換機。

三.交換機:

  交換機Switch,數據鏈路層設備,作用是轉發數據包。和網橋一樣它也是通過識別幀中的MAC地址,然後對特定的端口進行轉發的。

四.網橋和交換機的工作原理及區別?

  回答網橋和交換機區別之前,我們先一起看兩幅圖(這是從《計算機網絡(第四版)》第四章截下來的:>):

  1.網橋的連接模式:(紅點處爲HUB)

  

  2.交換機連接模式:

  

  從圖中可以看到,網橋只有2個輸入/出端口,而交換機有8個。嗯,是的,一開始的時候(那時候只有HUB這種設備),由於硬件水平不是很發達,人們爲了提高局域網效率,減少廣播風暴的出現,他們生產了網橋(一個只有兩個輸入/出端口的鏈路層設備,這時的網橋已經是個比較先進的設備),然後他們把一個局域網一分爲2,中間用網橋連接,這樣A發給BCD的數據就不會再廣播到EFGH了(網橋發現如果數據包不是轉發給下面這個子網的,它會自動丟棄此包),只有從A發到EFGH的數據包才能通過網橋,到達另外一個子網(網橋發現如果數據包是轉發給下面這個子網的,它纔會把包轉發給這個子網)。這樣一來,非必要的傳輸減少了,整個網絡的效率也隨之提高可不少!人們發現網橋真是個好東西呀,隨着硬件發展,出現了4個,8個端口的鏈路層設備,這就是交換機,由於交換機可以使得網絡更安全(數據不容易被監聽,因爲數據不再廣播了,注意:只是不容易而已,要搞你其實還是可以的),網絡效率更高(還是因爲數據不再廣播!),交換機漸漸替代了HUB,成爲組建局域網的重要設備。

  所以說,網橋和交換機,基本上是一樣的,嗯,只是基本上而已,細看還是有些不一樣的,但在說明他們之間有什麼不一樣之前,我想先簡單介紹一下網橋和交換機的工作原理。

  3.網橋的工作原理:  

  上圖是用一個網橋連接的兩個網絡,網橋的A端口連接A子網,B端口連接B子網,爲什麼網橋知道哪些數據包該轉發,哪些包不該轉發呢?那是因爲它有兩個表A和B,當有數據包進入端口A時,網橋從數據包中提取出源MAC地址和目的MAC地址,一開始的時候,表A和表B都是空的,沒有一條記錄,這時,網橋會把數據包轉發給B網絡,並且在表A中增加一條MAC地址(把源MAC地址記錄表中),說明這個MAC地址的機器是A子網的,同理,當B子網發送數據包到B端口時,網橋也會記錄源MAC地址到B表;當網橋工作一段時候後,表A基本上記錄了A子網所有的機器的MAC地址,表B同理,當再有一個數據包從A子網發送給網橋時,網橋會先看看數據包的目的MAC地址是屬於A子網還是B子網的,如果從A表中找到對應則,拋棄該包,如果不是,則轉發給B子網,然後檢查源MAC地址,是否在表中已經存在,如果不存在,在表A中增加一條記錄。

  噢,或許你現在會問了,爲什麼需要兩張表呢,一張表不行麼??嗯~剛纔把表一分爲二是爲了便於理解,實際上,真正的網橋裏面存的應該是一張表(當然有可能爲了提速,或者其他原因,它也可能把信息存爲多張表,這個得看它怎麼實現了~),如果是一張信息表,表裏記錄的應該是:MAC-PortNum。

  4.交換機有些許不同,如圖:

  交換機也有一張MAC-PORT對應表(這張表的學名爲:CAM),和網橋不一樣的是,網橋的表是一對多的(一個端口號對多個MAC地址),但交換機的CAM表卻是一對一的,如果一個端口有新的MAC地址,它不會新增MAC-PORT記錄,而是修改原有的記錄,比如:現在交換機記錄表裏已經有一項:MAC1-Port1,如果此刻端口1又來了一個數據包,裏面的源MAC地址是MAC2,此時,交換機會刷新交換機記錄表:MAC1-Port1記錄被修改爲MAC2-Port1,因爲交換機認爲是端口1的計算機MAC地址變了,如果端口1連接的一臺物理機器,MAC一般是不會變的,如果連接的是另外一個交換機,那這個端口的記錄會變化得比較頻繁(如上圖的Port12,它是對外的接口,與一個局域網連接),另外,如果CAM表中沒有找到和數據包的目的MAC地址對應的記錄,交換機會對此數據包進行廣播,發給本交換機的每一個端口。

  網橋和交換機除了用CAM表指導數據包轉發這點和HUB不一樣外,網橋和交換機還有一個特點:緩存!對,網橋和交換機都有一定量的緩存,因爲網橋和交換機轉發數據包需要一些額外的操作,所以可能會佔用一些時間,爲了避免出現因來不及轉發數據,導致大量數據丟失的情況,網橋和交換機就出現了緩存。當然,緩存不是萬能的,當網橋或交換機處理不及並且緩存用完了,以後再來的數據還是會丟失的。還一個網橋需要緩存的原因是:橋接兩個傳輸速率不同的局域網,比如:802.3的傳輸速率說10mb/s,但實際上並不是真的10Mb/s,而 802.4(幾乎)確實爲10Mb/s,但兩個局域網橋接時候必須是速率一樣的,否則會有包丟失,而緩存也正好可以爲不同速率網絡連接時所使用。這裏需要對比一下網橋和交換機的緩存,一般來說,網橋的緩存量是大於交換機的緩存量,因爲網橋天生是爲了連接兩個網絡的,兩個網絡橋接時所要處理的數據量會比一般的交換機需要處理的數據量要多,所以網橋的緩存也一般要比交換機大一點。

  值得注意的一些問題:

  1). 網橋需要軟件輔助?

  回答這個問題,首先要看看原始的網橋,《計算機網絡(第四版)》裏有一段話是這樣的:傳統上,網橋往往包含一個CPU,"轉發-存儲"由軟件來實現。噢,以前的網橋是這樣的,但現在由於硬件水平的提升,網橋,交換機都包含了特殊的,用於轉發的集成電路部分,現在的網橋和交換機都可以不需要軟件輔助了!順帶說一句,模擬網橋功能的軟件現在也是有的。

  2). 網橋用於連接不同的網段?(搜索百度時查到一個答案)

  首先這裏要理解什麼是網段,唉,這個概念說起來又是一篇文章!它涉及到子網掩碼的等等一系列的東西....

  這裏我覺得要明確的是,網橋不是用來連接不同網段的!!!我當初被這個問題害慘了,K了N多資料,不過還好,有點收穫:>,不同網段之間通信,需要網關的幫助,它一般是路由器這類網絡層的設備。網橋或交換機是鏈路層設備,網段這個是和IP相關的概念,屬於網絡層。網橋和交換機跟本無能力去處理網絡層的東西!如果非要說用網橋和交換機去連接兩個不同網段的網絡不是不行,只是沒有作用而已,因爲不同網段機器的始終是不能互訪問,網橋不能做網關!上面我已經說了網橋的由來,它是爲了減少HUB的廣播,提高局域網網絡性能出現的,網橋連接的僅僅是兩個子局域網,並且這裏說的子局域網必須是同構的(同構的意思是:如果是以太網,那麼網橋連接的兩個子網都必須是以太網,不能一個是以太網一個是令牌網),我一直認爲:以太網的特性導致了網橋的出現,因爲廣播是以太網的重要特性,其他構造的網絡不一定有(呀~這裏我猜的,我對其他的結構的網絡是一巧不通的說-_-!),爲了優化以太網的性能,網橋出現了~所以其他構造網絡似乎也不需要使用網橋這個東東!其實後來帶着這個想法繼續看無線網絡的東西,發現這個想法應該是錯誤的,網橋的天性應該是:連接兩個同構網絡,而在以太網上,剛好HUB可以作爲連接兩個網絡的設備,但是由於HUB的各種弊端,人們研發了工作在鏈路層上的網橋(本文所介紹的),它除了連接兩個網絡的功能外,還有優化網絡性能的功能。而在其他構造的網絡也有網橋這個設備,但它的功能可能是僅僅連接兩個網絡,而沒有了優化網絡性能的功能(或者根據網絡特性,它又有了新的功能)。

  這裏再次總結一下網橋和交換機

  網橋和交換機用戶分割衝突域,就是網橋和交換機可以較少被逼的廣播(hub導致的),但不能分割廣播域。不嚴格地說,交換機可以看作網橋的高度集成。

  衝突域:總的來說,衝突域就是連接在同一導線上的所有工作站的集合,或者說是同一物理網段上所有節點的集合,或以太網上競爭同一帶寬的節點集合。HUB這種設備不能分割衝突域。

  廣播域:網絡中能接收任一設備發出的廣播幀的所有設備的集合。

  HUB 所有端口都在同一個廣播域,衝突域內。
  Switch所有端口都在同一個廣播域內,而每一個端口就是一個衝突域。
  Router的每個端口屬於不同的廣播域。

  好了~先總結這麼多,下次再寫~!

五.參考資料:

1.《計算機網絡(第四版)》

2.http://baike.baidu.com/view/826.htm

3.http://www.it.com.cn/f/network/055/18/114653.htm

4.http://zhidao.baidu.com/question/54207532.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章