本文為大家介紹路由交換技術(shù)命令(路由器交換性能),下面和小編一起看看詳細內(nèi)容吧。
一、cef express兌換基本原則
路由器和交換機是基礎(chǔ)網(wǎng)絡(luò)中最關(guān)鍵的部分。路由器和交換機的目的主要有兩個:一是如何準確地將數(shù)據(jù)包(幀)從源地址發(fā)送到目的地址,二是如何更快速地發(fā)送數(shù)據(jù)包(幀)。噠。當(dāng)然,第二點的優(yōu)先級低于第一點。
為了更好地完成這兩項任務(wù),交換機和路由器經(jīng)過了多年的發(fā)展,各自交換數(shù)據(jù)包的方式也在不斷改進,無論怎么變,都是為了更好地完成這兩項根本任務(wù)。這篇文章的主題是講解cef的基本原理
www.ttep.cn
首先我們來看一下數(shù)據(jù)包轉(zhuǎn)發(fā)的過程。一般來說,路由器分為三個步驟:
1.檢查這個數(shù)據(jù)包的目的地址是否可達
2. 確定目的地址的下一跳和接口。
3、重寫mac頭,使其能順利到達下一跳。
以上三個步驟是路由器報文交換的基礎(chǔ),至此所有派生的報文交換方法都必須完成以上三個過程。
為了更好的理解cef,我們再解釋一下另外兩種比較著名的包交換方式:進程交換和快速轉(zhuǎn)發(fā)
www.ttep.cn
過程交換
所有平臺都支持的最古老的交換方法之一。
為了便于理解,用圖來詳細說明進程交換的方式。
1、接口進程(input interface processor)首先在網(wǎng)絡(luò)中找到數(shù)據(jù)包,然后傳遞給“input/output memory”(輸入輸出存儲器)
2. 接口進程對接收到的數(shù)據(jù)產(chǎn)生中斷。在這個中斷過程中,中央處理器判斷數(shù)據(jù)包的類型(通常是ip),并在必要時將其復(fù)制到內(nèi)存(處理器內(nèi)存)中。最后,處理器將數(shù)據(jù)包放入適當(dāng)進程的輸入隊列中,并取消中斷。
3.然后調(diào)度器啟動ip_input進程www.ttep.cn
4、ip_input進程啟動時,開始從rib(路由表)中確定下一跳和出接口,然后搜索arp緩存,找到下一跳的mac地址。 (如果緩存中沒有對應(yīng)的地址,就會進行arp廣播)
5. ip_input進程改寫數(shù)據(jù)包的mac地址,然后將數(shù)據(jù)包放入相應(yīng)端口的出隊列中。
6. 將數(shù)據(jù)包從出口端口的出口隊列復(fù)制到出口端口的發(fā)送隊列。
7. 出口接口處理程序在出口隊列中找到數(shù)據(jù)包并將數(shù)據(jù)包傳輸?shù)骄W(wǎng)絡(luò)。
那么我們再來看第二個重要的兌換方式:快速兌換
1.接口處理器發(fā)現(xiàn)網(wǎng)絡(luò)中的數(shù)據(jù)包,然后將數(shù)據(jù)包傳遞給輸入/輸出存儲器
2. 接口處理器創(chuàng)建一個接收中斷。在此中斷期間,cpu 確定數(shù)據(jù)包的類型(假設(shè)為ip 類型),并立即開始交換數(shù)據(jù)包。
3. 處理器開始搜索路由緩存,判斷數(shù)據(jù)包的目的地址是否可達,出接口是什么,數(shù)據(jù)包需要如何重寫mac才能到達下一跳。
4、然后將數(shù)據(jù)包復(fù)制到出端口的傳輸隊列或出隊列中(這個根據(jù)不同的廠商有所不同)。這時接收中斷被取消,處理器繼續(xù)做剛才沒有完成的任務(wù)。
5. 出口接口處理器發(fā)現(xiàn)數(shù)據(jù)包在傳輸隊列中,將數(shù)據(jù)包傳輸?shù)骄W(wǎng)絡(luò)。
現(xiàn)在回過頭來觀察比較兩種交換方式的區(qū)別。
在說兩者的區(qū)別之前,先插入一個概念。
到目前為止,包交換的方式有n種,重要的有兩種,第一種是進程交換,第二種叫做“中斷上下文切換”,這第二種包含的切換方式是“快速交換” 、著名的cef 和optimum exchange。
在閱讀以下文字之前,請務(wù)必了解這種層次關(guān)系。
所謂進程交換,顧名思義,就是創(chuàng)建一個進程。我們知道處理器在工作的時候是按照schedule(計劃)進行工作的,進程交換就是這樣的。它會創(chuàng)建一個名為“ip_input”的文件(假設(shè)討論的是ip包),然后把它放到處理器的schedule中等待,什么時候執(zhí)行這個過程。發(fā)現(xiàn)什么問題了嗎?排隊等規(guī)則從設(shè)計的角度來說是很好的,但是包交換就有些拖沓了。假設(shè)當(dāng)前處理器有其他工作要做,此時它創(chuàng)建的進程“ip_input”肯定在schedule中等待,無法執(zhí)行,只能在被調(diào)度時執(zhí)行,這顯然是浪費時間。
相比之下,interrupt context switching就“霸道”多了。注意“中斷”和我的黑體字。這種切換方式與進程切換的區(qū)別在于“不排隊”。只要有包過來,就先處理。完成處理后,處理器返回執(zhí)行其schedule 中的工作。
以上就是進程切換和中斷上下文切換的區(qū)別之一。
還有一個區(qū)別,如果你看過我上一篇文章,你可能會有這樣的印象,就是加了“緩存”,處理器在查找目標地址的可達性和下一個等信息時,并不直接去查找路由表跳。相反,查找緩存。這也是第二個區(qū)別。
第一個差異讓交換速度加快了很多,那么第二個差異的作用是什么呢? “緩存有什么用?”
對于interrupt context switching的交換方式,剛才介紹了三種不同的交換方式。他們是
快速切換
最佳切換
思科快遞
這三種方法的主要區(qū)別體現(xiàn)在它們構(gòu)造緩存方法的不同,也正是因為這種不同,它們的一些特性也有所不同。
從.開始
最基礎(chǔ)的快速交換(fast switching)談起
如上圖,這是一顆二叉樹,這也是快速交換中的緩存數(shù)據(jù)結(jié)構(gòu),快速交換把外出接口信息和需要重寫的mac地址放到二叉樹中相應(yīng)的節(jié)點上,而需要轉(zhuǎn)發(fā)到的目的地址就是二叉樹上節(jié)點所代表的地址。
那么這樣的遍歷是如何進行呢?比如給出一個數(shù)是4,轉(zhuǎn)化成二進制100,查找從最高位開始,從root節(jié)點出發(fā),第一步走向root的右子樹,因為100的第一位(最高位)是1,而后走向左子樹,再繼續(xù)向左子樹方向走,這個時候就查找到100了。
如果這是一個真實的ipv4地址的話,最多需要32次查找便可以找到我們需要的網(wǎng)段是不是很快呢?鑒于ipv4地址的長度原因,快速交換的二叉樹深度是32。
以上就是快速交換高速緩存中的數(shù)據(jù)結(jié)構(gòu),以及查找方法,下面我們看看由此而產(chǎn)生的一些特性,并且找出它的不足。
1、由于這個快速緩存是憑空建立的,并沒有和路由表以及mac緩存建立聯(lián)系,所以當(dāng)我們想應(yīng)用快速交換進行查找的時候必須要先進行一次完整的過程交換。
2、由于在快速緩存中一個節(jié)點對應(yīng)著一個地址,而且沒有指針可以鏈接各個節(jié)點,所以無法實現(xiàn)遞歸查詢。
不過這并不影響路由器使用遞歸查詢,因為當(dāng)每一個新的數(shù)據(jù)包進來之后都要進行一次進程交換,其間已經(jīng)完成了遞歸查詢。
好了,路由交換技術(shù)命令(路由器交換性能)的介紹到這里就結(jié)束了,想知道更多相關(guān)資料可以收藏我們的網(wǎng)站。