欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法和系統(tǒng)的制作方法

文檔序號(hào):7957807閱讀:232來(lái)源:國(guó)知局
專(zhuān)利名稱:一種單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及通信網(wǎng)絡(luò)中單播和多播業(yè)務(wù)數(shù)據(jù)包 的隊(duì)列管理方法和系統(tǒng)。
背景技術(shù)
在包交換(Packet Switch )通信網(wǎng)絡(luò)中,會(huì)出現(xiàn)丟包、延時(shí)和抖動(dòng)的情況, 為了解決這些問(wèn)題,保證業(yè)務(wù)的服務(wù)質(zhì)量(Quality of Service, QoS),提出 了服務(wù)質(zhì)量的兩種模型。在IntServ模型下,針對(duì)每一條用戶業(yè)務(wù),通過(guò)信令向網(wǎng)絡(luò)申請(qǐng)具有特定 服務(wù)質(zhì)量的服務(wù),網(wǎng)絡(luò)在流量參數(shù)描述的范圍內(nèi),預(yù)留資源以承諾滿足該請(qǐng) 求。在DiffServ模型下,當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時(shí),根據(jù)業(yè)務(wù)的不同服務(wù)質(zhì)量等級(jí)約 定,有差別地進(jìn)行流量控制和轉(zhuǎn)發(fā)來(lái)解決擁塞問(wèn)題。當(dāng)具有相同服務(wù)質(zhì)量等 級(jí)(例如根據(jù)包中的DSCP即DiffServ CodePoint字段)的業(yè)務(wù)進(jìn)入采用DiffServ 模型的網(wǎng)絡(luò)中時(shí),會(huì)被進(jìn)行業(yè)務(wù)流聚合,匯聚成一個(gè)行為集合(Behavior Aggregate),網(wǎng)絡(luò)中的節(jié)點(diǎn)對(duì)特定的行為集合使用不同的轉(zhuǎn)發(fā)行為(PHB, Per-Hop Behavior),這包括快速轉(zhuǎn)發(fā)(Expedited Forwarding)、確保轉(zhuǎn)發(fā) (Assured Forwarding)和盡力傳送(Best Effort)。在一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)部,通過(guò)存儲(chǔ)轉(zhuǎn)發(fā)方式(Store and Forward)轉(zhuǎn)發(fā)數(shù)據(jù) 包,不同服務(wù)質(zhì)量的業(yè)務(wù)流會(huì)存儲(chǔ)到不同的優(yōu)先級(jí)隊(duì)列,轉(zhuǎn)發(fā)時(shí)根據(jù)隊(duì)列的 優(yōu)先級(jí)進(jìn)行不同的處理。 一般來(lái)說(shuō),如果隊(duì)列的數(shù)量不多,可以用FIFO (First In First Out)來(lái)實(shí)現(xiàn)這些隊(duì)列,各個(gè)隊(duì)列具有獨(dú)立的存儲(chǔ)空間,缺點(diǎn)是不能根 據(jù)需求動(dòng)態(tài)可配。當(dāng)業(yè)務(wù)流的數(shù)目較多時(shí),隊(duì)列必須根據(jù)業(yè)務(wù)流的流量改變深度,此時(shí)為保證充分利用存儲(chǔ)空間, 一般采用共享存儲(chǔ)的方式(例如鏈表) 來(lái)實(shí)現(xiàn)各個(gè)隊(duì)列。一般情況下,業(yè)務(wù)流中包的大小并不是固定長(zhǎng)度的,有可能在一個(gè)較大 范圍內(nèi)變化,因此如果隊(duì)列存儲(chǔ)轉(zhuǎn)發(fā)的是一個(gè)包,當(dāng)包的長(zhǎng)度較大時(shí)會(huì)產(chǎn)生 較大的時(shí)延。為了解決這個(gè)問(wèn)題,通常會(huì)把包切分成若干個(gè)固定長(zhǎng)度的數(shù)據(jù) 塊,為方便起見(jiàn),以下簡(jiǎn)稱為信元(Cell)。如果包被切片后剩余的最后一個(gè) 數(shù)據(jù)塊的長(zhǎng)度小于信元長(zhǎng)度,也占用一個(gè)信元的存儲(chǔ)空間。為了管理存儲(chǔ)轉(zhuǎn)發(fā)的數(shù)據(jù)包以及切片后的信元,網(wǎng)絡(luò)節(jié)點(diǎn)中要維護(hù)包管 理隊(duì)列和信元管理隊(duì)列。當(dāng)業(yè)務(wù)流的數(shù)據(jù)包為單播包時(shí),使用信元管理隊(duì)列 對(duì)應(yīng)著一個(gè)業(yè)務(wù)流,所有數(shù)據(jù)包的信元在信元管理隊(duì)列中依據(jù)數(shù)據(jù)包的順序 和該信元在數(shù)據(jù)包中的順序依次排列。當(dāng)業(yè)務(wù)流的數(shù)據(jù)包為多播包時(shí),需要 用到包管理隊(duì)列,包管理隊(duì)列的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)著業(yè)務(wù)流中的一個(gè)數(shù)據(jù)包,包 管理隊(duì)列節(jié)點(diǎn)包含有指向該包信元管理隊(duì)列頭節(jié)點(diǎn)的指針(所指向的信元管 理隊(duì)列對(duì)應(yīng)著該數(shù)據(jù)包)和指向下一個(gè)包管理隊(duì)列節(jié)點(diǎn)的指針。信元管理隊(duì) 列節(jié)點(diǎn)包含有指向下一個(gè)信元管理隊(duì)列節(jié)點(diǎn)的指針、信元位置標(biāo)志(標(biāo)明是 包中第一個(gè)信元、最后一個(gè)信元還是中間信元)、多播引用計(jì)數(shù)和信元存儲(chǔ) 位置信息。由于單播包只使用信元管理隊(duì)列,多播包使用包管理隊(duì)列和信元 管理隊(duì)列,因此單播業(yè)務(wù)和多播業(yè)務(wù)需要分別進(jìn)行管理。發(fā)明內(nèi)容本發(fā)明的目的在于提供統(tǒng)一管理單播包和多播包的方法,使單播業(yè)務(wù)和 多播業(yè)務(wù)在網(wǎng)絡(luò)節(jié)點(diǎn)中能充分共享內(nèi)存,并且可以對(duì)單多播帶寬資源不加區(qū) 分的管理。
本發(fā)明的目的是通過(guò)以下4支術(shù)方案實(shí)現(xiàn)的 一種單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法,包括切分單播包為單播信元,依次插入到該單樁包的目的緩沖隊(duì)列尾部;切分多播包為多播信元,組成該多播包的信元隊(duì)列,同時(shí)在該多播包的 目的緩沖隊(duì)列尾部插入該多播包的影子信元;從當(dāng)前緩沖隊(duì)列頭部取出信元并判斷信元類(lèi)型,如果是單播信元?jiǎng)t進(jìn)行 調(diào)度,如果是影子信元?jiǎng)t調(diào)度該影子信元所屬多播包的信元隊(duì)列。所述調(diào)度該影子信元所屬多播包的信元隊(duì)列的方法包括當(dāng)所述影子信元是其所屬多播包的最后一個(gè)待處理影子信元時(shí),從該多 播包的信元隊(duì)列中依次取出信元并進(jìn)行調(diào)度;當(dāng)所述影子信元不是其所屬多播包的最后一個(gè)待處理影子信元時(shí),從該 多播包的信元隊(duì)列中依次復(fù)制信元并進(jìn)行調(diào)度。所述調(diào)度該影子信元所屬多播包的信元隊(duì)列的方法包括 從所述影子信元所屬多播包的信元隊(duì)列中依次復(fù)制信元并進(jìn)行調(diào)度;當(dāng)所述影子信元是其所屬多播包的最后一個(gè)待處理影子信元時(shí),刪除該 多播包的信元隊(duì)列。一種單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理系統(tǒng),包括至少一個(gè)緩沖隊(duì)列, 還包括信元入隊(duì)列模塊,用于切分單播包為單播信元,依次插入到該單播包的 目的緩沖隊(duì)列尾部,以及用于切分多播包為多播信元,組成該多播包的信元 隊(duì)列,同時(shí)在該多播包的目的緩沖隊(duì)列尾部插入該多播包的影子信元;信元調(diào)度模塊,用于從當(dāng)前緩沖隊(duì)列頭部取出信元,調(diào)度其中的單播信 元,調(diào)度其中的影子信元所屬多播包的信元隊(duì)列。本發(fā)明的有益效果為統(tǒng)一對(duì)單播包和多播包進(jìn)行管理,當(dāng)業(yè)務(wù)流中同時(shí)存在單播業(yè)務(wù)和多播業(yè)務(wù)時(shí),業(yè)務(wù)流的帶寬管理更加方便。


