摘要:通信工程師交換技術(shù)TCAM路由表更新:由于可能存在多個表項匹配的情況,因此TCAM需要在這些匹配的表項中選取一個表項作為最后的査找結(jié)果,TCAM規(guī)定在所有匹配的表項中選取地址最低的表項作為最后的結(jié)果。TCAM實現(xiàn)結(jié)構(gòu)如圖7-47所示。
1.TCAM路由表更新
由于可能存在多個表項匹配的情況,因此TCAM需要在這些匹配的表項中選取一個表項作為最后的査找結(jié)果,TCAM規(guī)定在所有匹配的表項中選取地址最低的表項作為最后的結(jié)果。TCAM實現(xiàn)結(jié)構(gòu)如圖7-47所示。為了能夠進行最長前綴路由的查找,需要保證在TCAM的低地址區(qū)域存儲前綴較長的關(guān)鍵字表項,而在高地址區(qū)域存儲前綴較短的關(guān)鍵字表項,即按前綴長度的降序存儲。這種存儲方式使TCAM路由表的更新操作很復雜。例如,若將前綴103.23.128/18加到圖7-47所示的轉(zhuǎn)發(fā)表中,為保持前綴長度的降序順序,該前綴必須存儲在前綴P1和P2之間,即內(nèi)存位置0和1之間,而0和1之間沒有空閑位置。有幾種方法來解決這個問題。
用于最長前綴匹配的TCAM的一般結(jié)構(gòu)如圖7-48所示(長度小于8bit的前綴在轉(zhuǎn)發(fā)表中一般很少出現(xiàn),所以沒有給出)。TCAM管理器可把空閑空間設置在TCAM的底部(當然也可以是頂部),如圖7-49所示。這時可以簡單地把圖7-47中的前綴P2~P5依次向下移動一個位置,從而在P1和P2之間產(chǎn)生一個空閑位置來存儲新的前綴。這種方法在最壞情況下的時間復雜度為0(N)(況為TCAM中的前綴數(shù)),實現(xiàn)成本也很高。再就是采用圖7-50所示的結(jié)構(gòu),即在每個前綴長度之后留一段空閑區(qū)。該方法在一般情況下的更新時間復雜度為OU),Q<X<N。但當中間空閑區(qū)都填滿后,就會上升到0(JV)。
用于最長前綴匹配的TCAM的一般結(jié)構(gòu)如闬7-48所示(長度小于8Wt的前綴在轉(zhuǎn)發(fā)表中Y一般很少出現(xiàn),所以沒有給出)。TCAM訝理器可把空閑空間設置在TCAM的底邡(當然也可以是頂部),如閣7-49所示,這時可以簡甲地把閣7-47中的酚綴P2-P5依次向下移動一個位霣.從而在P1和P2之間產(chǎn)生一個空閑位置來存儲新的前綴:這種方法在最壞悄況下的時W復雜度為(/V)(W為TCAM中的前綴數(shù)),實現(xiàn)成本也很卨。再就是采用閣7-50所示的結(jié)構(gòu),即在每個前綴長度之后留…段空閑K。該方法在一般情況下的更新時M復雜度為O(AO,0<X<N)。但當中間空閑區(qū)都填滿后,躭會上升到0(/V)。
僨得注意的是,相同長度的兩個前綴之間不而要有任何順序(意思是如果y比a大,集合弋中的所有前綴都必須在集合的所有前綴之前存儲,而集合6的所有前締之間可以任意存儲)??梢詫CAM的路由轉(zhuǎn)發(fā)表進行改進,改進后轉(zhuǎn)發(fā)表的所有前綴之間只存在部分排序限制,把這種限制稱為前綴長度排作限制(Prefix-Length Ordering Constraint)。由此可以引出一種算法,稱為算法,圾多移動L(L=32)次,該算法就可獲得-個空閑位哲,如閣7-51所示。
另外在閣7-47中,雖然抑綴103.23.3/24(1>1)必須總比前綴103.23/16(P2)的存儲位S低,但足相對于前綴P3,P4和P5,P1可任意存儲,W為P1與P3,P4和P5都不重疊,也就是說,沒有一個分紺的H的地址會同時與朽和P3,或者同時P1和P4,或者同時與P1和P5相匹配,因此,TCAM中對前綴排序的限制可以弱化,可只對重疊前綴才應用此限制,,例如,對于觸103.23.3/24(P1)和103.23/16(P2)fP1完全包含_J6b.tprefixesP在P2中,即這兩個前綴是甫*的,則1>1和P2之間有排序限制,P1必須在P2前曲。
如果把空閑區(qū)不全部設在TCAM底部,L算法可進步改進,得到如7-52所示的鷇優(yōu)算法PL0_OPT。該算法的主要思想是將空閑K保留在TCAM中部,并且長度為-1,…,L/2的前綴集合都在空閑區(qū)的上部,而長度為L/2-l,L/2-2,…,1的前綴集合都在空閑區(qū)的下部。這樣最多移動L/2次內(nèi)存就可獲得一個空閑位置。當然在中間空閑區(qū)部分填滿或都填滿后,內(nèi)存最多移動次數(shù)可能會大于L/2直至達到L。
返回目錄:
編輯推薦
通信工程師備考資料免費領(lǐng)取
去領(lǐng)取