專利名稱:報(bào)文保序方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信設(shè)備和網(wǎng)絡(luò)設(shè)備中報(bào)文轉(zhuǎn)發(fā)的保序方法和裝置。背景技術(shù):
隨著通信技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,通信設(shè)備或是網(wǎng)絡(luò)設(shè)備(以下統(tǒng)稱
為網(wǎng)絡(luò)設(shè)備)逐步向全I(xiàn)P (Internet Protocol,互聯(lián)網(wǎng)協(xié)議)推進(jìn);網(wǎng) 絡(luò)設(shè)備的一個(gè)最基本功能就是轉(zhuǎn)發(fā)IP報(bào)文。許多上層業(yè)務(wù)報(bào)文在傳輸過程 中需要網(wǎng)絡(luò)設(shè)備嚴(yán)格保證報(bào)文的順序,也就是同一數(shù)據(jù)流進(jìn)入網(wǎng)絡(luò)設(shè)備和 離開網(wǎng)絡(luò)設(shè)備的順序應(yīng)嚴(yán)格相同。
為提高系統(tǒng)整體性能,目前網(wǎng)絡(luò)設(shè)備通常使用多核多硬件線程芯片進(jìn) 行報(bào)文轉(zhuǎn)發(fā),報(bào)文的保序往往利用硬件機(jī)制輔助實(shí)現(xiàn),如網(wǎng)絡(luò)處理器中使 用硬件信號(hào)同步報(bào)文的接收、處理和發(fā)送以實(shí)現(xiàn)報(bào)文的保序。雖然利用硬 件機(jī)制實(shí)現(xiàn)報(bào)文保序的方案對(duì)系統(tǒng)性能影響較小,但是不同的硬件架構(gòu), 使用的機(jī)制大不相同,保序方案難以通用、統(tǒng)一,且受限于硬件本身的實(shí) 現(xiàn)機(jī)制。
除利用硬件機(jī)制實(shí)現(xiàn)報(bào)文保序之外,采用多核多硬件線程芯片的網(wǎng)絡(luò) 設(shè)備中,還可以使用軟件方案實(shí)現(xiàn)報(bào)文的保序。軟件方案可以屏蔽硬件芯 片的差異,移植性和通用性都優(yōu)于利用硬件機(jī)制的方案。使用軟件方案實(shí) 現(xiàn)報(bào)文保序的基本策略有兩種 一是避免報(bào)文在多個(gè)線程處理時(shí)失序;二 是使用軟件方案對(duì)失序的報(bào)文重新進(jìn)行排序。
'圖1 圖3給出了現(xiàn)有技術(shù)中使用多核多線程網(wǎng)絡(luò)設(shè)備中避免報(bào)文失 序的原理示意圖圖1中的軟件方案是所有的核和線程完全采用流水線的 方式完成IP報(bào)文的轉(zhuǎn)發(fā),每個(gè)核/線程完成報(bào)文轉(zhuǎn)發(fā)處理的不同階段和步 驟,前一核/線程處理完成后通知第二個(gè)核/線程進(jìn)行處理,依次類推,最 后完成報(bào)文發(fā)送;此方案的最大缺陷在于各核/線程上的模塊功能分配和處 理負(fù)荷難以均衡,難以適應(yīng)模塊功能的不斷擴(kuò)展和升級(jí),易出現(xiàn)性能的瓶 頸點(diǎn)。圖2所示軟件方案中各線程完全采用并行的工作方式,每個(gè)核/線程 完成相同的功能,使用分類單元(軟件或是硬件),將不同流分發(fā)到不同的 核/線程處理,同一流的報(bào)文由同一線程處理,故可避免失序;此方案的最 大缺陷是不同流的負(fù)荷差別可能很大,會(huì)造成某些線程比較空閑,而有些
線程負(fù)荷比較繁重。圖3所示的軟件折中'圖1、圖2中的方案,但仍然存 在兩種方案的缺點(diǎn)。
考慮業(yè)務(wù)流在不同核/線程之間的負(fù)載均衡和平滑系統(tǒng)整體性能,往往 使用多線程完全并行工作的方式,各核/線程駐留相同的功能模塊,業(yè)務(wù)流 根據(jù)一定的策略均勻的分發(fā)到不同的核/線程上處理。圖4給出了在此系統(tǒng)
方案下報(bào)文保序?qū)崿F(xiàn)的軟件原理示意圖接收單元為接收到的報(bào)文分配一 個(gè)序列號(hào)seq一mim并均勻分發(fā)到并行的線程中處理,各線程為每個(gè)業(yè)務(wù)流 維護(hù)一個(gè)發(fā)送序列號(hào)tx一seci—curr,發(fā)送序列號(hào)屬于各線程的共享臨界資 源,轉(zhuǎn)發(fā)報(bào)文時(shí),判斷業(yè)務(wù)流的當(dāng)前發(fā)送序列號(hào)tx—seq一curr和報(bào)文序列 號(hào)seq—num是否相同,如果相同則轉(zhuǎn)發(fā)報(bào)文,并將tx—seq—curr加1,否 則循環(huán)等待。此方案存在的最大不足之處是沒有考慮業(yè)務(wù)流異常處理狀態(tài), 業(yè)務(wù)流有效發(fā)送序列號(hào)更新粒度固定不變?yōu)?,當(dāng)報(bào)文異常狀態(tài)對(duì)應(yīng)不同 處理策略如需要丟棄或是處理超時(shí)后,會(huì)造成保序功能的失敗、死等或是 引起報(bào)文的抖動(dòng)。
發(fā)明內(nèi)容
本發(fā)明的主要目的是克服上述現(xiàn)有技術(shù)中的不足之處,提供一種保 序策略更為完善、保序功能更為穩(wěn)定有效的報(bào)文保序方法及其裝置。
為實(shí)現(xiàn)上述目的,本發(fā)明提出一種報(bào)文保序方法,包括如下的步驟
11) 流分類標(biāo)識(shí)單元對(duì)接收到的報(bào)文首先進(jìn)行流分類和標(biāo)識(shí)操作,將 報(bào)文按給定規(guī)則劃分為不同的業(yè)務(wù)流,同時(shí)為流中每個(gè)報(bào)文分配一個(gè)報(bào)文 序列號(hào),同一流中序列號(hào)連續(xù)遞增分配;然后將報(bào)文均衡分發(fā)到并行的多 個(gè)核/線程中;
12) 報(bào)文處理單元對(duì)報(bào)文進(jìn)行處理時(shí),流狀態(tài)監(jiān)控單元為每個(gè)業(yè)務(wù)流 隊(duì)列維護(hù)一個(gè)相應(yīng)的流狀態(tài)隊(duì)列,實(shí)時(shí)監(jiān)控報(bào)文狀態(tài),設(shè)置每個(gè)報(bào)文的狀 態(tài)向量,對(duì)于不同的報(bào)文狀態(tài)向量,指定不同的處理策略;
13) 保序與調(diào)度發(fā)送單元獲取業(yè)務(wù)流當(dāng)前發(fā)送序列號(hào)、報(bào)文序列號(hào)、 業(yè)務(wù)流報(bào)文狀態(tài)向量和對(duì)應(yīng)的處理策略;鎖定業(yè)務(wù)流當(dāng)前發(fā)送序列號(hào)、相 應(yīng)狀態(tài)向量;根據(jù)不同報(bào)文狀態(tài)向量對(duì)應(yīng)的處理策略,實(shí)現(xiàn)對(duì)報(bào)文調(diào)度、 發(fā)送的同步;同時(shí)更新當(dāng)前發(fā)送序列號(hào),解鎖發(fā)送序列號(hào)和報(bào)文狀態(tài)向量。
上述的報(bào)文保序方法,所述步驟13)的具體過程包括如果某個(gè)報(bào)文 狀態(tài)向量對(duì)應(yīng)的處理策略為繼續(xù)處理,當(dāng)業(yè)務(wù)流當(dāng)前發(fā)送序列號(hào)和報(bào)文序 列號(hào)相同時(shí),則轉(zhuǎn)發(fā)報(bào)文,更新當(dāng)前發(fā)送序列號(hào),解鎖發(fā)送序列號(hào)和報(bào)文 狀態(tài)向量;否則解鎖發(fā)送序列號(hào)和報(bào)文狀態(tài)向量,結(jié)束本次調(diào)度發(fā)送。所 述步驟13)的具體過程還包括如果某個(gè)報(bào)文狀態(tài)向量對(duì)應(yīng)的處理策略為 丟棄,則丟棄該報(bào)文,更新當(dāng)前發(fā)送序列號(hào),解鎖發(fā)送序列號(hào)和報(bào)文狀態(tài) 向量,結(jié)束本次調(diào)度發(fā)送;如果所述報(bào)文狀態(tài)向量為超時(shí),則對(duì)應(yīng)策略為 丟棄報(bào)文。所述步驟13)的具體過程還包括如果某個(gè)報(bào)文狀態(tài)向量對(duì)應(yīng) 的處理策略為等待,解鎖發(fā)送序列號(hào)和報(bào)文狀態(tài)向量,結(jié)束本次調(diào)度發(fā)送。
上述的報(bào)文保序方法,由流分類標(biāo)識(shí)單元初始化每個(gè)流的當(dāng)前發(fā)送序 列號(hào),由保序調(diào)度發(fā)送單元維護(hù)該發(fā)送序列號(hào);或由保序調(diào)度發(fā)送單元初 始化每個(gè)流的當(dāng)前發(fā)送序列號(hào),并維護(hù)該發(fā)送序列號(hào)。
同時(shí),本發(fā)明公開了一種報(bào)文保序裝置,包括
流分類標(biāo)識(shí)單元按照給定規(guī)則,將接收到的報(bào)文劃分為不同的業(yè)務(wù) 流中,為流中每個(gè)報(bào)文分配一個(gè)連續(xù)遞增的序列號(hào);同時(shí)完成報(bào)文在多核/ 多線程上的負(fù)載均衡分發(fā);
報(bào)文處理單元對(duì)接收到的報(bào)文進(jìn)行處理;
流狀態(tài)監(jiān)控單元用來維護(hù)流狀態(tài)隊(duì)列,標(biāo)記報(bào)文的處理狀態(tài);保持 流狀態(tài)隊(duì)列和業(yè)務(wù)流隊(duì)列一一對(duì)應(yīng);
保序和調(diào)度發(fā)送單元根據(jù)流狀態(tài)隊(duì)列中的報(bào)文狀態(tài)向量和對(duì)應(yīng)的處 理策略,實(shí)現(xiàn)對(duì)報(bào)文調(diào)度、發(fā)送的同步。
上述報(bào)文保序裝置,所述報(bào)文狀態(tài)向量包括處理中,對(duì)應(yīng)策略為等 待;已處理,對(duì)應(yīng)策略為繼續(xù)處理;丟棄,對(duì)應(yīng)策略為丟棄。所述報(bào)文狀 態(tài)向量還包括已超時(shí),對(duì)應(yīng)策略為丟棄。
上述報(bào)文保序裝置,所述流分類標(biāo)識(shí)單元初始化每個(gè)流的當(dāng)前發(fā)送序 列號(hào),保序調(diào)度發(fā)送單元維護(hù)該發(fā)送序列號(hào);或所述保序調(diào)度發(fā)送單元初 始化每個(gè)流的當(dāng)前發(fā)送序列號(hào),并維護(hù)該發(fā)送序列號(hào)。
由于采用了以上的方案,本發(fā)明的報(bào)文保序方法及其裝置,通過流狀 態(tài)監(jiān)控,使得當(dāng)前有效發(fā)送序列號(hào)的更新粒度是可變的,可同時(shí)解決業(yè)務(wù) 流正常報(bào)文、異常報(bào)文的保序功能。當(dāng)報(bào)文異常狀態(tài)對(duì)應(yīng)不同處理策略如 需要丟棄或是處理超時(shí)后,不會(huì)造成保序功能的失敗、死等或是引起報(bào)文 的抖動(dòng)。因此,保序策略更為完善、保序功能更為穩(wěn)定有效。
圖1:現(xiàn)有技術(shù)下多核多硬件線程芯片中報(bào)文保序軟件方案之一完 全采用線程串行工作方式避免報(bào)文失序的原理示意圖。
圖2:現(xiàn)有技術(shù)下多核多硬件線程芯片中報(bào)文保序軟件方案之二完 全采用線程并行工作方式避免報(bào)文失序的原理示意圖。
圖3:現(xiàn)有技術(shù)下多核多硬件線程芯片中報(bào)文保序軟件方案之三結(jié) 合線程串行和并行工作方式避免報(bào)文失序的原理示意圖。
圖4:現(xiàn)有技術(shù)下多核多硬件線程芯片中報(bào)文保序軟件方案之四基 于流序列號(hào)的保序方案的原理示意圖。
圖5:本發(fā)明實(shí)施例一的多核多硬件線程系統(tǒng)中報(bào)文保序?qū)崿F(xiàn)原理示 意圖6:本發(fā)明實(shí)施例二具體流程圖,其中僅使用報(bào)文狀態(tài)向量"丟棄" 和"已處理";
圖7:本發(fā)明實(shí)施例三具體流程圖,同時(shí)使用報(bào)文狀態(tài)向量"丟棄"、 "已處理"和"超時(shí)";
圖8:本發(fā)明實(shí)施例實(shí)現(xiàn)保序方法的網(wǎng)絡(luò)設(shè)備示意圖。
具體實(shí)施方式
下面通過具體的實(shí)施例并結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述。 實(shí)施例一
請(qǐng)參考附圖5,為本例的報(bào)文保序裝置,包括如下各單元 Cl:接口單元501,接口完成報(bào)文的接收和發(fā)送,可將接收的報(bào)文按照 一定的規(guī)則發(fā)送到多核處理器單元502中的多個(gè)核/線程進(jìn)行處理,或是發(fā)
送來自501中多個(gè)核/線程的報(bào)文。
C2:多核處理器單元502:多核處理器單元,接收來自接口單板501的
報(bào)文、完成報(bào)文的處理、轉(zhuǎn)發(fā)和保序,并發(fā)送到接口單元501向外發(fā)送;
多核處理器單元內(nèi)部多個(gè)核/線程實(shí)現(xiàn)完全一致的功能,邏輯上包括單元
C3 C7。
C3:流分類標(biāo)識(shí)單元503:用來業(yè)務(wù)流劃分,按照給定規(guī)則將不同的報(bào)
文劃分為不同的業(yè)務(wù)流,并按照遞增的順序設(shè)置報(bào)文序列號(hào),流分類標(biāo)識(shí) 可以利用硬件機(jī)制或是軟件方法實(shí)現(xiàn)。
C4:報(bào)文處理單元504:完成報(bào)文處理,如封裝/解封裝、IP路由等。 C5:流狀態(tài)監(jiān)控單元505:監(jiān)控報(bào)文處理狀態(tài),設(shè)置相應(yīng)的業(yè)務(wù)流狀態(tài) 隊(duì)列,供保序調(diào)度發(fā)送單元506發(fā)送序列號(hào)更新使用。
C6:保序調(diào)度發(fā)送單元506:根據(jù)發(fā)送序列號(hào)、報(bào)文序列號(hào)、業(yè)務(wù)流狀 態(tài)和對(duì)應(yīng)的處理策略,按照給定調(diào)度策略,完成報(bào)文最終的調(diào)度和按序發(fā) 送。
上述系統(tǒng)中多核處理器單元內(nèi)部的單元構(gòu)成,屬于一種邏輯分類,實(shí)現(xiàn) 時(shí)可以進(jìn)行功能集成,譬如報(bào)文處理、流狀態(tài)監(jiān)控單元可以合一實(shí)現(xiàn)。采 用多核CPU的網(wǎng)絡(luò)設(shè)置中,用于報(bào)文處理和轉(zhuǎn)發(fā)的多個(gè)核完全對(duì)等,任何 一個(gè)核均可完成報(bào)文各階段處理和轉(zhuǎn)發(fā),接口單元將報(bào)文送到多個(gè)核,各 個(gè)核按照給定的業(yè)務(wù)規(guī)則,劃分為不同的業(yè)務(wù)流,譬如將具有相同的源IP、 目的IP、協(xié)議類型和端口的報(bào)文劃分為一個(gè)流。同時(shí)按照接收先后的順序 為流中報(bào)文設(shè)置連續(xù)遞增的序列號(hào);保序調(diào)度發(fā)送單元根據(jù)發(fā)送序列號(hào)、 報(bào)文序列號(hào)、業(yè)務(wù)流狀態(tài)和對(duì)應(yīng)的處理策略,實(shí)現(xiàn)報(bào)文的保序,最后完成 報(bào)文的按序發(fā)送。其中流狀態(tài)監(jiān)控單元可以監(jiān)視報(bào)文的不同處理狀態(tài),如 Processing、 Processed、 Dropped、 Time out,并分別對(duì)應(yīng)不同的策略如 等待、繼續(xù)處理和丟棄等;保序單元使用報(bào)文的狀態(tài)和對(duì)應(yīng)的處理策略完 全由用戶定制。
附圖6的報(bào)文保序方法,給出了僅使用"丟棄"和"已處理"兩個(gè)狀態(tài), 完成報(bào)文保序,具體步驟如下
步驟601:線程從接口單元接收?qǐng)?bào)文
步驟602:根據(jù)報(bào)文首部包含的信息,如接收端口、 MAC頭、IP頭、傳 輸端口號(hào)等信息劃分報(bào)文到不同的流。流劃分的規(guī)則由用戶指定,可以由 硬件機(jī)制輔助實(shí)現(xiàn),或是由軟件實(shí)現(xiàn),劃分使用信息不限于上述信息。
步驟603:根據(jù)報(bào)文處理結(jié)果標(biāo)記流中報(bào)文狀態(tài),這里為"已處理/未 處理","需丟棄/不需丟棄"。
步驟604:報(bào)文完成處理后,調(diào)度發(fā)送時(shí),調(diào)度選擇待發(fā)送的業(yè)務(wù)流, 首先獲得此業(yè)務(wù)流當(dāng)前發(fā)送序列號(hào)tx—seq—curr和業(yè)務(wù)流隊(duì)列頭報(bào)文狀態(tài) pkt—flag,由于當(dāng)前發(fā)送序列號(hào)和報(bào)文均屬于多核/多線程共享臨界資源, 因此操作之前需要加鎖,本發(fā)明對(duì)具體使用的鎖機(jī)制不限定。
步驟605:判斷報(bào)文狀態(tài)是否為"丟棄",如果為"丟棄",需要丟棄報(bào) 文(步驟606),更新流當(dāng)前發(fā)送序列號(hào)tx—seq—curr (步驟610),然后解 鎖tx—seq—curr和pkLflag (步驟611),結(jié)束本次調(diào)度發(fā)送;否則進(jìn)入步
驟607處理。
步驟607:判斷報(bào)文是否已經(jīng)處理完畢,如果未處理完畢,解鎖 tx—seq—curr和pkt—flag (步驟611),結(jié)束本次調(diào)度發(fā)送,循環(huán)等待報(bào)文 處理;否則進(jìn)入步驟608轉(zhuǎn)發(fā)報(bào)文
步驟608:判斷報(bào)文序號(hào)是否和流當(dāng)前發(fā)送序列號(hào)一致,如果不一致, 解鎖tx—seq—curr和pkt—flag (步驟611),結(jié)束本次調(diào)度發(fā)送,循環(huán)等待 報(bào)文處理;否則進(jìn)入步驟609。
步驟609:報(bào)文按序轉(zhuǎn)發(fā),更新流當(dāng)前發(fā)送序列號(hào)tx—Seq_CUiT (步驟 610),然后解鎖tx—seq—curr和pkt—flag(步驟611),結(jié)束本次調(diào)度發(fā)送。 實(shí)施例三
在附圖7給出本發(fā)明的另外一種實(shí)施方式中,這種實(shí)施方式考慮到實(shí) 際網(wǎng)絡(luò)設(shè)備可能存在的軟件或是硬件問題,造成報(bào)文處理時(shí)間過長,或是 進(jìn)入死等狀態(tài)。增加對(duì)報(bào)保序處理中文是否超時(shí)的判斷,如果未超時(shí),轉(zhuǎn) 發(fā)報(bào)文,否則丟棄報(bào)文,具體步驟如下
步驟701 步驟706分別和附圖6中的步驟601 步驟606,步驟708 步驟712分別和步驟607 步驟611完全一致,這里不再贅述,這里只描 述新加入的步驟-
步驟707:如果步驟706中報(bào)文狀態(tài)不是丟棄,進(jìn)入步驟707,判斷報(bào) 文是否超時(shí),如果超時(shí),需要丟棄報(bào)文(步驟706),更新流當(dāng)前發(fā)送序列 號(hào)tx—seq—curr(步驟711,然后解鎖tx—seq—curr和pkt—flag(步驟712), 結(jié)束本次調(diào)度發(fā)送;否則進(jìn)入步驟708;
附圖6和附圖7給出的本發(fā)明的具體實(shí)施例中,報(bào)文保序使用了不同 的流狀態(tài),除本發(fā)明示例的狀態(tài)外,還可以是其他任意用戶指定的狀態(tài); 流狀態(tài)的使用,使得當(dāng)前有效發(fā)送序列號(hào)的更新粒度是可變的,舉例來說, 某個(gè)業(yè)務(wù)流的報(bào)文A、 B、 C、 D、 E、 F、 G、 H依次進(jìn)入設(shè)備處理,由于某種 異?;蚴浅瑫r(shí),B、 C、 D、 F、 G最后被設(shè)備丟棄,只有A、 E、 H需要按序 依次發(fā)送,對(duì)應(yīng)E的發(fā)送序列號(hào)和對(duì)應(yīng)A的發(fā)送序列號(hào)之差為3,而對(duì)應(yīng)H 的發(fā)送序列號(hào)和對(duì)應(yīng)E的發(fā)送序列號(hào)之差為2,即當(dāng)前有效發(fā)送序列號(hào)的 更新粒度是可變的。而發(fā)送序列號(hào)的初始化可以由流分類標(biāo)識(shí)單元或保序 調(diào)度發(fā)送單元執(zhí)行。
附圖8給出實(shí)現(xiàn)上述報(bào)文保序方法的一種網(wǎng)絡(luò)設(shè)備示意圖,包括接口
單元80K多核處理器單元802、存儲(chǔ)單元803和總線804。 一般而言,多 核處理器單元完成對(duì)接口單元、存儲(chǔ)單元的初始化和控制,負(fù)責(zé)完成報(bào)文 的流分類標(biāo)識(shí)、處理和保序轉(zhuǎn)發(fā),其上可以運(yùn)行非特定的操作系統(tǒng)。存儲(chǔ) 單元用于緩存報(bào)文,在多核處理器的適當(dāng)控制下維護(hù)業(yè)務(wù)流報(bào)文隊(duì)列、流 狀態(tài)隊(duì)列,同時(shí)作為共享設(shè)備,可以用來存儲(chǔ)保序時(shí)多個(gè)核/線程的共享資 源如發(fā)送序列號(hào)。接口單元作為網(wǎng)絡(luò)設(shè)備和其他設(shè)備的接口,可以但不限 定為以太網(wǎng)接口、幀中繼接口、 ATM接口等等??偩€設(shè)備用來完成設(shè)備內(nèi) 部各單元之間的通信,數(shù)據(jù)交互。本發(fā)明中多核處理器單元不限定特殊的 處理器,甚至不限定為多核處理器,多個(gè)單處理器單元之間構(gòu)成的系統(tǒng), 同樣可以實(shí)踐本發(fā)明,附圖示意圖只是描述而非限制實(shí)現(xiàn)的細(xì)節(jié)。
以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說 明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說明。對(duì)于本發(fā)明所屬技術(shù) 領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若 干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種報(bào)文保序方法,包括如下的步驟11)流分類標(biāo)識(shí)單元對(duì)接收到的報(bào)文首先進(jìn)行流分類和標(biāo)識(shí)操作,將報(bào)文按給定規(guī)則劃分為不同的業(yè)務(wù)流,同時(shí)為流中每個(gè)報(bào)文分配一個(gè)報(bào)文序列號(hào),同一流中序列號(hào)連續(xù)遞增分配;然后將報(bào)文均衡分發(fā)到并行的多個(gè)核/線程中;12)報(bào)文處理單元對(duì)報(bào)文進(jìn)行處理時(shí),流狀態(tài)監(jiān)控單元為每個(gè)業(yè)務(wù)流隊(duì)列維護(hù)一個(gè)相應(yīng)的流狀態(tài)隊(duì)列,實(shí)時(shí)監(jiān)控報(bào)文狀態(tài),設(shè)置每個(gè)報(bào)文的狀態(tài)向量,對(duì)于不同的報(bào)文狀態(tài)向量,指定不同的處理策略;13)保序調(diào)度發(fā)送單元獲取業(yè)務(wù)流當(dāng)前發(fā)送序列號(hào)、報(bào)文序列號(hào)、業(yè)務(wù)流報(bào)文狀態(tài)向量和對(duì)應(yīng)的處理策略;鎖定業(yè)務(wù)流當(dāng)前發(fā)送序列號(hào)、相應(yīng)狀態(tài)向量;根據(jù)不同報(bào)文狀態(tài)向量對(duì)應(yīng)的處理策略,實(shí)現(xiàn)對(duì)報(bào)文調(diào)度、發(fā)送的同步;同時(shí)更新當(dāng)前發(fā)送序列號(hào),解鎖發(fā)送序列號(hào)和報(bào)文狀態(tài)向量。
2、 如權(quán)利要求1所述的報(bào)文保序方法,其特征是所述步驟13)的 具體過程包括如果某個(gè)報(bào)文狀態(tài)向量對(duì)應(yīng)的處理策略為繼續(xù)處理,當(dāng)業(yè) 務(wù)流當(dāng)前發(fā)送序列號(hào)和報(bào)文序列號(hào)相同時(shí),則轉(zhuǎn)發(fā)報(bào)文,更新當(dāng)前發(fā)送序 列號(hào),解鎖發(fā)送序列號(hào)和報(bào)文狀態(tài)向量;否則解鎖發(fā)送序列號(hào)和報(bào)文狀態(tài) 向量,結(jié)束本次調(diào)度發(fā)送。
3、 如權(quán)利要求2所述的報(bào)文保序方法,其特征是所述步驟13)的 具體過程還包括如果某個(gè)報(bào)文狀態(tài)向量對(duì)應(yīng)的處理策略為丟棄,則丟棄 該報(bào)文,更新當(dāng)前發(fā)送序列號(hào),解鎖發(fā)送序列號(hào)和報(bào)文狀態(tài)向量,結(jié)束本 次調(diào)度發(fā)送。
4、 如權(quán)利要求2或3所述的報(bào)文保序方法,其特征是所述步驟13) 的具體過程還包括如果某個(gè)報(bào)文狀態(tài)向量對(duì)應(yīng)的處理策略為等待,解鎖 發(fā)送序列號(hào)和報(bào)文狀態(tài)向量,結(jié)束本次調(diào)度發(fā)送。
5、 如權(quán)利要求3所述的報(bào)文保序方法,其特征是如果所述報(bào)文狀態(tài) 向量為超時(shí),則對(duì)應(yīng)策略為丟棄報(bào)文。
6、 如權(quán)利要求1或2或3所述的報(bào)文保序方法,其特征是由流分類 標(biāo)識(shí)單元初始化每個(gè)流的當(dāng)前發(fā)送序列號(hào),由保序調(diào)度發(fā)送單元維護(hù)該發(fā) 送序列號(hào);或由保序調(diào)度發(fā)送單元初始化每個(gè)流的當(dāng)前發(fā)送序列號(hào),并維 護(hù)該發(fā)送序列號(hào)。
7、 一種報(bào)文保序裝置,包括流分類標(biāo)識(shí)單元按照給定規(guī)則,將接收到的報(bào)文劃分為不同的業(yè)務(wù) 流中,為流中每個(gè)報(bào)文分配一個(gè)連續(xù)遞增的序列號(hào);同時(shí)完成報(bào)文在多核/ 多線程上的負(fù)載均衡分發(fā);報(bào)文處理單元對(duì)接收到的報(bào)文進(jìn)行處理;流狀態(tài)監(jiān)控單元用來維護(hù)流狀態(tài)隊(duì)列,標(biāo)記報(bào)文的處理狀態(tài);保持 流狀態(tài)隊(duì)列和業(yè)務(wù)流隊(duì)列一一對(duì)應(yīng);保序調(diào)度發(fā)送單元根據(jù)流狀態(tài)隊(duì)列中的報(bào)文狀態(tài)向量和對(duì)應(yīng)的處理 策略,實(shí)現(xiàn)對(duì)報(bào)文調(diào)度、發(fā)送的同步。
8、 如權(quán)利要求7所述報(bào)文保序裝置,其特征是所述報(bào)文狀態(tài)向量包 括處理中,對(duì)應(yīng)策略為等待;已處理,對(duì)應(yīng)策略為繼續(xù)處理;丟棄,對(duì) 應(yīng)策略為丟棄。 '
9、 如權(quán)利要求8所述報(bào)文保序裝置,其特征是所述報(bào)文狀態(tài)向量還 包括已超時(shí),對(duì)應(yīng)策略為丟棄。
10、 如權(quán)利要求7-9中任一項(xiàng)所述報(bào)文保序裝置,其特征是所述流 分類標(biāo)識(shí)單元初始化每個(gè)流的當(dāng)前發(fā)送序列號(hào),所述保序調(diào)度發(fā)送單元維 護(hù)該發(fā)送序列號(hào);或所述保序調(diào)度發(fā)送單元初始化每個(gè)流的當(dāng)前發(fā)送序列 號(hào),并維護(hù)該發(fā)送序列號(hào)。
全文摘要
本發(fā)明公開了一種報(bào)文保序方法及其裝置,該裝置包括流分類標(biāo)識(shí)單元按照給定規(guī)則,將接收到的報(bào)文劃分為不同的業(yè)務(wù)流中,為流中每個(gè)報(bào)文分配一個(gè)連續(xù)遞增的序列號(hào);同時(shí)完成報(bào)文在多核/多線程上的負(fù)載均衡分發(fā);報(bào)文處理單元對(duì)接收到的報(bào)文進(jìn)行處理;流狀態(tài)監(jiān)控單元用來維護(hù)流狀態(tài)隊(duì)列,標(biāo)記報(bào)文的處理狀態(tài);保持流狀態(tài)隊(duì)列和業(yè)務(wù)流隊(duì)列一一對(duì)應(yīng);保序和調(diào)度發(fā)送單元根據(jù)流狀態(tài)隊(duì)列中的報(bào)文狀態(tài)向量和對(duì)應(yīng)的處理策略,實(shí)現(xiàn)對(duì)報(bào)文調(diào)度、發(fā)送的同步。本發(fā)明通過可變粒度流發(fā)送序列號(hào),可同時(shí)解決業(yè)務(wù)流正常報(bào)文、異常報(bào)文的保序功能;保序策略更為完善、保序功能更為穩(wěn)定有效。
文檔編號(hào)H04L12/56GK101175033SQ20071007751
公開日2008年5月7日 申請(qǐng)日期2007年11月27日 優(yōu)先權(quán)日2007年11月27日
發(fā)明者劉志遠(yuǎn), 俊 姚, 郭樹波 申請(qǐng)人:中興通訊股份有限公司