原理
網橋將兩個相似的網路連線起來,並對網路數據的流通進行管理。它工作於數據鏈路層,不但能擴展網路的距離或範圍,而且可提高網路的性能、可靠性和安全性。網路1 和網路2 通過網橋連線後,網橋接收網路1 傳送的數據包,檢查數據包中的地址,如果地址屬於網路1 ,它就將其放棄,相反,如果是網路2 的地址,它就繼續傳送給網路2.這樣可利用網橋隔離信息,將同一個網路號劃分成多個網段(屬於同一個網路號),隔離出安全網段,防止其他網段內的用戶非法訪問。由於網路的分段,各網段相對獨立(屬於同一個網路號),一個網段的故障不會影響到另一個網段的運行。網橋可以是專門硬體設備,也可以由計算機加裝的網橋軟體來實現,這時計算機上會安裝多個網路適配器(網卡)。
網橋的功能在延長網路跨度上類似於中繼器,然而它能提供智慧型化連線服務,即根據幀的終點地址處於哪一網段來進行轉發和濾除。網橋對站點所處網段的了解是靠“自學習”實現的,有透明網橋、轉換網橋、封裝網橋、源路由選擇網橋。
當使用網橋連線兩段LAN 時,網橋對來自網段1 的MAC 幀,首先要檢查其終點地址。如果該幀是發往網段1 上某一站的,網橋則不將幀轉發到網段2 ,而將其濾除;如果該幀是發往網段2 上某一站的,網橋則將它轉發到網段2,這表明,如果LAN1和LAN2上各有一對用戶在本網段上同時進行通信,顯然是可以實現的。 因為網橋起到了隔離作用。可以看出,網橋在一定條件下具有增加網路頻寬的作用。
網橋的存儲和轉發功能與中繼器相比有優點也有缺點,其優點是:
使用網橋進行互連克服了物理限制,這意味著構成LAN 的數據站總數和網段數很容易擴充。
網橋納入存儲和轉發功能可使其適應於連線使用不同MAC 協定的兩個LAN,因而構成一個不同LAN 混連在一起的混合網路環境。
網橋的中繼功能僅僅依賴於MAC 幀的地址,因而對高層協定完全透明。
網橋將一個較大的LAN 分成段,有利於改善可靠性、可用性和安全性。
網橋的主要缺點是:由於網橋在執行轉發前先接收幀並進行緩衝,與中繼器相比會引入更多時延。由於網橋不提供流控功能,因此在流量較大時有可能使其過載,從而造成幀的丟失。
網橋的優點多於缺點正是其廣泛使用的原因。
網橋工作在數據鏈路層,將兩個LAN連起來,根據MAC地址來轉發幀,可以看作一個“低層的路由器”(路由器工作在網路層,根據網路地址如IP位址進行轉發)。
遠程網橋通過一個通常較慢的鏈路(如電話線)連線兩個遠程LAN,對本地網橋而言,性能比較重要,而對遠程網橋而言,在長距離上可正常運行是更重要的。
優劣
網橋優點
1、過濾通信量。網橋可以使用區域網路的一個網段上各工作站之間的信息量局限在本網段的範圍內,而不會經過網橋六道其他網段去。
2、擴大了物理範圍,也增加了整個區域網路上的工作站的最大數目。
3、可使用不同的物理層,可互連不同的區域網路。
4、提高了可靠性。如果把較大的區域網路分割成若干較小的區域網路,並且每個小的區域網路內部的信息量明顯地高於網間的信息量,那么整個互連網路的性能就變得更好。
網橋缺點
1、由於網橋對接收的幀要先存儲和查找站表,然後轉發,這就增加了時延。
2、在MAC子層並沒有流量控制功能。當網路上負荷很重時,可能因網橋緩衝區的存儲空間不夠而發生溢出,以致產生幀丟失的現象。
3、具有不同MAC子層的網段橋接再一起時,網橋在轉發一個幀之前,必須修改幀的某些欄位的內容,以適合另一個MAC子層的要求,增加時延。
4、網橋只適合於用戶數不太多(不超過幾百個)和信息量不太大的區域網路,否則有事會產生較大的廣播風暴。
特性
數據鏈路層互聯的設備是網橋(bridge),在網路互聯中它起到數據接收、地址過濾與數據轉發的作用,用來實現多個網路系統之間的數據交換。
網橋的基本特徵
1.網橋在數據鏈路層上實現區域網路互連;
2.網橋能夠互連兩個採用不同數據鏈路層協定、不同傳輸介質與不同傳輸速率的網路
3.網橋以接收、存儲、地址過濾與轉發的方式實現互連的網路之間的通信;
4.網橋需要互連的網路在數據鏈路層以上採用相同的協定
5.網橋可以分隔兩個網路之間的通信量,有利於改善互連網路的性能與安全性。
兼容性
有人可能會天真地認為從一個802區域網路到另一個802區域網路的網橋非常簡單,但實際上並非如此。在802.x到802.y的九種組合中,每一種都有它自己的特殊問題要解決。在討論這些特殊問題之前,先來看一看這些網橋共同面臨的一般性問題。
首先,各種區域網路採用了不同的幀格式。這種不兼容性並不是由技術上的原因造成的,而僅僅是由於支持三種標準的公司(Xerox,GM和IBM),沒有一家願意改變自己所支持的標準。其結果是:在不同的區域網路間複製幀要重排格式,這需要占用CPU時間,重新計算校驗和,而且還有可能產生因網橋存儲錯誤而造成的無法檢測的錯誤。
第二個問題是互聯的區域網路並非必須按相同的數據傳輸速率運行。當快速的區域網路向慢速的區域網路傳送一長串連續幀時,網橋處理幀的速度要比幀進入的速度慢。網橋必須用緩衝區存儲來不及處理的幀,同時還得提防耗盡存儲器。即使是10Mb/s的802.4到10Mb/s的802.3的網橋,在某種程度上也存在這樣的問題。因為802.3的部分頻寬耗費於衝突。802.3實際上並不是真的10Mb/s,而802.4(幾乎)確實為10Mb/s。
與網橋瓶頸問題相關的一個細微而重要的問題是其上各層的計時器值。假如802.4區域網路上的網路層想傳送一段很長的報文(幀序列)。在發出最後一幀之後,它開啟一個計時器,等待確認。如果此報文必須通過網橋轉到慢速的802.5網路,那么在最後一幀被轉發到低速區域網路之前,計時器就有可能時間到。網路層可能會以為幀丟失而重新傳送整個報文。幾次傳送失敗後,網路層就會放棄傳輸並告訴傳輸層目的站點已經關機。
第三,在所有的問題中,可能最為嚴重的問題是三種802LAN有不同的最大幀長度。對於802.3,最大幀長度取決於配置參數,但對標準的10M/bs系統最大有效載荷為1500位元組。802.4的最大幀長度固定為8191位元組。802.5沒有上限,只要站點的傳輸時間不超過令牌持有時間。如果令牌時間預設為10ms,則最大幀長度為5000位元組。一個顯而易見的問題出現了:當必須把一個長幀轉發給不能接收長幀的區域網路時,將會怎么樣?在本層中不考慮把幀分成小段。所有的協定都假定幀要么到達要么沒有到達,沒有條款規定把更小的單位重組成幀。這並不是說不能設計這樣的協定,可以設計並已有這種協定,只是802不提供這種功能。這個問題基本上無法解決,必須丟棄因太長而無法轉發的幀。其透明程度也就這樣了。
差異性
網橋是通過邏輯判斷而確定如何傳輸幀。這個邏輯是基於乙太網的協定的,符合OSI的第二層規範。所以網橋可以被看做是第二層的設備。用來決定何時轉發幀。網橋編輯如下:
1.檢查收到的信號,解釋0和1的含義,並找出幀中的目的MAC地址。
2.如果具有該目的的MAC地址的幀能夠通過網橋上不同的接口到達目的地(不是幀到達網橋的那個接口),則通過重新生成信號來傳輸這幀。(這個過程叫做轉發。)
3.如果該幀到達的接口就是目的地址可達到的連線埠,則丟棄該幀。(這個過程叫做過濾。)
分類
透明網橋
第一種802網橋是透明網橋(transparent bridge)或生成樹網橋(spanning tree bridge)。支持這種設計的人首要關心的是完全透明。按照他們的觀點,裝有多個LAN的單位在買回IEEE標準網橋之後,只需把連線插頭插入網橋,就萬事大吉。不需要改動硬體和軟體,無需設定地址開關,無需裝入路由表或參數。總之什麼也不乾,只須插入電纜就完事,現有LAN的運行完全不受網橋的任何影響。這真是不可思議,他們最終成功了。
透明網橋以混雜方式工作,它接收與之連線的所有LAN傳送的每一幀。當一幀到達時,網橋必須決定將其丟棄還是轉發。如果要轉發,則必須決定發往哪個LAN。這需要通過查詢網橋中一張大型散列表里的目的地址而作出決定。該表可列出每個可能的目的地,以及它屬於哪一條輸出線路(LAN)。在插入網橋之初,所有的散列表均為空。由於網橋不知道任何目的地的位置,因而採用擴散算法(floodingalgorithm):把每個到來的、目的地不明的幀輸出到連在此網橋的所有LAN中(除了傳送該幀的LAN)。隨著時間的推移,網橋將了解每個目的地的位置。一旦知道了目的地位置,發往該處的幀就只放到適當的LAN上,而不再散發。
透明網橋採用的算法是逆向學習法(backwardlearning)。網橋按混雜的方式工作,故它能看見所連線的任一LAN上傳送的幀。查看源地址即可知道在哪個LAN上可訪問哪台機器,於是在散列表中添上一項。
當計算機和網橋加電、斷電或遷移時,網路的拓撲結構會隨之改變。為了處理動態拓撲問題,每當增加散列表項時,均在該項中註明幀的到達時間。每當目的地已在表中的幀到達時,將以當前時間更新該項。這樣,從表中每項的時間即可知道該機器最後幀到來的時間。網橋中有一個進程定期地掃描散列表,清除時間早於當前時間若干分鐘的全部表項。於是,如果從LAN上取下一台計算機,並在別處重新連到LAN上的話,那么在幾分鐘內,它即可重新開始正常工作而無須人工干預。這個算法同時也意味著,如果機器在幾分鐘內無動作,那么發給它的幀將不得不散發,一直到它自己傳送出一幀為止。
到達幀的路由選擇過程取決於傳送的LAN(源LAN)和目的地所在的LAN(目的LAN),如下所示:
(1)如果源LAN和目的LAN相同,則丟棄該幀。
(2)如果源LAN和目的LAN不同,則轉發該幀。
(3)如果目的LAN未知,則進行擴散。
為了提高可靠性,有人在LAN之間設定了並行的兩個或多個網橋,但是,這種配置引起了另外一些問題,因為在拓撲結構中產生了迴路,可能引發無限循環。其解決方法就是下面要講的生成樹(spanningtree)算法。
解決上面所說的無限循環問題的方法是讓網橋相互通信,並用一棵到達每個LAN的生成樹復蓋實際的拓撲結構。使用生成樹,可以確保任兩個LAN之間只有唯一一條路徑。一旦網橋商定好生成樹,LAN間的所有傳送都遵從此生成樹。由於從每個源到每個目的地只有唯一的路徑,故不可能再有循環。
為了建造生成樹,首先必須選出一個網橋作為生成樹的根。實現的方法是每個網橋廣播其序列號(該序列號由廠家設定並保證全球唯一),選序列號最小的網橋作為根。接著,按根到每個網橋的最短路徑來構造生成樹。如果某個網橋或LAN故障,則重新計算。
網橋通過BPDU(BridgeProtocolDataUnit)互相通信,在網橋做出配置自己的決定前,每個網橋和每個連線埠需要下列配置數據:
網橋:網橋ID(唯一的標識)
連線埠:連線埠ID(唯一的標識)
連線埠相對優先權
各連線埠的花費(高頻寬=低花費)
配置好各個網橋後,網橋將根據配置參數自動確定生成樹,這一過程有三個階段:
(1)選擇根網橋
具有最小網橋ID的網橋被選作根網橋。網橋ID應為唯一的,但若兩個網橋具有相同的最小ID,則MAC地址小的網橋被選作根。
(2)在其它所有網橋上選擇根連線埠
除根網橋外的各個網橋需要選一個根連線埠,這應該是最適合與根網橋通信的連線埠。通過計算各個連線埠到根網橋的花費,取最小者作為根連線埠。
(3)選擇每個LAN的“指定(designated)網橋”和“指定連線埠”
如果只有一個網橋連到某LAN,它必然是該LAN的指定網橋,如果多於一個,則到根網橋花費最小的被選為該LAN的指定網橋。指定連線埠連線指定網橋和相應的LAN(如果這樣的連線埠多於一個,則低優先權的被選)。
一個連線埠必須為下列之一:
(1)根連線埠
(2)某LAN的指定連線埠
(3)阻塞連線埠
當一個網橋加電後,它假定自己是根網橋,傳送出一個CBPDU(Configuration Bridge Protocol Data Unit),告知它認為的根網橋ID。一個網橋收到一個根網橋ID小於其所知ID的CBPDU,它將更新自己的表,如果該幀從根連線埠(上傳)到達,則向所有指定連線埠(下傳)分發。當一個網橋收到一個根網橋ID大於其所知ID的CBPDU,該信息被丟棄,如果該幀從指定連線埠到達,則回送一個幀告知真實根網橋的較低ID。
當有意地或由於線路故障引起網路重新配置,上述過程將重複,產生一個新的生成樹。
源路由網橋
透明網橋的優點是易於安裝,只需插進電纜即大功告成。但是從另一方面來說,這種網橋並沒有最佳地利用頻寬,因為它們僅僅用到了拓撲結構的一個子集(生成樹)。這兩個(或其他)因素的相對重要性導致了802委員會內部的分裂。支持CSMA/CD和令牌匯流排的人選擇了透明網橋,而令牌環的支持者則偏愛一種稱為源路由選擇(source routing)的網橋(受到IBM的鼓勵)。
源路由選擇的核心思想是假定每個幀的傳送者都知道接收者是否在同一LAN上。當傳送一幀到另外的LAN時,源機器將目的地址的高位設定成1作為標記。另外,它還在幀頭加進此幀應走的實際路徑。
源路由選擇網橋只關心那些目的地址高位為1的幀,當見到這樣的幀時,它掃描幀頭中的路由,尋找發來此幀的那個LAN的編號。如果發來此幀的那個LAN編號後跟的是本網橋的編號,則將此幀轉發到路由表中自己後面的那個LAN。如果該LAN編號後跟的不是本網橋,則不轉發此幀。這一算法有3種可能的具體實現:軟體、硬體、混合。這三種具體實現的價格和性能各不相同。第一種沒有接口硬體開銷,但需要速度很快的CPU處理所有到來的幀。最後一種實現需要特殊的VLSI晶片,該晶片分擔了網橋的許多工作,因此,網橋可以採用速度較慢的CPU,或者可以連線更多的LAN。
源路由選擇的前提是網際網路中的每台機器都知道所有其他機器的最佳路徑。如何得到這些路由是源路由選擇算法的重要部分。獲取路由算法的基本思想是:如果不知道目的地地址的位置,源機器就發布一廣播幀,詢問它在哪裡。每個網橋都轉發該查找幀(discovery frame),這樣該幀就可到達網際網路中的每一個LAN。當答覆回來時,途經的網橋將它們自己的標識記錄在答覆幀中,於是,廣播幀的傳送者就可以得到確切的路由,並可從中選取最佳路由。
雖然此算法可以找到最佳路由(它找到了所有的路由),但同時也面臨著幀爆炸的問題。透明網橋也會發生有點類似的狀況,但是沒有這么嚴重。其擴散是按生成樹進行,所以傳送的總幀數是網路大小的線性函式,而不象源路由選擇是指數函式。一旦主機找到至某目的地的一條路由,它就將其存入到高速緩衝器之中,無需再作查找。雖然這種方法大大遏制了幀爆炸,但它給所有的主機增加了事務性負擔,而且整個算法肯定是不透明的。
透明網橋一般用於連線乙太網段,而源路由選擇網橋則一般用於連線令牌環網段。
區別
網橋與路由器的比較
網橋並不了解其轉發幀中高層協定的信息,這使它可以同時以同種方式處理IP、IPX等協定,它還提供了將無路由協定的網路(如NetBEUI)分段的功能。
由於路由器處理網路層的數據,因此它們更容易互連不同的數據鏈路層,如令牌環網段和乙太網段。網橋通常比路由器難控制。像IP等協定有複雜的路由協定,使網管易於管理路由;IP等協定還提供了較多的網路如何分段的信息(即使其地址也提供了此類信息)。而網橋則只用MAC地址和物理拓撲進行工作。因此網橋一般適於小型較簡單的網路。
操作方法
網橋有時也被用來連線兩個或多個相距較遠的LAN。比如,某個公司分布在多個城市中,該公司在每個城市中均有一個本地的LAN,最理想的情況就是所有的LAN均連線起來,整個系統就像一個大型的LAN一樣。
該目標可通過下述方法實現:每個LAN中均設定一個網橋,並且用點到點的連線(比如租用電話公司的電話線)將它們兩個兩個地連線起來。點到點連線可採用各種不同的協定。辦法之一就是選用某種標準的點到點數據鏈路協定,將完整的MAC幀加到有效載荷中。如果所有的LAN均相同,這種辦法的效果最好,它的唯一問題就是必須將幀送到正確的LAN中。另一種辦法是在源網橋中去掉MAC的頭部和尾部,並把剩下的部分加到點到點協定的有效載荷中,然後在目的網橋中產生新的頭部和尾部。它的缺點是到達目的主機的校驗和並非是源主機所計算的校驗和,因此網橋存儲器中某位損壞所產生的錯誤可能不會被檢測到。
相關案例
許多單位都有多個區域網路,並且希望能夠將它們連線起來。之所以一個單位有多個區域網路,有以下原因:
首先,許多大學的系或公司的部門都有各自的區域網路,主要用於連線他們自己的個人計算機、工作站以及伺服器。由於各系(或部門)的工作性質不同,因此選用了不同的區域網路,這些系(或部門)之間早晚需相互交往,因而需要網橋。
其次,一個單位在地理位置上較分散,並且相距較遠,與其安裝一個遍布所有地點的同軸電纜網,不如在各個地點建立一個區域網路,並用網橋和紅外鏈路連線起來,這樣費用可能會低一些。
第三,可能有必要將一個邏輯上單一的LAN分成多個區域網路,以調節載荷。例如採用由網橋連線的多個區域網路,每個區域網路有一組工作站,並且有自己的檔案伺服器,因此大部分通信限於單個區域網路內,減輕了主幹網的負擔。
第四,在有些情況下,從載荷上看單個區域網路是毫無問題的,但是相距最遠的機器之間的物理距離太遠(比如超過802.3所規定的2.5km)。即使電纜鋪設不成問題,但由於來回時延過長,網路仍將不能正常工作。唯一的辦法是將區域網路分段,在各段之間放置網橋。通過使用網橋,可以增加工作的總物理距離。
第五,可靠性問題。在一個單獨的區域網路中,一個有缺陷的節點不斷地輸出無用的信息流會嚴重地破壞區域網路的運行。網橋可以設定在區域網路中的關鍵部位,就像建築物內的防火門一樣,防止因單個節點失常而破壞整個系統。
第六,網橋有助於安全保密。大多數LAN接口都有一種混雜工作方式(promiscuousmode),在這種方式下,計算機接收所有的幀,包括那些並不是編址傳送給它的幀。如果網中多處設定網橋並謹慎地攔截無須轉發的重要信息,那么就可以把網路分隔以防止信息被竊。