[發明專利]一種高效的TCP/IP數據報處理方法及系統在審
| 申請號: | 202210557371.4 | 申請日: | 2022-05-20 |
| 公開(公告)號: | CN115103036A | 公開(公告)日: | 2022-09-23 |
| 發明(設計)人: | 王瀟南;郝沁汾;葉笑春;范東睿 | 申請(專利權)人: | 中國科學院計算技術研究所 |
| 主分類號: | H04L69/16 | 分類號: | H04L69/16;H04L67/00 |
| 代理公司: | 北京律誠同業知識產權代理有限公司 11006 | 代理人: | 祁建國;陳思遠 |
| 地址: | 100080 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 高效 tcp ip 數據 處理 方法 系統 | ||
本發明提出一種高效的TCP/IP數據報處理方法和系統,利用基于TCP的通信過程中由于所需要發送的數據報直接交由DMA處理,在協議棧只處理內存地址和數據大小,減少了協議棧發生的大量數據拷貝過程,從而有效的減少了該過程的時間開銷,通過由于引入DMA作為內存與內存之間的數據交換,則減少了CPU的資源占用。由此可見,本發明的數據報處理方法可以有效的提高網絡數據報在應用程序與網卡之間的傳輸速率,且節省CPU資源的占用率。
技術領域
本發明涉及計算機通信技術領域,具體涉及一種高效網絡報文傳輸方法,尤其涉及一種高效的TCP/IP(Transmission Control Protocol/Internet Protocol)數據報處理方法。
背景技術
目前計算機的操作系統(例如Linux)在處理網絡數據的一般過程是,從應用程序通過Socket接口將數據報(數據報文)交給網絡協議棧,而網卡驅動程序則從網絡協議棧中獲取協議棧處理后的數據。但在實際場景下,與應用程序進行數據報傳輸的是用戶態的網絡協議棧,而與網卡驅動程序進行數據交互的是內核態的網絡協議棧。
TCP服務端和客戶端為兩個進程,兩者之間通過socket進行TCP/IP通信。服務端是指以本地信息建立socket并進行監聽是否有socket連接的一端進程;客戶端是指根據服務端本地信息而建立的socket,并以此為目標去請求連接的一端進程。
基于Socket機制進行數據報交互的內核態程序和用戶態程序,無論是從用戶程序到協議棧,還是從協議棧到網卡驅動程序都要發生多次數據報的拷貝過程,以現有技術常規的TCP/IP通信為例,常規的網卡數據傳輸會發生三次CPU參與的數據報拷貝過程:1、用戶態到內核態(由socket發送給網絡協議棧);2、協議棧到網卡驅動(即由網卡驅動的sk_buff接收的數據);3、網卡驅動將數據包封裝為MAC幀(其中包含用戶數據)。該過程則會需要大量的時間片,是網絡數據報傳輸速率提高的主要瓶頸。因此從解決因傳輸過程中所需要的大量拷貝所消耗的時間片將會是提高網絡數據報的傳輸效率的有效手段。
發明內容
本發明為了解決技術問題有兩點,首先目前網絡數據報傳輸過程中所需要的大量拷貝而帶來的時間片消耗使得數據報傳輸速率低的問題;其次由進程間的數據拷貝帶來的CPU資源占用問題。
針對現有技術的不足,本發明提出一種高效的TCP/IP數據報處理方法,其中包括:
當服務端應用程序發送數據時執行步驟1;當服務端應用程序接收數據時執行步驟2;
步驟1、服務端應用程序通過構建TCP服務端進程建立Socket連接,將需要發送的數據報寫入DMA,得到DMA反饋的內存偏移地址和寫入的數據大小,并將該內存偏移地址和數據大小,同時通過Socket接口存入網絡協議棧的sk_buff,網卡驅動根據sk_buff中的內存偏移地址和數據大小,將該數據報從DMA映射到虛擬地址,該網卡驅動根據該虛擬地址讀取DMA中該數據報,以替換sk_buff中部分數據,并將替換后的sk_buff封裝為MAC幀數據包,物理網卡將該MAC幀發送出去;
步驟2、物理網卡接收到MAC幀數據包后,由網卡驅動將對其解包處理,得到sk_buff數據包,將該sk_buff數據報的數據部分剪切至DMA,將DMA返回的內存地址和寫入的數據大小作為sk_buff數據包的數據部分,得到替換數據包,將該替換數據包交給網絡協議棧,服務端應用程序通過該網絡協議棧接收該內存地址和該數據大小,該服務端應用程序將該內存地址映射為用戶態的虛擬地址,該服務端應用程序訪問該虛擬地址,以接收DMA中該數據報。
所述的高效的TCP/IP數據報處理方法,其中該步驟1中替換sk_buff中部分數據具體為:將sk_buff中用戶數據的偏移地址加數據大小替換為從DMA中讀取的數據報。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算技術研究所,未經中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210557371.4/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





