一.集線器
集線器(HUB),它是工作在物理層的設備, 由於它隻是工作在物理層的設備,所以它並不關心也不可能關心OSI上面幾層所涉及的,它的工作機制流程是:從一個端口接收到數據包時,會在其他端口把這個包轉發一次,因為它不知道也不可能知道這個包是發給誰的(物理層設備隻關心電壓這些物理概念),它也隻能對所有人廣播(註釋①),讓他們自己處理瞭。
註釋①:這裡和下文提到的 廣播該詞的意思和ARP請求時的廣播有些不同,這裡的廣播意思是:使用物理層 轉發設備,如HUB,導致的廣播,可以說這個廣播是被逼的,因為設備的問題!是設備轉發包引起的廣播!
而ARP請求的廣播是自己要求的,主動的,因為ARP請求包的目標地址I是255.255.255.255,但ARP請求的廣 播涉及IP層的知識,不在這篇文章討論的范圍,所以這裡提到的廣播,除非特別說明,否則都是第一個意思,也就說是"因設備轉發數據包引起的廣播" 。
這樣一來會有不少問題,你發的數據其他人都收到瞭,私隱這種東西是不存在的!別人可以隨便監聽你信息!所以會話劫持在那個年代相當容易。
另外一個比較嚴重的問題是,如果一個大型的局域網,比如有500臺機器,全部用HUB連接的,後果會怎麼樣呢??
相當慢,網絡的效率極差!為什麼?
如果500臺機器都發一個包,那就是說每臺機器,都需要接收差不多499個無用包,並且如果是需要回應的話,無用的數據包會充斥著整個的局域網,這就是傳說中的廣播風暴!
為瞭減少廣播風暴,網橋產生瞭!
在介紹網橋之前,還想簡單介紹另一個物理層的設備:“中繼器”。這種設備的作用是把物理層傳輸的信號放大,由於長距離的傳輸,信號會有一定的損耗的,這種設備主要解決的就是這個問題。
它和HUB的區別是:HUB主要是為瞭在物理層上轉發數據的,所以它不關心電壓值的大小,也不會放大物理信號;而中繼器它的作用就是為瞭放大信號用的。
二.網橋
網橋又稱橋接器,英文名Network Bridge,數據鏈路層設備。它也是轉發數據包的設備,但和HUB不一樣的是,它工作在數據鏈路層,HUB隻能看懂物理層上的東西(比如一段物理信號),網橋卻能看懂一些幀的信息(在鏈路層上,把上面傳下來的數據封裝後,封裝好瞭的數據就是幀,但這裡我用“數據包”這樣的泛指去代替“幀”這個專業術語)。
在以太網構造的局域網上,最終的尋址是以數據鏈路層的MAC地址作為標識的(就是用MAC地址可以在局域網上找到一臺唯一的機器),網橋能從發來的數據包中提取MAC信息,並且根據MAC信息對數據包進行有目的的轉發,而不采用廣播的方式,這樣就能減少廣播風暴的出現,提升整個網絡的效率。
三.交換機
交換機Switch,數據鏈路層設備,作用是轉發數據包。和網橋一樣它也是通過識別幀中的MAC地址,然後對特定的端口進行轉發的。
四.網橋和交換機的工作原理及區別
回答網橋和交換機區別之前,我們先一起看兩幅圖(這是從《計算機網絡(第四版)》第四章截下來的:>):
1.網橋的連接模式:(紅點處為HUB)
35eb92ca0d280842e0b6da044cce8fc5
從圖中可以看到,網橋隻有2個輸入/出端口,而交換機有8個。
一開始的時候,由於硬件水平不是很發達,人們為瞭提高局域網效率,減少廣播風暴的出現,他們生產瞭網橋,然後他們把一個局域網一分為2,中間用網橋連接,這樣A發給BCD的數據就不會再廣播到EFGH瞭,隻有從A發到EFGH的數據包才能通過網橋,到達另外一個子網。
這樣一來,非必要的傳輸減少瞭,整個網絡的效率也隨之提高可不少!隨著硬件發展,出現瞭4個、8個端口的鏈路層設備,這就是交換機,由於交換機可以使得網絡更安全,網絡效率更高,交換機漸漸替代瞭HUB,成為組建局域網的重要設備。
所以說,網橋和交換機,基本上是一樣的,但細看還是會有些不一樣。
3.網橋的工作原理:
1ef1d31e38b4c548a9896e94fa25a7d1
上圖是用一個網橋連接的兩個網絡,網橋的A端口連接A子網,B端口連接B子網。為什麼網橋知道哪些數據包該轉發,哪些包不該轉發呢?
那是因為它有兩個表A和B,當有數據包進入端口A時,網橋從數據包中提取出源MAC地址和目的MAC地址。
一開始的時候,表A和表B都是空的,沒有一條記錄,這時,網橋會把數據包轉發給B網絡,並且在表A中增加一條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). 網橋用於連接不同的網段?
首先這裡要理解什麼是網段,它涉及到子網掩碼的等等一系列的東西。
這裡我覺得要明確的是,網橋不是用來連接不同網段的!!!
不同網段之間通信,需要網關的幫助,它一般是路由器這類網絡層的設備。網橋或交換機是鏈路層設備,網段這個是和IP相關的概念,屬於網絡層。
網橋和交換機根本無能力去處理網絡層的東西!如果非要說用網橋和交換機去連接兩個不同網段的網絡不是不行,隻是沒有作用而已,因為不同網段機器的始終是不能互訪問,網橋不能做網關!
上面我已經說瞭網橋的由來,它是為瞭減少HUB的廣播,提高局域網網絡性能出現的,網橋連接的僅僅是兩個子局域網,並且這裡說的子局域網必須是同構的(同構的意思是:如果是以太網,那麼網橋連接的兩個子網都必須是以太網,不能一個是以太網一個是令牌網)。
我一直認為:以太網的特性導致瞭網橋的出現,因為廣播是以太網的重要特性,其他構造的網絡不一定有,為瞭優化以太網的性能,網橋出現瞭。所以其他構造網絡似乎也不需要使用網橋這個東東!
其實後來帶著這個想法繼續看無線網絡的東西,發現這個想法應該是錯誤的,網橋的天性應該是:連接兩個同構網絡。而在以太網上,剛好HUB可以作為連接兩個網絡的設備,但是由於HUB的各種弊端,人們研發瞭工作在鏈路層上的網橋,它除瞭連接兩個網絡的功能外,還有優化網絡性能的功能。而在其他構造的網絡也有網橋這個設備,但它的功能可能是僅僅連接兩個網絡,而沒有瞭優化網絡性能的功能(或者根據網絡特性,它又有瞭新的功能)。
這裡再次總結一下網橋和交換機:
網橋和交換機用戶分割沖突域,就是網橋和交換機可以較少被逼的廣播(hub導致的),但不能分割廣播域。不嚴格地說,交換機可以看作網橋的高度集成。
①沖突域:總的來說,沖突域就是連接在同一導線上的所有工作站的集合,或者說是同一物理網段上所有節點的集合,或以太網上競爭同一帶寬的節點集合。HUB這種設備不能分割沖突域。
②廣播域:網絡中能接收任一設備發出的廣播幀的所有設備的集合。
如果有朋友需要自學,或者沒有很好的學習途徑,那麼可以看一下這個視頻:
這是一個零基礎入門的教程,對於剛開始接觸Linux運維的同學還是很友好的,希望對你有幫助。
君霖私家菜 君霖在大连已经开了很多年了, 也算是数一数二的私房菜馆了, 每次来客都挺多的, 口碑还是蛮不错的, 服务也是 ...