[發明專利]一種提升網卡收發包性能的接口、方法及系統在審
| 申請號: | 201710339319.0 | 申請日: | 2017-05-15 |
| 公開(公告)號: | CN107124374A | 公開(公告)日: | 2017-09-01 |
| 發明(設計)人: | 王棟 | 申請(專利權)人: | 鄭州云海信息技術有限公司 |
| 主分類號: | H04L12/861 | 分類號: | H04L12/861 |
| 代理公司: | 濟南信達專利事務所有限公司37100 | 代理人: | 李世喆 |
| 地址: | 450000 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 提升 網卡 收發 性能 接口 方法 系統 | ||
技術領域
本發明涉及計算機技術領域,特別涉及一種提升網卡收發包性能的接口、方法及系統。
背景技術
隨著信息技術的不斷發展,網卡的應用已得到廣泛的普及,不同的通信設備之間可通過其內部分別設置的網卡來接收或發送數據包,從而實現不同通信設備之間的通信。
目前,網卡在接收數據包的過程中,首先由硬中斷觸發,將對應的網卡接收隊列適配器掛載到CPU的隊列上,在網絡接收軟中斷中輪詢網卡的接收隊列,將收到的數據包解除DMA映射,然后分配新的內存DMA映射到網卡收包隊列。網卡在發送數據包的過程中,處于進程上下文,將上層網絡協議傳遞的數據包發送出去后,會觸發網絡發送軟中斷,在發送軟中斷中會釋放數據包的內存或將發送失敗的數據包重新發送出去。
可見,上述技術方案中,當網卡頻繁的接收或發送數據包時,則需要頻繁的申請及釋放內存,影響網卡的收發包性能。
發明內容
本發明實施例提供了一種提升網卡收發包性能的接口、方法及系統,可提升網卡的收發包性能。
第一方面,本發明提供了一種提升網卡收發包性能的接口,包括:
隊列構建模塊、數據寫入模塊和隊列修正模塊;其中,
所述隊列構建模塊,用于在內存中構建對應目標網卡的數據包緩存隊列,所述數據包緩存隊列包括至少一個設定大小的緩存塊;
所述數據寫入模塊,用于在所述目標網卡接收到一個接收數據包時,將所述目標網卡接收的所述接收數據包寫入所述數據包緩存隊列中的一個緩存塊;
所述隊列修正模塊,用于在所述目標網卡發送出一個發送數據包時,將所述內存中用于存儲所述發送數據包的內存塊清空,并將清空的所述內存塊增加到所述數據包緩存隊列中。
優選地,
還包括:檢測模塊和內存分配模塊;其中,
所述檢測模塊,用于在所述目標網卡接收到一個接收數據包時,檢測所述數據包緩存隊列中是否存在至少一個空閑緩存塊,當存在至少一個空閑緩存塊時,觸發所述數據寫入模塊;否則,觸發所述內存分配模塊;
所述數據寫入模塊,用于在所述檢測模塊的觸發下,將所述目標網卡接收的所述接收數據包寫入所述數據包緩存隊列中的一個所述空閑緩存塊;在所述內存分配模塊的觸發下,將所述目標網卡接收的所述接收數據包寫入所述數據包緩存隊列中的所述新增內存塊;
所述內存分配模塊,用于在所述檢測模塊的觸發下在所述內存中分配對應所述接收數據包的新增內存塊,將所述新增內存塊增加到所述數據包緩存隊列,并觸發所述數據寫入模塊。
優選地,還包括:
監控處理模塊,用于監控所述目標網卡是否接收到目標工作指令,在監控到所述目標網卡接收到所述目標工作指令時,釋放所述數據包緩存隊列。
優選地,所述目標工作指令包括:數據包大小修正指令和關閉指令。
第二方面,本發明一種利用第一方面中任一所述的提升網卡收發包性能的接口提升網卡收發包性能的方法,包括:
利用隊列構建模塊在內存中構建對應目標網卡的數據包緩存隊列,所述數據包緩存隊列包括至少一個設定大小的緩存塊;
利用數據寫入模塊在所述目標網卡接收到一個接收數據包時,將所述目標網卡接收的所述接收數據包寫入所述數據包緩存隊列中的一個緩存塊;
利用隊列修正模塊在所述目標網卡發送出一個發送數據包時,將所述內存中用于存儲所述發送數據包的內存塊清空,并將清空的所述內存塊增加到所述數據包緩存隊列中。
優選地,
在所述將所述目標網卡接收的所述接收數據包寫入所述數據包緩存隊列中的一個緩存塊之前,還包括:
利用檢測模塊在所述目標網卡接收到一個接收數據包時,檢測所述數據包緩存隊列中是否存在至少一個空閑緩存塊,如果是,則執行步驟A1;否則,執行步驟A2和A3;
A1:利用數據寫入模塊將所述目標網卡接收的所述接收數據包寫入所述數據包緩存隊列中的一個所述空閑緩存塊;
A2:利用內存分配模塊在所述內存中分配對應所述接收數據包的新增內存塊,將所述新增內存塊增加到所述數據包緩存隊列;
A3:利用數據寫入模塊將所述目標網卡接收的所述接收數據包寫入所述數據包緩存隊列中的所述新增內存塊。
優選地,還包括:
利用監控處理模塊監控所述目標網卡是否接收到目標工作指令,在監控到所述目標網卡接收到所述目標工作指令時,釋放所述數據包緩存隊列。
優選地,所述目標工作指令包括:數據包大小修正指令和關閉指令。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于鄭州云海信息技術有限公司,未經鄭州云海信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710339319.0/2.html,轉載請聲明來源鉆瓜專利網。





