控制信息與數據分離的雙緩存報文處理方法
【技術領域】
[0001]本發明涉及通信領域,具體提供一種控制信息與數據分離的雙緩存報文處理方法。
【背景技術】
[0002]報文(message)是網絡中交換與傳輸的數據單元,即站點一次性要發送的數據±夬。報文包含了將要發送的完整數據信息,其長短很不一致,長度不限且可變。作為網絡傳輸的單位,報文在傳輸過程中會不斷封裝成分組、包、幀,封裝的方式就是添加一些信息段,那些就是報文頭以一定格式組織起來的數據,里面有報文類型、報文版本、報文長度、報文實體等信息。
[0003]現有的報文轉發機制是,使用單個緩存將控制信息與數據一起存儲,利用緩存的空滿指示讀寫緩存。這種方式的缺點是,當控制信息和數據緩存使用單個緩存時,一方面實現起來比較復雜,另一方面容易造成緩存死鎖現象。因此,本領域需要一種新的報文轉發機制來解決上述問題。
【發明內容】
[0004]為了解決前述問題,即為了解決現有報文轉發機制過于復雜且容易造成緩存死鎖的問題,本發明提供一種控制信息與數據分離的雙緩存報文處理方法。該方法的特征在于包括下列步驟:提供獨立的數據緩存和控制信息緩存;將所述報文的數據寫入所述數據緩存中;以及將所述報文的控制信息寫入所述控制信息緩存中。
[0005]在上述控制信息與數據分離的雙緩存報文處理方法的優選實施方式中,在將所述報文的數據寫入所述數據緩存中之后,計算所述報文的長度和開始寫入地址并將所述長度和開始寫入地址寫入到所述控制信息緩存中。
[0006]在上述控制信息與數據分離的雙緩存報文處理方法的優選實施方式中,在將所述報文的控制信息寫入所述控制信息緩存中之后,根據所述控制信息緩存中的所述報文的長度和開始寫入地址從所述數據緩存中將所述報文讀取出來。
[0007]在上述控制信息與數據分離的雙緩存報文處理方法的優選實施方式中,將所述報文的數據寫入所述數據緩存中的步驟進一步包括根據所述報文的起始和結束標志將所述報文存儲到所述數據緩存中。
[0008]在上述控制信息與數據分離的雙緩存報文處理方法的優選實施方式中,在將所述報文的數據寫入所述數據緩存期間,對所述報文進行分析和計算。
[0009]在上述控制信息與數據分離的雙緩存報文處理方法的優選實施方式中,所述數據緩存的空間隨所述報文的長度而變化。
[0010]在上述控制信息與數據分離的雙緩存報文處理方法的優選實施方式中,所述控制信息緩存的空間是固定的。
[0011]本領域技術人員容易理解的是,與傳統的將控制信息和數據存儲在同一個緩存中的方式相比,本發明大幅度簡化了設計操作,同時,本發明的方法可以避免讀寫控制的死鎖,因為控制緩存中存儲著每個報文的起始地址與長度,即使一個報文的讀寫有問題,也不會影響下一個報文的讀寫,這種轉發機制具有自恢復的功能。
【附圖說明】
[0012]圖1是根據本發明的控制信息與數據分離的雙緩存報文處理方法的流程圖。
【具體實施方式】
[0013]下面參照附圖來描述本發明的優選實施方式。本領域技術人員應當理解的是,這些實施方式僅用于解釋本發明的技術原理,并非旨在限制本發明的保護范圍。
[0014]下面結合圖1來描述本發明的技術方案。圖1是根據本發明的控制信息與數據分離的雙緩存報文處理方法的流程圖。如圖1所示,本發明的方法包括起始于步驟S10。在步驟SlO中,本發明的方法提供獨立的數據緩存和控制信息緩存。接下來,在步驟S20中,本發明的方法將所述報文的數據寫入所述數據緩存中。然后,在步驟S30中,本發明的方法計算所述報文的長度和開始寫入地址并將所述長度和開始寫入地址寫入到所述控制信息緩存中。之后,在步驟S40中,本發明的方法將所述報文的控制信息寫入所述控制信息緩存中。最后,在步驟S50中,本發明的方法根據所述控制信息緩存中的所述報文的長度和開始寫入地址從所述數據緩存中將所述報文讀取出來。
[0015]此外,在本發明的技術方案中,將所述報文的數據寫入所述數據緩存中的步驟進一步包括根據所述報文的起始和結束標志將所述報文存儲到所述數據緩存中。并且,在將所述報文的數據寫入所述數據緩存期間,本發明的方法還對所述報文進行分析和計算。另夕卜,在本發明的技術方案中,所述數據緩存的空間可以隨所述報文的長度而變化,但是所述控制信息緩存的空間是固定的。
[0016]綜上所述,本發明的報文轉發機制是,首先根據報文的起始和結束標志將整個報文的數據存儲在數據緩存中,并且在處理過程中對報文進行分析和計算;其次,在報文寫入結束時,計算出報文的長度以及報文的開始寫入地址并將相關信息寫入到控制信息緩存;最后,根據控制信號緩存的空滿情況,讀寫控制信息,每次讀對應一個報文,根據控制信息的起始地址和報文長度,從數據緩存中將報文讀取出來,并向后繼續傳輸。
[0017]本發明的關鍵點是,將報文的控制信息與數據緩存分離,每個報文的數據緩存空間隨報文的長短而變化,但每個報文的控制信息緩存空間是固定的,同時在控制信息緩存中存儲報文在數據緩存中相關信息,利用控制信息完成對數據緩存的讀取操作。
[0018]至此,已經結合附圖所示的優選實施方式描述了本發明的技術方案,但是,本領域技術人員容易理解的是,本發明的保護范圍顯然不局限于這些【具體實施方式】。在不偏離本發明的原理的前提下,本領域技術人員可以對相關技術特征作出等同的更改或替換,這些更改或替換之后的技術方案都將落入本發明的保護范圍之內。例如,上文雖然按照特定的順序描述了本發明的操作步驟,但是,在不偏離本發明的基本原理一即將報文的控制信息與數據緩存分離的前提下,本領域技術人員可以根據需要采用任何特定的順序、或者刪除已有步驟或增加額外的步驟,調整之后的技術方案仍將落入本發明的保護范圍。
【主權項】
1.一種控制信息與數據分離的雙緩存報文處理方法,其特征在于包括下列步驟: 提供獨立的數據緩存和控制信息緩存; 將所述報文的數據寫入所述數據緩存中;以及 將所述報文的控制信息寫入所述控制信息緩存中。2.根據權利要求1所述的控制信息與數據分離的雙緩存報文處理方法,其特征在于,在將所述報文的數據寫入所述數據緩存中之后,計算所述報文的長度和開始寫入地址并將所述長度和開始寫入地址寫入到所述控制信息緩存中。3.根據權利要求2所述的控制信息與數據分離的雙緩存報文處理方法,其特征在于,在將所述報文的控制信息寫入所述控制信息緩存中之后,根據所述控制信息緩存中的所述報文的長度和開始寫入地址從所述數據緩存中將所述報文讀取出來。4.根據權利要求1至3中任一項所述的控制信息與數據分離的雙緩存報文處理方法,其特征在于,將所述報文的數據寫入所述數據緩存中的步驟進一步包括根據所述報文的起始和結束標志將所述報文存儲到所述數據緩存中。5.根據權利要求1至4中任一項所述的控制信息與數據分離的雙緩存報文處理方法,其特征在于,在將所述報文的數據寫入所述數據緩存期間,對所述報文進行分析和計算。6.根據權利要求1至5中任一項所述的控制信息與數據分離的雙緩存報文處理方法,其特征在于,所述數據緩存的空間隨所述報文的長度而變化。7.根據權利要求1至6中任一項所述的控制信息與數據分離的雙緩存報文處理方法,其特征在于,所述控制信息緩存的空間是固定的。
【專利摘要】本發明涉及通信領域,具體提供一種控制信息與數據分離的雙緩存報文處理方法,旨在解決現有報文轉發機制過于復雜且容易造成緩存死鎖的問題。為此目的,所述方法包括:提供獨立的數據緩存和控制信息緩存;將所述報文的數據寫入所述數據緩存中;計算所述報文的長度和開始寫入地址并將所述長度和開始寫入地址存儲到所述控制信息緩存中;將所述報文的控制信息寫入所述控制信息緩存中;以及根據所述控制信息緩存中的報文長度和開始寫入地址從所述數據緩存中將所述報文讀取出來。與傳統的將控制信息和數據存儲在同一個緩存中的轉發方式相比,本發明大幅度簡化了設計操作,并且避免了讀寫控制的死鎖。
【IPC分類】H04L12/883, H04L12/861
【公開號】CN105337898
【申請號】CN201510881607
【發明人】陳陸穎, 侯崇嶺, 吳振華, 李張棟
【申請人】北京浩瀚深度信息技術股份有限公司
【公開日】2016年2月17日
【申請日】2015年12月3日