我們習慣說,在二層網絡環境中相同vlan之間可以通信,不同vlan之間不可以通信,如果想通信必須借助三層設備,所以說三層交換機必須要做的事情是路由轉發,但是二、三層交換機具體有什么區別呢?
二層交換機工作于OSI模型的第2層(數據鏈路層),故而稱為二層交換機。
二層交換技術發展比較成熟,二層交換機屬數據鏈路層設備,可以識別數據包中的mac地址信息,根據MAC地址進行轉發,并將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。具體的工作流程如下:
(1) 當交換機從某個端口收到一個數據包,它先讀取包頭中的源MAC地址,這樣它就知道源MAC地址的機器是連在哪個端口上的;
(2) 再去讀取包頭中的目的MAC地址,并在地址表中查找相應的端口;
(3) 如表中有與這目的MAC地址對應的端口,把數據包直接復制到這端口上;
(4) 如表中找不到相應的端口則把數據包廣播到所有端口上,當目的機器對源機器回應時,交換機又可以學習一目的MAC地址與哪個端口對應,在下次傳送數據時就不再需要對所有端口進行廣播了。
不斷的循環這個過程,對于全網的MAC地址信息都可以學習到,二層交換機就是這樣建立和維護它自己的地址表。
二層交換技術從網橋發展到VLAN(虛擬局域網),在局域網建設和改造中得到了廣泛的應用。第二層交換技術是工作在OSI七層網絡模型中的第二層,即數據鏈路層。它按照所接收到數據包的目的MAC地址來進行轉發,對于網絡層或者高層協議來說是透明的。它不處理網絡層的IP地址,不處理高層協議的諸如TCP、UDP的端口地址,它只需要數據包的物理地址即MAC地址,數據交換是靠硬件來實現的,其速度相當快,這是二層交換的一個顯著的優點。但是,它不能處理不同IP子網之間的數據交換。傳統的路由器可以處理大量的跨越IP子網的數據包,但是它的轉發效率比二層低,因此要想利用二層轉發效率高這一優點,又要處理三層IP數據包,三層交換技術就誕生了。
三層交換(也稱多層交換技術,或IP交換技術)是相對于傳統交換概念而提出的。眾所周知,傳統的交換技術是在OSI網絡標準模型中的第二層——數據鏈路層進行操作的,而三層交換技術是在網絡模型中的第三層實現了數據包的高速轉發。簡單地說,三層交換技術就是:二層交換技術+三層轉發技術。
三層交換機就是具有部分路由器功能的交換機。
三層交換機的最重要目的是加快大型局域網內部的數據交換,所具有的路由功能也是為這目的服務的,能夠做到一次路由,多次轉發。對于數據包轉發等規律性的過程由硬件高速實現,而像路由信息更新、路由表維護、路由計算、路由確定等功能,由軟件實現。三層交換技術就是二層交換技術+三層轉發技術。
三層交換技術的出現,解決了局域網中網段劃分之后,網段中子網必須依賴路由器進行管理的局面,解決了傳統路由器低速、復雜所造成的網絡瓶頸問題。
交換機在判斷出目的IP不是自己的時候是不是一定就去查看路由表呢 ?不是,這個就是交換機的關鍵所在了,交換機此時不會查看路由表,不會查看arp表,不會查看mac地址表;那交換機會查看什么表?
交換機此時會查看自己集成在ASIC硬件轉發卡中的硬件轉發表,那這個硬件轉發表都包含了什么內容呢?
當第一個包過來的時候,發現硬件轉發表并沒有什么表項,所以此時必須將數據包交由路由進程處理,一旦交由cpu處理,必然會消耗cpu資源,此時會查看路由表,然后發現此IP地址個自己是直連的,此時就去查看arp找出此地址對應的mac地址,就可以轉發出去了
在決定轉發出去過程中,交換機至少會做三件事情,一,修改IP包頭的ttl值;二,修改原mac地址,改成自己出接口mac地址;三,建立交換機硬件轉發表,包括目的IP地址,目的IP地址(下一跳)對應的mac地址,mac地址對應的vlan,以及對應的端口(這個每個廠家有自己的理解)
這樣當一下包過來的時候,交換機就會查看硬件轉發表直接轉發而不會在經過路由表的查詢了,也即是交換機的一次路由,多次交換機原理。
總之,二層交換機用于小型的局域網絡。這個就不用多言了,在小型局域網中,廣播包影響不大,二層交換機的快速交換功能、多個接入端口和低廉價格為小型網絡用戶提供了很完善的解決方案。
而三層交換機的最重要的功能是加快大型局域網絡內部的數據的快速轉發,加入路由功能也是為這個目的服務的。如果把大型網絡按照部門,地域等等因素劃分成一個個小局域網,這將導致大量的網際互訪,單純的使用二層交換機不能實現網際互訪;如單純的使用路由器,由于接口數量有限和路由轉發速度慢,將限制網絡的速度和網絡規模,采用具有路由功能的快速轉發的三層交換機就成為首選。