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