早期的網路中一般使用二層交換機來搭建區域網,而不同區域網之間的網路互通由路由器來完成。那時的網路流量,區域網內部的流量佔了絕大部分,而網路間的通訊訪問量比較少,使用少量路由器已經足夠應付了。
但是,隨著資料通訊網路範圍的不斷擴大,網路業務的不斷豐富,網路間互訪的需求越來越大,而路由器由於自身成本高、**效能低、介面數量少等特點無法很好的滿足網路發展的需求。因此出現了三層交換機這樣一種能實現高速三層**的裝置。
路由器的三層**主要依靠cpu進行,而三層交換機的三層**依靠硬體完成,這就決定了兩者在**效能上的巨大差別。
當然,三層交換機並不能完全替代路由器,路由器所具備的豐富的介面型別、良好的流量服務等級控制、強大的路由能力等仍然是三層交換機的薄弱環節。
目前的三層交換機一般是通過vlan來劃分二層網路並實現二層交換,同時能夠實現不同vlan間的三層ip互訪。不同網路的主機之間互訪的流程簡要如下
1、源主機在發起通訊之前,將自己的ip與目的主機的ip進行比較,如果兩者位於同一網段(用網路掩碼計算後具有相同的網路號),那麼源主機直接向目的主機傳送arp請求,在收到目的主機的arp應答後獲得對方的物理層(mac)位址,然後用對方mac位址作為報文的目的mac位址進行報文傳送。
2、當源主機判斷目的主機與自己位於不同網段時,它會通過閘道器(gateway)來遞交報文,即傳送arp請求來獲取閘道器ip位址對應的mac,在得到閘道器的arp應答後,用閘道器mac作為報文的目的mac傳送報文。此時傳送報文的源ip是源主機的ip,目的ip仍然是目的主機的ip。
下面詳細介紹一下三層交換的過程。
圖1 三層**組網
如上圖1所示,通訊的源、目的主機連線在同一臺三層交換機上,但它們位於不同vlan(網段)。對於三層交換機來說,這兩台主機都位於它的直連網段內,它們的ip對應的路由都是直連路由。
圖中標明了兩台主機的mac、ip位址、閘道器,以及三層交換機的mac、不同vlan配置的三層介面ip。當pc a向 pc b發起ping時,流程如下:(假設三層交換機上還未建立任何硬體**表項)
1、根據前面的描述,pc a首先檢查出目的ip位址10.2.1.2(pc b)與自己不在同一網段,因此它發出請求閘道器位址10.1.1.1對應mac的arp請求;
2、l3 switch收到pc a的arp請求後,檢查請求報文發現被請求ip是自己的三層介面ip,因此傳送arp應答並將自己的三層介面mac(mac switch)包含在其中。
同時它還會把pc a的ip位址與mac位址對應(10.1.1.2與mac a)關係記錄到自己的arp表項中去(因為arp請求報文中包含了傳送者的ip和mac);
3、pc a得到閘道器(l3 switch)的arp應答後,組裝icmp請求報文並傳送,報文的目的mac(即dmac)=mac switch、源mac(即smac)=mac a、源ip(即sip)=10.1.1.2、目的ip(即dip)=10.2.1.2;
4、l3 switch收到報文後,首先根據報文的源mac+vlan id更新mac表。
然後,根據報文的目的mac+vlan id查詢mac位址表,發現匹配了自己三層介面mac的表項,說明需要作三層**,於是繼續查詢交換晶元的三層表項;
5、交換晶元根據報文的目的ip去查詢其三層表項,由於之前未建立任何表項,因此查詢失敗,於是將報文送到cpu去進行軟體處理;
6、cpu根據報文的目的ip去查詢其軟體路由表,發現匹配了乙個直連網段(pc b對應的網段),於是繼續查詢其軟體arp表,仍然查詢失敗。
然後l3 switch會在目的網段對應的vlan 3的所有介面傳送請求位址10.2.1.2對應mac的arp請求;
7、pc b收到l3 switch傳送的arp請求後,檢查發現被請求ip是自己的ip,因此傳送arp應答並將自己的mac(mac b)包含在其中。同時,將l3 switch的ip與mac的對應關係(10.2.1.1與mac switch)記錄到自己的arp表中去;
8、l3 switch收到pc b的arp應答後,將其ip和mac對應關係(10.2.1.2與mac b)記錄到自己的arp表中去,並將pc a的icmp請求報文傳送給pc b,報文的目的mac修改為pc b的mac(mac b),源mac修改為自己的mac(mac switch)。
同時,在交換晶元的三層表項中根據剛得到的三層**資訊新增表項(內容包括ip、mac、出口vlan、出介面),這樣後續的pc a發往pc b的報文就可以通過該硬體三層表項直接**了;
9、pc b收到l3 switch**過來的icmp請求報文以後,回應icmp應答給pc a。
icmp應答報文的**過程與前面類似,只是由於l3 switch在之前已經得到pc a的ip和mac對應關係了,也同時在交換晶元中新增了相關三層表項,因此這個報文直接由交換晶元硬體**給pc a;
10、這樣,後續的往返報文都經過查mac表到查三層**表的過程由交換晶元直接進行硬體**了。
從上述流程可以看出,三層交換機正是充分利用了「一次路由(首包cpu**並建立三層硬體表項)、多次交換(後續包晶元硬體**)」的原理實現了**效能與三層交換的完美統一。
龍芯CPU晶元架構分析
龍芯架構 龍芯指令集 cpu訪存指令 24個 全部來自mips cpu算數指令 alu 10個 全部來自mips cpu算數指令 14個 全部來自mips cpu乘除指令 12個 來自mips 12個 來自龍芯 其中8個重複mips指令功能 cpu跳轉分支指令20個 全部來自mips cpu位移指令...
BCM交換晶元策略路由功能
bcm交換晶元中和路由相關的幾個暫存器 egr l3 next hop egr l3 intf ing l3 next hop bcm xgs系列sdk中和路由相關的幾個命令 l3 l3table l3 defip l3 intf 其中l3 intf命令配置了egr l3 intf暫存器,本質上是配...
Radysis ATCA PP50板交換晶元配置
pp50板的大致框圖如下,兩個xlr732的處理器的萬兆介面連線在內部的fm3112交換晶元上,fm3112外接的rtm版,對外提供2個萬兆介面p2和p4,和10個1g的網路介面,分別為p10,p12,p14,p16,p17,p18,p20,p22,p23和p24。當前的需求是,rtm板的10個1g...