專利名稱:一種組播包空間回收的方法及裝置的制作方法
技術領域:
本發(fā)明涉及數(shù)據(jù)傳輸領域,具體涉及一種對存儲單元存放的組播包進行空間回收的方法及裝置。
背景技術:
隨著寬帶技術的不斷發(fā)展,F(xiàn)TP、HTTP、SMTP等傳統(tǒng)數(shù)據(jù)業(yè)務已經難以滿足人們對信息業(yè)務的需求,視頻點播、遠程教學、新聞發(fā)布、網絡電視等業(yè)務成為新一輪競爭的焦點,這類業(yè)務在傳輸過程中的特點是一進多出,輸入業(yè)務與輸出業(yè)務是可配置的一對多關系,組播技術非常適合這種類型的業(yè)務。
在組播技術中,首先將輸入的數(shù)據(jù)包按照固定大小的存儲單元存放到數(shù)據(jù)包存儲器中,一個數(shù)據(jù)包可能占用多個存儲單元。在輸出時,屬于該組播的輸出業(yè)務分別從數(shù)據(jù)包存儲器中讀取存儲單元進行傳送,當某個存儲單元被所有輸出業(yè)務傳送之后就對該存儲單元進行回收。
因為每個輸出業(yè)務的速率不同,而且每個輸出業(yè)務可以同時存在多個不同組播組的輸出業(yè)務或其他單播業(yè)務,所以對同一個組播組內的數(shù)據(jù)包,每個輸出業(yè)務的輸出時間是不同的。為了實現(xiàn)組播包空間的回收,有些系統(tǒng)在存儲時為組播包的每個存儲單元提供一個計數(shù)器,計數(shù)器起始值為組播成員個數(shù),每當有業(yè)務口傳送一次,計數(shù)器便減1,當計數(shù)器減為0時,表示所有業(yè)務口都傳送完畢,就對存儲單元進行回收。
這種方法存在的問題是當系統(tǒng)支持大量組播組時,需要提供足夠的計數(shù)器而需要耗費大量的資源,甚至會因無法提供足夠的計數(shù)器而無法實現(xiàn),同時由于要將計數(shù)器與存儲單元聯(lián)系起來而使存儲結構變得更加復雜。
發(fā)明內容
針對現(xiàn)有技術中存在的問題,本發(fā)明提出可以自動跟蹤組播組中最慢的輸出業(yè)務,使每個輸出業(yè)務在輸出一個存儲單元之后,能夠判斷其是否最后一個輸出當前存儲單元的輸出業(yè)務,如果是,則進行存儲單元的回收操作,如果不是,則不需要回收。
為了實現(xiàn)上述發(fā)明目的,本發(fā)明具體是這樣實現(xiàn)的 一種組播包空間回收裝置,其特征在于,包括 組播轉發(fā)表存儲器; 輸出到輸入業(yè)務映射表存儲器; 輸出業(yè)務輸出進度表存儲器; 輸出業(yè)務組播組查詢模塊; 存儲單元最后輸出業(yè)務仲裁模塊; 存儲單元回收模塊; 所述組播轉發(fā)表存儲器,用于存儲用戶配置的輸入業(yè)務到輸出業(yè)務的對應關系; 所述輸出到輸入業(yè)務映射表存儲器,用于存儲輸出業(yè)務到輸入業(yè)務的對應關系; 所述輸出業(yè)務輸出進度表存儲器,用于記錄每個組播輸出業(yè)務的輸出進度; 所述輸出業(yè)務組播組查詢模塊,用于查找指定輸出業(yè)務所屬組播組的所有組播成員; 所述存儲單元最后輸出業(yè)務仲裁模塊,用于當一個輸出業(yè)務輸出一個存儲單元后,判斷出輸出業(yè)務是組播業(yè)務,并判斷出該輸出業(yè)務是最后一個輸出該存儲單元的輸出業(yè)務,則將輸出的存儲單元送給存儲單元回收模塊; 所述存儲單元回收模塊,用于完成存儲單元的回收,使存儲單元可以重新被使用。
所述存儲用戶配置,是指用戶根據(jù)實際組播情況對組播轉發(fā)表存儲器和輸出到輸入業(yè)務映射表存儲器進行配置。
所述組播轉發(fā)表存儲器,以輸入業(yè)務編號為索引,深度為支持的最大輸入業(yè)務個數(shù); 所述組播轉發(fā)表存儲器的字段包括輸出業(yè)務組編號和組播成員標志位組。
所述輸出到輸入業(yè)務映射表存儲器,以輸出業(yè)務編號為索引,深度為支持的最大輸出業(yè)務個數(shù)。
所述輸出業(yè)務輸出進度表存儲器,以輸出業(yè)務組為單位記錄每個組播輸出業(yè)務的輸出進度,深度為系統(tǒng)支持的最大輸出業(yè)務組數(shù)。
當一個輸出業(yè)務輸出一個存儲單元之后,若所述存儲單元最后輸出業(yè)務仲裁模塊判斷出輸出業(yè)務是單播業(yè)務,則將輸出的存儲單元送給存儲單元回收模塊。
一種組播包空間回收的方法,其特征在于,包括如下步驟 步驟1、根據(jù)輸出業(yè)務編號到輸出到輸入業(yè)務映射表存儲器查到輸入業(yè)務編號; 步驟2、根據(jù)查到的輸入業(yè)務編號到組播轉發(fā)表存儲器查到輸出業(yè)務組編號和組播成員標志位組; 步驟3、根據(jù)查到的組播成員標志位組判斷該輸出業(yè)務是否為組播,若組播成員標志位組中有多位為1,則是組播業(yè)務,進入步驟4; 步驟4、根據(jù)輸出業(yè)務組編號到輸出業(yè)務輸出進度表存儲器中取出輸出進度,本輸出業(yè)務對應的最后輸出標志為1,則表示該輸出業(yè)務為本組播組中輸出進度最慢的輸出業(yè)務之1,則進入步驟5; 步驟5、根據(jù)組播成員標志位組和最后輸出標志判斷輸出業(yè)務是否同組播組中唯一一個最慢的輸出業(yè)務,如果是,則進入步驟6; 步驟6、將當前存儲單元編號送給存儲單元回收模塊進行回收,將當前存儲單元編號替換該業(yè)務在輸出業(yè)務輸出進度表中的存儲單元編號,同時將當前存儲單元編號與同組播組中所有存儲在輸出進度表中的存儲單元編號進行比較,將與當前編號相同的輸出業(yè)務的最后輸出標志置為1,本次流程結束。
所述步驟3中,所述組播成員標志位組中只有1位為1,則是單播業(yè)務,則將存儲單元送給回收模塊進行回收,本次流程結束。
所述步驟4中,本輸出業(yè)務對應的最后輸出標志為0,則輸出業(yè)務不是最慢的輸出業(yè)務,則將當前存儲單元編號替換該業(yè)務在輸出業(yè)務輸出進度表中的存儲單元編號,本次流程結束。
所述步驟5中,所述最慢的輸出業(yè)務不唯一,則將當前存儲單元編號替換為該業(yè)務在輸出業(yè)務輸出進度表中的存儲單元編號,同時將該業(yè)務在輸出業(yè)務輸出進度表中的最后輸出標志置為0,本次流程結束。
采用本發(fā)明所述裝置,不僅可以實現(xiàn)組播包的空間回收功能,與現(xiàn)有技術相比,當支持的組播組和組播業(yè)務數(shù)量比較大時,可以簡化存儲和輸出調度模塊的復雜度,使整個系統(tǒng)結構更加清晰,易實現(xiàn)。
圖1是本裝置中各模塊的連接圖; 圖2是組播空間回收工作流程圖。
具體實施例方式 本發(fā)明所述的組播包空間裝置,包括組播轉發(fā)表存儲器;輸出到輸入業(yè)務映射表存儲器;輸出業(yè)務輸出進度表存儲器;輸出業(yè)務組播組查詢模塊;存儲單元最后輸出業(yè)務仲裁模塊;存儲單元回收模塊。
組播轉發(fā)表存儲器用來存儲用戶配置的輸入業(yè)務到輸出業(yè)務的對應關系,通過查詢組播轉發(fā)表可以獲得一個輸入業(yè)務對應的輸出組播組成員。
輸出到輸入業(yè)務映射表存儲器用來存儲輸出業(yè)務到輸入業(yè)務的對應關系,通過查詢輸出到輸入業(yè)務映射表可以獲得一個輸出業(yè)務對應的輸入業(yè)務。
輸出業(yè)務輸出進度表存儲器記錄每個組播輸出業(yè)務的輸出進度,通過查詢輸出業(yè)務輸出進度表可以獲得輸出業(yè)務最后一個輸出的存儲單元及是否是組播組中最慢的輸出業(yè)務。
輸出業(yè)務組播組查詢模塊該模塊負責查找指定輸出業(yè)務所屬組播組的所有組播成員。首先用輸出業(yè)務編號到輸出到輸入業(yè)務映射表存儲器中查到該輸出業(yè)務對應的輸入業(yè)務,然后再通過查到的輸入業(yè)務到組播轉發(fā)表存儲器中查到輸出組播組。
存儲單元最后輸出業(yè)務仲裁模塊當一個輸出業(yè)務輸出一個存儲單元之后,該模塊負責判斷輸出業(yè)務是單播還是組播業(yè)務,如果是單播業(yè)務,則將輸出的存儲單元送給存儲單元回收模塊,不需要記錄輸出進度;如果是組播業(yè)務,記錄該輸出業(yè)務的輸出進度,并判斷該輸出業(yè)務是否組播組中最后一個輸出該儲存單元的輸出業(yè)務,如果是則將輸出的存儲單元送給存儲單元回收模塊。
存儲單元回收模塊完成存儲單元的回收,使存儲單元可以重新被使用。
如圖1所示,在本裝置開始工作之前,首先必須由用戶根據(jù)實際組播情況對組播轉發(fā)表存儲器和輸出到輸入業(yè)務映射表存儲器進行配置。
當一個輸出業(yè)務輸出一個存儲單元時,首先將輸出業(yè)務編號送給輸出業(yè)務組播組查詢模塊,查到組播組信息之后連同輸出業(yè)務編號送給存儲單元最后輸出業(yè)務仲裁模塊,存儲單元最后輸出業(yè)務仲裁模塊判斷輸出的存儲單元是否需要回收,如果是,將當前輸出的存儲單元編號送給存儲單元回收模塊進行回收。如果是組播業(yè)務,存儲單元最后輸出業(yè)務仲裁模塊還要記錄該輸出業(yè)務新的輸出進度。
組播轉發(fā)表存儲器中記錄了每個輸入業(yè)務的組播信息,以輸入業(yè)務編號為索引,深度為支持的最大輸入業(yè)務個數(shù),存儲結構如下所示 輸出到輸入業(yè)務映射表存儲器中記錄了輸出業(yè)務到輸入業(yè)務的對應關系,以輸出業(yè)務編號為索引,深度為支持的最大輸出業(yè)務個數(shù),結構如下所示 輸出業(yè)務輸出進度表存儲器以輸出業(yè)務組為單位記錄每個組播輸出業(yè)務的輸出進度。深度為系統(tǒng)支持的最大輸出業(yè)務組數(shù),結構如下所示 如圖2所示,當一個輸出業(yè)務輸出一個存儲單元時,本裝置的工作流程如下 第1步根據(jù)輸出業(yè)務編號到輸出到輸入業(yè)務映射表存儲器查到輸入業(yè)務編號; 第2步根據(jù)第一步查到的輸入業(yè)務編號到組播轉發(fā)表存儲器查到輸出業(yè)務組編號和組播成員標志位組; 第3步根據(jù)查到的組播成員標志位組判斷該輸出業(yè)務是單播還是組播,如果組播成員標志位組中只有一位為1,則為單播,否則為組播。如果是單播業(yè)務,則將存儲單元送給回收模塊進行回收,本次流程結束;如果是組播業(yè)務,則進入第4步。
第4步根據(jù)輸出業(yè)務組編號到輸出業(yè)務輸出進度表存儲器中取出輸出進度,如果本輸出業(yè)務對應的最后輸出標志為1,則表示該輸出業(yè)務為本組播組中輸出進度最慢的輸出業(yè)務之1,否則不是。
如果該輸出業(yè)務不是最慢的輸出業(yè)務,則將當前存儲單元編號替換該業(yè)務在輸出業(yè)務輸出進度表中的存儲單元編號,本次流程結束;如果是輸出進度最慢的輸出業(yè)務之1,則進入第5步。
第5步根據(jù)組播成員標志位組和最后輸出標志判斷輸出業(yè)務是否同組播組中唯一一個最慢的輸出業(yè)務,如果是,則進入第6步; 如果不是,將當前存儲單元編號替換該業(yè)務在輸出業(yè)務輸出進度表中的存儲單元編號,同時將該業(yè)務在輸出業(yè)務輸出進度表中的最后輸出標志置為0,本次流程結束。
第6步將當前存儲單元編號送給存儲單元回收模塊進行回收,將當前存儲單元編號替換該業(yè)務在輸出業(yè)務輸出進度表中的存儲單元編號,同時將當前存儲單元編號與同組播組中所有存儲在輸出進度表中的存儲單元編號進行比較,將與當前編號相同的輸出業(yè)務的最后輸出標志置為1,本次流程結束。
下面我們以一個實際的例子來進一步詳細介紹本發(fā)明的具體實現(xiàn)過程。我們在支持2048個輸入業(yè)務和2048個輸出業(yè)務,最多支持1024個組播組,每個組播組最大支持16個成員的系統(tǒng)中成功運用本裝置。
結合上面的技術方案,我們將2048個輸出業(yè)務按編號(0-2047)按每16個分為一組,總八128個組,則本裝置中相關表格的結構及模塊功能如下 組播轉發(fā)表存儲器深度為2048,分別對應輸入業(yè)務0-2047,寬度為23比特,其中輸出業(yè)務組編號為7位,組播成員標志組為16位。該表一般由用戶根據(jù)實際業(yè)務傳輸情況進行配置。從輸入業(yè)務編號到輸出業(yè)務編號的計算方法如下 輸出業(yè)務編號=組播轉發(fā)表[輸入業(yè)務編號].輸出業(yè)務組編號*16+組播轉發(fā)表[輸入業(yè)務編號].組播成員標志位組為1的位置序號; 如果組播成員標志位組中只有1位為1,則得到一個輸出業(yè)務編號,為單播業(yè)務。
如果組播成員標志位組中有多位為1,則每個為1的位都可以得到—個輸出業(yè)務編號,為組播業(yè)務。
比如,如果通過某輸入業(yè)務編號i組播轉發(fā)表中查到的輸出業(yè)務組編號為2,組播成員標志位組為16’b1000100010001000,則為組播業(yè)務,對應的四個組播成員的輸出編號為 輸出業(yè)務編號0=2*16+3=35 輸出業(yè)務編號1=2*16+7=39 輸出業(yè)務編號2=2*16+11=43 輸出業(yè)務編號3=2*16+15=47 輸出到輸入業(yè)務映射表存儲器深度為2048,分別對應輸出業(yè)務0-2047,寬度為10比特。輸出到輸入業(yè)務映射表也是由用戶配置的,配置的內容與組播轉發(fā)表正好形成一個互逆的過程,即如果以輸出業(yè)務j在本表查到輸入業(yè)務i,則用輸入業(yè)務i查詢組播轉發(fā)表,則一定可以得到輸出業(yè)務j。根據(jù)上面的例子,則該表的第35、39、43、47項都應該配置為i。
輸出業(yè)務輸出進度表存儲器該表按輸出業(yè)務組編號記錄所有輸出業(yè)務的當前輸出進度情況。所以該表的深度為128,寬度=最大存儲單元編號的寬度*16+16,結構如下所示 輸出業(yè)務組播組查詢模塊組播轉發(fā)表的查詢分為兩個過程首先利用輸出業(yè)務編號從輸出到輸入業(yè)務映射表查到輸入業(yè)務編號,然后再用查到的輸入業(yè)務編號從組播轉發(fā)表查到輸出業(yè)務組編號和組播成員標志位組。并將查詢到的結果連同當前輸出業(yè)務編號送給存儲單元最后輸出業(yè)務仲裁模塊。
根據(jù)上面的例子,如果輸出業(yè)務35輸出了一個存儲單元,則首先查到輸出業(yè)務對應的輸入業(yè)務是i,再用i從組播轉發(fā)表中查到輸出業(yè)務組編號為2,組播成員標志位組為16’b10001000 1000 1000。
存儲單元最后輸出業(yè)務仲裁模塊該模塊的功能包括1、判斷當前輸出業(yè)務是組播還是單播;2、判斷組播業(yè)務中前輸出業(yè)務是否最后一個輸出當前存儲單元的輸出業(yè)務;3、修改輸出業(yè)務輸出進度表;4、將可以回收的存儲單元編號送給存儲單元回收模塊進行回收。
下面結合附圖2以一個具體的例子來說明該模塊的操作流程。
假設有一個組播組對應得輸出業(yè)務組編號為0,組播成員標志位組為16’b0000 0000 00001111,則該組播組對應的四個成員的輸出業(yè)務標號分別是0、1、2、3,假設該組播組中有一個數(shù)據(jù)包存放在存儲單元B0和B1中,輸出情況如下 階段0初始化狀態(tài); 階段1輸出業(yè)務0輸出B0; 階段2輸出業(yè)務2輸出B0; 階段3輸出業(yè)務3輸出B0; 階段4輸出業(yè)務0輸出B1; 階段5輸出業(yè)務1輸出B0; 階段6輸出業(yè)務1輸出B1; 階段7輸出業(yè)務2輸出B1; 階段8輸出業(yè)務3輸出B1; 則存儲單元最后輸出業(yè)務仲裁模塊對輸出進度表操作如下 注1、表中不包含同一輸出業(yè)務分組中與該組播不相關的輸出業(yè)務4-15部分; 2、表中的X值表示為任意值或不關心。
具體步驟如下 1、階段0系統(tǒng)初始化之后,將輸出業(yè)務輸出進度表中所有輸出業(yè)務的最后輸出標志初始化為1,表示所有輸出業(yè)務都處在同一輸出進度; 2、階段1當輸出業(yè)務0輸出B0之后,首先通過輸出到輸入業(yè)務映射表查找到對應的輸入業(yè)務編號,再用查到的輸入業(yè)務編號從組播轉發(fā)表中查找到輸出業(yè)務組編號和組播成員標志位組,最后從輸出業(yè)務輸出進度表中讀出該組播組所有成員的輸出狀態(tài),讀出的最后輸出標志為1111,根據(jù)附圖2的操作規(guī)則,將輸出業(yè)務0對應的存儲單元編號改為B0,將輸出業(yè)務0對應的最后輸出標志改為0,如表中階段1的狀態(tài)。
3、階段2當輸出業(yè)務2輸出B0之后,首先通過輸出到輸入業(yè)務映射表查找到對應的輸入業(yè)務編號,再用查到的輸入業(yè)務編號從組播轉發(fā)表中查找到輸出業(yè)務組編號和組播成員標志位組,最后從輸出業(yè)務輸出進度表中讀出該組播組所有成員的輸出狀態(tài),讀出的最后輸出標志為1110,根據(jù)附圖2的操作規(guī)則,將輸出業(yè)務2對應的存儲單元編號改為B0,將輸出業(yè)務2對應的最后輸出標志改為0,如表中階段2的狀態(tài)。
4、階段3當輸出業(yè)務3輸出B0之后,首先通過輸出到輸入業(yè)務映射表查找到對應的輸入業(yè)務編號,再用查到的輸入業(yè)務編號從組播轉發(fā)表中查找到輸出業(yè)務組編號和組播成員標志位組,最后從輸出業(yè)務輸出進度表中讀出該組播組所有成員的輸出狀態(tài),讀出的最后輸出標志為1010,根據(jù)附圖2的操作規(guī)則,將輸出業(yè)務3對應的存儲單元編號改為B0,將輸出業(yè)務3對應的最后輸出標志改為0,如表中階段3的狀態(tài)。
5、階段4當輸出業(yè)務0輸出B1之后,首先通過輸出到輸入業(yè)務映射表查找到對應的輸入業(yè)務編號,再用查到的輸入業(yè)務編號從組播轉發(fā)表中查找到輸出業(yè)務組編號和組播成員標志位組,最后從輸出業(yè)務輸出進度表中讀出該組播組所有成員的輸出狀態(tài),讀出的最后輸出標志為0010,輸出業(yè)務0對應的最后輸出標志為0,根據(jù)附圖2的操作規(guī)則,只需要將輸出業(yè)務0對應的存儲單元編號改為B1,如表中階段4的狀態(tài)。
6、階段5當輸出業(yè)務1輸出B0之后,首先通過輸出到輸入業(yè)務映射表查找到對應的輸入業(yè)務編號,再用查到的輸入業(yè)務編號從組播轉發(fā)表中查找到輸出業(yè)務組編號和組播成員標志位組,最后從輸出業(yè)務輸出進度表中讀出該組播組所有成員的輸出狀態(tài),讀出的最后輸出標志為0010,此時輸出業(yè)務1對應的最后輸出標志為該組播組中的最后一個1,根據(jù)附圖2的操作規(guī)則,需要完成1、回收B0;2、將輸出業(yè)務1對應的存儲單元編號改為B0;3、將該組播組中的輸出業(yè)務輸出進度表中存儲單元編號為B0的所有成員的最后輸出標志改為1,如表中階段5的狀態(tài)。
7、階段6、階段7、階段8描述了對存儲單元B1的回收過程,與上面的操作步驟完全一樣。
存儲單元回收模塊將可回收存儲單元重新標志為可用存儲單元。
通過上面的分析可以看出,當一個輸出業(yè)務輸出一個存儲單元時,本發(fā)明裝置可利用存儲單元編號及組播信息判斷該業(yè)務是否是最后一個輸出當前存儲單元的輸出業(yè)務,從而判斷出是否可以對當前存儲單元回收,且該裝置所用的資源只與支持的輸出業(yè)務數(shù)量有關,所用資源少,且結構簡單,易實現(xiàn)。
權利要求
1、一種組播包空間回收裝置,其特征在于,包括
組播轉發(fā)表存儲器;
輸出到輸入業(yè)務映射表存儲器;
輸出業(yè)務輸出進度表存儲器;
輸出業(yè)務組播組查詢模塊;
存儲單元最后輸出業(yè)務仲裁模塊;
存儲單元回收模塊;
所述組播轉發(fā)表存儲器,用于存儲用戶配置的輸入業(yè)務到輸出業(yè)務的對應關系;
所述輸出到輸入業(yè)務映射表存儲器,用于存儲輸出業(yè)務到輸入業(yè)務的對應關系;
所述輸出業(yè)務輸出進度表存儲器,用于記錄每個組播輸出業(yè)務的輸出進度;
所述輸出業(yè)務組播組查詢模塊,用于查找指定輸出業(yè)務所屬組播組的所有組播成員;
所述存儲單元最后輸出業(yè)務仲裁模塊,用于當一個輸出業(yè)務輸出一個存儲單元后,判斷出輸出業(yè)務是組播業(yè)務,并判斷出該輸出業(yè)務是最后一個輸出該存儲單元的輸出業(yè)務,則將輸出的存儲單元送給存儲單元回收模塊;
所述存儲單元回收模塊,用于完成存儲單元的回收,使存儲單元可以重新被使用。
2、如權利要求1所述的組播包空間回收裝置,其特征在于
所述存儲用戶配置,是指用戶根據(jù)實際組播情況對組播轉發(fā)表存儲器和輸出到輸入業(yè)務映射表存儲器進行配置。
3、如權利要求1或2所述的組播包空間回收裝置,其特征在于
所述組播轉發(fā)表存儲器,以輸入業(yè)務編號為索引,深度為支持的最大輸入業(yè)務個數(shù);
所述組播轉發(fā)表存儲器的字段包括輸出業(yè)務組編號和組播成員標志位組。
4.如權利要求1或2所述的組播包空間回收裝置,其特征在于
所述輸出到輸入業(yè)務映射表存儲器,以輸出業(yè)務編號為索引,深度為支持的最大輸出業(yè)務個數(shù)。
5、如權利要求1或2所述的組播包空間回收裝置,其特征在于
所述輸出業(yè)務輸出進度表存儲器,以輸出業(yè)務組為單位記錄每個組播輸出業(yè)務的輸出進度,深度為系統(tǒng)支持的最大輸出業(yè)務組數(shù)。
6、如權利要求1或2所述的組播包空間回收裝置,其特征在于
當一個輸出業(yè)務輸出一個存儲單元之后,若所述存儲單元最后輸出業(yè)務仲裁模塊判斷出輸出業(yè)務是單播業(yè)務,則將輸出的存儲單元送給存儲單元回收模塊。
7、一種組播包空間回收的方法,其特征在于,包括如下步驟
步驟1、根據(jù)輸出業(yè)務編號到輸出到輸入業(yè)務映射表存儲器查到的輸入業(yè)務編號;
步驟2、根據(jù)查到的輸入業(yè)務編號到組播轉發(fā)表存儲器查到輸出業(yè)務組編號和組播成員標志位組;
步驟3、根據(jù)查到的組播成員標志位組判斷該輸出業(yè)務是單播還是組播,若組播成員標志位組中有多位為1,是組播業(yè)務,則進入步驟4;
步驟4、根據(jù)輸出業(yè)務組編號到輸出業(yè)務輸出進度表存儲器中取出輸出進度,本輸出業(yè)務對應的最后輸出標志為1,則表示該輸出業(yè)務為本組播組中輸出進度最慢的輸出業(yè)務之1,則進入步驟5;
步驟5、根據(jù)組播成員標志位組和最后輸出標志判斷輸出業(yè)務是否同組播組中唯一一個最慢的輸出業(yè)務,如果是,則進入步驟6;
步驟6、將當前存儲單元編號送給存儲單元回收模塊進行回收,將當前存儲單元編號替換該業(yè)務在輸出業(yè)務輸出進度表中的存儲單元編號,同時將當前存儲單元編號與同組播組中所有存儲在輸出進度表中的存儲單元編號進行比較,將與當前編號相同的輸出業(yè)務的最后輸出標志置為1,本次流程結束。
8、如權利要求7所述的一種組播包空間回收的方法,其特征在于
所述步驟3中,所述組播成員標志位組中只有1位為1,則是單播業(yè)務,則將存儲單元送給回收模塊進行回收,本次流程結束。
9、如權利要求7所述的一種組播包空間回收的方法,其特征在于
所述步驟4中,本輸出業(yè)務對應的最后輸出標志為0,則輸出業(yè)務不是最慢的輸出業(yè)務,則將當前存儲單元編號替換該業(yè)務在輸出業(yè)務輸出進度表中的存儲單元編號,本次流程結束。
10、如權利要求7所述的一種組播包空間回收的方法,其特征在于
所述步驟5中,所述最慢的輸出業(yè)務不唯一,則將當前存儲單元編號替換為該業(yè)務在輸出業(yè)務輸出進度表中的存儲單元編號,同時將該業(yè)務在輸出業(yè)務輸出進度表中的最后輸出標志置為0,本次流程結束。
全文摘要
本發(fā)明涉及數(shù)據(jù)傳輸領域,公開了一種組播包空間回收的方法及裝置,所述裝置包括組播轉發(fā)表存儲器;輸出到輸入業(yè)務映射表存儲器;輸出業(yè)務輸出進度表存儲器;輸出業(yè)務組播組查詢模塊;存儲單元最后輸出業(yè)務仲裁模塊;存儲單元回收模塊。當一個輸出業(yè)務輸出一個存儲單元時,本裝置可利用存儲單元編號及組播信息判斷該業(yè)務是否是最后一個輸出當前存儲單元的輸出業(yè)務,從而判斷出是否可以對當前存儲單元回收。采用本發(fā)明所述裝置,不僅可以實現(xiàn)組播包的空間回收功能,與現(xiàn)有技術相比,當支持的組播組和組播業(yè)務數(shù)量比較大時,可以簡化存儲和輸出調度模塊的復雜度,使整個系統(tǒng)結構更加清晰,易實現(xiàn)。
文檔編號H04L12/56GK1960322SQ20051011741
公開日2007年5月9日 申請日期2005年10月31日 優(yōu)先權日2005年10月31日
發(fā)明者楊平 申請人:中興通訊股份有限公司