學習了計算機網路原理自頂向下方法後,書中只提到了在不同網段通信時,需要經過路由器,沒有提到三層交換機和網關,百度了這兩個設備後,找不到三者的區別


古老的西方監獄,會把所有的囚犯關在一個很大的房子里。但是管理者很快發現這樣有很多弊端,只要有一個人半夜放P,會吵醒所有囚犯。把一大幫子人放在一起,易於滋生群體性暴動事件。為了克服以上弊端,管理方後來設計的監獄,有很多小小的房間組成。一個房間最多關押十多個囚犯。

囚犯們雖然被關在一個個囚房裡,但是卻鎖不住他們私下交換香煙、啤酒。如果兩個囚犯關在相同的囚房裡,這種交換非常簡單,直接找到對方就可以交易了。但是如果兩個囚犯關在不同的囚房裡,他們如何交易呢?

路由器/牢頭

Alice想用自己的香煙,交換Bob的啤酒,而Bob卻在很遠很遠的囚房裡。Alice靈機一動,將香煙遞給老王(老大/牢頭),煩請轉交Bob。老王趴在鐵柵欄後,伸出長長的右手將香煙遞給隔壁囚房的老張(老大/牢頭),煩請轉交給Bob,Alice的貨。老張重複老王的動作,把香煙傳遞到下一間囚房的牢頭處。經過N次的接力,最終香煙終於到達老李(老大/牢頭)處。老李知道Bob就位於自己的囚房裡,於是將香煙扔給Bob。稍後Bob將啤酒也按照類似的方法傳遞迴去,最終啤酒也到達Alice的手裡,至此一次交易通信完成了。

在上文中,牢頭老王、老張、老李角色比較特殊,他們可以與隔壁的牢頭手拉手,而其他人卻沒有這個特權。Alice想直接與隔壁老張手拉手,看老王打不死她!

牢頭,其實就是計算機通信里的路由器(Router)。老王、老李、老張都是路由器,與之對應的是主機(Host),Alice、Bob就是主機。

三層交換機/獄卒

一些腐敗的獄卒,慢慢也充當著這種接力遊戲,往往比牢頭的接力效率更高,因為獄卒可以加速。

網關(Gateway)

通常可以完成貨物接力的角色,都是網關。所以無論是路由器,還是三層交換機,都可以充當網關。

但是倒過來說就不妥了,比如網關是路由器,這顯然就不對了。因為網關也有可能是三層交換機、三層防火牆,因為三層防火牆也是網關。

看更多內容,可以參閱個人主頁。

鹽選專欄告別瞎忙:實用時間管理術作者 紀元去試讀?


在區分三者區別之前,先來弄清楚它們各自的作用。

1·網關

