[發(fā)明專利]一種數(shù)據(jù)分段卸載發(fā)送方法有效
| 申請?zhí)枺?/td> | 201710396537.8 | 申請日: | 2017-05-31 |
| 公開(公告)號: | CN107257329B | 公開(公告)日: | 2019-10-01 |
| 發(fā)明(設計)人: | 楊惠;李韜;呂高鋒;孫志剛;趙國鴻;毛席龍;全巍;張彥龍;范鵬冉 | 申請(專利權(quán))人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 湖南省國防科技工業(yè)局專利中心 43102 | 代理人: | 馮青 |
| 地址: | 410073 *** | 國省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數(shù)據(jù) 分段 卸載 發(fā)送 方法 | ||
1.一種數(shù)據(jù)分段卸載發(fā)送方法,將一部分硬件的功能卸載到軟件實現(xiàn),即采用驅(qū)動切分大報文及更新報文頭字段,省去了硬件分段計算處理開銷,降低硬件設計復雜度,其特征在于,包括以下步驟:
步驟401:獲取SKB,socket buffer是linux網(wǎng)絡代碼中的數(shù)據(jù)結(jié)構(gòu),線性緩沖區(qū)和頁緩沖區(qū)數(shù)目,解析報文頭,對于TCP報文,確認報文分段數(shù)目,以及是否需要進行報文分片,報文長度大于1514字節(jié);
步驟402:對于需要分片的報文,根據(jù)需要分片的數(shù)目,將報文頭拷貝至多個專用軟件緩沖區(qū),完成每個分片報文頭內(nèi)容的更新,無需分片則跳過此步驟;
步驟403:根據(jù)報文分段,為每個分段完成DMA映射;
步驟404:為每個分片的每個報文分段,包括專用緩沖區(qū)、線性緩沖區(qū)、頁緩沖區(qū)分別獲取一個發(fā)送描述符,填充相關字段,構(gòu)造描述符鏈表,在獲取描述符時需獲得鎖,確保不會有多個進程獲得同一個描述符;
步驟405:將SKB緩存到SKB緩沖區(qū)環(huán),并更新發(fā)送描述符緩沖區(qū)環(huán)的write_p指針;
步驟406:構(gòu)造一個發(fā)送描述符控制塊,通知硬件有新的報文需要發(fā)送;
步驟407:硬件根據(jù)發(fā)送描述符控制塊的內(nèi)容DMA讀發(fā)送描述符鏈,獲取所有分片中每個報文分段所在位置;
步驟408:根據(jù)描述符中指示報文分段地址,DMA讀取所有分片的每個分段報文內(nèi)容,將屬于同一個分片的多個報文分段拼裝成一個分片報文;
步驟409:網(wǎng)卡硬件計算TCP校驗和和CRC,完成報文發(fā)送后,向發(fā)送描述符進行回寫,通知軟件報文發(fā)送完成;
步驟410:驅(qū)動處理中斷或軟中斷,檢查發(fā)送描述符的回寫狀態(tài),若發(fā)送完成則將SKB從SKB緩沖區(qū)環(huán)出隊,完成SKB的釋放,并更新發(fā)送描述符緩沖區(qū)環(huán)的read_p指針。
2.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)分段卸載發(fā)送方法,其特征在于,
所述步驟404中,為每個分片的每個報文分段,包括專用緩沖區(qū)、線性緩沖區(qū)、頁緩沖區(qū)分別獲取的發(fā)送描述符所構(gòu)造描述符鏈表,以支持鏈式DMA,允許碎片化的存儲中的數(shù)據(jù)一次DMA完成,描述符鏈表中的每個發(fā)送描述符,都包含了64位存儲地址信息,長度信息。
3.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)分段卸載發(fā)送方法,其特征在于,
所述步驟406中,構(gòu)造的描述符控制塊,描述的信息為描述符鏈表存儲的地址及長度信息,描述符控制塊以寫寄存器的方式通知網(wǎng)卡硬件,以實現(xiàn)將整個描述符鏈表讀取到硬件的功能。
該專利技術資料僅供研究查看技術是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國人民解放軍國防科學技術大學,未經(jīng)中國人民解放軍國防科學技術大學許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710396537.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設備和數(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ù)據(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ù)據(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)裝置





