[發明專利]一種網絡數據包的存儲方法及裝置在審
| 申請號: | 201811052722.6 | 申請日: | 2018-09-10 |
| 公開(公告)號: | CN109257300A | 公開(公告)日: | 2019-01-22 |
| 發明(設計)人: | 陳志華 | 申請(專利權)人: | 湖北微源卓越科技有限公司 |
| 主分類號: | H04L12/861 | 分類號: | H04L12/861 |
| 代理公司: | 武漢河山金堂專利事務所(普通合伙) 42212 | 代理人: | 胡清堂 |
| 地址: | 430073 湖北省武漢市東*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據包 數據包存儲 上層應用程序 網卡驅動程序 網絡數據包 存儲空間 原數據包 預留 存儲 數據包存儲裝置 接收數據包 存儲地址 存儲隊列 存儲模塊 發送模塊 接收模塊 網絡數據 映射關系 映射模塊 原始地址 轉發效率 初始化 末尾 拷貝 主存 隊列 發送 保存 | ||
1.一種網絡數據包的存儲方法,其特征在于,包括如下步驟:
S1、在主存儲器中設置一個數據包存儲區并初始化存儲隊列,建立所述數據包存儲區與上層應用程序的映射關系;
S2、網卡驅動程序接收數據包;
S3、將接收到的原數據包加入所述數據包存儲區的存儲隊列時,在每個數據包的開頭預留第一存儲空間,同時在每個數據包的末尾預留第二存儲空間;
S4、上層應用程序修改數據包時,在所述數據包存儲區的存儲地址處修改所述原數據包并保存;
S5、將修改后的數據包的起始地址發送給網卡驅動程序,網卡驅動程序發送所述修改后的數據包。
2.根據權利要求1所述的一種網絡數據包的存儲方法,其特征在于,步驟S3中所述第一存儲空間、所述原數據包的存儲空間和所述第二存儲空間為連續空間。
3.根據權利要求1所述的一種網絡數據包的存儲方法,其特征在于,步驟S4中所述在所述數據包存儲區的存儲地址處修改所述原數據包之前還包括:
根據數據指針判斷上層應用程序需要修改的數據包的具體修改位置。
4.根據權利要求3所述的一種網絡數據包的存儲方法,其特征在于,步驟S4中所述在所述數據包存儲區的存儲地址處修改所述原數據包的過程包括:
若需要在所述原數據包的開頭額外增加新的內容,直接將新增數據寫入所述第一存儲空間;
若需要在所述原數據包的包頭部分插入新的內容,將所述原數據包中所述修改位置之前的數據段向所述第一存儲空間挪動,將新增數據寫入挪動后留出的空白區域;
若需要在所述原數據包的末尾額外增加新的內容,將新增數據寫入所述第二存儲空間。
5.根據權利要求4所述的一種網絡數據包的存儲方法,其特征在于,所述將所述原數據包中所述修改位置之前的數據段向所述第一存儲空間挪動還包括:
保持所述數據包內數據的原存儲順序不變,挪動距離根據新增數據的大小決定。
6.一種網絡數據包的存儲裝置,其特征在于,包括如下內容:
映射模塊:在主存儲器中設置一個數據包存儲區并初始化存儲隊列,建立所述數據包存儲區與上層應用程序的映射關系;
接收模塊:網卡驅動程序接收數據包;
存儲模塊:將接收到的原數據包加入所述數據包存儲區的存儲隊列時,在每個數據包的開頭預留第一存儲空間,同時在每個數據包的末尾預留第二存儲空間;
修改模塊:上層應用程序修改原數據包時,在所述數據包存儲區的存儲地址處修改所述原數據包并保存;
發送模塊:將修改后的數據包的起始地址發送給網卡驅動程序,網卡驅動程序發送所述修改后的數據包。
7.根據權利要求6所述一種網絡數據包的存儲裝置,其特征在于,所述修改模塊具體包括以下內容:
開頭新增單元:若需要在所述原數據包的開頭額外增加新的內容,直接將新增數據寫入所述第一存儲空間;
包頭插入單元:若需要在所述原數據包的包頭部分插入新的內容,將所述原數據包中所述修改位置之前的數據段向所述第一存儲空間挪動,將新增數據寫入挪動后留出的空白區域;
末尾新增單元:若需要在所述原數據包的末尾額外增加新的內容,將新增數據寫入所述第二存儲空間。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于湖北微源卓越科技有限公司,未經湖北微源卓越科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811052722.6/1.html,轉載請聲明來源鉆瓜專利網。





