我們都知道二層交換機(jī)工作的數(shù)據(jù)鏈路層,依靠mac地址來(lái)進(jìn)行數(shù)據(jù)通信的,而路由器是工作在網(wǎng)絡(luò)層,依靠ip地址來(lái)通信的,為了說(shuō)明三層交換機(jī)比路由器的轉(zhuǎn)發(fā)速率快,那我們還是先從二層交換機(jī)入手。
首先我們來(lái)比較下二層交換機(jī)與路由器的報(bào)文轉(zhuǎn)發(fā)速率(當(dāng)然嚴(yán)格意義上是不能這樣比較的,畢竟一個(gè)是二層設(shè)備,一個(gè)是三層設(shè)備,這主要是為下面說(shuō)明三層交換機(jī)與路由器之間的比較做鋪墊)
二層交換機(jī):接收到由自己的物理層送上來(lái)的二層數(shù)據(jù)幀時(shí),根據(jù)源mac地址學(xué)習(xí)并寫(xiě)入mac地址表中,根據(jù)目的mac地址查找mac地址表決定是轉(zhuǎn)發(fā)還是廣播,這里交換機(jī)查找mac地址表和轉(zhuǎn)發(fā)都是由硬件ASIC芯片來(lái)完成,而且二層交換機(jī)沒(méi)有對(duì)數(shù)據(jù)幀做過(guò)任何封裝,解封裝動(dòng)作(忽略物理層bit數(shù)據(jù)流還原成二層以太幀),并且沒(méi)有對(duì)數(shù)據(jù)幀做過(guò)任何改寫(xiě)
路由器:工作在網(wǎng)絡(luò)層,對(duì)接收到的數(shù)據(jù)幀必須解封裝,獲取三層數(shù)據(jù),根據(jù)三層數(shù)據(jù)的目的ip,查找路由表,封裝下一跳的mac等等一系列動(dòng)作,相比二層交換機(jī)而言,路由器查找路由表是通過(guò)基于軟件的cpu來(lái)查找,比二層交換機(jī)查找mac地址表用的ASIC硬件芯片慢,另外路由器還得對(duì)數(shù)據(jù)進(jìn)行拆封,解封動(dòng)作,而且還改寫(xiě)了數(shù)據(jù)幀(只改寫(xiě)二層數(shù)據(jù)幀的目的mac、源mac、FCS,不會(huì)改變?nèi)龑訑?shù)據(jù)包的內(nèi)容)
由上可知:基于軟硬件的查找轉(zhuǎn)發(fā)方式(路由器通過(guò)軟件的相對(duì)慢些)以及對(duì)數(shù)據(jù)包的處理(路由器相對(duì)來(lái)說(shuō)復(fù)雜),這兩個(gè)原因?qū)е露咏粨Q機(jī)的轉(zhuǎn)發(fā)性能通常高于路由器(嚴(yán)格意義上這樣的比較是沒(méi)有意義的,畢竟一個(gè)是二層設(shè)備、一個(gè)是三層設(shè)備,主要是為下面做鋪墊)
下面開(kāi)始說(shuō)三層交換機(jī)
以前的文章中也提到過(guò),三層交換機(jī)的核心思想是:“一次路由,多次轉(zhuǎn)發(fā)”,實(shí)現(xiàn)了數(shù)據(jù)包的快速轉(zhuǎn)發(fā):三層交換機(jī)技術(shù)=二層交換技術(shù)+三層路由轉(zhuǎn)發(fā)技術(shù)
也即是:
三層交換技術(shù)=1次三層路由轉(zhuǎn)發(fā)技術(shù)+多次(N)二層交換技術(shù)
路由器=(N+1)次三層路由轉(zhuǎn)發(fā)技術(shù)
再結(jié)合上面所寫(xiě)的二層交換機(jī)的轉(zhuǎn)發(fā)速率高于路由器,可以得出三層交換機(jī)的轉(zhuǎn)發(fā)速率同樣高于路由器
三層交換機(jī)的硬件架構(gòu)
假設(shè)兩個(gè)使用ip協(xié)議的站點(diǎn)A、B通過(guò)第三層交換機(jī)進(jìn)行通信,發(fā)送站點(diǎn)A在開(kāi)始發(fā)送時(shí),把自己的ip地址與B站點(diǎn)的ip地址進(jìn)行比較,判斷B站是否與自己再同一個(gè)子網(wǎng)內(nèi),若在同一個(gè)子網(wǎng)內(nèi),則進(jìn)行二層轉(zhuǎn)發(fā)(沒(méi)經(jīng)過(guò)三層的必要);若A、B站點(diǎn)不在同一個(gè)子網(wǎng)內(nèi),那么發(fā)送站點(diǎn)A要向“缺省網(wǎng)關(guān)”發(fā)出arp請(qǐng)求,而“缺省網(wǎng)關(guān)”的ip地址其實(shí)就是三層交換機(jī)上站點(diǎn)A所屬vlan的接口ip地址,當(dāng)A向“缺省網(wǎng)關(guān)”發(fā)送一個(gè)arp請(qǐng)求時(shí),交換機(jī)就向發(fā)送站點(diǎn)A回一個(gè)arp回應(yīng)報(bào)文,同時(shí)通過(guò)軟件把站點(diǎn)A的ip地址、mac地址、與交換機(jī)直接相連的端口號(hào)等信息寫(xiě)到交換芯片的三層硬件表項(xiàng)中;站點(diǎn)A收到回復(fù)報(bào)文后,進(jìn)行目的mac的替換,把要發(fā)到B的包首先發(fā)給交換機(jī)。交換機(jī)收到這個(gè)包之后,進(jìn)行源mac地址學(xué)習(xí),目的mac地址查找,由于此時(shí)目的mac地址為交換機(jī)的mac地址,在這種情況下將會(huì)把該報(bào)文送到交換芯片的三層 引擎處理,由于站點(diǎn)B屬于交換機(jī)的直連網(wǎng)段之一,cpu收到這個(gè)ip報(bào)文以后,會(huì)直接以B的ip為索引檢查arp緩存,若沒(méi)有站點(diǎn)B的mac地址,則根據(jù)路由信息向B站廣播一個(gè)arp請(qǐng)求,B站收到此請(qǐng)求后向交換機(jī)回復(fù)其mac地址,cpu收到這個(gè)arp回復(fù)的同時(shí),同樣把站點(diǎn)B的ip地址、mac地址、端口信息等寫(xiě)入交換芯片的三層硬件轉(zhuǎn)發(fā)表項(xiàng)中,然后把由站點(diǎn)A發(fā)來(lái)的ip報(bào)文轉(zhuǎn)發(fā)給站點(diǎn)B,這樣就完成了站點(diǎn)A到站點(diǎn)B的第一次單向通信。由于芯片內(nèi)部的三層引擎中已經(jīng)保存站點(diǎn)A、B的路由信息,以后站點(diǎn)A、B之間進(jìn)行通信或其它網(wǎng)段的站點(diǎn)想要與A、B進(jìn)行通信,交換芯片則會(huì)直接把包從三層硬件表項(xiàng)中指定的端口轉(zhuǎn)發(fā)出去,而不必再把包交給cpu處理,這就是“一次路由,多次轉(zhuǎn)發(fā)”的實(shí)現(xiàn),大大提高了轉(zhuǎn)發(fā)速度.
平常所說(shuō)的三層交換機(jī)基本上是指硬件三層交換機(jī),三層交換機(jī)其實(shí)也有軟件三層交換機(jī),它們的區(qū)別在于三層交換 引擎,硬件三層交換機(jī)的三層交換引擎通常是用專(zhuān)用的ASIC芯片來(lái)完成(類(lèi)似二層交換機(jī)),而軟件三層交換機(jī)的三層交換引擎通常是由cpu來(lái)完成(類(lèi)似路由器),沒(méi)有特別說(shuō)明情況下一般是指硬件三層交換機(jī).
-
交換機(jī)
+關(guān)注
關(guān)注
21文章
2637瀏覽量
99530 -
路由器
+關(guān)注
關(guān)注
22文章
3728瀏覽量
113701
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論