在網絡系統集成的技術中,直接面向用戶的第一層接口和第二層交換技術方面已得到令人滿意的答案。但是,作為網絡核心、起到網間互連作用的路由器技術卻沒有質的突破。在這種情況下,一各新的路由技術應運而生,這就是第三層交換技術:說它是路由器,因為它可*作在網絡協議的第三層,是一種路由理解設備並可起到路由決定的作用;說它是交換器,是因為它的速度極快,幾乎達到第二層交換的速度。二層交換機、三層交換機和路由器這三種技術究竟誰優誰劣,它們各自適用在什麼環境?為了解答這問題,我們先從這三種技術的工作原理入手.
1.三層交換技術
一個具有第三層交換功能的設備是一個帶有第三層路由功能的第二層交換機,但它是二者的有機結合,並不是簡單的把路由器設備的硬件及軟件簡單地疊加在局域網交換機上。
從硬件上看,第二層交換機的接口模塊都是通過高速背板/總線(速率可高達幾十Gbit/s)交換數據的,在第三層交換機中,與路由器有關的第三層路由硬件模塊也插接在高速背板/總線上,這種方式使得路由模塊可以與需要路由的其他模塊間高速的交換數據,從而突破了傳統的外接路由器接口速率的限制。在軟件方面,第三層交換機也有重大的舉措,它將傳統的基於軟件的路由器軟件進行了界定,其做法是: 對於數據包的轉發:如IP/IPX包的轉發,這些規律的過程通過硬件得以高速實現。
對於第三層路由軟件:如路由信息的更新、路由表維護、路由計算、路由的確定等功能,用優化、高效的軟件實現。
假設兩個使用IP協議的機器通過第三層交換機進行通信的過程,機器A在開始發送時,已知目的IP地址,但尚不知道在局域網上發送所需要的MAC地址。要采用地址解析(ARP)來確定目的MAC地址。機器A把自己的IP地址與目的IP地址比較,從其軟件中配置的子網掩碼提取出網絡地址來確定目的機器是否與自己在同一子網內。若目的機器B與機器A在同一子網內,A廣播一個ARP請求,B返回其MAC地址,A得到目的機器B的MAC地址後將這一地址緩存起來,並用此MAC地址封包轉發數據,第二層交換模塊查找MAC地址表確定將數據包發向目的端口。若兩個機器不在同一子網內,如發送機器A要與目的機器C通信,發送機器A要向“缺省網關”發出ARP包,而“缺省網關”的IP地址已經在系統軟件中設置。這個IP地址實際上對應第三層交換機的第三層交換模塊。所以當發送機器A對“缺省網關”的IP地址廣播出一個ARP請求時,若第三層交換模塊在以往的通信過程中已得到目的機器C的MAC地址,則向發送機器A回復C的MAC地址;否則第三層交換模塊根據路由信息向目的機器廣播一個ARP請求,目的機器C得到此ARP請示後向第三層交換模塊回復其MAC地址,第三層交換模塊保存此地址並回復給發送機器A。以後,當再進行A與C之間數據包轉發進,將用最終的目的機器的MAC地址封裝,數據轉發過程全部交給第二層交換處理,信息得以高速交換。既所謂的一次選路,多次交換。
第三層交換具有以下突出特點:
有機的硬件結合使得數據交換加速;
優化的路由軟件使 得路由過程效率提高;
除了必要的路由決定過程外,大部分數據轉發過程由第二層交換處理;
多個子網互連時只是與第三層交換模塊的邏輯連接,不象傳統的外接路由器那樣需增加端口,保護了用戶的投資。
2.路由技術
路由器是在OSI七層網絡模型中的第三層——網絡層*作的。路由器內部有一個路由表,這表標明了如果要去某個地方,下一步應該往哪走。路由器從某個端口收到一個數據包,它首先把鏈路層的包頭去掉(拆包),讀取目的IP地址,然後查找路由表,若能確定下一步往哪送,則再加上鏈路層的包頭(打包),把該數據包轉發出去;如果不能確定下一步的地址,則向源地址返回一個信息,並把這個數據包丟掉。
路由技術和二層交換看起來有點相似,其實路由和交換之間的主要區別就是交換發生在OSI參考模型的第二層(數據鏈路層),而路由發生在第三層。這一區別決定了路由和交換在傳送數據的過程中需要使用不同的控制信息,所以兩者實現各自功能的方式是不同的。
路由技術其實是由兩項最基本的活動組成,即決定最優路徑和傳輸數據包。其中,數據包的傳輸相對較為簡單和直接,而路由的確定則更加復雜一些。路由算法在路由表中寫入各種不同的信息,路由器會根據數據包所要到達的目的地選擇最佳路徑把數據包發送到可以到達該目的地的下一台路由器處。當下一台路由器接收到該數據包時,也會查看其目標地址,並使用合適的路徑繼續傳送給後面的路由器。依次類推,直到數據包到達最終目的地。
路由器之間可以進行相互通訊,而且可以通過傳送不同類型的信息維護各自的路由表。路由更新信息主是這樣一種信息,一般是由部分或全部路由表組成。通過分析其它路由器發出的路由更新信息,路由器可以掌握整個網絡的拓撲結構。鏈路狀態廣播是另外一種在路由器之間傳遞的信息,它可以把信息發送方的鏈路狀態及進的通知給其它路由器。
3.二層交換技術
二層交換機是數據鏈路層的設備,它能夠讀取數據包中的MAC地址信息並根據MAC地址來進行交換。交換機內部有一個地址表,這個地址表標明了MAC地址和交換機端口的對應關系。當交換機從某個端口收到一個數據包,它首先讀取包頭中的源MAC地址,這樣它就知道源MAC地址的機器是連在哪個端口上的,它再去讀取包頭中的目的MAC地址,並在地址表中查找相應的端口,如果表中有與這目的MAC地址對應的端口,則把數據包直接復制到這端口上,如果在表中找不到相應的端口則把數據包廣播到所有端口上,當目的機器對源機器回應時,交換機又可以學習一目的MAC地址與哪個端口對應,在下次傳送數據時就不再需要對所有端口進行廣播了。二層交換機就是這樣建立和維護它自己的地址表。由於二層交換機一般具有很寬的交換總線帶寬,所以可以同時為很多端口進行數據交換。如果二層交換機有N個端口,每個端口的帶寬是M,而它的交換機總線帶寬超過N×M,那麼這交換機就可以實現線速交換。二層交換機對廣播包是不做限制的,把廣播包復制到所有端口上。
二層交換機一般都含有專門用於處理數據包轉發的ASIC (Application specific Integrated Circuit)芯片,因此轉發速度可以做到非常快。
4.三種技術的對比
可以看出,二層交換機主要用在小型局域網中,機器數量在二、三十台以下,這樣的網絡環境下,廣播包影響不大,二層交換機的快速交換功能、多個接入端口和低謙價格為小型網絡用戶提供了很完善的解決方案。在這種小型網絡中根本沒必要引入路由功能從而增加管理的難度和費用,所以沒有必要使用路由器,當然也沒有必要使用三層交換機。
三層交換機是為IP設計的,接口類型簡單,擁有很強二層包處理能力,所以適用於大型局域網,為了減小廣播風暴的危害,必須把大型局域網按功能或地域等因素劃他成一個一個的小局域網,也就是一個一個的小網段,這樣必然導致不同網段這間存在大量的互訪,單純使用二層交換機沒辦法實現網間的互訪而單純使用路由器,則由於端口數量有限,路由速度較慢,而限制了網絡的規模和訪問速度,所以這種環境下,由二層交換技術和路由技術有機結合而成的三層交換機就最為適合。
路由器端口類型多,支持的三層協議多,路由能力強,所以適合於在大型網絡之間的互連,雖然不少三層交換機甚至二層交換機都有異質網絡的互連端口,但一般大型網絡的互連端口不多,互連設備的主要功能不在於在端口之間進行快速交換,而是要選擇最佳路徑,進行負載分擔,鏈路備份和最重要的與其它網絡進行路由信息交換,所有這些都是路由完成的功能。在這種情況下,自然不可能使用二層交換機,但是否使用三層交換機,則視具體情況而下。影響的因素主要有網絡流量、響應速度要求和投資預算等。三層交換機的最重要目的是加快大型局域網內部的數據交換,揉合進去的路由功能也是為這目的服務的,所以它的路由功能沒有同一檔次的專業路由器強。在網絡流量很大的情況下,如果三層交換機既做網內的交換,又做網間的路由,必然會大大加重了它的負擔,影響響應速度。在網絡流量很大,但又要求響應速度很高的情況下由三層交換機做網內的交換,由路由器專門負責網間的路由工作,這樣可以充分發揮不同設備的優勢,是一個很好的配合。當然,如果受到投資預算的限制,由三層交換機兼做網間互連,也是個不錯的選擇。