[發(fā)明專(zhuān)利]一種高效的TCP/IP數(shù)據(jù)報(bào)處理方法及系統(tǒng)在審
| 申請(qǐng)?zhí)枺?/td> | 202210557371.4 | 申請(qǐng)日: | 2022-05-20 |
| 公開(kāi)(公告)號(hào): | CN115103036A | 公開(kāi)(公告)日: | 2022-09-23 |
| 發(fā)明(設(shè)計(jì))人: | 王瀟南;郝沁汾;葉笑春;范東睿 | 申請(qǐng)(專(zhuān)利權(quán))人: | 中國(guó)科學(xué)院計(jì)算技術(shù)研究所 |
| 主分類(lèi)號(hào): | H04L69/16 | 分類(lèi)號(hào): | H04L69/16;H04L67/00 |
| 代理公司: | 北京律誠(chéng)同業(yè)知識(shí)產(chǎn)權(quán)代理有限公司 11006 | 代理人: | 祁建國(guó);陳思遠(yuǎn) |
| 地址: | 100080 北*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 高效 tcp ip 數(shù)據(jù) 處理 方法 系統(tǒng) | ||
1.一種高效的TCP/IP數(shù)據(jù)報(bào)處理方法,其特征在于,包括:
當(dāng)服務(wù)端應(yīng)用程序發(fā)送數(shù)據(jù)時(shí)執(zhí)行步驟1;當(dāng)服務(wù)端應(yīng)用程序接收數(shù)據(jù)時(shí)執(zhí)行步驟2;
步驟1、服務(wù)端應(yīng)用程序通過(guò)構(gòu)建TCP服務(wù)端進(jìn)程建立Socket連接,將需要發(fā)送的數(shù)據(jù)報(bào)寫(xiě)入DMA,得到DMA反饋的內(nèi)存偏移地址和寫(xiě)入的數(shù)據(jù)大小,并將該內(nèi)存偏移地址和數(shù)據(jù)大小,同時(shí)通過(guò)Socket接口存入網(wǎng)絡(luò)協(xié)議棧的sk_buff,網(wǎng)卡驅(qū)動(dòng)根據(jù)sk_buff中的內(nèi)存偏移地址和數(shù)據(jù)大小,將該數(shù)據(jù)報(bào)從DMA映射到虛擬地址,該網(wǎng)卡驅(qū)動(dòng)根據(jù)該虛擬地址讀取DMA中該數(shù)據(jù)報(bào),以替換sk_buff中部分?jǐn)?shù)據(jù),并將替換后的sk_buff封裝為MAC幀數(shù)據(jù)包,物理網(wǎng)卡將該MAC幀發(fā)送出去;
步驟2、物理網(wǎng)卡接收到MAC幀數(shù)據(jù)包后,由網(wǎng)卡驅(qū)動(dòng)將對(duì)其解包處理,得到sk_buff數(shù)據(jù)包,將該sk_buff數(shù)據(jù)報(bào)的數(shù)據(jù)部分剪切至DMA,將DMA返回的內(nèi)存地址和寫(xiě)入的數(shù)據(jù)大小作為sk_buff數(shù)據(jù)包的數(shù)據(jù)部分,得到替換數(shù)據(jù)包,將該替換數(shù)據(jù)包交給網(wǎng)絡(luò)協(xié)議棧,服務(wù)端應(yīng)用程序通過(guò)該網(wǎng)絡(luò)協(xié)議棧接收該內(nèi)存地址和該數(shù)據(jù)大小,該服務(wù)端應(yīng)用程序?qū)⒃搩?nèi)存地址映射為用戶(hù)態(tài)的虛擬地址,該服務(wù)端應(yīng)用程序訪(fǎng)問(wèn)該虛擬地址,以接收DMA中該數(shù)據(jù)報(bào)。
2.如權(quán)利要求1所述的高效的TCP/IP數(shù)據(jù)報(bào)處理方法,其特征在于,該步驟1中替換sk_buff中部分?jǐn)?shù)據(jù)具體為:將sk_buff中用戶(hù)數(shù)據(jù)的偏移地址加數(shù)據(jù)大小替換為從DMA中讀取的數(shù)據(jù)報(bào)。
3.如權(quán)利要求1所述的高效的TCP/IP數(shù)據(jù)報(bào)處理方法,其特征在于,該DMA,用于代替網(wǎng)絡(luò)協(xié)議棧處理用戶(hù)將要發(fā)送的數(shù)據(jù)報(bào),并通過(guò)DMA讀寫(xiě)和管理驅(qū)動(dòng)程序,為用戶(hù)態(tài)的服務(wù)端應(yīng)用程序提供讀寫(xiě)接口,DMA讀寫(xiě)和管理驅(qū)動(dòng)程序包含DMA讀寫(xiě)地址分配和沖突檢測(cè),通過(guò)分配寫(xiě)入地址,并且根據(jù)判斷寫(xiě)入數(shù)據(jù)是否讀出判斷出該地址是否能再次被寫(xiě)入。
4.如權(quán)利要求1所述的高效的TCP/IP數(shù)據(jù)報(bào)處理方法,其特征在于,該網(wǎng)卡驅(qū)動(dòng)根據(jù)所使用的設(shè)備進(jìn)行移植,以適用多種網(wǎng)卡設(shè)備以及虛擬網(wǎng)卡;
在該步驟1中該網(wǎng)卡驅(qū)動(dòng)從內(nèi)核網(wǎng)絡(luò)協(xié)議棧中獲取數(shù)據(jù)包,解析數(shù)據(jù)包獲取DMA寫(xiě)入后的偏移地址和數(shù)據(jù)大小,并將該地址映射到該網(wǎng)卡驅(qū)動(dòng),從而獲取該服務(wù)端應(yīng)用程序的數(shù)據(jù)報(bào),對(duì)sk_buff的數(shù)據(jù)部分進(jìn)行替換并封裝為MAC幀格式;
在該步驟2中該網(wǎng)卡驅(qū)動(dòng)將解析MAC幀為sk_buff,將解析到的數(shù)據(jù)寫(xiě)入DMA,并將從DMA反饋的內(nèi)存偏移地址和數(shù)據(jù)大小替換sk_buff中對(duì)應(yīng)數(shù)據(jù),再將替換后的sk_buff交給網(wǎng)絡(luò)協(xié)議棧處理。
5.一種高效的TCP/IP數(shù)據(jù)報(bào)處理系統(tǒng),其特征在于,包括:
當(dāng)服務(wù)端應(yīng)用程序發(fā)送數(shù)據(jù)時(shí)調(diào)用發(fā)送模塊;當(dāng)服務(wù)端應(yīng)用程序接收數(shù)據(jù)時(shí)調(diào)用接收模塊;
發(fā)送模塊,用于使服務(wù)端應(yīng)用程序通過(guò)構(gòu)建TCP服務(wù)端進(jìn)程建立Socket連接,將需要發(fā)送的數(shù)據(jù)報(bào)寫(xiě)入DMA,得到DMA反饋的內(nèi)存偏移地址和寫(xiě)入的數(shù)據(jù)大小,并將該內(nèi)存偏移地址和數(shù)據(jù)大小,同時(shí)通過(guò)Socket接口存入網(wǎng)絡(luò)協(xié)議棧的sk_buff,網(wǎng)卡驅(qū)動(dòng)根據(jù)sk_buff中的內(nèi)存偏移地址和數(shù)據(jù)大小,將該數(shù)據(jù)報(bào)從DMA映射到虛擬地址,該網(wǎng)卡驅(qū)動(dòng)根據(jù)該虛擬地址讀取DMA中該數(shù)據(jù)報(bào),以替換sk_buff中部分?jǐn)?shù)據(jù),并將替換后的sk_buff封裝為MAC幀數(shù)據(jù)包,物理網(wǎng)卡將該MAC幀發(fā)送出去;
接收模塊,用于使物理網(wǎng)卡接收到MAC幀數(shù)據(jù)包后,由網(wǎng)卡驅(qū)動(dòng)將對(duì)其解包處理,得到sk_buff數(shù)據(jù)包,將該sk_buff數(shù)據(jù)報(bào)的數(shù)據(jù)部分剪切至DMA,將DMA返回的內(nèi)存地址和寫(xiě)入的數(shù)據(jù)大小作為sk_buff數(shù)據(jù)包的數(shù)據(jù)部分,得到替換數(shù)據(jù)包,將該替換數(shù)據(jù)包交給網(wǎng)絡(luò)協(xié)議棧,服務(wù)端應(yīng)用程序通過(guò)該網(wǎng)絡(luò)協(xié)議棧接收該內(nèi)存地址和該數(shù)據(jù)大小,該服務(wù)端應(yīng)用程序?qū)⒃搩?nèi)存地址映射為用戶(hù)態(tài)的虛擬地址,該服務(wù)端應(yīng)用程序訪(fǎng)問(wèn)該虛擬地址,以接收DMA中該數(shù)據(jù)報(bào)。
6.如權(quán)利要求5所述的高效的TCP/IP數(shù)據(jù)報(bào)處理系統(tǒng),其特征在于,該發(fā)送模塊中替換sk_buff中部分?jǐn)?shù)據(jù)具體為:將sk_buff中用戶(hù)數(shù)據(jù)的偏移地址加數(shù)據(jù)大小替換為從DMA中讀取的數(shù)據(jù)報(bào)。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于中國(guó)科學(xué)院計(jì)算技術(shù)研究所,未經(jīng)中國(guó)科學(xué)院計(jì)算技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210557371.4/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 具有傳輸控制協(xié)議匯聚模塊的傳輸控制協(xié)議主機(jī)
- 一種分發(fā)傳輸TCP數(shù)據(jù)包的方法及裝置
- 一種TCP報(bào)文的發(fā)送方法、接收方法及裝置
- 一種無(wú)縫重建TCP連接的系統(tǒng)及方法
- 一種機(jī)載網(wǎng)絡(luò)服務(wù)的TCP連接處理方法
- 一種實(shí)現(xiàn)傳輸控制協(xié)議TCP傳輸?shù)姆椒把b置
- 移動(dòng)終端跨區(qū)保持MEC邊緣TCP業(yè)務(wù)服務(wù)方法及系統(tǒng)
- 一種TCP熱備份的方法和裝置
- TCP報(bào)文的負(fù)載均衡方法及裝置
- 加密TCP流量采集方法與裝置
- 互聯(lián)網(wǎng)協(xié)議電話(huà)系統(tǒng)及其方法
- 虛擬機(jī)的IP地址的劃分方法
- 使非IP設(shè)備接入虛擬IP網(wǎng)絡(luò)的方法和系統(tǒng)
- CC通道檢測(cè)方法
- 一種IP地址評(píng)估方法及裝置
- 一種調(diào)度軟交換IP話(huà)機(jī)故障檢測(cè)報(bào)警系統(tǒng)
- 一種網(wǎng)絡(luò)攻擊的IP地址分析方法、裝置和存儲(chǔ)介質(zhì)
- 靜態(tài)IP與動(dòng)態(tài)IP的沖突檢測(cè)方法、系統(tǒng)、終端及存儲(chǔ)介質(zhì)
- IP地址段查找方法與業(yè)務(wù)調(diào)度方法、裝置、電子設(shè)備
- 一種IP檢測(cè)的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