網關好比一套房子的大門,整套房子是自己終端所在的區域網環境,當房子內的人要去拜訪房子外面的親戚朋友(其他區域網)時,就需要通過大門也就是網關來進出,數據包的傳輸必須要通過網關才能到達。(這裡網關泛指連接外網的設備,不限定具體設備,可以是路由器、防火牆等

櫻桃小丸子,小丸子的姐姐,爺爺,奶奶,爸爸,媽媽,六個不同的數據想出去拜訪花輪同學的話,必須經過大門,這個大門就是網關,它可以協調各種不同協議的數據進行傳輸。

2·路由器

主要有以下三個作用:

(1)網路互連,實現不同網路互相通信

(2)數據處理,提供分組過濾轉發、優先順序、防火牆等功能

(3)網路管理,提供配置管理、性能管理、流量控制等功能

3·三層交換機

如果一個網路的計算機過多,不進行管理,會出現廣播風暴,輕則數據丟失,重則整個網路癱瘓。這個時候就需要劃分VLAN,把計算機劃分成多塊區域進行管理。而不同VLAN之間計算通信,就需要路由器 單臂路由來實現。

對於小型的網路,單臂路由可以應付,但隨著VLAN之間流量的不斷增加,很可能導致路由器成為整個網路的瓶頸,出現掉包、或者通信堵塞。

(有人認為:為了解決上述VLAN之間數據交換問題,三層交換機應運而生。)

三層交換機,本質上就是「帶有路由功能的(二層)交換機」。 路由屬於OSI參照模型中第三層網路層的功能,因此帶有第三層路由功能的交換機才被稱為「三層交換機」。VLAN間的數據通信可以通過三層交換機實現,這樣也就釋放了路由器的性能。

-----------------------------------------擴展知識 開始------------------------------------

上述括弧里這種說法是存在歧義的,因為多協議路由器是在 1981 年問世的, 乙太網交換機是 1990 年, 不同的設備在嘗試解決不同的問題, 而非迭代。

如果一個設備可以尋路, 我們就稱之為路由器. 三層交換機是一種行銷語言, 用於導向不同的客戶場景。

技術上, 3層交換機通過保留源/ 目的 MAC 和 TTL 值進行數據交換, 即第一個數據包路由, 其後進行交換。而路由器進行常規的路由查詢, 但是隨著快速交換技術的引入, 路由器也可以執行類似的轉發行為。此外在物理介面和硬體架構上, 這兩個不同名字的設備可能都會根據應用場景有著不同的定義。

----------------------------------------擴展知識 結束-----------------------------------------

搞清楚三者的作用後,現在打個比方,以幼兒園為例,讓我們了解一下它們的區別。

每個活蹦亂跳的小朋友就是計算機,一個個班級就是VLAN,而院長是網關、班主任是路由器、生活老師是三層交換機。帶著這個設定,幫助理解。

一所幼兒園有500位小朋友,如果都分在一個班裡,500位小朋友分分鐘能把學校給拆了。這個時候該怎麼辦呢?

(1)分班級=分VLAN

那就是給500位小朋友分班級,每個班級25位小朋友,一共20個班級。然後給每個班級命名,小一班、小二班、中一班等等。分班級也就是區域網中劃分VLAN。

(2)班級之間的互動需要班主任(路由器)來協作

同一個班級的小朋友,例如小一班的小朋友,每天都是在一個教室內,可以一起吃點心、互相玩耍。不同班級的小朋友不在一個班級裡面,就不能在一起玩耍,如果想一起玩耍怎麼辦呢?這個時候就要通過老師來溝通協調,讓兩個班的小朋友一起做遊戲。這個時候就需要路由器來解決不同vlan間互相通信的問題。

(3)班主任(路由器)忙不過來,需要生活老師(三層交換機)輔助

然而有個問題,老師重要的工作是給小朋友們上課,如果每天都需要跟其他班級之間一起做遊戲一起畫畫,這樣會耽誤老師的大部分時間,老師就沒有精力來製作上課的內容,就不能保證孩子的正常上課學習。如果vlan數量多,之間通信頻繁,就會加重路由器的工作,增加路由器的負載,路由器沒有多餘的性能來完成主要的工作:與其他網路之間的通信。這個時候學校會安排一位生活老師來輔助老師管理,生活老師專門管理小朋友一些問題,這樣就釋放了老師的精力,可以讓老師更好的給小朋友上課。三層交換機就應運而生了,本質上就是二層交換機帶有路由功能,vlan間的通信由三層交換機完成,路由器釋放了性能,更好的保證了不同網路之前的數據通信。

(4)幼兒園之間的互動需要院長(網關)的協調

那網關是什麼呢?這所幼兒園準備和另外一所幼兒園一起舉辦一個親子運動會,兩個幼兒園之間想進行交流,這時候需要和其他區域網交流,就需要園長出來進行協商溝通。園長也就相當於網關,想要跟其他網路通信,必須要經過網關。網關可以是路由器、可以是防火牆也可以是3層交換機。一般正規網路的網關都是路由器或者防火牆。

網關、路由器、三層交換機的區別,你get了嗎?


網關這個概念是邏輯層面的 幫助主機轉發三層數據包的就叫網關 主機的網關地址所在的設備就叫網關 但他不一定是路由器啊 有可能是一個開了路由轉發的伺服器

至於三層交換機 是不是很奇怪為啥要有三層交換機這種東西??到底是幹嘛用的?用路由器他不香嗎?這要從vlan講起 不同vlan間不能直接通信 因為不在同一個廣播域 就相當於兩個不同的網段 本身這種情況下要用路由器來讓兩個網段的設備通信的對吧?但這不是兩個lan 而是兩個vlan啊 兩個lan的話路由器接兩個物理lan口 配個路由表就能通了 vlan可能倆vlan在一個物理lan口上 這怎麼配路由?所以啦三層交換機就誕生了 三層交換機設置了虛擬lan口 專門給vlan用 這就保證了vlan間的通信 所以路由的作用是讓lan之間通信 三層交換機是讓vlan間互相通信

其實也不是說路由器不能讓vlan間通信 也是可以的 比如用單臂路由就可以實現 但是成本高啊 容易單點故障啊 而且路由物理介面多貴啊!

所以隨著發展 三層交換機和路由器基本功能上雖然一致 側重點卻產生很大變化 三層交換多用於企業內部vlan間互通 有很大背板帶寬 這樣成本低 而路由多用於與外網對接 有gb級別的介面 有vpn 路由重分發 部分防火牆功能等等

這就是區別了


網關是一個抽象的概念,具體說路由器可以做網關,三層交換機也可以做網關,甚至你的電腦也可以做網關。

而路由器和交換機則是具體的設備。

至於三層交換機和路由器的區別,其實沒啥區別。

你要說區別的話Cisco/Broadcom更願意稱自己的產品為三層交換機。

而Juniper則更願意稱自己產品為路由器。

Juniper這麼稱呼自己這款產品

MX960 Universal Routing Platform

High-performance and scalable router for service provider and enterprise digital transformation.

好吧,上面屬於說笑(其實並沒有,很正經的),下面正式解釋一下這個事。

交換機主要功能是交換數據,內部是硬體直接處理數據包的,也就是硬體轉發。什麼叫硬體轉發呢?我們來舉個簡單的例子,比如邏輯電路里有一種零件叫選擇器(mux)

也就是可以通過下面的A1A2來控制輸出Y到底跟哪個輸入連通。內部結構是這樣的:

神馬?看不懂?沒事,這個不重要,或者實在想知道要不你去看看這個?

CPU 是怎麼認識代碼的??

www.zhihu.com圖標

硬體處理的好處就是速度爆快,性能無敵好,資源佔用極低。來一個數據包,交換機的CPU看都不用看直接懟給晶元,它就從指定的埠出去了。牛不牛?

二層交換機是看MAC地址,三層交換機則是看IP地址進行高速轉發。

那有什麼缺點呢?缺點就是它是一個鐵憨憨,只會通過MAC/IP地址來轉發數據,用文化人的說法叫缺乏靈活性。打個比方的話就是三層交換機大概相當於一個頭腦簡單四肢發達的筋肉男,腦子不太靈光但力大無窮。


路由器是做什麼的呢?確實可以跨網段轉發數據,但路由器真正的用途是計算路由。什麼叫計算路由呢,這就要從互聯網的結構說起了。

大家知道早期互聯網其實是軍事用途,其目的在於構築一個幾乎無法被摧毀的信息交換網路。

樹狀結構的網路往往有一個或者幾個中樞,一旦被摧毀整個網路就癱瘓了。而這種網狀結構的網路,即使你摧毀少數節點,或者切斷一些徑路,數據仍然可以繞路到達,整個網路仍然是有效的。

節點之間會根據一定的演算法計算出到其他節點代價最小的路徑,具體怎麼算的,隨便讀個工科應該就懂了,自己想學可以去看看圖論哈。

如果網路結構不變,最短徑路算好放在那就行了。但一旦網路發生變化,比如某個節點壞掉了,或者某條線斷了,那就要路由器來重新計算。由於路由協議不同,一部分節點甚至全部節點都要重新計算到其他節點的路由,這個計算量其實蠻大的。

這個計算量有多大的呢?早期互聯網並沒打算接入那麼多設備,網段劃的簡單粗暴,地址分個ABC類就完事了。後來設備和網路越來越多,大家就只好把大的網路切成小網段用,比如一個/16的網段切成四個/18的網段,一個/20的網段切成16個/24的網段,etc...

切來切去網段(節點)越來越多,到這些網段(節點)的全部路由信息稱之為全路由(Full route),全路由在2020年初這個時間點上大概有70萬條,一般的路由器要計算大概3到20分鐘吧,而早期的路由器由於內存什麼限制恐怕還算不了這麼多路由。

計算路由這個問題太複雜了,加上各種各樣的路由協議,很難硬體解決。也就是用常規通用計算機的方案,用高性能的CPU來算,或者說路由器其實跟普通的電腦沒有本質差別。順便說一下Cisco路由器的IOS其實可以拿到模擬器上跑,幾乎可以完整的模擬出路由器的各種行為。

所以打個比方的話路由器就相當於一個瘦弱的學霸,腦子倒是靈感但你指望它轉發數據那還是算了吧。


估計你也發現問題了:那我們給筋肉男安上一個不錯的腦子,那不就兩全其美了嗎?!

其實大家也是這樣做的,所以傳統意義上路由器用的越來越少,越來越多的地方(尤其是電信企業)開始用高端三層交換機來替代傳統路由器。而高端路由器和高端三層交換機的界限也越來越模糊,所以前面不也跟你說了么,Cisco習慣稱這樣的產品為三層交換機,Juniper則習慣稱之為路由器。

順便說一下,現在網路發展的趨勢叫做網路扁平化(fabric化),用以替代傳統的核心-匯聚-接入三層結構。什麼叫扁平化呢?白話解釋就是,最好能把所有的網路設備都直接懟到一個巨型的三層交換機上來交換數據,這樣對大家都好。

基於這樣的思路,三層交換機逐漸取代傳統路由器成為互聯網的核心。


最後,我知道你們買的無線路由花了不少錢,但也別傻了吧唧的隨意就把無線路由的WAN口往上接,能用LAN口盡量用LAN口。除非絕對必要,也就是一定要路由器撥號的情況,你再用WAN口。因為網路扁平化不是說說而已的,交換機的轉發性能是壓倒性的,真不是你幾千元就能抹平的(何況幾千也不都使用在路由轉發這一塊了)。

最糟糕的情況莫過於光貓已經撥號了,還把無線路由的WAN口往光貓的LAN口上懟。上網是能上的,速度穩定性都不咋樣,還可能出各種奇怪問題。

這時候把光貓換成橋接模式,路由撥號,哎!問題都消失了。然後得出結論就是光貓性能不行。

嗯,你高興就好。


三層交換機僅支持ip協議和乙太網協議的轉發,部分支持mpls vpn

路由器支持多種二層與三層協議的轉發,以及多種同層協議的轉換

網關更多是一個邏輯概念


推薦閱讀:
相关文章