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

數據分流的實現(xiàn)方法和裝置的制作方法

文檔序號:6440276閱讀:247來源:國知局
專利名稱:數據分流的實現(xiàn)方法和裝置的制作方法
技術領域
本發(fā)明涉及計算機領域,并且特別地,涉及一種數據分流的實現(xiàn)方法和裝置。
背景技術
目前的萬兆零拷貝技術主要是基于htel網卡提供硬件多隊列來實現(xiàn),這樣雖然可以提高性能,但由于硬件實現(xiàn)的靈活性有限,對一些特殊的協(xié)議難以使用它來實現(xiàn)分流, 例如,ipv4封裝到ipv6中,硬件分流可以按照ipv4或者ipv6的源目的地址進行分流,但無法按照封裝到ipv6中的ipv4協(xié)議進行分流,可見,硬件分流的適用情況是非常有限的。針對相關技術中硬件分流技術不能應對所有分流場景的問題,目前尚未提出有效的解決方案。

發(fā)明內容
針對相關技術中硬件分流技術不能應對所有分流場景的問題,本發(fā)明提出一種數據分流的實現(xiàn)方法和裝置,能夠借助多CPU的方式在各種場景下有效實現(xiàn)數據的分流。本發(fā)明的技術方案是這樣實現(xiàn)的根據本發(fā)明的實施例,提供了一種數據分流的實現(xiàn)方法。根據本發(fā)明實施例的數據分流的實現(xiàn)方法包括多個中央處理單元CPU判斷需要分流的數據是否屬于各自需要處理的數據,其中,對于每個CPU判斷一數據時,判斷該數據對應的協(xié)議是否是該CPU對應的協(xié)議;對于每個CPU,在判斷一數據是該CPU對應的協(xié)議的情況下,該CPU將該數據存儲至該CPU對應的處理隊列中。其中,需要分流的數據來自至少一個底層硬件隊列,并且,在進行判斷時,每個CPU 均輪詢所有底層硬件隊列。此外,每個CPU判斷一數據對應的協(xié)議是否是該CPU對應的協(xié)議包括該CPU根據其協(xié)議對應的哈希方式對該數據進行哈希處理,根據處理結果判斷該數據對應的協(xié)議是否是該CPU對應的協(xié)議。此外,對于每個CPU,在判斷一數據不是該CPU對應的協(xié)議的情況下,該CPU繼續(xù)判斷下一需要分流的數據。該方法可進一步包括每個CPU對其處理隊列中的數據進行處理??蛇x地,每個CPU對應的協(xié)議為IPv4協(xié)議或IPv6協(xié)議。根據本發(fā)明的實施例,還提供了一種數據分流的實現(xiàn)裝置。該裝置包括多個CPU,其中,每個CPU包括判斷模塊,用于判斷需要分流的數據是否屬于該CPU需要處理的數據,其中,判斷模塊具體用于判斷該數據對應的協(xié)議是否是所在CPU對應的協(xié)議;存儲模塊,用于以隊列的形式保存被判斷為所在CPU需要處理的數據。其中,需要分流的數據來自至少一個底層硬件隊列,并且,在進行判斷時,每個CPU 的判斷模塊均輪詢所有底層硬件隊列。此外,判斷模塊用于根據所在CPU的協(xié)議對應的哈希方式對該數據進行哈希處理,并根據處理結果判斷該數據對應的協(xié)議是否是所在CPU對應的協(xié)議。此外,對于每個CPU的判斷模塊,在判斷一數據不是所在CPU對應的協(xié)議的情況下,判斷模塊繼續(xù)判斷下一需要分流的數據。本發(fā)明通過由多個CPU對需要分流的數據進行判斷,并將各自需要處理的數據存入各自的隊列中,能夠有效克服相關技術中硬件分流存在的弊端,在各種場景下均有效實現(xiàn)數據分流。


