專利名稱:一種報文處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體的講是一種報文處理方法和裝置。
背景技術(shù):
?;顚σ恍┓植际较到y(tǒng)很重要(保活,即兩個設(shè)備實體為了知道對方的 工作狀態(tài)而進(jìn)行的檢測機(jī)制),通過它通訊的兩端可以互相知道對方的工作
狀態(tài)。比如TCP協(xié)議就需要?;睿⑦B接的通訊雙方每隔一定時間會向?qū)Ψ?發(fā)出?;顖笪模绻麤]有這個?;顖笪?,如果通訊的一方因為掉電或者死機(jī) 不在了,另一方將永遠(yuǎn)等待,那么該連接占用的資源將永遠(yuǎn)無法被清掉。
如圖l所示為現(xiàn)有技術(shù)中?;顖笪牡奶幚砹鞒虉D。定義兩個設(shè)備實體A和 B, A和B各自獨(dú)立運(yùn)行自己的軟件系統(tǒng),A和B通過他們之間的互聯(lián)網(wǎng)絡(luò)來通訊。
A每隔一段時間(比如l秒)向B發(fā)送一個保活報文。
B的硬件接收到這個報文,存儲于硬件收幀緩沖區(qū)中空閑的報文緩沖區(qū)Q1 中,并將Q1置為非空閑狀態(tài)。然后重新申請一個硬件收幀緩沖區(qū)外的報文緩 沖區(qū)R1,該報文緩沖區(qū)R1不屬于所述硬件收幀緩沖區(qū),如果申請失敗,則將Q l恢復(fù)為空閑狀態(tài),直接結(jié)束。
如果成功則復(fù)制Q1的內(nèi)容到R1中,其中,網(wǎng)絡(luò)上報文的接收都是通過收 幀緩沖區(qū)來接收的,為了避免收幀緩沖區(qū)中的報文緩沖區(qū)被協(xié)議棧上的其它 報文處理單元持久占用,導(dǎo)致無法繼續(xù)收幀,因此需要進(jìn)行復(fù)制。將Q1置為 空閑狀態(tài)。然后將R1傳遞給?;钐幚韱卧;钐幚韱卧伦罱盏紸保活 報文的時間,然后釋放掉R1,最后結(jié)束。
B每隔一段時間(大于A發(fā)送的間隔)會去檢測一下在這段時間內(nèi)是否收 到A發(fā)來的?;顖笪?,如果沒有則認(rèn)為?;钍。駝t認(rèn)為本次?;畛晒?。同樣A對B?;钜彩且粯拥倪^程。
所述的報文緩沖區(qū)是用于交換機(jī)保存從網(wǎng)絡(luò)上收上來和要發(fā)送出去的報 文,每個報文緩沖區(qū)保存一個報文,每個報文緩沖區(qū)都占用一定的內(nèi)存大小, 因此受到系統(tǒng)內(nèi)存大小的限制,系統(tǒng)可以容納的報文緩沖區(qū)的數(shù)目是有限的。
收幀緩沖區(qū)是指硬件收幀時用到的一個數(shù)據(jù)結(jié)構(gòu),里面有固定數(shù)目的報 文緩沖區(qū)及每個報文緩沖區(qū)的狀態(tài)信息(比如是否空閑)。收幀單元在收幀時 會讀取報文緩沖區(qū)的狀態(tài),尋找第一個空閑的報文緩沖區(qū),并把收到的報文 寫入其中,并將報文緩沖區(qū)的狀態(tài)置為非空閑;當(dāng)報文的處理單元對該報文 進(jìn)行處理后,由該收幀單元將所述報文緩沖區(qū)置為空閑狀態(tài)。如果沒有空閑 的報文緩沖區(qū),硬件將無法收幀。該緩沖區(qū)在硬件驅(qū)動初始化的時候申請, 為了保證硬件收幀的效率,里面的這些報文緩沖區(qū)永遠(yuǎn)不能被釋放。
本發(fā)明的發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下不 足,申請報文緩沖區(qū)R1時如果失敗,則會直接導(dǎo)致Q1被置為空閑狀態(tài),本次 保活操作將會結(jié)束,而如果在B的檢測例程兩次檢測的時間間隔內(nèi),連續(xù)的出 現(xiàn)報文緩沖區(qū)申請失敗的情況,就會導(dǎo)致保活失敗。設(shè)備實體B就會認(rèn)為設(shè)備 實體A不存在,從而中斷兩個設(shè)備實體的通信。
發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供一種報文處理方法和裝置,用于解決現(xiàn)有 技術(shù)中對所有報文均采用兩個報文緩沖區(qū)復(fù)制報文,而如果在復(fù)制過程中申 請新的報文緩沖區(qū)失敗,會導(dǎo)致?;顖笪奶幚硎〉膯栴}。
為了解決上述現(xiàn)有問題,本發(fā)明實施例提供了一種報文處理方法,該方 法包括將接收到的報文存儲于硬件收幀緩沖區(qū)中的報文緩沖區(qū)中;判斷所 述報文緩沖區(qū)中的報文類型是否為預(yù)定義類型;將符合預(yù)定義類型報文所在 的報文緩沖區(qū)投遞給相應(yīng)的處理單元。為了解決上述現(xiàn)有問題,本發(fā)明實施例還提供了一種報文處理裝置,該 裝置包括報文接收單元,用于接收報文,并將所述報文存儲于硬件收幀緩 沖區(qū)中的報文緩沖區(qū);判斷單元,用于判斷所述報文緩沖區(qū)中存儲報文的類 型是否為預(yù)定義的報文類型;報文處理單元,用于根據(jù)所述判斷結(jié)果,將所 述符合預(yù)定類型的報文進(jìn)行相應(yīng)處理。
本發(fā)明實施例的有益效果在于,可以針對不同的報文,即對處理簡單的 報文不進(jìn)行報文緩沖區(qū)的復(fù)制,直接將該報文從報文緩沖區(qū)投遞到報文處理 單元,減少接收報文時所使用的報文緩沖區(qū)的資源。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部 分,并不構(gòu)成對本發(fā)明的限定。在附圖中
圖1所示為現(xiàn)有技術(shù)中保活報文的處理流程圖2所示為本發(fā)明報文處理方法的實施例流程圖3所示為本發(fā)明?;顖笪奶幚矸椒ǖ膶嵤├鞒虉D4所示為本發(fā)明狀態(tài)査詢報文處理方法的實施例流程圖5所示為本發(fā)明報文處理方法中發(fā)送報文的實施例流程圖6所示為本發(fā)明?;顖笪奶幚矸椒ㄖ邪l(fā)送?;顖笪膶嵤├鞒虉D7所示為本發(fā)明狀態(tài)查詢報文處理方法中發(fā)送狀態(tài)響應(yīng)報文實施例流
程圖8所示為本發(fā)明報文處理裝置的實施例示意圖9所示為本發(fā)明報文處理裝置中發(fā)送報文部分的實施例示意圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面結(jié)合實施方式和附圖,對本發(fā)明做進(jìn)一步詳細(xì)說明。在此,本發(fā)明的示意性實施方式及其 說明用于解釋本發(fā)明,但并不作為對本發(fā)明的限定。
本發(fā)明實施例提供一種報文處理方法和裝置。以下結(jié)合附圖對本發(fā)明進(jìn) 行詳細(xì)說明。
如圖2所示為本發(fā)明報文處理方法的實施例流程圖。 步驟201,將接收到的報文存儲于硬件收幀緩沖區(qū)中的報文緩沖區(qū)中。 步驟202,判斷所述報文緩沖區(qū)中的報文類型是否為預(yù)定義類型。 步驟203,將符合預(yù)定義類型報文所在的報文緩沖區(qū)投遞給相應(yīng)的處理單元。
作為本發(fā)明的一個實施例,所述報文類型包括?;顖笪摹?作為本發(fā)明的一個實施例,在所述步驟203之后還包括,所述相應(yīng)的處理
單元處理完成后,將所述報文緩沖區(qū)置為空閑狀態(tài)。
作為本發(fā)明的一個實施例,所述相應(yīng)的處理單元包括?;钐幚韱卧?。 作為本發(fā)明的一個實施例,所述步驟202中,如果所述報文的類型不是所
述預(yù)定義類型則申請第二報文緩沖區(qū),將所述報文緩沖區(qū)中的報文復(fù)制到第
二報文緩沖區(qū)中,并將該第二報文緩沖區(qū)投遞給相應(yīng)的處理單元進(jìn)行處理,
即使用現(xiàn)有技術(shù)中的報文接收處理流程進(jìn)行處理。
如圖3所示為本發(fā)明保活報文處理方法的實施例流程圖。
步驟301,將接收到的幀存放于硬件收幀緩沖區(qū)中空閑的報文緩沖區(qū),將
該報文緩沖區(qū)置為非空閑狀態(tài)。
步驟302,判斷所述幀是否為?;顖笪摹F渲锌梢酝ㄟ^判斷報文特定比特
位以識別所述?;顖笪?。如果為?;顖笪膭t進(jìn)入步驟303。
步驟303,將所述報文緩沖區(qū)中的?;顖笪陌l(fā)送給保活處理單元。 作為本發(fā)明的一個實施例,在所述步驟303之后還包括,所述?;钐幚韱?br>
元根據(jù)所述?;顖笪倪M(jìn)行保活處理后,將所述報文緩沖區(qū)置為空閑狀態(tài)。
作為本發(fā)明的一個實施例,所述步驟302中,如果所述報文不是?;顖笪膭t申請第二報文緩沖區(qū),所述第二報文緩沖區(qū)不屬于所述硬件收幀緩沖區(qū), 將所述報文緩沖區(qū)的內(nèi)容復(fù)制到所述第二報文緩沖區(qū),并對該第二報文緩沖 區(qū)中的報文內(nèi)容進(jìn)行處理。即現(xiàn)有技術(shù)中對接收到報文的處理流程。
在本發(fā)明實施例中,在接收?;顖笪牡戎恍枰龊唵翁幚淼奶囟▓笪臅r, 利用特定的緩沖區(qū)進(jìn)行存儲,所述緩沖區(qū)不會在每次報文處理完成后就被釋 放,因此不會造成由于申請報文緩沖區(qū)不成功的情況下,?;顖笪牡忍囟▓?文接收不成功的不足,從而避免了由于沒有成功接收?;顖笪脑斐烧`認(rèn)為發(fā) 送方不存在,而影響通信。
如圖4所示為本發(fā)明狀態(tài)査詢報文處理方法的實施例流程圖。 機(jī)箱式交換機(jī)有管理板和線卡,管理板負(fù)責(zé)管理整個交換機(jī)系統(tǒng),所述 線卡用于連接所述交換機(jī)的網(wǎng)線接口。所述管理板需要隨時獲取所述線卡的 狀態(tài)信息,所以要隨時向線卡發(fā)送狀態(tài)査詢報文,線卡接收到狀態(tài)查詢報文 后進(jìn)行如下步驟-
步驟401,將接收到的幀存放于硬件收幀緩沖區(qū)中空閑的報文緩沖區(qū),將
該報文緩沖區(qū)置為非空閑狀態(tài)。
步驟402,判斷所述幀是否為狀態(tài)查詢報文。其中可以通過判斷報文特定 比特位以識別所述狀態(tài)査詢報文。如果為狀態(tài)査詢報文則進(jìn)入步驟403。
步驟403 ,將所述報文緩沖區(qū)中的狀態(tài)査詢報文發(fā)送給狀態(tài)處理單元。
由狀態(tài)處理單元向管理板返回狀態(tài)信息。
如圖5所示為本發(fā)明報文處理方法中發(fā)送報文的實施例流程圖。 步驟501,在硬件初始化時在內(nèi)存中申請至少一個報文緩沖區(qū)。 步驟502,將所述報文緩沖區(qū)內(nèi)填充要發(fā)送的報文。 步驟503,發(fā)送所述報文。
作為本發(fā)明的一個實施例,所述步驟501中,所述在硬件初始化時申請至 少一個報文緩沖區(qū)是指,在各種業(yè)務(wù)運(yùn)行前申請所述至少一個報文緩沖區(qū)。 作為本發(fā)明的一個實施例,所述報文包括?;顖笪摹W鳛楸景l(fā)明的一個實施例,在所述發(fā)送報文之后還包括,重復(fù)利用所述 報文緩沖區(qū),并不釋放所述報文緩沖區(qū)。
如圖6所示為本發(fā)明?;顖笪奶幚矸椒ㄖ邪l(fā)送?;顖笪膶嵤├鞒虉D。
步驟601,在硬件初始化時申請至少一個報文緩沖區(qū)。
步驟602,將?;顖笪奶畛涞剿鰣笪木彌_區(qū)。
步驟603,調(diào)用硬件發(fā)送所述報文緩沖區(qū)內(nèi)的保活報文。
作為本發(fā)明的一個實施例,在預(yù)定時間間隔后,例如l秒之后重復(fù)執(zhí)行步 驟602和步驟603,重復(fù)發(fā)送?;顖笪?。
在本發(fā)明實施例中,在發(fā)送?;顖笪牡刃枰貜?fù)發(fā)送的特定報文時,利 用特定的緩沖區(qū)進(jìn)行存儲,所述緩沖區(qū)不會在每次發(fā)送完報文后就被釋放, 因此不會造成由于申請報文緩沖區(qū)不成功的情況下,?;顖笪牡忍囟▓笪陌l(fā) 送不成功的不足,從而避免了由于沒有成功發(fā)送?;顖笪脑斐闪藢Ψ皆O(shè)備實 體誤認(rèn)為發(fā)送方不存在,而影響通信。
如圖7所示為本發(fā)明狀態(tài)査詢報文處理方法中發(fā)送狀態(tài)響應(yīng)報文實施例 流程圖。
在管理板端進(jìn)行如下步驟
步驟701,在硬件初始化時申請至少一個報文緩沖區(qū)。 步驟702,將狀態(tài)查詢報文填充到所述報文緩沖區(qū)。 步驟703,調(diào)用硬件發(fā)送所述報文緩沖區(qū)內(nèi)的狀態(tài)查詢報文。 作為本發(fā)明的一個實施例,在預(yù)定時間間隔后,例如l秒之后重復(fù)執(zhí)行步 驟702和步驟703,重復(fù)發(fā)送狀態(tài)査詢報文到狀態(tài)處理單元。 如圖8所示為本發(fā)明報文處理裝置的實施例示意圖。
包括報文接收單元801,報文緩沖區(qū)802,判斷單元803,報文處理單元804。
所述報文接收單元801,用于接收所述報文,并將所述報文存儲于硬件收 幀緩沖區(qū)中的所述報文緩沖區(qū)802。所述判斷單元803,用于判斷所述報文緩沖區(qū)802中報文的類型是否為預(yù) 定義的報文類型。
所述報文處理單元804,用于根據(jù)所述判斷結(jié)果,將所述符合預(yù)定類型的 報文進(jìn)行相應(yīng)處理。
作為本發(fā)明的一個實施例,還包括報文復(fù)制單元,用于根據(jù)所述判斷結(jié) 果,將所述報文緩沖區(qū)802中的報文復(fù)制到第二報文緩沖區(qū)中,并將該第二報 文緩沖區(qū)投遞給相應(yīng)的報文處理單元進(jìn)行處理,即使用現(xiàn)有技術(shù)中的報文處 理單元進(jìn)行處理。
作為本發(fā)明的一個實施例,所述報文處理單元包括,?;钐幚韱卧?如圖9所示為本發(fā)明報文處理裝置中發(fā)送報文部分的實施例示意圖。 包括緩存申請單元901,報文緩沖區(qū)902,報文填充單元903,發(fā)送單元904。
所述緩存申請單元901,用于在硬件初始化時申請至少一個報文緩沖區(qū)902。
所述報文填充單元903 ,用于將所述報文緩沖區(qū)902內(nèi)填充要發(fā)送的報文。 所述發(fā)送單元904,用于將所述報文發(fā)送出去。
本發(fā)明的實施例的有益效果在于,取消了現(xiàn)有技術(shù)中對所有報文均采用 兩個報文緩沖區(qū)復(fù)制報文,而在復(fù)制過程中申請新的報文緩沖區(qū)失敗,從而 導(dǎo)致?;顖笪奶幚硎〉膯栴}。并且可以針對不同的報文,即對處理簡單的 報文不進(jìn)行報文緩沖區(qū)的復(fù)制,直接將該報文從報文緩沖區(qū)投遞到報文處理 單元,減少接收報文時所使用的報文緩沖區(qū)的資源。
以上所述的具體實施方式
,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行 了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施方式
而 已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做 的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種報文處理的方法,其特征在于該方法包括將接收到的報文存儲于硬件收幀緩沖區(qū)中的報文緩沖區(qū)中;判斷所述報文緩沖區(qū)中的報文類型是否為預(yù)定義類型;將符合預(yù)定義類型報文所在的報文緩沖區(qū)投遞給相應(yīng)的處理單元。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)定義報文類型包括?;顖笪幕蛘郀顟B(tài)查詢報文。
3. 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述相應(yīng)的處理單元包括?;钐幚韱卧?br>
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所述報文緩沖區(qū)中的報文類型是否為預(yù)定義類型中還包括,如果所述報文的類型不是所述預(yù)定義類型,則申請第二報文緩沖區(qū),將所述報文緩沖區(qū)中的報文復(fù)制到第二報文緩沖區(qū)中,并將該第二報文緩沖區(qū)投遞給相應(yīng)的處理單元進(jìn)行處理。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括發(fā)送報文的步驟在硬件初始化時,申請至少一個報文緩沖區(qū);將所述報文緩沖區(qū)內(nèi)填充要發(fā)送的報文;發(fā)送所述報文。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述在硬件初始化時申請至少一個報文緩沖區(qū)是指,在各種業(yè)務(wù)運(yùn)行前申請所述至少一個報文緩沖區(qū)。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,在所述發(fā)送報文之后還包括,不釋放所述報文緩沖區(qū),重復(fù)利用所述報文緩沖區(qū)。
8. —種報文處理裝置,其特征在于該裝置包括報文接收單元,用于接收報文,并將所述報文存儲于硬件收幀緩沖區(qū)中的報文緩沖區(qū);判斷單元,用于判斷所述報文緩沖區(qū)中存儲報文的類型是否為預(yù)定義的報文類型;報文處理單元,用于根據(jù)所述判斷結(jié)果,將所述符合預(yù)定類型的報文進(jìn)行相應(yīng)處理。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述報文處理單元包括?;钐幚韱卧?。
10. 根據(jù)權(quán)利要求8所述的裝置,其特征在于該裝置還包括緩存申請單元,用于在硬件初始化時,申請至少一個報文緩沖區(qū);報文填充單元,用于將所述報文緩沖區(qū)內(nèi)填充要發(fā)送的報文;發(fā)送單元,用于將所述報文發(fā)送出去。
全文摘要
本發(fā)明涉及通信領(lǐng)域,解決現(xiàn)有技術(shù)中對所有報文均采用兩個報文緩沖區(qū)復(fù)制報文,而如果在復(fù)制過程中申請新的報文緩沖區(qū)失敗,會導(dǎo)致?;顖笪奶幚硎〉膯栴},提供了一種報文處理方法和裝置,該接收方法包括將接收到的報文存儲于報文緩沖區(qū)中;判斷所述報文緩沖區(qū)中的報文類型是否為預(yù)定義類型;將符合預(yù)定義類型報文所在的報文緩沖區(qū)投遞給相應(yīng)的處理單元。本發(fā)明的有益效果在于,可以針對不同的報文,直接將該報文從報文緩沖區(qū)投遞到報文處理單元,減少接收報文時所使用的報文緩沖區(qū)的資源。
文檔編號H04L12/26GK101494569SQ200910004509
公開日2009年7月29日 申請日期2009年3月6日 優(yōu)先權(quán)日2009年3月6日
發(fā)明者畢君曉 申請人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司