[發(fā)明專利]一種網絡收發(fā)包路徑優(yōu)化方法、裝置及存儲介質在審
| 申請?zhí)枺?/td> | 202111241785.8 | 申請日: | 2021-10-25 |
| 公開(公告)號: | CN113992608A | 公開(公告)日: | 2022-01-28 |
| 發(fā)明(設計)人: | 徐萌;馬力;王丹;計士禹;劉錦利;馬驍;李勃;高明慧;張志軍;張廣文;修增哲;劉壯;佟文強;趙梓辰;楊澤宇;劉新龍;姜巖;張嵩;王會達 | 申請(專利權)人: | 北京科東電力控制系統(tǒng)有限責任公司;南瑞集團有限公司 |
| 主分類號: | H04L49/90 | 分類號: | H04L49/90;H04L49/901 |
| 代理公司: | 南京縱橫知識產權代理有限公司 32224 | 代理人: | 孫永生 |
| 地址: | 100192 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 網絡 收發(fā) 路徑 優(yōu)化 方法 裝置 存儲 介質 | ||
本發(fā)明公開了一種網絡收發(fā)包路徑優(yōu)化方法、裝置及存儲介質,所述方法包括網絡收包時,調用recv接口對預先構建的環(huán)形隊列中存放的數據包進行讀取,并將該數據包的地址返回給用戶程序,使用戶程序能夠根據所述地址對數據包進行操作;網絡發(fā)包時,先調用alloc接口,從環(huán)形隊列中返回第一塊可用的內存地址,在該內存上構造以太網幀后調用send接口發(fā)送數據包;本發(fā)明在收包時使用輪詢方式收包,不再有中斷處理,不再繞路內核協(xié)議棧,減少了數據拷貝;在發(fā)包時也不再繞路內核協(xié)議棧,減少了數據拷貝,本發(fā)明通過優(yōu)化網絡收發(fā)包路徑,有效提高網絡收發(fā)包性能。
技術領域
本發(fā)明涉及一種網絡收發(fā)包路徑優(yōu)化方法、裝置及存儲介質,屬于網絡優(yōu)化技術領域。
背景技術
網絡收包時,先緩存在ringbuffer中,再經協(xié)議棧處理后緩存在socket中,最后用戶通過系統(tǒng)調用獲取數據包。網絡發(fā)包時,用戶通過系統(tǒng)調用將數據緩存在socket中,再經協(xié)議棧處理后緩存在ringbuffer中,最后通過網卡發(fā)包。因為網絡收發(fā)包時都要經過協(xié)議棧處理,且處理期間還涉及到內存拷貝,所以影響數據收發(fā)性能。
發(fā)明內容
本發(fā)明的目的在于克服現(xiàn)有技術中的不足,提供一種網絡收發(fā)包路徑優(yōu)化方法、裝置及存儲介質,通過網絡收發(fā)包路徑優(yōu)化技術,可以在網絡收發(fā)包處理時繞過內核協(xié)議棧,減少內存拷貝,提高數據收發(fā)性能。
為達到上述目的,本發(fā)明是采用下述技術方案實現(xiàn)的:
第一方面,本發(fā)明提供了一種網絡收發(fā)包路徑優(yōu)化方法,應用于用戶程序端,包括:
網絡收包時,調用recv接口對預先構建的環(huán)形隊列中存放的數據包進行讀取,并將該數據包的地址返回給用戶程序,使用戶程序能夠根據所述地址對數據包進行操作;
網絡發(fā)包時,先調用alloc接口,從環(huán)形隊列中返回第一塊可用的內存地址,在該內存上構造以太網幀后調用send接口發(fā)送數據包。
進一步的,所述環(huán)形隊列包括第一隊列和第二隊列,其中,第一隊列用于存放從網卡收上來的數據包,第二隊列用于存放從用戶程序下發(fā)的數據包。
進一步的,所述環(huán)形隊列創(chuàng)建時,申請一段連續(xù)的內核內存區(qū)域,劃分為第一隊列和第二隊列,用于存放數據包。
進一步的,所述環(huán)形隊列包含首尾指針用于指示緩存數據包的起始和終止位置。
進一步的,所述首尾指針指示緩存數據包的起始和終止位置的方法,具體包括:
當初始化時隊列為空時,首尾指針指向同一位置;
當隊列滿時,尾指針指向的數據包的下一個是首指針指向的數據包;
當有數據包到達時,尾指針向后偏移一位,并在尾指針新指向的位置緩存數據包;
當讀取數據時,返回首指針指向的數據包,并將首指針向后偏移一位;
當隊列為空時,讀取數據時直接返回失敗,首尾指針不動;
當隊列已滿時,仍然可以正常緩存數據,數據緩存后需同時將首指針向后偏移一位,即新的數據會覆蓋第一個數據。
進一步的,所述alloc接口、send接口和recv接口預先設置在驅動中,用于直接操作環(huán)形隊列。
進一步的,所述recv接口采用輪詢模式。
第二方面,本發(fā)明提供一種網絡收發(fā)包路徑優(yōu)化裝置,包括處理器及存儲介質;
所述存儲介質用于存儲指令;
所述處理器用于根據所述指令進行操作以執(zhí)行根據上述任一項所述方法的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京科東電力控制系統(tǒng)有限責任公司;南瑞集團有限公司,未經北京科東電力控制系統(tǒng)有限責任公司;南瑞集團有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111241785.8/2.html,轉載請聲明來源鉆瓜專利網。