圖1是根據本發(fā)明實施例的數據分流的實現(xiàn)方法的流程圖;圖加是根據本發(fā)明實施例的數據分流的實現(xiàn)方法的原理示意圖;圖2b是根據本發(fā)明實施例的方案發(fā)送數據報文的原理示意圖;圖3是根據本發(fā)明實施例的數據分流的實現(xiàn)裝置中CPU的框圖。
具體實施例方式根據本發(fā)明的實施例,提供了一種數據分流的實現(xiàn)方法。如圖1所示,根據本發(fā)明實施例的數據分流的實現(xiàn)方法包括步驟SlOl,多個中央處理單元CPU (可以是該CPU執(zhí)行的線程)判斷需要分流的數據是否屬于各自需要處理的數據,其中,對于每個CPU判斷一數據時,判斷該數據對應的協(xié)議是否是該CPU對應的協(xié)議;步驟S103,對于每個CPU,在判斷一數據是該CPU對應的協(xié)議的情況下,該CPU將該數據存儲至該CPU對應的處理隊列中。其中,需要分流的數據來自至少一個底層硬件隊列,并且,在進行判斷時,每個CPU 均輪詢所有底層硬件隊列。此外,在每個CPU判斷一數據對應的協(xié)議是否是該CPU對應的協(xié)議時,該CPU根據其協(xié)議對應的哈希方式對該數據進行哈希處理,根據處理結果判斷該數據對應的協(xié)議是否是該CPU對應的協(xié)議。此外,對于每個CPU,在判斷一數據不是該CPU對應的協(xié)議的情況下,該CPU繼續(xù)判斷下一需要分流的數據。該方法可以進一步包括每個CPU對其處理隊列中的數據(即,完成分流后的數據)進行處理??蛇x地,每個CPU對應的協(xié)議為IPv4協(xié)議或IPv6協(xié)議,當然,也可以對應更多的協(xié)議,并且,協(xié)議的類型也不僅僅限于以上兩種,任何需要進行數據分流的場景中的協(xié)議都可以采用本發(fā)明的上述方案進行分流。在實際應用中,可以針對萬兆網卡多接收隊列的特點,為每個CPU核分配一個網卡硬件描述符隊列,并且分配相應的軟件描述符隊列,配置萬兆網卡自動將報文發(fā)送到相應隊列上去。其中,對于每個隊列,都為其分配獨立的數據緩沖區(qū),并通過內存映射的方式將數據緩沖區(qū)隊列映射到應用程序中去,從而驅動對緩沖區(qū)的修改可以直接反映到應用程序中來,從而避免了不必要的內存拷貝。
并且,每個隊列可以采用循環(huán)隊列的數據結構,此算法為無鎖(lock-free)算法, 避免了加鎖對性能的影響。此外,在以上架構基礎上,可以添加一層軟件分類層。由于硬件分流的多隊列已不能滿足復雜的協(xié)議環(huán)境,所以對每個線程隊列來說,真正的數據來源可能來自于任何一個底層的硬件隊列,所以每個線程輪詢每一個底層硬件隊列,并按照所需的硬件協(xié)議定制的 hash方式,將計算結果符合的數據包放到自己的隊列中來,不符合的數據包則不作任何操作,等其它線程隊列來訪問。這樣就可以用軟件來實現(xiàn)各種不同協(xié)議的分流。如圖2a所示,CPUO、CPUl、CPU2和CPU3中的部分CPU可以對應于IPv4協(xié)議,另一部分可以對應于IPv6協(xié)議,這些CPU的線程(位于應用程序部分)能夠對內核驅動部分中萬兆網卡的數據進行處理,其中,萬兆網卡的數據(網絡數據報文)會存儲在共享內存中, 各個CPU能夠獨立地訪問這些內存中的數據。如圖2b所示,在發(fā)送報文時,各個CPU會將報文發(fā)送至各個CPU所對應的共享內存,之后,會將報文發(fā)送至網卡,之后發(fā)送到網絡。通過上述方案,就能夠在硬件多隊列的基礎上,借助多隊列的方式實現(xiàn)萬兆零拷貝分流,并且可以實現(xiàn)對各種網絡協(xié)議的深度解析的分流,保證分流的精度。根據本發(fā)明的實施例,提供了一種數據分流的實現(xiàn)裝置。根據本發(fā)明實施例的數據分流的實現(xiàn)裝置可以包括多個CPU,其中,如圖3所示, 每個CPU可以包括判斷模塊31,用于判斷需要分流的數據是否屬于該CPU需要處理的數據,其中,判斷模塊具體用于判斷該數據對應的協(xié)議是否是所在CPU對應的協(xié)議;存儲模塊 32,連接至判斷模塊31,用于以隊列的形式保存被判斷為所在CPU需要處理的數據。其中,需要分流的數據來自至少一個底層硬件隊列,并且,在進行判斷時,每個CPU 的判斷模塊均輪詢所有底層硬件隊列。具體地,判斷模塊用于根據所在CPU的協(xié)議對應的哈希方式對該數據進行哈希處理,并根據處理結果判斷該數據對應的協(xié)議是否是所在CPU對應的協(xié)議。此外,對于每個CPU的判斷模塊,在判斷一數據不是所在CPU對應的協(xié)議的情況下,判斷模塊繼續(xù)判斷下一需要分流的數據。綜上,借助于本發(fā)明的上述技術方案,通過由多個CPU對需要分流的數據進行判斷,并將各自需要處理的數據存入各自的隊列中,能夠有效克服相關技術中硬件分流存在的弊端,在各種場景下均有效實現(xiàn)數據分流。以上僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種數據分流的實現(xiàn)方法,其特征在于,包括多個中央處理單元CPU判斷需要分流的數據是否屬于各自需要處理的數據,其中,對于每個CPU判斷一數據時,判斷該數據對應的協(xié)議是否是該CPU對應的協(xié)議;對于每個CPU,在判斷一數據是該CPU對應的協(xié)議的情況下,該CPU將該數據存儲至該 CPU對應的處理隊列中。
2.根據權利要求1所述的實現(xiàn)方法,其特征在于,需要分流的數據來自至少一個底層硬件隊列,并且,在進行判斷時,每個CPU均輪詢所有底層硬件隊列。
3.根據權利要求1所述的實現(xiàn)方法,其特征在于,每個CPU判斷一數據對應的協(xié)議是否是該CPU對應的協(xié)議包括該CPU根據其協(xié)議對應的哈希方式對該數據進行哈希處理,根據處理結果判斷該數據對應的協(xié)議是否是該CPU對應的協(xié)議。
4.根據權利要求1所述的實現(xiàn)方法,其特征在于,對于每個CPU,在判斷一數據不是該 CPU對應的協(xié)議的情況下,該CPU繼續(xù)判斷下一需要分流的數據。
5.根據權利要求1所述的實現(xiàn)方法,其特征在于,進一步包括 每個CPU對其處理隊列中的數據進行處理。
6.根據權利要求1至5中任一項所述的實現(xiàn)方法,其特征在于,每個CPU對應的協(xié)議為 IPv4協(xié)議或IPv6協(xié)議。
7.一種數據分流的實現(xiàn)裝置,其特征在于,包括多個CPU,其中,每個CPU包括 判斷模塊,用于判斷需要分流的數據是否屬于該CPU需要處理的數據,其中,所述判斷模塊具體用于判斷該數據對應的協(xié)議是否是所在CPU對應的協(xié)議;存儲模塊,用于以隊列的形式保存被判斷為所在CPU需要處理的數據。
8.根據權利要求7所述的實現(xiàn)裝置,其特征在于,需要分流的數據來自至少一個底層硬件隊列,并且,在進行判斷時,每個CPU的判斷模塊均輪詢所有底層硬件隊列。
9.根據權利要求7所述的實現(xiàn)裝置,其特征在于,所述判斷模塊用于根據所在CPU的協(xié)議對應的哈希方式對該數據進行哈希處理,并根據處理結果判斷該數據對應的協(xié)議是否是所在CPU對應的協(xié)議。
10.根據權利要求7所述的實現(xiàn)裝置,其特征在于,對于每個CPU的判斷模塊,在判斷一數據不是所在CPU對應的協(xié)議的情況下,判斷模塊繼續(xù)判斷下一需要分流的數據。
全文摘要
本發(fā)明公開了一種數據分流的實現(xiàn)方法和裝置,其中,該方法包括多個中央處理單元CPU判斷需要分流的數據是否屬于各自需要處理的數據,其中,對于每個CPU判斷一數據時,判斷該數據對應的協(xié)議是否是該CPU對應的協(xié)議;對于每個CPU,在判斷一數據是該CPU對應的協(xié)議的情況下,該CPU將該數據存儲至該CPU對應的處理隊列中。本發(fā)明通過由多個CPU對需要分流的數據進行判斷,并將各自需要處理的數據存入各自的隊列中,能夠有效克服相關技術中硬件分流存在的弊端,在各種場景下均有效實現(xiàn)數據分流。
文檔編號G06F9/50GK102495764SQ20111040290
公開日2012年6月13日 申請日期2011年12月6日 優(yōu)先權日2011年12月6日
發(fā)明者萬偉, 劉興彬, 劉鐵, 孫一鳴, 朱春屹, 李云華, 李博文, 楊錦濤, 王潑, 董建珊, 陳科 申請人:曙光信息產業(yè)股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
永靖县| 同德县| 应城市| 盐边县| 白水县| 武川县| 璧山县| 利津县| 彩票| 海门市| 都兰县| 泸水县| 黄平县| 历史| 澄迈县| 盐山县| 米泉市| 福泉市| 尚志市| 阳春市| 乌鲁木齐县| 平塘县| 大理市| 沈阳市| 黎川县| 清远市| 三亚市| 榆树市| 祁连县| 福贡县| 林甸县| 黎川县| 通渭县| 微山县| 庆云县| 老河口市| 旅游| 黎平县| 淳化县| 汶上县| 平潭县|