自學習和轉發幀
透明網橋以混雜方式工作,它接收與之連線的所有LAN傳送的每一幀。當一幀到達時,網橋必須決定將其丟棄還是轉發。如果要轉發,則必須決定發往哪個LAN。這需要通過查詢網橋中一張大型散列表里的目的地址而作出決定。該表可列出每個可能的目的地,以及它屬於哪一條輸出線路(LAN)。在插入網橋之初,所有的散列表均為空。這時若網橋受到一個幀,會採用自學習(self-learning)算法處理收到的幀(這樣就逐漸建立起轉發表),並且按照轉發表把幀轉發出去。這種自學習算法的原理並不複雜,若從某個站A發出的幀從接口x進入了某網橋,那么從這個接口出發沿相反方向一定可把一個幀傳送到A。所以網橋只要每收到一個幀,就記下其源地址和進入網橋的接口,作為轉發表中的一個項目。在建立轉發表時是把幀首部中的源地址寫在“地址”這一欄的下面。在轉發幀時,則是根據收到的幀首部中的目的地址來轉發的。這時就把在“地址”欄下面已經記下的源地址當作目的地址,而把記下的進入接口當作轉發接口。
如果網路上的每一個站都傳送過幀,那么每一個幀的地址最終都會記錄在兩個網橋的轉發表上。
實際上,在網橋的轉發表中寫入的信息除了地址和接口外,還有幀進入該網橋的時間要登記進入網橋的時間是因為乙太網的拓撲可能會經常發生變化,站點也會更換適配器。另外,乙太網上的工作站並非總是接通電源的。把每個幀到達網橋的時間登記下來,就可以在轉發表中只保留網路拓撲的最新狀態信息。具體方法是,網橋中的接口管理軟體周期性地掃描轉發表中的項目。只要在一定時間以前登記的都要刪除。這樣就使得網橋中的轉發表能反映當前網路的最新拓撲狀態。
由此可見,網橋中的轉發信息表並非總是包含所有站點的信息。只要某個站點從來都不傳送數據,那么在網橋的轉發表中就沒有這個站點的項目。如果站點A在一段時間內不傳送數據,那么在轉發表中地址為A的項目就被刪除了。
下面是網橋的自學習和轉發幀的一般步驟。
網橋收到一幀後先進行自學習。查找轉發表中與收到幀的源地址有無相匹配的項目。如果沒有,就在轉發表中增加一個項目。如果有,則把原有的項目進行更新。
轉發幀。查找轉發表中與收到幀的源地址有無相匹配的項目。如果沒有,則通過所有其他接口進行轉發。如果有,則按轉發表中給出的接口進行轉發。但應注意,若轉發表中給出的接口就是該幀進入網橋的接口,則應丟棄這個幀。
1.網橋收到一幀後先進行自學習。查找轉發表中與收到幀的源地址有無相匹配的項目。如果沒有,就在轉發表中增加一個項目。如果有,則把原有的項目進行更新。
2.轉發幀。查找轉發表中與收到幀的源地址有無相匹配的項目。如果沒有,則通過所有其他接口進行轉發。如果有,則按轉發表中給出的接口進行轉發。但應注意,若轉發表中給出的接口就是該幀進入網橋的接口,則應丟棄這個幀。
逆向學習法
透明網橋採用的算法是逆向學習法(backward learning)。網橋按混雜的方式工作,故它能看見所連線的任一LAN上傳送的幀。查看源地址即可知道在哪個LAN上可訪問哪台機器,於是在散列表中添上一項。
當計算機和網橋加電、斷電或遷移時,網路的拓撲結構會隨之改變。為了處理動態拓撲問題,每當增加散列表項時,均在該項中註明幀的到達時間。每當目的地已在表中的幀到達時,將以當前時間更新該項。這樣,從表中每項的時間即可知道該機器最後幀到來的時間。網橋中有一個進程定期地掃描散列表,清除時間早於當前時間若干分鐘的全部表項。於是,如果從LAN上取下一台計算機,並在別處重新連到LAN上的話,那么在幾分鐘內,它即可重新開始正常工作而無須人工干預。這個算法同時也意味著,如果機器在幾分鐘內無動作,那么發給它的幀將不得不散發,一直到它自己傳送出一幀為止。
到達幀的路由選擇過程取決於傳送的LAN(源LAN)和目的地所在的LAN(目的LAN),如下所示:
1、如果源LAN和目的LAN相同,則丟棄該幀。
2、如果源LAN和目的LAN不同,則轉發該幀。
3、如果目的LAN未知,則進行擴散。
為了提高可靠性,有人在LAN之間設定了並行的兩個或多個網橋,但是,這種配置引起了另外一些問題,因為在拓撲結構中產生了迴路,可能引發無限循環。
生成樹算法
透明網橋還使用了一個生成樹(spanning tree)算法,即互連在一起的網橋在進行彼此通信後,就能找出原來的網路拓撲的一個子集。在這個子集裡,整個連通的網路中不存在迴路,即在任何兩個站之間只有一條路徑。
為了得能夠反映網路拓撲發生變化時的生成樹,在生成樹上的根網橋每隔一段時間還要對生成樹的拓撲進行更新。
透明網橋的路徑選擇算法歸納
(1)若目的區域網路和源區域網路一樣,則網橋將該幀刪除。
(2)若源區域網路和目的區域網路是不同的網,則將該幀轉發到目的區域網路。
(3)若目的區域網路不知道,則採用擴散法處理。
優缺點
透明網橋的優點是易於安裝,只需要插入電纜即大功告成。一般用在匯流排網中。缺點是不能最佳地利用網路頻寬。