我是如何去分辨橋接與路由-電信路由器 如何橋接
怎么更好地解釋網絡的路由模式和橋接模式?
在數據轉發過程中,存在路由模式和橋接模式,這2種模式的定義是什么,實現的原理差異性如何?其中路由模式在虛擬機網絡中是否就是NAT模式?
橋接(Bridging)
計算機和人一樣,有溝通的需求。計算機要和其他計算機通信,首先要彼此連接起來。最簡單的連接方式,就是用一根網線將兩臺連接起來,這根網線就是最原始的橋接(1.0版本)。A發給B的電信號,在網線里沒有做任何處理,電信號原封未動到達B,對嗎?
對,也不對。
說對的同學,是因為網線是一個管道,是一個信息載體,沒有對信號動手動腳,信號自然應該沒有任何改變。
說不對的同學,是因為任何載體,包括網線、空氣,都會衰減信號,既然B接到的信號是衰減之后的信號,怎么能說信號原封未動呢?
對與不對不是特別重要,重要的是只要A與B之間的距離不是遙遠,B能正確接收信號。
問題來了,如果A與B之間的距離比較遙遠,差不多有1KM,B還能正確接收信號嗎?
大概率不能,信號到達B的時候,衰減的已經不成人樣了,B無法將其還原。
怎么辦?
硬件工程師粉墨登場,在AB的中點位置放置一個信號放大器,一端用網線連接A,另一端用網線連接B,將從A接收到的衰減信號,信號放大之后發給B,B接收到的信號是不是更強,成功解碼概率更高?
是的,硬件工程師還說了,如果一個信號放大器不夠,可以在AB之間每間隔100米放置一個信號放大器,確保B正確接收概率為99.9999%+。這個信號放大器,就是升級版的橋接(2.0版本)。
信號放大器,唯一的作用,就是將信號的功率增強,使其傳輸得更遠一些,我們稱所有可以信號傳輸更遠的設備為中繼(Relay)設備。但這種中繼設備有一個擴展性問題,只能同時連接兩臺設備。如果有更多設備需要互聯,怎么辦?
硬件工程師將信號放大器的2個端口,擴展為8、12、24口,這樣就可以連接更多設備。這是個升級版的信號放大器,大多數讀者都聽說過它,但不一定使用過它。它的名字叫集線器,英文為Hub。
集線器的工作原理,和2個端口放大器是一樣的。即從一個口接收到的信號,要無條件從其他端口發出,但在發出之前,需要對信號做功率放大。集線器是真正意義上的橋接設備(3.0版本)。
集線器是一個橋接域,同時也是一個沖突(Collision)域,沖突域是什么意思呢?
從上文描述可以看出,任何時刻只能有一個口的信號進入集線器,然后從其他口流出。如果有兩個或兩個以上的口的信號同時流入集線器,那么這兩個或兩個以上信號就疊加在一起,造成真正的接收方無法疊加的信號,將自己的信號還原出來,這種現象就是信號沖突。
為了能夠檢測信號沖突,并在必要的時候,重傳因為信號沖突而發送失敗的數據幀,計算機Ethernet網卡上默認啟用了CSMA/CD機制。
一個24口的集線器,連接24臺計算機,任何時刻只能有一個計算機可以發送數據幀,其他23臺計算機只能默默等待。讀者覺得這種設計科學嗎?當然不科學,為什么24臺計算機不能同時發送數據幀?
硬件工程師想了好久,掉了一縷秀發。如果集線器能夠將進入的電信號,解調成0、1二級制數據,并臨時儲存起來。內部總線空閑,直接交換到出口。內部總線忙,耐心等待總線空閑,再將緩存地01數據調制成電信號,通過總線交換到出口。這樣是不是就可以避免上文的數據幀的沖突?
好主意。這里有許多問題需要考慮。如果每個端口速率是100M,24口數據同時涌入,那么總線的速率需要≥2400M,否則有部分數據會緩存在入口,而入口的緩存有限,那么后續的數據幀由于沒有足夠的緩存空間而丟棄。
還需要考慮多個端口進入的數據幀,同時從某一個端口流出。這樣也會由于出口帶寬有限,超出的數據幀將會被溢出丟棄。為了緩解由于突發(Burst)流量造成的流量溢出,每一個端口還配備了出向(Outbound)的緩存空間,用于給排隊的數據幀臨時使用。
這個設備就是交換機,它就是當前互聯網以及局域網普遍使用的現代橋接設備(4.0版本)。文中的內部總線,廠商會有一個更好聽的名字,叫交換矩陣(Switch Metrix)。交換機的入向、出向緩存,稱之為Input Queue,Output Queue。
為何要將電信號先解調成01二級制數據再交換?為什么不能將直接電信號交換到出口,至少可以節省解調制、調制時間?
交換機需要讀取數據幀的二層幀信息,比如讀取目的MAC地址,用于指示數據幀的出口。讀取源MAC地址,用于將MAC地址與端口一一綁定起來。
現代交換機還會在二層(鏈路層/以太網層)與三層(網絡層/IP層)插入VLAN信息,用于承載VLAN信息字段,稱之為802.1Q。
如果不將電信號解調成01二進制數據,以上的信息獲取將變成一個不可能完成的任務,畢竟交換機也是計算機,只認識0、1二進制信號,不認識其他什么電信號。
本文最后一個知識點,無論交換機設計的多么先進、高級,都無法避免由于多個端口流量匯聚到一個端口溢出丟棄,即尾丟(Tail Drop)。而在現網中,由于Micro-Burst而造成的溢出丟棄時時刻刻在發生,這是網絡工程師需要深刻意識到的事件。究竟這個Micro-Burst是怎么一回事? 取決于讀者是否喜歡,讀者喜歡才會考慮寫下一篇。
推薦閱讀這篇文章,學習無線必須經歷的科普。