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

評論