近年來隨著Internet/Intranet的迅猛發展和B/S計算模式的廣泛應用,跨地域、跨網絡的業務急劇增長,業界和用戶深感傳統的路由器在網絡中的瓶頸效應。
而三層交換機既可操作在網絡協議的第三層,起到路由決定的作用,又具有幾乎達到第二層交換的速度,且價格相對較低。
一時間,三層交換機將取代路由器成為網絡界最流行的話題。但事實果真如此嗎?
傳統的路由器在網絡中有路由轉發、防火墻、隔離廣播等作用,而在一個劃分了VLAN以后的網絡中,邏輯上劃分的不同網段之間通信仍然要通過路由器轉發。
由于在局域網上,不同VLAN之間的通信數據量很大,這樣,如果路由器要對每一個數據包都路由一次,隨著網絡上數據量的不斷增大,它將成為瓶頸。而第三層交換技術就是將路由技術與交換技術合二為一的技術。
在對第一個數據流進行路由后,它將會產生一個mac地址與IP地址的映射表,當同樣的數據流再次通過時,將根據此表直接從二層通過而不是再次路由,從而消除了路由器進行路由選擇而造成網絡的延遲,提高了數據包轉發的效率。
路由器的轉發采用最長匹配的方式,實現復雜,通常使用軟件來實現。而三層交換機的路由查找是針對流的,它利用CACHE技術,很容易采用ASIC實現,因此,可以大大節約成本,并實現快速轉發。
但從技術上講,路由器和三層交換機在數據包交換操作上存在著明顯區別。路由器一般由基于微處理器的引接執行數據包交換,而三層交換機通過硬件執行數據包交換。因此與三層交換機相比,路由器功能更為強大,像NAT、VPN等功能仍無法被完全替代。
處于同一個局域網中的各子網的互聯,可以用三層交換機來代替路由器,但局域網必須與公網互聯以實現跨地域的網絡,這時路由器就不可缺少。一個完全構建在交換機上的網絡會出現諸如碰撞、堵塞以及通信混亂等問題。使用路由器將網絡劃分為多個子網,通過路由所具備的功能來有效進行安全控制策略,則可以避這些問題。
三層交換機現在還不能提供完整的路由選擇協議,而路由器則具備同時處理多個協議的能力。當連接不同協議的網絡,像以太網和令牌環的組合網絡,依靠三層交換機是不可能完成網間數據傳輸的。除此之外,路由器還具有第四層網絡管理能力,這也是三層交換機所不具備的。
所以,三層交換機并不等于路由器,也不可能完全取代路由器。
--------------------------------------------------------------------------------------------
三層交換機與路由器的主要區別
之所以有人搞不清三層交換機和路由器之間的區別,最根本就是三層交換機也具有“路由”功能,與傳統路由器的路由功能總體上是一致的。雖然如此,三層交換機與路由器還是存在著相當大的本質區別的,下面分別予以介紹。
1. 主要功能不同
雖然三層交換機與路由器都具有路由功能,但我們不能因此而把它們等同起來,正如現在許多網絡設備同時具備多種傳統網絡設備功能一樣,就如現在有許多寬帶路 由器不僅具有路由功能,還提供了交換機端口、硬件防火墻功能,但不能把它與交換機或者防火墻等同起來一樣。因為這些路由器的主要功能還是路由功能,其它功 能只不過是其附加功能,其目的是使設備適用面更廣、使其更加實用。這里的三層交換機也一樣,它仍是交換機產品,只不過它是具備了一些基本的路由功能的交換 機,它的主要功能仍是數據交換。也就是說它同時具備了數據交換和路由由發兩種功能,但其主要功能還是數據交換;而路由器僅具有路由轉發這一種主要功能。
2. 主要適用的環境不一樣
三層交換機的路由功能通常比較簡單,因為它所面對的主要是簡單的局域網連接。正因如此,三層交換機的路由功能通常比較簡單,路由路徑遠沒有路由器那么復雜。它用在局域網中的主要用途還是提供快速數據交換功能,滿足局域網數據交換頻繁的應用特點。
而路由器則不同,它的設計初哀就是為了滿足不同類型的網絡連接,雖然也適用于局域網之間的連接,但它的路由功能更多的體現在不同類型網絡之間的互聯上,如 局域網與廣域網之間的連接、不同協議的網絡之間的連接等,所以路由器主要是用于不同類型的網絡之間。它最主要的功能就是路由轉發,解決好各種復雜路由路徑 網絡的連接就是它的最終目的,所以路由器的路由功能通常非常強大,不僅適用于同種協議的局域網間,更適用于不同協議的局域網與廣域網間。它的優勢在于選擇 最佳路由、負荷分擔、鏈路備份及和其他網絡進行路由信息的交換等等路由器所具有功能。為了與各種類型的網絡連接,路由器的接口類型非常豐富,而三層交換機 則一般僅同類型的局域網接口,非常簡單。
3. 性能體現不一樣
從技術上講,路由器和三層交換機在數據包交換操作上存在著明顯區別。路由器一般由基于微處理器的軟件路 由引擎執行數據包交換,而三層交換機通過硬件執行數據包交換。三層交換機在對第一個數據流進行路由后,它將會產生一個MAC地址與IP地址的映射表,當同 樣的數據流再次通過時,將根據此表直接從二層通過而不是再次路由,從而消除了路由器進行路由選擇而造成網絡的延遲,提高了數據包轉發的效率。同時,三層交 換機的路由查找是針對數據流的,它利用緩存技術,很容易利用ASIC技術來實現,因此,可以大大節約成本,并實現快速轉發。而路由器的轉發采用最長匹配的 方式,實現復雜,通常使用軟件來實現,轉發效率較低。
正因如此,從整體性能上比較的話,三層交換機的性能要遠優于路由器,非常適用于數據交換頻繁的局域網中;而路由器雖然路由功能非常強大,但它的數據包轉發 效率遠低于三層交換機,更適合于數據交換不是很頻繁的不同類型網絡的互聯,如局域網與互聯網的互聯。如果把路由器,特別是高檔路由器用于局域網中,則在相 當大程度上是一種浪費(就其強大的路由功能而言),而且還不能很好地滿足局域網通信性能需求,影響子網間的正常通信。
綜上所述,三層交換機與路由器之間還是存在著非常大的本質區別的。無論從哪方面來說,在局域網中進行多子網連接,最好還選用三層交換機,特別是在不同子網 數據交換頻繁的環境中。一方面可以確保子網間的通信性能需求,另一方面省去了另外購買交換機的投資。當然,如果子網間的通信不是很頻繁,采用路由器也無可 厚非,也可達到子網安全隔離相互通信的目的。具體要根據實際需求來定。
附網絡協議融合文檔
協議融合
TCP/IP滿足了Internet范圍的網絡通信,FC滿足了后端存儲的專用高速公路,而SCSI不適合Internet的通信。這就如同火車或者汽車,同樣是運輸貨物,但是它們都適應了不同的需要。
對于SCSI而言,如果要跨越大范圍的通信,就要將其承載到TCP/IP上,形成了ISCSI協議。TCP不用關心SCSI協議的什么,只需要封裝和傳輸。
同樣的道理,以太網是面向無連接的,沒有握手過程,也沒有終端認證機制,沒有NCP(PPP用來協商上層參數的),而PPP卻有,所以PPP適合ISP對接入終端進行認證。但是PPP不如以太網廣泛,所以可以融合成為PPPoE。
網絡通信協議的四級結構
網絡通信協議一般可以分為:Payload 層、信息表示層、交互邏輯層、尋址層
其中最重要的是交互邏輯層
Payload層
payload指的是與本協議邏輯無關的最終數據,它可以是最終應用的數據,也可以是另一種協議的信息表示層+Payload
協議A封裝了協議B的 “信息表示層+Payload數據”,可以說協議A封裝了協議B,或者A承載了B,或者說B is over A( BoA )
而AmB則是一種徹底的協議轉換,而不是僅僅做隧道封裝,描述一種協議被Map到另一種協議。
信息表示層
信息表示層是附加到Payload數據之外的一段數據,是協議開銷。就如同在信封上的姓名一樣
比如運行在通信雙方的通信協議用來交互各自的狀態,比如信封上的姓名等。
交互邏輯層
交互邏輯層其實就是運行在通信雙方協議系統上的動作程序代碼邏輯,它根據對方傳送來的信息表示層數據作出動作。返回自己的信息表示層。
交互邏輯層是協議的設計思想,是協議的靈魂。
尋址層
尋址層顧名思義是找到目標的一套編址和尋址機制。不同協議的尋址層可以互相映射翻譯。
總結一下,
- Payload和信息表示層就是報文要承載的部分,
- 交互邏輯是協議的規范,規定了協議如何進行交互。
- 尋址層是協議的編址方式,用于區分不同的節點。
協議融合的三種方式
協議與協議相互作用有三種方式:
- 調用:一種協議完全利用另一種協議
- 隧道封裝(Tunnel):一種協議將另一種協議完整打包
- 映射(Map):一種協議對另一種協議進行翻譯,只將原來協議的Payload層數據提取,重新打包到新的協議數據包中。這種方式最徹底
下面將就這幾種方式進行一一講解。
調用
因為協議自身沒有某些功能,所以需要調用其他協議的某些功能。
比如
- TCP需要調用IP,因為TCP沒有尋址的功能。IP調用以太網,因為IP沒有鏈路傳輸的功能。
- IP調用PPP:就是上層協議為了達到通信目的,使用另一種協議來服務。
隧道
將一種協議的完整數據包(包括Payload和協議開銷)作為另一種協議的Payload進行封裝。
也就是說協議轉換的設備只是將數據包通通打包即可,不需要關心內層協議是什么。此時需要與上面的調用進行區別,如果一種協議在某方面的功能,另一協議沒有實現,就是調用。比如IPoE,IP沒有鏈路層功能,所以是IP協議調用底層的以太網協議。不過值得注意的是IP與以太網之間的編址邏輯是映射而不是使用關系,因為我們是把IP地址映射到MAC地址上的。
Tunnel主要用于內層協議和外層協議都在某方面有相似的功能,但是在某些條件下,外層協議更優秀的情況下。比如用船來裝火車箱,這樣就可以在水路上走了。或者說還可以用于偽裝內層存協議。
ISCSI 和PPPoE是典型的Tunnel。何以見得,在ISCSI中,TCP/IP可以實現尋址和傳輸保障,而SCSI協議也可實現尋址和傳輸保障。他們都可以實現同樣的功能,但是在兩種協議融合以后,SCSI協議的尋址傳輸保障功能就不用了,完全只使用TCP/IP的。
上面還說過Tunnel另一個作用是偽裝,也就是兩種協議實現的功能、適用 的環境都相同,但是我們還是可以通過隧道進行偽裝,這樣對外就可以屏蔽內部細節。比如IP協議中的GRE(通用路由封裝)
那么這種偽裝有什么作用呢?它將IP協議承載到IP協議本身上面,因為多封裝了一層,可以使得一些不能在公網路由的IP包,封裝到可以在公網進行路由的IP包里面。
這又有什么用呢?比如總部和分支不在一個地方,所以中間可能會跨越Internet網絡,但是我們又希望總部和分支在一個內網下。此時有兩種方案:
- 使用專線,也就是向運營商租用專用網絡,好處是穩定,缺點是太貴。
- 直接使用Internet網絡。但是我們知道,Internet網絡的IP地址和企業內部的IP地址完全不同。那么此時Tunnel就有用了,可以在內網報文外面再封裝一層,這樣兩端就像在一個內網里面一樣,經過Internet的時候,使用公網地址封裝內網的IP包,還可以對IP包進行加密、反修改等,這就形成了IPSec
下面舉一個例子來說明Tunnel的過程,同樣以寄信為例
- 寄信人將信件(Payload)裝入信封(表示層數據)
- 填好收信人的地址、郵編等(通信協議的信息表示層、尋址層)
- 交給郵局(網絡交換路由設備)
- 物流業借助水陸空等“鏈路層”。建立了自己的流程體系(協議交互邏輯)
- 用戶可把信件封裝到郵政普通的信封直接發,也可以封裝到快遞公司的信封發送,
- 把郵政協議Tunnel到快遞公司的可以獲得快速、優質的服務。
若A快遞公司在北京沒有送貨機構,但是青島需要向北京送貨?
可以讓有送貨機構的B快遞公司代送,到目的地以后B的送貨員剝開了信封,用戶收到了快遞A的信封,以為是A送過來的,這就是偽裝。
映射關系
Map比Tunnel更復雜,更融合。
Map就是將一種協議邏輯翻譯成另一種協議邏輯,Payload數據完全不變。
內層的Payload層在Map里面不會改動,因為只有兩端的通信應用程序才能理解。
比如A將青島地區的送貨外包給B,但是表面上必須保持A的原樣。
起初:客戶信件放入A信封,再封裝成B,這就是Tunnel。
現在:
- 讓B的取件人了解寄件人提供的信息,取代了A公司的角色,用戶按照A公司的協議將信封頭信息告訴取件人。
- 取件人直接將信件裝入了B的信封,但是將A的信封頭轉換為了B的信封頭。
- B轉發以后,送貨員將B的信封頭轉換為A的信封頭。
不過兩端的用戶感受不到,因為中間是有B完成的。
Map方式最大的好處在于開銷變小。
比如IP地址必須要映射到MAC地址才能享受以太網服務