[發明專利]數據接收方法和計算機無效
| 申請號: | 201110459633.5 | 申請日: | 2011-12-31 |
| 公開(公告)號: | CN102571580A | 公開(公告)日: | 2012-07-11 |
| 發明(設計)人: | 萬偉;劉興彬;王潑;劉鐵;陳科;朱春屹;王清;李云華;李博文;董建珊;楊錦濤;孫一鳴;范玉峰;曹振南;邵宗有 | 申請(專利權)人: | 曙光信息產業股份有限公司 |
| 主分類號: | H04L12/56 | 分類號: | H04L12/56 |
| 代理公司: | 北京德恒律師事務所 11306 | 代理人: | 陸鑫;房嶺梅 |
| 地址: | 300384 天津市西青區華*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 接收 方法 計算機 | ||
技術領域
本發明涉及計算機領域,并且特別地,涉及一種數據接收方法和計算機。
背景技術
目前,千兆網卡的零拷貝技術主要基于傳統intel千兆網卡來實現。
通常,在網絡數據包的收包過程中,應用程序需要以拷貝的方式與內核中的網卡報文緩沖區進行交互,這種拷貝處理必然會降低性能和速率,無法在大流量場景中使用。并且,目前的千兆零拷貝都是基于單隊列的技術來實現的,但是,在萬兆接入的情況下,單位時間內的數據包速率將提高大約10倍,而千兆網卡下單一的傳輸隊列以及緩沖區交互將存在很高的性能損失,所以,傳統的技術將無法應對如此高的數據速率,進而成為萬兆零拷貝技術發展的瓶頸。
針對相關技術中無法在大流量要求下高效地實現數據接收的問題,目前尚未提出有效的解決方案。
發明內容
針對相關技術中無法在大流量要求下高效地實現數據接收的問題,本發明提出一種數據接收方法和計算機,能夠有效提高數據包接收的速率,改善收包效率,能夠應對萬兆網卡等高速收包的場景。。
本發明的技術方案是這樣實現的:
根據本發明的一個方面,提供了一種數據接收方法,用于在多CPU環境下實現數據接收。
該方法包括:對于接收的數據,網卡確定數據對應的CPU,并將數據發送至確定的CPU對應的存儲區;每個CPU從各自對應的存儲區中獲取數據。
其中,網卡確定數據對應的CPU包括:網卡對數據進行哈希計算,并根據計算結果確定數據所對應的CPU。
該方法可進一步包括:將每個CPU對應的存儲區中的數據映射到該數據所對應的應用中。
此外,每個CPU將其對應的存儲區映射為隊列,該CPU通過相應的隊列獲取存儲區中的數據。
并且,每個CPU對應的隊列采用循環結構的數據結構。
此外,對于每個CPU,該CPU對應的存儲區為內存中為該CPU分配的存儲區,并且多個CPU的存儲區彼此間在邏輯上獨立。
根據本發明的另一方面,提供了一種計算機。
根據本發明實施例的計算機包括:網卡,對于接收的數據,網卡用于確定數據對應的CPU,并將數據發送至確定的CPU對應的存儲區;多個CPU,其中,每個CPU用于從各自對應的存儲區中獲取數據。
其中,網卡用于對數據進行哈希計算,并根據計算結果確定數據所對應的CPU。
此外,該計算機可進一步包括:映射模塊,用于將每個CPU對應的存儲區中的數據映射到該數據所對應的應用中。
此外,對于每個CPU,該CPU對應的存儲區為內存中為該CPU分配的存儲區,并且多個CPU的存儲區彼此間在邏輯上獨立。
本發明通過使每個CPU核處理各自存儲區中的數據,從而充分利用了多核cpu的處理能力,實現了數據包的并行接收,能夠有效提高數據包接收的速率,改善收包效率,能夠應對萬兆網卡等高速收包的場景。
附圖說明
圖1是根據本發明實施例的數據接收方法的流程圖;
圖2是根據本發明實施例的數據接收方法的原理示意圖。
具體實施方式
根據本發明的實施例,提供了一種數據接收方法,用于在多CPU環境下實現數據接收。
如圖1所示,根據本發明實施例的數據接收方法包括:
步驟S101,對于接收的數據,網卡確定數據對應的CPU,并將數據發送至確定的CPU對應的存儲區;
步驟S103,每個CPU從各自對應的存儲區中獲取數據。
其中,在網卡確定數據對應的CPU時,網卡可以對數據進行哈希計算,并根據計算結果確定數據所對應的CPU。
此外,該方法可以進一步包括:將每個CPU對應的存儲區中的數據映射到該數據所對應的應用中,從而當存儲區中的數據發生變化(例如,被修改)的情況下,能夠直接在應用層得到體現,使操作員能夠清楚、直觀地看到這些數據變化。
另外,每個CPU將其對應的存儲區映射為隊列,該CPU通過相應的隊列獲取存儲區中的數據。可選地,每個CPU對應的隊列采用循環結構的數據結構,而算法為無鎖(lock-free)算法,從而避免了加鎖對性能的影響。
可選地,對于每個CPU,該CPU對應的存儲區為內存中為該CPU分配的存儲區,并且多個CPU的存儲區彼此間在邏輯上獨立。
例如,對于萬兆網卡的應用場景,本發明能夠針對萬兆網卡多接收隊列的特點,為每個CPU核分配一個網卡硬件描述符隊列,并且分配相應的軟件描述符隊列。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于曙光信息產業股份有限公司,未經曙光信息產業股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110459633.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:磁傳感器
- 下一篇:一種永磁直流電動機轉子和永磁直流電動機
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





