專利名稱:一種組播轉發表輸出端口的虛擬標識方法
技術領域:
本發明涉及計算機通信領域中高性能路由器的組播實現技術,尤其是涉及一種面向多端口路由器的組播轉發表輸出端口的虛擬標識方法。
背景技術:
近年來,高性能路由器普遍采用了集中式交換與路由處理、分布式轉發的體系結構,如圖1所示,該結構的基本思想是將路由引擎(Routing Engine)和轉發引擎(Forwarding Engine)分開,將局部轉發表從全局路由表中獨立出來;各個分布式的線卡及轉發引擎獨立的用快速的硬件實現數據報文的報頭處理、尋徑和轉發;用交換網絡連接各網絡接口單元(包含轉發引擎和線卡兩部分),實現高速分組交換。在實現中,該結構通常采用兩級處理器,主處理器負責整個設備的管理和路由的收集、計算功能,并把計算形成的轉發表下發到各個網絡接口單元,轉發表是根據路由表生成的,其表項和路由表的表項有直接對應關系,但轉發表的格式和路由表的格式不同,它更適合實現快速查找。數據分組進入網絡接口單元后,首先由線卡從物理幀中提取出IP包,然后交轉發引擎,轉發引擎根據下發的轉發表進行轉發查表,查找出該IP包的一跳輸出端口,然后經由交換網絡將IP包發送到輸出端口。
互聯網協議定義了三種IP數據包的傳輸單播(unicast)、廣播(broadcast)和組播(multicast)。高性能路由器中組播包的轉發主要由硬件實現,圖1所示的路由器結構中,需要支持組播功能的硬件模塊主要包括線卡(實現組播包的分類及復制)、轉發引擎(實現組播報頭處理和組播查表)和高速交換網絡(完成組播包的復制)。其中,組播查表目前常見的硬件解決方案是采用三態地址關聯存儲器(TCAM,Ternary Content Addressable Memory)實現,具體的說就是采用TCAM存儲組播轉發表的表項前綴,這些前綴通常是以<S,G>或者<*,G>的形式出現,其中S代表數據包的源地址,G代表數據包的組地址;采用靜態隨機存取存儲器(SRAM,Static Random Access Memory)存儲組播轉發表表項的結果部分,即輸出端口列表部分,這樣利用TCAM和SRAM可配合支持高速流水線轉發表查找。
隨著高性能路由器容量的不斷增長,以至目前T(百萬兆)比特級路由器的出現,傳統的以“物理機架號&物理線卡號&物理端口號”來標識組播轉發表輸出端口的方法將越來越難以實現,主要原因如下1、路由器端口數目的不斷增大使得組播轉發表輸出端口列表的長度急劇增加。
高性能路由器容量的飛速增長使得其端口數量快速增加,以2個分布式機架組成的1.28T路由器為例,即使路由器高密度地實現所有單線卡4個10G端口,路由器的總端口數目仍達128個。此外,與單播轉發表相比,組播轉發表的輸出端口并不是唯一的,而是一系列的端口,最大時組播包的輸出端口數目可達127個(其中一個端口由于是組播包的入端口而不會列入輸出端口列表中)。這樣,如果對組播的輸出端口仍采用傳統的方法來標識,以1bit來區分2個不同的機架,以4bit來區分單個機架內16個不同的線卡,以2bit來區分單個線卡內4個的不同端口,例如,可用“0000000”來標識第一個機架內第一個線卡的第一個端口,則組播轉發表中輸出端口列表的長度可達到127×7=889bit位。
2、組播轉發表輸出端口列表過長的情形下,現有硬件查表技術難以同時滿足組播查表速度和硬件實現復雜度兩方面的要求。
采用TCAM實現的硬件查表方案中,如果采用數據總線為36bit寬度的單片SRAM輸出查表結果,則889bit長度的輸出端口長度將需要至少25個SRAM工作時鐘周期才能輸出完畢,這樣的時間長度無法滿足組播包線速轉發的查表速度要求,進而將無法支持組播包線速轉發。如果采用多片SRAM并行輸出查表結果的方法,雖然能夠滿足查表的速度要求,但是器件的增加一方面將增加路由器的成本,更為重要的是它將不可避免的增大轉發引擎設計和硬件實現的復雜度。
3、組播轉發表輸出端口列表過長的情形下,將降低路由器內部的數據傳輸效率。
組播轉發表的查找是在路由器的轉發引擎完成的。當組播包到達轉發引擎時,轉發引擎需要對該包進行組播轉發表的查找,如果查中將得出對應的輸出端口列表,在組播包正常轉發的情形下,轉發引擎輸出的報文上應當添加此輸出端口列表,形成交換分組并傳送給交換網絡,交換網絡根據交換分組所攜帶的組播輸出端口列表決定將該組播包復制并交換到哪些端口上。由此可以發現,當輸出端口列表過長時,該部分數據的傳輸將占用很大比例的內部傳輸帶寬,從而大大降低路由器內部的數據傳輸效率,對短數據包而言,這種降低作用尤其嚴重。
發明內容
有鑒于此,本發明的目的是提供一種高性能路由器組播轉發表輸出端口的虛擬標識方法,能夠解決傳統端口標識方法所帶來的不斷加劇的組播轉發表輸出端口列表長度過長問題,同時滿足組播包線速轉發對組播查表速度的要求,并且不增加路由器成本和硬件實現復雜度。
為解決上述技術問題,本發明的目的是通過以下技術方案實現的,本發明提供一種高性能路由器的組播轉發表輸出端口的虛擬標識方法,包括步驟a建立組播轉發表虛擬輸出端口列表;b識別組播轉發表虛擬輸出端口列表。
優選地,所述步驟a的實現涉及路由器的控制平面。
優選地,所述步驟b的實現涉及路由器的數據平面。
優選地,所述步驟a具體包括a1主處理器分配給每個路由器端口一個虛擬端口號;a2將虛擬端口號與每個路由器端口的物理標識號碼對應,生成映射表;a3利用傳統組播轉發表的輸出端口列表與映射表對應生成新的組播轉發表虛擬輸出端口列表;a4主處理器得到新的組播轉發表。
優選地,所述步驟a2中路由器端口的物理標識號碼是以傳統的物理機架號、物理線卡號和物理端口號來標識的。
優選地,所述步驟a2中映射表由主處理器維護。
優選地,所述步驟a2中映射表在路由器端口配置發生改變時,要重新生成。
優選地,所述步驟b具體包括b1主處理器將新組播轉發表下發到轉發引擎,同時將映射表下發到從處理器;b2轉發引擎通過新組播轉發表進行轉發查表;b3將查表結果變成虛擬輸出端口列表;b4線卡、轉發引擎和交互網絡根據映射表實現對虛擬輸出端口列表的識別;b5在組播復制時,對虛擬端口輸出列表進行識別;b6在轉發引擎包處理時,對虛擬端口輸出列表進行識別。
優選地,所述步驟b5中具體包括b51交換網絡接收到轉發引擎傳送來的交換分組;b52根據交換分組攜帶的虛擬輸出端口列表與主處理器下發的映射表識別該組播包對應的輸出線卡號;b53將該組播包復制并交換到對應的線卡上;b54該線卡根據虛擬輸出端口列表與主處理器下發的映射表識別組播包在該線卡上的具體輸出端口;b55將該組播包復制并輸送到對應的端口上。
優選地,所述步驟b6中具體包括b61組播包進入轉發引擎;b62轉發引擎完成線速組播查表,輸出查表結果;b63轉發引擎判斷組播包入端口的物理標識是否存在于查表結果中的虛擬輸出端口列表,如果是,則執行步驟b64;b64完成對組播包的判斷,實現斷言機制。
優選地,所述步驟b63支持松散模式組播協議PIM-SM;優選地,所述步驟b64實現斷言機制滿足PIM-SM要求。
優選地,所述步驟b64中斷言機制通過隨機存取存儲器RAM實現。
以上技術方案可以看出,本發明在支持組播轉發所有功能的前提下,利用一種虛擬的組播輸出端口標識方法替代傳統的物理標識方法,將組播輸出端口列表的長度大大降低,由此帶來了以下幾點有益的效果1、在不改變原有路由器硬件結構的基礎上,該方法僅通過對組播轉發表的輸出端口列表做簡單修改即可支持高性能路由器端口數目和端口密度的擴充,可擴展性好,實施簡便。
2、組播轉發表輸出端口列表長度的大規模降低,使得工程實現中僅利用單片SRAM即可在規定的周期內將此查表結果(虛擬輸出端口列表)讀出,從而能夠在不增加硬件實現成本和復雜度的基礎上實現組播包線速查表,支持組播包線速轉發。
3、組播轉發表輸出端口列表長度的大規模降低,還能夠使得轉發引擎在形成交換分組的過程中采用數目較少的數據位即可標識各個組播輸出端口的信息,與傳統標識方法相比,可以大大提高路由器內部的數據傳輸效率。
圖1是現有高性能路由器的典型結構示意圖。
圖2是本發明組播轉發表輸出端口虛擬標識的流程圖。
圖3為本發明轉發引擎借助隨機存取存儲器實現斷言機制流程圖。
圖4為隨機存取存儲器存儲內容的結構示意圖。
具體實施例方式
下面結合附圖,對本發明優選實施例進行進一步描述。
如圖1所示,典型的高性能路由器結構中,控制平面包括主處理器和從處理器,數據平面對應于路由器的線卡、轉發引擎和交換網絡。對本發明所述的方法而言,控制平面內主要完成的是組播轉發表輸出端口虛擬標識方法的建立,而數據平面則需要完成組播轉發表輸出端口虛擬標識方法的高速識別。下述內容將以上文所述的1.28T高性能路由器為例,詳述該方法的實施。
請參閱圖2,為本發明組播轉發表輸出端口虛擬標識的流程圖,包括建立組播轉發表虛擬輸出端口列表和識別組播轉發表虛擬輸出端口列表兩部分,其中步驟201~204為建立組播轉發表虛擬輸出端口列表,步驟205~210為識別組播轉發表虛擬輸出端口列表。
建立組播轉發表虛擬輸出端口列表具體包括步驟201主處理器根據各個機架、線卡、端口的分布情況為路由器每個端口新分配一個唯一的虛擬端口號;其中,如表1所示,當路由器端口總數為n時可將分配的虛擬端口號定義為0,1…m…n-1。這樣,路由器中的每一個具體的端口都將同時擁有一個傳統的端口物理標識號碼和新分配的虛擬端口號,例如,物理標識為“0000000”的端口的虛擬端口號分配為0,而物理標識為“1111111”的端口的虛擬端口號為127。
表1 路由器端口的物理標識到虛擬端口號的映射表
202將虛擬端口號與每個路由器端口的物理標識號碼一一對應,生成映射表,如上表1中包含了所有端口的物理標識到虛擬端口號的映射關系,該映射表由主處理器負責維護,每當路由器端口配置發生改變時,該表都需要重新生成并下發給數據平面的各個模塊;
203利用傳統組播轉發表的輸出端口列表與映射表對應生成新的組播轉發表虛擬輸出端口列表;其中,主處理器利用映射表(表1)將傳統組播轉發表(表2)的輸出端口列表映射成新的組播轉發表的虛擬輸出端口列表(表3)表2 傳統組播轉發表的結構
表3中的虛擬輸出端口列表是這樣定義的根據路由器的總端口數目n,主處理器相應設置一個長度為n bit的列表,該列表的列號碼定義為0,1…m…n-1,分別與上文所分配的路由器虛擬端口號一一對應,當列號碼為m的列的值為‘1’時,表明虛擬端口號為m的端口有組播包輸出,反之為‘0’時,表明該端口無組播包輸出。需要指出的是,表2僅是傳統組播轉發表中的一條表項,該組播轉發表的輸出端口設定為最大,即除去入端口“0000000”之外其余127個端口都存在組播包輸出。對照表2和表3可以發現,新組播轉發表可將前面所述的1.28T路由器的輸出端口列表長度降低為128bit位。
表3 新生成組播轉發表的結構
204主處理器得到新的組播轉發表;識別組播轉發表虛擬輸出端口列表具體包括步驟205主處理器下發新生成的組播轉發表到轉發引擎,同時將映射表下發給各個從處理器;206轉發引擎通過新組播轉發表進行轉發查表;其中,新組播轉發表的表項下發到轉發引擎后,組播包源地址和組地址將作為表項的前綴部分存儲于TCAM內,而虛擬輸出端口列表將作為表項的結果部分存儲與SRAM內,籍此實現高速組播查表。
207將查表結果變成虛擬輸出端口列表;
表9
210在轉發引擎包處理時,對虛擬端口輸出列表進行識別;其中,在支持PIM-SM協議的情況下,轉發引擎還需要判斷組播包的入端口(物理標識)是否存在于查表結果中的虛擬輸出端口列表中,從而實現PIM_SM協議要求的Assert機制;請參閱圖3,為本發明轉發引擎借助隨機存取存儲器實現斷言機制流程圖,
圖4為RAM的結構內容示意圖,其中n代表端口物理標識的數據長度,每一行的內容對應于一個具體的路由器端口,若該行所對應的虛擬端口號為m,則該行中除第m列應當為‘1’之外,其余各列的值都應設定為‘0’。
以上對本發明所提供的一種高性能路由器的組播轉發表輸出端口的虛擬標識方法進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
權利要求
1.一種組播轉發表輸出端口的虛擬標識方法,應用于高性能路由器,其特征在于,修改組播轉發表的輸出端口列表,包括步驟a建立組播轉發表虛擬輸出端口列表;b識別組播轉發表虛擬輸出端口列表。
2.根據權利要求1所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟a的實現涉及路由器的控制平面。
3.根據權利要求1所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟b的實現涉及路由器的數據平面。
4.根據權利要求1所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟a具體包括a1主處理器分配給每個路由器端口一個虛擬端口號;a2將虛擬端口號與每個路由器端口的物理標識號碼對應,生成映射表;a3利用傳統組播轉發表的輸出端口列表與映射表對應生成新的組播轉發表虛擬輸出端口列表;a4主處理器得到新的組播轉發表。
5.根據權利要求4所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟a2中路由器端口的物理標識號碼是以傳統的物理機架號、物理線卡號和物理端口號來標識的。
6.根據權利要求4所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟a2中映射表由主處理器維護。
7.根據權利要求4所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟a2中映射表在路由器端口配置發生改變時,要重新生成。
8.根據權利要求1或4所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟b具體包括b1主處理器將新組播轉發表下發到轉發引擎,同時將映射表下發到從處理器;b2轉發引擎通過新組播轉發表進行轉發查表;b3將查表結果變成虛擬輸出端口列表;b4線卡、轉發引擎和交互網絡根據映射表實現對虛擬輸出端口列表的識別;b5在組播復制時,對虛擬端口輸出列表進行識別;b6在轉發引擎包處理時,對虛擬端口輸出列表進行識別。
9.根據權利要求8所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟b5中具體包括b51交換網絡接收到轉發引擎傳送來的交換分組;b52根據交換分組攜帶的虛擬輸出端口列表與主處理器下發的映射表識別該組播包對應的輸出線卡號;b53將該組播包復制并交換到對應的線卡上;b54該線卡根據虛擬輸出端口列表與主處理器下發的映射表識別組播包在該線卡上的具體輸出端口;b55將該組播包復制并輸送到對應的端口上。
10.根據權利要求8所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟b6中具體包括b61組播包進入轉發引擎;b62轉發引擎完成線速組播查表,輸出查表結果;b63轉發引擎判斷組播包入端口的物理標識是否存在于查表結果中的虛擬輸出端口列表,如果是,則執行步驟b64;b64完成對組播包的判斷,實現斷言Assert機制。
11.根據權利要求10所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟b63支持松散模式組播協議PIM-SM。
12.根據權利要求10所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟b64實現斷言機制滿足PIM-SM要求。
13.根據權利要求10所述組播轉發表輸出端口的虛擬標識方法,其特征在于,所述步驟b64中斷言機制通過隨機存取存儲器RAM實現。
全文摘要
本發明提供了一種高性能路由器組播轉發表輸出端口的虛擬標識方法,該方法包括組播轉發表輸出端口虛擬標識方法的建立和組播轉發表輸出端口虛擬標識方法的高速識別,分別涉及路由器的控制平面和數據平面。在控制平面內,路由器主處理器為每個路由器端口新分配一個唯一的虛擬端口號,形成一張由傳統的端口物理標識號碼到虛擬端口號的映射表,依據此映射表,主處理器生成新的組播轉發表,主處理器將新組播轉發表連同映射表一并下發到各從處理器;數據平面內,交換網絡及各線卡和轉發引擎可依據下發的映射表采用硬件高速地對虛擬的輸出端口列表進行識別,從而實現對組播包線速轉發的支持。
文檔編號H04L12/18GK1866845SQ20061007650
公開日2006年11月22日 申請日期2006年5月8日 優先權日2006年5月8日
發明者郭云飛, 李玉峰, 張進, 姜鯤鵬, 黃惠群 申請人:國家數字交換系統工程技術研究中心