圖1是本發(fā)明一種系統(tǒng)實(shí)施例的示意圖。圖2是本發(fā)明一種系統(tǒng)實(shí)施例的信元節(jié)點(diǎn)結(jié)構(gòu)示意圖。 圖3是本發(fā)明一種方法實(shí)施例的示意圖。
具體實(shí)施方式
本發(fā)明的核心思想是提供一種統(tǒng)一管理單播包和多播包的方法和系統(tǒng), 使單播業(yè)務(wù)和多播業(yè)務(wù)在網(wǎng)絡(luò)節(jié)點(diǎn)中能共享內(nèi)存,并且可以對(duì)單多播帶寬資 源不加區(qū)分的管理。本發(fā)明提供了 一種單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理系統(tǒng),為了便于理 解,下面才艮據(jù)具體實(shí)施例進(jìn)一步描述,如圖l所示,該系統(tǒng)實(shí)施例包括信元入隊(duì)列模塊,用于切分單播包為單播信元,依次插入到該單播包的 目的緩沖隊(duì)列尾部,以及用于切分多播包為多播信元,組成該多播包的信元 隊(duì)列,同時(shí)在該多播包的目的緩沖隊(duì)列尾部插入該多播包的影子信元;信元調(diào)度模塊,用于從當(dāng)前緩沖隊(duì)列頭部取出信元,調(diào)度其中的單播信 元,調(diào)度其中的影子信元所屬多播包的信元隊(duì)列;至少一個(gè)緩沖隊(duì)列(BufferQueue),用于存儲(chǔ)轉(zhuǎn)發(fā)信元。緩沖隊(duì)列的劃 分可以基于端口、業(yè)務(wù)流或其它方式。多播包的信元隊(duì)列用于存儲(chǔ)多播包的 信元,每個(gè)多播包都有一個(gè)信元隊(duì)列(Cell Queue)。由于緩沖隊(duì)列和管理它 的緩沖隊(duì)列管理鏈表一一對(duì)應(yīng),因此圖l中只顯示出緩沖隊(duì)列管理鏈表,沒(méi)有 顯示出緩沖隊(duì)列,同樣道理,圖l中也沒(méi)有顯示信元隊(duì)列。
一個(gè)單播包的信元只能進(jìn)入同一個(gè)緩沖隊(duì)列,我們稱該緩沖隊(duì)列為該單 播包的目的緩沖隊(duì)列。在入端口鏡像時(shí),單播包需要復(fù)制一份到鏡像端口 ,此時(shí)羊播包可以被當(dāng)作是多播數(shù)為2的多播包處理。一個(gè)多播包的信元會(huì)進(jìn)入多個(gè)緩沖隊(duì)列,我們稱這些緩沖隊(duì)列為該多播 包的目的緩沖隊(duì)列。在入端口鏡像時(shí),多播包需要復(fù)制一份到鏡像端口,此 時(shí)多播包的多播計(jì)數(shù)比實(shí)際情況要多1。在某個(gè)時(shí)刻只可能有一個(gè)緩沖隊(duì)列被調(diào)度,我們把這個(gè)緩沖隊(duì)列稱為當(dāng) 前緩沖隊(duì)列。該系統(tǒng)實(shí)施例還包括緩沖隊(duì)列管理鏈表,用于管理緩沖隊(duì)列;信元隊(duì) 列管理鏈表,用于管理信元隊(duì)列。在一些實(shí)施例中,可以包括數(shù)組或者其它 數(shù)據(jù)結(jié)構(gòu)用于管理緩沖隊(duì)列和信元隊(duì)列。圖l中描述出三個(gè)緩沖隊(duì)列管理鏈表鏈表I、鏈表II和鏈表III,這三個(gè)鏈 表分別對(duì)應(yīng)著三個(gè)緩沖隊(duì)列(在圖中沒(méi)有顯示)。鏈表I中從表頭到表尾依次 是多播包D的影子信元節(jié)點(diǎn)201和單播包C的單播信元節(jié)點(diǎn)205和204(對(duì)應(yīng)單播 包C切分后的2個(gè)信元)。鏈表II中從表頭到表尾依次是單播包B的單播信元節(jié) 點(diǎn)212和211 (對(duì)應(yīng)單播包B切分后的2個(gè)信元)和多播包E的影子信元節(jié)點(diǎn)208。 鏈表III中從表頭到表尾依次是單播包A的單播信元節(jié)點(diǎn)203、 213和214 (對(duì)應(yīng) 單播包A切分后的3個(gè)信元)、多播包D的影子信元節(jié)點(diǎn)210和多播包E的影子 信元節(jié)點(diǎn)209。圖1中還描述出多播包D和多播包E的信元隊(duì)列管理鏈表,這兩個(gè)管理鏈表 分別對(duì)應(yīng)著多播包D的信元隊(duì)列和多播包E的信元隊(duì)列(在圖中沒(méi)有顯示)。 可以看到多播包D被切分成3個(gè)信元,多播包E被切分成2個(gè)信元。圖1中的緩沖隊(duì)列管理鏈表和信元隊(duì)列管理鏈表的管理節(jié)點(diǎn)都采用相同 的數(shù)據(jù)結(jié)構(gòu)(這樣可以方便芯片統(tǒng)一處理),這些管理節(jié)點(diǎn)和信元是一一對(duì)
應(yīng)的。緩沖隊(duì)列和信元隊(duì)列中的信元本身沒(méi)有信息來(lái)表示它們?cè)陉?duì)列中的先 后次序,這種信元的先后次序是由對(duì)應(yīng)的管理節(jié)點(diǎn)在管理鏈表中的先后次序 確定的。對(duì)這些管理節(jié)點(diǎn)的搮作代表了對(duì)其對(duì)應(yīng)的信元的操作。單播信元是指單播包切分后的信元,對(duì)應(yīng)的管理節(jié)點(diǎn)稱為單播信元節(jié)點(diǎn)。 多播信元是指多播包切分后的信元,對(duì)應(yīng)的管理節(jié)點(diǎn)稱為多播信元節(jié)點(diǎn)。影子信元(Shadow Cell )是指插入在緩沖隊(duì)列中用來(lái)表示該插入位置存在多播 包信元的一種特殊信元,相當(dāng)于多播包的信元在緩沖隊(duì)列中的投影,因此稱 為影子信元。在實(shí)現(xiàn)時(shí),可以不生成一個(gè)實(shí)際的影子信元數(shù)據(jù),而只需要在 緩沖隊(duì)列管理鏈表中對(duì)應(yīng)位置插入一個(gè)影子信元管理節(jié)點(diǎn)(簡(jiǎn)稱影子信元節(jié) 點(diǎn))。因?yàn)樘幚碛白有旁獙?shí)際是對(duì)影子信元所屬多播包所有信元的處理,因 此緩沖隊(duì)列中影子信元的位置上也相當(dāng)于存在一個(gè)多播包的位置,我們稱為 多播包影子。單播信元節(jié)點(diǎn)、多播信元節(jié)點(diǎn)和影子信元節(jié)點(diǎn)這些管理節(jié)點(diǎn)統(tǒng) 稱為信元節(jié)點(diǎn)。下面進(jìn)一步解釋信元節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),如圖2所示,其中PTR一UC為單播指針,指向本信元節(jié)點(diǎn)的后續(xù)信元節(jié)點(diǎn)。例如,圖l中信 元節(jié)點(diǎn)210的PTR—UC指針指向后續(xù)信元節(jié)點(diǎn)209,信元節(jié)點(diǎn)207的PTR一UC指 針指向后續(xù)信元節(jié)點(diǎn)206;PTR一MC為多播指針,在后續(xù)信元節(jié)點(diǎn)為單插一言元節(jié)點(diǎn)時(shí)指向該后續(xù)單播 信元節(jié)點(diǎn),例如圖1中緩沖隊(duì)列管理鏈表I的信元節(jié)點(diǎn)205的后續(xù)信元節(jié)點(diǎn)204 為單播信元節(jié)點(diǎn),因此信元節(jié)點(diǎn)205的PTR一MC指針指向信元節(jié)點(diǎn)204;在后續(xù) 信元節(jié)點(diǎn)為多播信元節(jié)點(diǎn)時(shí)指向該后續(xù)多播信元節(jié)點(diǎn),例如圖1中多播包E的 信元管理隊(duì)列鏈表中,信元節(jié)點(diǎn)207的PTR一MC指針指向后續(xù)信元節(jié)點(diǎn)206;在 后續(xù)信元節(jié)點(diǎn)為影子信元節(jié)點(diǎn)時(shí)指向該影子信元節(jié)點(diǎn)所屬多播包的信元隊(duì)列 管理鏈表中的多播信元節(jié)點(diǎn),例如圖1中緩沖隊(duì)列管理鏈表m的信元節(jié)點(diǎn)210
的后續(xù)信元節(jié)點(diǎn)209為影子信元節(jié)點(diǎn),因此信元節(jié)點(diǎn)210的PTR一MC指針指向信 元節(jié)點(diǎn)209所屬多包E中的信元節(jié)點(diǎn)207;MC一CNT為多播計(jì)數(shù),默認(rèn)為O,當(dāng)信元節(jié)點(diǎn)是多播包的信元隊(duì)列管理鏈 表頭節(jié)點(diǎn)時(shí),該計(jì)數(shù)值為該多播包當(dāng)前的影子信元節(jié)點(diǎn)數(shù)目。該字段也可能 不存在,因?yàn)橐部梢詥为?dú)采用寄存器來(lái)存放多播包當(dāng)前的影子信元節(jié)點(diǎn)數(shù)目;MC一RES為多播保留標(biāo)記,默認(rèn)為不保留。該字段用于標(biāo)記出一個(gè)多播信 元隊(duì)列是需要保留還是可以釋放;PTR—D為信元數(shù)據(jù)地址信息,該字段也可能不存在,因?yàn)橛袝r(shí)也可以利 用信元節(jié)點(diǎn)的地址信息來(lái)計(jì)算出信元數(shù)據(jù)的地址信息;MISC為其它信息,根據(jù)具體實(shí)現(xiàn)和具體業(yè)務(wù)環(huán)境而定,該字段也可能不 存在。為了能從每個(gè)緩沖隊(duì)列頭中取出信元,信元調(diào)度模塊針對(duì)每個(gè)緩沖隊(duì)列 保存了兩個(gè)指針, 一個(gè)是頭信元節(jié)點(diǎn)指針,指向緩沖隊(duì)列管理鏈表頭節(jié)點(diǎn), 一個(gè)是當(dāng)前信元節(jié)點(diǎn)指針,指向當(dāng)前待處理信元對(duì)應(yīng)的信元節(jié)點(diǎn)。當(dāng)頭信元 節(jié)點(diǎn)指針指向單播信元節(jié)點(diǎn)時(shí),當(dāng)前信元節(jié)點(diǎn)指針指向該單播信元節(jié)點(diǎn),例 如圖l中所示,頭信元節(jié)點(diǎn)指針103指向緩沖隊(duì)列管理鏈表III頭節(jié)點(diǎn)203,當(dāng)前 信元指針104同樣指向信元節(jié)點(diǎn)203;當(dāng)頭信元節(jié)點(diǎn)指針指向影子信元節(jié)點(diǎn)時(shí), 當(dāng)前信元節(jié)點(diǎn)指針指向該影子信元節(jié)點(diǎn)所屬多播包的信元隊(duì)列管理鏈表中的 當(dāng)前待處理節(jié)點(diǎn)。例如圖l中所示,頭信元節(jié)點(diǎn)指針101指向緩沖隊(duì)列管理鏈 表I頭節(jié)點(diǎn)201,當(dāng)前信元指針102指向頭節(jié)點(diǎn)201所屬多播包D的信元隊(duì)列管理 鏈表中的信元節(jié)點(diǎn)202,這表示當(dāng)前待處理的是信元節(jié)點(diǎn)202所對(duì)應(yīng)的信元。為了把信元插入到緩沖隊(duì)列尾部,信元入隊(duì)列模塊針對(duì)每個(gè)緩沖隊(duì)列保 存了一個(gè)尾信元節(jié)點(diǎn)指針,指向緩沖隊(duì)列管理鏈表尾節(jié)點(diǎn)。例如圖l中所示, 尾信元節(jié)點(diǎn)指針301指向緩沖隊(duì)列管理鏈表I尾節(jié)點(diǎn)204。本發(fā)明提供一種單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法,下面結(jié)合圖l所 示系統(tǒng)-說(shuō)明實(shí)施例。方法實(shí)施例l情況下,當(dāng)一個(gè)單播包C需要存儲(chǔ)轉(zhuǎn)發(fā)時(shí),包括以下步驟信元入隊(duì)列模塊切分單播包C為兩個(gè)單播信元,依次插入到單播包C的目 的緩沖隊(duì)列尾部。 一般情況下,在切分成信元后,會(huì)生成和信元對(duì)應(yīng)的單播 信元節(jié)點(diǎn)來(lái)對(duì)這些信元進(jìn)行管理,且依次插入這些單播信元節(jié)點(diǎn)到單播包C的 目的緩沖隊(duì)列對(duì)應(yīng)的緩沖隊(duì)列管理鏈表I的尾部。如圖l所示,本實(shí)施例中會(huì)生 成205和204兩個(gè)單播信元節(jié)點(diǎn),分別對(duì)應(yīng)單播包切分后的第一個(gè)單播信元和 第二個(gè)單播信元。信元入隊(duì)列模塊依次插入,即先插入信元節(jié)點(diǎn)205,然后插 入信元節(jié)點(diǎn)204到緩沖隊(duì)列管理鏈表I尾部,相當(dāng)于把對(duì)應(yīng)信元依次插入到單播 包C的目的緩沖隊(duì)列。插入前,信元入隊(duì)列模塊維護(hù)的緩沖隊(duì)列管理鏈表I的 尾信元節(jié)點(diǎn)指針301指向影子信元節(jié)點(diǎn)201,影子信元節(jié)點(diǎn)201的PTRJJC和 PTI^MC指針都為NULL;插入后,指針301指向單播信元節(jié)點(diǎn)204,影子信元 節(jié)點(diǎn)201的PTR一UC和PTR—MC指針指向信元節(jié)點(diǎn)205;信元節(jié)點(diǎn)205的PTRJJC 和PTR一MC指針指向信元節(jié)點(diǎn)204。當(dāng)信元調(diào)度模塊調(diào)度到單播包C的目的緩沖隊(duì)列時(shí),從該當(dāng)前緩沖隊(duì)列 (即單播包C的目的緩沖隊(duì)列)頭部取出信元并判斷信元類(lèi)型,如果是單播信 元?jiǎng)t調(diào)度該單播信元,如果是影子信元?jiǎng)t調(diào)度該影子信元所屬多播包的信元 隊(duì)列。 一般情況下,是從和當(dāng)前緩沖隊(duì)列對(duì)應(yīng)的緩沖隊(duì)列管理鏈表(即鏈表I) 的頭部取出信元節(jié)點(diǎn),判斷該信元節(jié)點(diǎn)對(duì)應(yīng)信元的類(lèi)型。當(dāng)信元調(diào)度模塊將 要取出單播包C的信元時(shí),如圖3所示,信元調(diào)度模塊的頭信元節(jié)點(diǎn)指針101 指向緩沖隊(duì)列管理鏈表I頭節(jié)點(diǎn)205,當(dāng)前信元指針102指向頭節(jié)點(diǎn)205。信元調(diào) 度模塊通過(guò)比較頭信元節(jié)點(diǎn)指針101和當(dāng)前信元節(jié)點(diǎn)指針102是否相等來(lái)判斷 當(dāng)前待處理信元的類(lèi)型,由于101和102指向節(jié)點(diǎn)相同,兩者相等,因此可以 判定當(dāng)前待處理信元為單播信元,此時(shí)信元調(diào)度模塊從緩沖隊(duì)列管理鏈表I中 取出信元節(jié)點(diǎn)205進(jìn)行調(diào)度。取出信元節(jié)點(diǎn)205后,指針101和102都指向信元 節(jié)點(diǎn)204。根據(jù)不同的調(diào)度算法,信元調(diào)度模塊可能繼續(xù)處理信元節(jié)點(diǎn)204, 也可能會(huì)去處理其它緩沖隊(duì)列管理鏈表中的信元節(jié)點(diǎn)。當(dāng)信元調(diào)度模塊處理 信元節(jié)點(diǎn)204時(shí),過(guò)程和處理信元節(jié)點(diǎn)205類(lèi)似,有所不同的是當(dāng)發(fā)現(xiàn)信元 節(jié)點(diǎn)204的PTR—UC和PTR—MC都為NULL時(shí),說(shuō)明沒(méi)有后續(xù)信元節(jié)點(diǎn),這表示 緩沖隊(duì)列管理鏈表I所對(duì)應(yīng)的緩沖隊(duì)列已經(jīng)為空,此時(shí)把指針101和102都設(shè)為 NULL。方法實(shí)施例2情況下,當(dāng)一個(gè)多播包E需要存儲(chǔ)轉(zhuǎn)發(fā)時(shí),包括以下步驟信元入隊(duì)列模塊切分多播包E為兩個(gè)多播信元,組成該多播包的信元隊(duì) 列,同時(shí)在該多播包的目的緩沖隊(duì)列尾部插入該多播包的影子信元。 一般情 況下,在切分成信元后,會(huì)生成和信元對(duì)應(yīng)的多播信元節(jié)點(diǎn)來(lái)對(duì)這些信元進(jìn) 行管理,并組成和多播包E的信元隊(duì)列對(duì)應(yīng)的信元隊(duì)列管理鏈表,同時(shí)生成和 影子信元對(duì)應(yīng)的影子信元節(jié)點(diǎn),在和多播包E的目的緩沖隊(duì)列對(duì)應(yīng)的緩沖隊(duì)列 管理鏈表(包括鏈表n和鏈表ni)的尾部插入該影子信元節(jié)點(diǎn)。如圖l所示, 會(huì)對(duì)應(yīng)生成206和207兩個(gè)多播信元節(jié)點(diǎn),它們會(huì)組成多播包E的信元隊(duì)列管理 鏈表,即信元節(jié)點(diǎn)207的PTR—UC和PTR—MC都指向信元節(jié)點(diǎn)206,信元接點(diǎn)206 的PTR—UC和PTR—MC都為NULL,這相當(dāng)于把多播包E的信元組成多播包的信 元隊(duì)列,作為多播信元隊(duì)列管理鏈表頭節(jié)點(diǎn),207的MC一RES字段此時(shí)設(shè)置為 多播保留。接著,信元入隊(duì)列模塊創(chuàng)建多播包E的影子信元節(jié)點(diǎn)208,并在緩 沖隊(duì)列管理鏈表II尾部插入該影子信元節(jié)點(diǎn),這相當(dāng)于在對(duì)應(yīng)的目的緩沖隊(duì)列 尾部插入多播包E的影子信元,此時(shí)需要對(duì)信元隊(duì)列管理鏈表頭節(jié)點(diǎn)207的 MC—CNT字段計(jì)數(shù)加1 (因此該字段值由0變?yōu)?)。插入前,信元入隊(duì)列模塊 維護(hù)的緩沖隊(duì)列管理鏈表II的尾信元節(jié)點(diǎn)指針302指向信元節(jié)點(diǎn)211,信元節(jié)點(diǎn) 211的PTR一UC和PTR—MC指針都為NULL;插入后,指針302指向影子信元節(jié) 點(diǎn)208,信元節(jié)點(diǎn)211的PTRJJC指針指向影子信元節(jié)點(diǎn)208,信元節(jié)點(diǎn)211的 ptr—mc指針指向多播包e的信元隊(duì)列管理鏈表頭節(jié)點(diǎn)207。信元入隊(duì)列模塊 繼續(xù)創(chuàng)建多播包e的影子信元節(jié)點(diǎn)209,并在緩沖隊(duì)列管理鏈表iii尾部插入該 影子信元節(jié)點(diǎn),這相當(dāng)于在對(duì)應(yīng)的目的緩沖隊(duì)列尾部插入多播包e的影子信 元,此時(shí)需要對(duì)信元隊(duì)列管理鏈表頭節(jié)點(diǎn)207的mc一cnt字段計(jì)數(shù)加1 (因此 該字段值由1變?yōu)?)。插入前,信元入隊(duì)列模塊維護(hù)的緩沖隊(duì)列管理鏈表iii 的尾信元節(jié)點(diǎn)指針303指向信元節(jié)點(diǎn)210,信元節(jié)點(diǎn)210的ptr—uc和ptr—mc 指針都為null;插入后,指針303指向影子信元節(jié)點(diǎn)209,信元節(jié)點(diǎn)210的 ptr—uc指針指向影子信元節(jié)點(diǎn)209,信元節(jié)點(diǎn)210的ptr—mc指針指向多播包 e的信元隊(duì)列管理鏈表頭節(jié)點(diǎn)207。當(dāng)信元入隊(duì)列模塊插入兩個(gè)影子信元節(jié)點(diǎn) 后,發(fā)現(xiàn)多播復(fù)制處理完畢,因此把信元隊(duì)列管理鏈表頭節(jié)點(diǎn)207的mc一res 設(shè)置為多播不保留;當(dāng)信元調(diào)度模塊調(diào)度到多播包e的某一目的緩沖隊(duì)列(此時(shí)成為當(dāng)前緩 沖隊(duì)列)時(shí),從該當(dāng)前緩沖隊(duì)列頭部取出信元并判斷信元類(lèi)型,如果是單播 信元?jiǎng)t調(diào)度該單播信元,如果是影子信元?jiǎng)t處理該影子信元所屬多播包的信 元隊(duì)列。 一般情況下,是從和當(dāng)前緩沖隊(duì)列對(duì)應(yīng)的緩沖隊(duì)列管理鏈表(例如 鏈表3)的頭部取出信元節(jié)點(diǎn),判斷該信元節(jié)點(diǎn)對(duì)應(yīng)信元的類(lèi)型。當(dāng)信元調(diào)度 模塊將要取出多播包e的影子信元209時(shí),如圖3所示,信元調(diào)度模塊的頭 信元節(jié)點(diǎn)指針104指向緩沖隊(duì)列管理鏈表iii頭節(jié)點(diǎn)209,當(dāng)前信元節(jié)點(diǎn)指針 103指向多播包e的信元隊(duì)列管理鏈表頭節(jié)點(diǎn)207。信元調(diào)度模塊通過(guò)比較頭 信元節(jié)點(diǎn)指針104和當(dāng)前信元節(jié)點(diǎn)指針103是否相等來(lái)判斷當(dāng)前待處理信元 的類(lèi)型,由于104和103指向節(jié)點(diǎn)不相同,兩者不相等,因此可以判定當(dāng)前 待處理信元為影子信元,此時(shí)信元調(diào)度模塊從緩沖隊(duì)列管理鏈表iii中取出信 元節(jié)點(diǎn)209,同時(shí)處理指針103指向的信元節(jié)點(diǎn)209所屬多播包(即多播包e) 的信元隊(duì)列管理鏈表。首先判斷當(dāng)前取出的影子信元是否是多播包e的最后 一個(gè)待處理影子信元,即先判斷頭節(jié)點(diǎn)207的mc res字段是否為多播保留, 當(dāng)該字段為多播不保留時(shí)再判斷其MC—CNT字段是否為1。由于信元節(jié)點(diǎn)207 的MC—CNT字段為2時(shí),說(shuō)明當(dāng)前取出的影子信元不是多播包E的最后一個(gè) 待處理影子信元。于是信元調(diào)度模塊把信元節(jié)點(diǎn)207的MC一CNT字段減1由 2變?yōu)?,同時(shí)依次復(fù)制信元節(jié)點(diǎn)207對(duì)應(yīng)的信元和信元節(jié)點(diǎn)206對(duì)應(yīng)的信元 進(jìn)行調(diào)度,根據(jù)不同的調(diào)度算法,兩個(gè)信元的調(diào)度之間可能存在也可能不存 在其它信元的調(diào)度。在后來(lái)的某個(gè)時(shí)刻,信元調(diào)度模塊取出多播包E的影子 信元節(jié)點(diǎn)208進(jìn)行處理,和影子信元節(jié)點(diǎn)209處理過(guò)程類(lèi)似,有所不同的是 在判斷當(dāng)前取出的影子信元是多播包E的最后一個(gè)待處理影子信元(此時(shí)頭 節(jié)點(diǎn)207的MC_CNT字段為1, MC—RES字段為多播不保留)后,信元調(diào)度 模塊直接調(diào)度多播包E的信元隊(duì)列管理鏈表中的信元節(jié)點(diǎn)即信元節(jié)點(diǎn)207和 信元節(jié)點(diǎn)206對(duì)應(yīng)的信元,根據(jù)不同的調(diào)度算法,兩個(gè)信元的調(diào)度之間可能 存在也可能不存在其它信元的調(diào)度。方法實(shí)施例3情況下,當(dāng)一個(gè)多播包E需要存儲(chǔ)轉(zhuǎn)發(fā)時(shí),步驟和實(shí)施例2類(lèi) 似,區(qū)別是在信元調(diào)度模塊取出多播包E的影子信元節(jié)點(diǎn)209進(jìn)行處理時(shí),信元入隊(duì) 列模塊還沒(méi)有在緩沖隊(duì)列管理鏈表中插入影子信元節(jié)點(diǎn)208,這樣頭節(jié)點(diǎn)207 的MC—RES字段為多播保留。即使此時(shí)MC—CNT字段為1,也可以確定當(dāng)前影 子信元并不是多播包E的最后一個(gè)影子信元,這時(shí)信元調(diào)度模塊依次復(fù)制信元 節(jié)點(diǎn)207對(duì)應(yīng)的信元和信元節(jié)點(diǎn)206對(duì)應(yīng)的信元進(jìn)行調(diào)度。方法實(shí)施例4情況下,當(dāng)一個(gè)多播包E需要存儲(chǔ)轉(zhuǎn)發(fā)時(shí),步驟和實(shí)施例2類(lèi) 似,區(qū)別是在信元調(diào)度模塊取出多播包E的影子信元節(jié)點(diǎn)209進(jìn)行處理時(shí),信元調(diào) 度模塊依次復(fù)制信元節(jié)點(diǎn)207對(duì)應(yīng)的信元和信元節(jié)點(diǎn)206對(duì)應(yīng)的信元進(jìn)行調(diào) 度,同時(shí)頭節(jié)點(diǎn)207的MC—CNT字段減1由2變?yōu)?。接著判斷當(dāng)前取出的
影子信元是否多播包E的最后一個(gè)待處理影子信元,即先判斷頭節(jié)點(diǎn)207的 MC—RES字段是否為多播不保留,當(dāng)該字段為多播不保留時(shí)再判斷頭節(jié)點(diǎn)207 的MC一CNT字段是否為0。由于此時(shí)頭節(jié)點(diǎn)207的MCj:NT字段為1,因此 當(dāng)前影子信元必然不是多播包E的最后一個(gè)影子信元,此時(shí)不刪除多播包E 的信元隊(duì)列管理鏈表和對(duì)應(yīng)的信元。在信元調(diào)度模塊取出多播包E的影子信元節(jié)點(diǎn)208進(jìn)行處理時(shí),信元調(diào) 度模塊依次復(fù)制信元節(jié)點(diǎn)207對(duì)應(yīng)的信元和信元節(jié)點(diǎn)206對(duì)應(yīng)的信元進(jìn)行調(diào) 度,同時(shí)頭節(jié)點(diǎn)207的MC—CNT字段減1由1變?yōu)?。接著判斷當(dāng)前取出的 影子信元是否多播包E的最后一個(gè)待處理影子信元,即先判斷頭節(jié)點(diǎn)207的 MC_RES字段是否為多播不保留。當(dāng)該字段為多播不保留時(shí),再判斷頭節(jié)點(diǎn) 207的MC—CNT字段是否為0,由于該字段為0,說(shuō)明當(dāng)前影子信元是多播包 E的最后一個(gè)待處理影子信元,因此刪除多播包E的信元隊(duì)列管理鏈表和對(duì) 應(yīng)的信元;當(dāng)該字段為多播保留時(shí),不刪除多播包E的信元隊(duì)列管理鏈表和 對(duì)應(yīng)的信元。以上實(shí)施例僅用以說(shuō)明本發(fā)明而并非限制本發(fā)明所描述的技術(shù)方案;因是,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,仍然可以對(duì)本發(fā)明進(jìn)行修改或者等同 替換;而一切不脫離本發(fā)明的精神和范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋 在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法,其特征在于包括切分單播包為單播信元,依次插入到該單播包的目的緩沖隊(duì)列尾部;切分多播包為多播信元,組成該多播包的信元隊(duì)列,同時(shí)在該多播包的目的緩沖隊(duì)列尾部插入該多播包的影子信元;從當(dāng)前緩沖隊(duì)列頭部取出信元并判斷信元類(lèi)型,如果是單播信元?jiǎng)t進(jìn)行調(diào)度,如果是影子信元?jiǎng)t調(diào)度該影子信元所屬多播包的信元隊(duì)列。
2. 根據(jù)權(quán)利要求1所述的單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法,其特 征在于,所述調(diào)度該影子信元所屬多播包的信元隊(duì)列的方法包括當(dāng)所述影子信元是其所屬多播包的最后一個(gè)待處理影子信元時(shí),從該多 播包的信元隊(duì)列中依次取出信元并進(jìn)行調(diào)度;當(dāng)所述影子信元不是其所屬多播包的最后一個(gè)待處理影子信元時(shí),從該 多播包的信元隊(duì)列中依次復(fù)制信元并進(jìn)行調(diào)度。
3. 根據(jù)權(quán)利要求1所述的單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法,其特 征在于,所述調(diào)度該影子信元所屬多播包的信元隊(duì)列的方法包括從所述影子信元所屬多播包的信元隊(duì)列中依次復(fù)制信元并進(jìn)行調(diào)度; 當(dāng)所述影子信元是其所屬多播包的最后一個(gè)待處理影子信元時(shí),刪除該 多播包的信元隊(duì)列。
4. 根據(jù)權(quán)利要求1所述的單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法,其特 征在于,所述依次插入到該單播包的目的緩沖隊(duì)列尾部的方法包括生成和所述單播信元對(duì)應(yīng)的單播信元節(jié)點(diǎn),依次插入所述單播信元節(jié)點(diǎn) 到和該單播包的目的緩沖隊(duì)列對(duì)應(yīng)的緩沖隊(duì)列管理鏈表的尾部。
5. 根據(jù)權(quán)利要求4所述的單播和多播業(yè)務(wù)數(shù)據(jù)包的調(diào)度方法,其特征在 于,所述組成該多播包的信元隊(duì)列的方法包括生成和所述多播信元對(duì)應(yīng)的多播信元節(jié)點(diǎn)并組成和該多播包的信元隊(duì)列 對(duì)應(yīng)的信元隊(duì)列管理鏈表。
6. 根據(jù)權(quán)利要求5所述的單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法,其特 征在于,所述在該多播包的目的緩沖隊(duì)列尾部插入該多播包的影子信元的方 法包括生成和所述影子信元對(duì)應(yīng)的影子信元節(jié)點(diǎn),在和所述多播包的目的緩沖 隊(duì)列對(duì)應(yīng)的緩沖隊(duì)列管理M尾部插入該影子信元節(jié)點(diǎn)。
7. 根據(jù)權(quán)利要求6所述的單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法,其特 征在于,所述從當(dāng)前緩沖隊(duì)列頭部取出信元并判斷信元類(lèi)型的方法包括從和當(dāng)前緩沖隊(duì)列對(duì)應(yīng)的緩沖隊(duì)列管理鏈表的頭部取出信元節(jié)點(diǎn),判斷 該信元節(jié)點(diǎn)對(duì)應(yīng)信元的類(lèi)型。
8. —種單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理系統(tǒng),包括至少一個(gè)緩沖隊(duì)列, 其特征在于還包括信元入隊(duì)列模塊,用于切分單播包為單播信元,依次插入到該單播包的 目的緩沖隊(duì)列尾部,以及用于切分多播包為多播信元,組成該多播包的信元 隊(duì)列,同時(shí)在該多播包的目的緩沖隊(duì)列尾部插入該多播包的影子信元;信元調(diào)度模塊,用于從當(dāng)前緩沖隊(duì)列頭部取出信元,調(diào)度其中的單播信 元,調(diào)度其中的影子信元所屬多播包的信元隊(duì)列。
9. 根據(jù)權(quán)利要求8所述的單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理系統(tǒng),其特 征在于還包括緩沖隊(duì)列管理鏈表,用于管理所述緩沖隊(duì)列;信元隊(duì)列管理鏈表,用于管理所述信元隊(duì)列。
10. 根據(jù)權(quán)利要求9所述的單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理系統(tǒng),其 特征在于,所述緩沖隊(duì)列管理鏈表的信元節(jié)點(diǎn)和所述信元隊(duì)列管理鏈表的信 元節(jié)點(diǎn)的結(jié)構(gòu)相同,該結(jié)構(gòu)至少包含單播指針,指向本信元節(jié)點(diǎn)的后續(xù)信元節(jié)點(diǎn);多播指針,在后續(xù)信元節(jié)點(diǎn)為單播信元節(jié)點(diǎn)時(shí)指向該后續(xù)單播信元節(jié)點(diǎn), 在后續(xù)信元節(jié)點(diǎn)為多播信元節(jié)點(diǎn)時(shí)指向該后續(xù)多播信元節(jié)點(diǎn),在后續(xù)信元節(jié) 點(diǎn)為影子信元節(jié)點(diǎn)時(shí)指向該影子信元節(jié)點(diǎn)所屬多播包的信元隊(duì)列管理鏈表中 的多播信元節(jié)點(diǎn)。
全文摘要
本發(fā)明公開(kāi)了通信技術(shù)領(lǐng)域中一種單播和多播業(yè)務(wù)數(shù)據(jù)包的隊(duì)列管理方法和系統(tǒng),通過(guò)在緩沖隊(duì)列中插入影子信元的方法來(lái)表示多播包信元,解決了單播業(yè)務(wù)和多播業(yè)務(wù)需要分別進(jìn)行管理的問(wèn)題。本發(fā)明使單播業(yè)務(wù)和多播業(yè)務(wù)在網(wǎng)絡(luò)節(jié)點(diǎn)中能充分共享內(nèi)存,并且可以對(duì)單多播帶寬資源不加區(qū)分的管理。
文檔編號(hào)H04L12/56GK101150490SQ20061006276
公開(kāi)日2008年3月26日 申請(qǐng)日期2006年9月23日 優(yōu)先權(quán)日2006年9月23日
發(fā)明者徐興利 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
大厂| 天水市| 上饶县| 长兴县| 石狮市| 吉隆县| 阳东县| 精河县| 喀喇沁旗| 万州区| 灵台县| 阜平县| 乌鲁木齐县| 清河县| 曲靖市| 华池县| 那曲县| 灌云县| 类乌齐县| 贺州市| 清镇市| 凉城县| 广昌县| 沭阳县| 察隅县| 靖边县| 治县。| 仪征市| 东丰县| 同江市| 乌兰浩特市| 遂昌县| 广东省| 临洮县| 化隆| 湾仔区| 小金县| 道孚县| 二连浩特市| 东丰县| 阿克苏市|