TCP/IP 協定與 Internet 網路:第三章 區域網路連結 上一頁 下一頁
3-4 橋接器
橋接器(Bridge)是用來連結兩個或兩個以上,實體層或媒介存取層不相同(或相同)的網路,使網路之間的工作站可以互相通訊。橋接器和連接網路之間的通訊協定堆疊,如圖 3-7 所示。如果,橋接器使用於不同媒介存取層(MAC)之間連接,但連接網路都屬於 IEEE 802 系列標準,則橋接器和網路之間使用相同的邏輯鏈路層(LLC)。如圖 3-7 中,區域網路 A 可以是 Ethernet 網路(MAC-A 為 IEEE 802.3),而區域網路 B 是 Token-Ring 網路(MAC-B 為 IEEE 802.5);或者,區域網路 A 與區域網路 B 分別是 10Broad36 和 10Base5,兩者的 MAC 都是 IEEE 802.3 協定,但網路 A 的實體層是寬頻傳輸,而網路 B 是基頻傳輸。另一種是目前使用最普遍的情況,連結網路之間都是 Ethernet 網路,而其最主要目的是分散網路上的傳輸量(Traffic)。
圖 3-7 橋接器之通訊協定堆疊
3-4-1 橋接器的運作程序
我們以圖 3-8 為例子,來說明橋接器的運作程序。工作站 C 具有橋接器的功能,因此,它必須具備兩只網路卡:一為 Ethernet 網路卡,連結到 Ethernet 網路上;另一為 Token-Ring 網路卡,連結到 Token-Ring 網路。而且橋接器必須紀錄兩邊網路上所有工作站的 MAC 位址,這些位址都是經過學習過程得知的(下節介紹)。如果工作站 A 欲傳送訊框給工作站 B,便將訊框廣播在網路上(依照 CSMA/CD 協定),橋接器 C 也收到該訊框(CSMA/CD 協定),並判斷目的位址不在另一個網路上,便不予理會。如果工作站 A 欲將資料傳送給工作站 D,當橋接器 C 收到該訊框時,判斷該訊框是要送到另一個網路上的,便將訊框儲存起來。緊接著,橋接器 C 依照 Token-Ring 通訊協定,取得 Token 後,再將該訊框傳送給工作站 D。因此,經過橋接器 C 的轉送,網路之間的工作站就可以互相通訊。
圖 3-8 Ethernet 與 Token-Ring 網路連結
3-4-2 橋接網路的特性
由上述之橋接器在網路之間運作的程序,我們大略可了解,透過橋接器連接,可整合多個小型區域網路。一般橋接器不僅只提供兩個連接埠,甚至可擁有多個連接埠,也稱之為『多埠口橋接器』(Multi-port Bridge)。我們也可以利用多個橋接器,整合一個大型的區域網路,也稱之為『橋接區域網路』(Bridge LAN, BLAN),因此,橋接器除了連接不同協定的網路外,所建構之網路也延伸下列功能:
● 提高網路的可靠性(Reliability):橋接器將一個大型網路分割成若干個實體小網路,如其中某一網路斷線或其他因素網路停頓時,不會影響其他網路。
● 增加網路效率(Performance):因一般區域網路大多使用共享媒體(shared media)傳輸資料,如一個網路連接過多工作站,將使整個網路傳輸效率降低。此情形必須分割網路成二個或更多個網路,而小網路之間使用橋接器連接(具有Filtering及Forwarding功能),但整體上還是一個網路。如Ethernet網路上,連接之工作站太多,造成工作站之間碰撞機率提高,使網路傳輸效益降低,此時需用橋接器來分散網路的負荷(Traffic)。
● 提升網路安全性(Security):利用共同傳輸媒介傳送資料,在網路上任何地方皆可偷竊他人傳送資料。如果網路上有幾個較機密的工作站需要通訊,則可利用橋接器將其分割成另一小網路,它們之間所傳送訊息,在其它網路上就偷竊不到,因此可提升網路安全性。
● 配合地理環境(Geography):由於地理環境需要,在網路分布較廣的地區,如使用Repeater無法轉接網路之間的實體佈線,就必須利用橋接器來跨接(如 Remote-Bridge)。
除了瞭解橋接器分割網路所造成的效益外,對於連接網路橋也有下列幾點注意事項:
● 提供透通式(Transparence)服務:橋接器雖然將許多區域網路連結一起,可是對使用者而言,整體上是單一個網路,而不需要知道橋接器是否存在。
● 包含足夠大的緩衝記憶體(Buffer):橋接器具有前送功能(Forwarding)。由某一網路收到訊框後,欲轉送到另一網路,如果兩個網路之間的傳輸速率不同,或某一網路的傳輸量過高時,訊框停留在橋接器上的機率就較高。因此,橋接器內就必須有大量的緩衝器來存放等待的訊框。
● 有位址辨識(addressing)及路徑選擇(routing)的能力:因為橋接器俱有資料過濾及前送功能,因此必須有能力判斷工作站的所在位置,並且知道如何選擇適當的路徑來傳送資料。
3-4-3 橋接器的工作原理
我們用圖 3-9 來說明橋接器的工作原理,假設兩邊皆是 Ethernet 網路,網路 A 擁有工作站 1 到 10;而網路 B 上有工作站 11-20。當工作站 1 發送訊框給工作站 2 時,該訊框應該不會經過橋接器。而當工作站 1 欲傳送訊框給工作站 11 時,橋接器將會讀取該訊框,並轉送給工作站 11。由這些過程之中,我們可瞭解橋接器應具有下列功能:
● 位址辨識功能:一般橋接器都以 MAC 位址來辨識工作站。當橋接器由網路上接收到訊框後,必須拆解其目的位址(MAC-PDU),再決定應該往哪一個埠口傳送,或將其拋棄。
● 學習功能:一般工作站的 MAC 位址都是固定的,不會因連接地點而改變。但網路上連結之工作站,也許會隨時改變。因此,橋接器必須隨時在學習過程中,紀錄連接埠上所連接之工作站的 MAC 位址。
● 過濾(Filtering)功能:同一個網路中互傳的資料會被橋接器過濾掉,而不會傳送到其它網路上。
● 前送(Forwarding)功能:橋接器接收到欲傳送到另一個網路的訊框時,橋接器會將其儲存,再轉送到目的網路。因此,橋接器也具有『儲存後轉送』(Store-and-Forward)之功能。
圖 3-9 橋接器之過濾與轉送功能
3-4-4 橋接器的學習功能
橋接器的學習功能最主要的目的,是要知道每一個連接埠口上所連接之工作站的 MAC 位址。學習過程的原理非常簡單,橋接器只要紀錄,由某一埠口進入訊框的來源位址,也就表示由該埠口出去,就可以到達該來源位址的工作站。至於是否還需要經過多少個橋接器,就不用去理會它,因此,橋接器也屬於下一路徑(Next-hop)轉送法。在學習的過程之中,將知悉的 MAC 是屬於哪一個連接埠的訊息,紀錄在『過濾資料庫』(Filter Database)中,以待下次訊框進來時,作為查詢其目的位址是屬於哪個埠口,或過濾掉不要傳送。
我們以圖 3-10 來說明過濾資料庫的功能。橋接器 X 和 Y 連結網路 M、L、N、P。在每一橋接器上都有一個過濾資料庫,紀錄著經過學習得到的工作站名稱,和其所屬的埠口位址,以及學習紀錄的時間。例如,工作站 A 欲傳送資料給工作站 G,當該訊框進入橋接器 X 後,橋接器 X 由訊框的目的位址(G),知悉該訊框是隸屬於埠口 2(查詢過濾資料庫),便將訊框轉送到埠口 2,亦即,發送到網路 L。緊接下來,橋接器 Y 由埠口 1 上收到該訊框,又由訊框的目的位址,知悉該訊框隸屬於埠口 2(查詢過濾資料庫),再將該訊框轉送到網路 N,因此,工作站 G 收到訊框。又當橋接器 Y 由它的第一埠口收到這訊框時,由訊框的來源位址得知,這個訊框的發送位址(A),也表示,爾後由第二個埠口出去,可以到達該來源工作站(A),因此,就將工作站 A 和它隸屬的埠口(1)紀錄在過濾資料庫上。
圖 3-10 橋接器連結網路範例
橋接器的學習演算法(Learning Algorithm)如圖 3-11 所示。當訊框由某一埠口(X)進入時,由目的位址判斷,該訊框應該轉送到哪一個埠口;而由來源位址學習,發送該訊框之工作站隸屬哪一個埠口。其主要有三個主要程式,如下:
● 前送程式(Forwarding Process):負責將接收到而且要轉送的資料傳給適當的橋接器之埠口,或根據『過濾資料庫』(Filtering Database)的內容和橋接器的狀態(port state),過濾訊框不要轉送。
● 學習程式(Learning Process):此程式檢查由每一個連接埠口所接到訊框的『原始位址』(Source Address)。並且根據此原始位址來更改過濾資料庫內容。
● 過濾資料庫(Filtering Database):此資料庫包含有關過濾資料的訊息。其內容可由橋接器管理系統填入或自動經由學習程序所得到的。它提供足夠的訊息給前送程式,以便判斷欲送給某一個目的地址的訊框,應該往哪一個埠口轉送。(橋接器學習範例請參考習題 3-13)
圖 3-11 橋接器之學習與轉送的演譯法
3-4-5 橋接器的迴路問題
如果利用多個橋接器所連結之網路,稱之為『橋接區域網路』(Bridge LAN, BLAN)。在一個 BLAN 上,我們為了提高網路的可靠性,便希望網路具有迴路功能。如果網路上某一連線斷線,可以經過其它迴路傳送訊框,而不至於使網路被隔離成若干個小網路。但有迴路的 BLAN,會造成橋接器學習上的困難。如圖 3-12 中,橋接器 X 學習到工作站 A 是隸屬於埠口 1 和 2,而網路橋 Y 也學習到工作站 A 隸屬於埠口 1 和 2。如果工作站 B 欲傳送資料給工作站 A,當訊框進入橋接器 X 的第二埠口時,它將不予轉送(隸屬於埠口 2)。同樣的,這個訊框進入橋接器 Y,也不予轉送,因此該訊框就無法到達工作站 A。
圖 3-12 橋接網路之迴路問題
我們希望有迴路的橋接網路,以提高網路的可靠度,但又不希望迴路造成橋接器學習上的困擾,這就必須利用『擴張樹』(Spanning Tree)演算法來解決此問題。擴張樹演算法是在有迴路網路之中,隔離了某些路徑,使其成為沒有迴路的樹狀網路。但這些被隔離之路徑成為預備路徑,如果網路上某些路徑發生故障時,擴張樹演算法也許會再利用這些被隔離之路徑,重新建構新的樹狀網路。有關擴張樹的運作原理,請參考拙著『電腦網路理論與連結技術』。