两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收方法和裝置的制作方法

文檔序號:7720943閱讀:259來源:國知局
專利名稱:基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收方
法方法和裝置。
背景技術(shù)
目前,相關(guān)技術(shù)進(jìn)行報(bào)文發(fā)送和接收的方法存在以下缺點(diǎn) (1)只能基于零拷貝方式在單個(gè)數(shù)據(jù)隊(duì)列進(jìn)行報(bào)文發(fā)送、接收操作; (2)當(dāng)多個(gè)應(yīng)用程序同時(shí)進(jìn)行報(bào)文發(fā)送、接收操作時(shí),需要采用互斥操作,維護(hù)緩
沖區(qū)隊(duì)列的同步; (3)無法充分利用多核CPU的處理能力; (4)應(yīng)用程序利用TCP/IP網(wǎng)絡(luò)協(xié)議棧進(jìn)行報(bào)文接收,無法保證報(bào)文的同源同宿 (相同的源、目的IP地址或相反方向的報(bào)文)。

發(fā)明內(nèi)容
針對相關(guān)技術(shù)中存在的的問題,本發(fā)明的目的在于提供一種,以解決上述問題中 的至少之一。 為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于零拷貝方式的多隊(duì)列
報(bào)文發(fā)送和接收方法,該方法包括網(wǎng)卡驅(qū)動(dòng)程序申請用于發(fā)送和接收報(bào)文的多個(gè)報(bào)文緩
沖區(qū)隊(duì)列;當(dāng)網(wǎng)卡接收報(bào)文時(shí),采用零拷貝方式接收報(bào)文,并將所接收的報(bào)文存儲(chǔ)到多個(gè)報(bào)
文緩沖區(qū)隊(duì)列中相應(yīng)的報(bào)文緩沖區(qū)隊(duì)列中;以及當(dāng)網(wǎng)卡發(fā)送報(bào)文時(shí),指定報(bào)文存儲(chǔ)到多個(gè)
報(bào)文緩沖區(qū)隊(duì)列中的哪個(gè)報(bào)文緩沖區(qū)隊(duì)列中,然后采用零拷貝方式進(jìn)行報(bào)文發(fā)送。 優(yōu)選地,當(dāng)網(wǎng)卡接收報(bào)文時(shí),根據(jù)所接收的報(bào)文頭中的源IP地址和目的IP地址進(jìn)
行哈希運(yùn)算。 優(yōu)選地,當(dāng)網(wǎng)卡發(fā)送報(bào)文時(shí),能夠同時(shí)運(yùn)行一個(gè)或多個(gè)應(yīng)用程序進(jìn)行發(fā)送操作,每 個(gè)應(yīng)用程序使用不同的報(bào)文緩沖區(qū)隊(duì)列。 為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于零拷貝方式的多隊(duì)列 報(bào)文發(fā)送和接收裝置,該裝置包括隊(duì)列申請模塊,用于申請用于發(fā)送和接收報(bào)文的多個(gè)報(bào) 文緩沖區(qū)隊(duì)列;報(bào)文接收模塊,用于當(dāng)網(wǎng)卡接收報(bào)文時(shí),采用零拷貝方式接收報(bào)文,并將所 接收的報(bào)文存儲(chǔ)到多個(gè)報(bào)文緩沖區(qū)隊(duì)列中相應(yīng)的報(bào)文緩沖區(qū)隊(duì)列中;以及報(bào)文發(fā)送模塊, 當(dāng)網(wǎng)卡發(fā)送報(bào)文時(shí),指定報(bào)文存儲(chǔ)到多個(gè)報(bào)文緩沖區(qū)隊(duì)列中的哪個(gè)報(bào)文緩沖區(qū)隊(duì)列中,然 后采用零拷貝方式進(jìn)行報(bào)文發(fā)送。 優(yōu)選地,當(dāng)接收報(bào)文時(shí),報(bào)文接收模塊根據(jù)所接收的報(bào)文頭中的源IP地址和目的 IP地址進(jìn)行哈希運(yùn)算。 優(yōu)選地,當(dāng)發(fā)送報(bào)文時(shí),同時(shí)運(yùn)行一個(gè)或多個(gè)應(yīng)用程序進(jìn)行發(fā)送操作,每個(gè)應(yīng)用程 序使用不同的報(bào)文緩沖區(qū)隊(duì)列。 借助本發(fā)明上述至少一個(gè)技術(shù)方案,通過申請多個(gè)報(bào)文緩沖區(qū)隊(duì)列進(jìn)行報(bào)文發(fā)送和接收操作,本發(fā)明充分利用了多核CPU的處理能力,保證了多個(gè)應(yīng)用程序接收的報(bào)文都 同源同宿,不采用互斥操作,提高了報(bào)文的處理效率。


圖1是根據(jù)本發(fā)明的基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收方法的流程圖;以 及 圖2是根據(jù)本發(fā)明的基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收方法的框圖。
具體實(shí)施方式

功能概述 考慮到相關(guān)技術(shù)中存在的的問題,本發(fā)明提出了一種基于零拷貝方式的多隊(duì)列報(bào) 文發(fā)送和接收方法和裝置. 正常情況下,報(bào)文的發(fā)送、接收各使用一個(gè)報(bào)文隊(duì)列。這樣,當(dāng)多個(gè)應(yīng)用程序同時(shí) 進(jìn)行報(bào)文的發(fā)送或者接收操作時(shí),就需要對報(bào)文隊(duì)列進(jìn)行互斥操作。為了解決此問題,我們 創(chuàng)建多個(gè)報(bào)文隊(duì)列,每個(gè)應(yīng)用程序通過參數(shù)確定所使用的報(bào)文隊(duì)列號。這樣,每個(gè)應(yīng)用程序 可以同時(shí)使用自己的報(bào)文隊(duì)列。對每個(gè)應(yīng)用程序來說,除了在函數(shù)調(diào)用時(shí)需要指定隊(duì)列號 外,其他方面完全與一個(gè)報(bào)文隊(duì)列時(shí)的情況相同。 通過申請多個(gè)報(bào)文緩沖區(qū)隊(duì)列并且采用零拷貝方式進(jìn)行報(bào)文發(fā)送和接收操作,充 分利用了多核CPU的處理能力,保證了多個(gè)應(yīng)用程序接收的報(bào)文都同源同宿,不采用互斥 操作,提高了報(bào)文的處理效率。
圖1是根據(jù)本發(fā)明的基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收方法的流程圖。如
圖1所示,根據(jù)本發(fā)明的基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收方法包括 步驟S102,網(wǎng)卡驅(qū)動(dòng)程序申請用于發(fā)送和接收報(bào)文的多個(gè)報(bào)文緩沖區(qū)隊(duì)列; 步驟S 104,當(dāng)網(wǎng)卡接收報(bào)文時(shí),采用零拷貝方式接收報(bào)文,并將所接收的報(bào)文存
儲(chǔ)到多個(gè)報(bào)文緩沖區(qū)隊(duì)列中相應(yīng)的報(bào)文緩沖區(qū)隊(duì)列中;以及當(dāng)網(wǎng)卡發(fā)送報(bào)文時(shí),指定報(bào)文
存儲(chǔ)到多個(gè)報(bào)文緩沖區(qū)隊(duì)列中的哪個(gè)報(bào)文緩沖區(qū)隊(duì)列中,然后采用零拷貝方式進(jìn)行報(bào)文發(fā)送。 其中,當(dāng)網(wǎng)卡接收報(bào)文時(shí),可以根據(jù)所接收的報(bào)文頭中的源IP地址和目的IP地址 進(jìn)行哈希運(yùn)算,然后進(jìn)行報(bào)文的存儲(chǔ),以保證報(bào)文的同源同宿。 其中,哈希算法就是首先分別從源IP地址、目的IP地址的32位二進(jìn)制數(shù)中提取 固定位置、固定數(shù)量的二進(jìn)制數(shù),比如12位到20位共9位數(shù),然后將這組數(shù)進(jìn)行異或操作, 并根據(jù)隊(duì)列數(shù)進(jìn)行取余數(shù)操作。這樣,就可以將不同報(bào)文存儲(chǔ)到不同的報(bào)文隊(duì)列中,同時(shí)也 保證了報(bào)文的同源同宿。 其中,當(dāng)網(wǎng)卡發(fā)送報(bào)文時(shí),能夠同時(shí)運(yùn)行一個(gè)或多個(gè)應(yīng)用程序進(jìn)行發(fā)送操作,每個(gè) 應(yīng)用程序使用不同的報(bào)文緩沖區(qū)隊(duì)列。 圖2是根據(jù)本發(fā)明的基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收裝置。如圖2所示, 根據(jù)本發(fā)明的基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收裝置200包括隊(duì)列申請模塊202, 用于申請用于發(fā)送和接收報(bào)文的多個(gè)報(bào)文緩沖區(qū)隊(duì)列;報(bào)文接收模塊204,用于當(dāng)網(wǎng)卡接 收報(bào)文時(shí),采用零拷貝方式接收報(bào)文,并將所接收的報(bào)文存儲(chǔ)到多個(gè)報(bào)文緩沖區(qū)隊(duì)列中相應(yīng)的報(bào)文緩沖區(qū)隊(duì)列中;以及報(bào)文發(fā)送模塊206,當(dāng)網(wǎng)卡發(fā)送報(bào)文時(shí),指定報(bào)文存儲(chǔ)到多個(gè)
報(bào)文緩沖區(qū)隊(duì)列中的哪個(gè)報(bào)文緩沖區(qū)隊(duì)列中,然后采用零拷貝方式進(jìn)行報(bào)文發(fā)送。 其中,當(dāng)接收報(bào)文時(shí),報(bào)文接收模塊根據(jù)所接收的報(bào)文頭中的源IP地址和目的IP
地址進(jìn)行哈希運(yùn)算。當(dāng)發(fā)送報(bào)文時(shí),同時(shí)運(yùn)行一個(gè)或多個(gè)應(yīng)用程序進(jìn)行發(fā)送操作,每個(gè)應(yīng)用
程序使用不同的報(bào)文緩沖區(qū)隊(duì)列,這樣,不需要進(jìn)行互斥操作。 綜上所述,借助本發(fā)明上述至少一個(gè)技術(shù)方案,通過通過申請多個(gè)報(bào)文緩沖區(qū)隊(duì) 列并且采用零拷貝方式進(jìn)行報(bào)文發(fā)送和接收操作,本發(fā)明充分利用了多核CPU的處理能 力,保證了多個(gè)應(yīng)用程序接收的報(bào)文都同源同宿,不采用互斥操作,提高了報(bào)文的處理效率。。 顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ) 在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們 中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的 硬件和軟件結(jié)合。 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收方法,其特征在于,所述方法包括網(wǎng)卡驅(qū)動(dòng)程序申請用于發(fā)送和接收報(bào)文的多個(gè)報(bào)文緩沖區(qū)隊(duì)列;當(dāng)網(wǎng)卡接收報(bào)文時(shí),采用零拷貝方式接收報(bào)文,并將所接收的報(bào)文存儲(chǔ)到所述多個(gè)報(bào)文緩沖區(qū)隊(duì)列中相應(yīng)的報(bào)文緩沖區(qū)隊(duì)列中;以及當(dāng)網(wǎng)卡發(fā)送報(bào)文時(shí),指定所述報(bào)文存儲(chǔ)到所述多個(gè)報(bào)文緩沖區(qū)隊(duì)列中的哪個(gè)報(bào)文緩沖區(qū)隊(duì)列中,然后采用零拷貝方式進(jìn)行報(bào)文發(fā)送。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)所述網(wǎng)卡接收報(bào)文時(shí),根據(jù)所接收的報(bào) 文頭中的源IP地址和目的IP地址進(jìn)行哈希運(yùn)算。
3. 根據(jù)權(quán)利要求l所述的方法,其特征在于,當(dāng)所述網(wǎng)卡發(fā)送報(bào)文時(shí),能夠同時(shí)運(yùn)行一 個(gè)或多個(gè)應(yīng)用程序進(jìn)行發(fā)送操作,每個(gè)所述應(yīng)用程序使用不同的報(bào)文緩沖區(qū)隊(duì)列。
4. 一種基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收裝置,其特征在于,所述裝置包括 隊(duì)列申請模塊,用于申請用于發(fā)送和接收報(bào)文的多個(gè)報(bào)文緩沖區(qū)隊(duì)列; 報(bào)文接收模塊,用于當(dāng)網(wǎng)卡接收報(bào)文時(shí),采用零拷貝方式接收報(bào)文,并將所接收的報(bào)文存儲(chǔ)到所述多個(gè)報(bào)文緩沖區(qū)隊(duì)列中相應(yīng)的報(bào)文緩沖區(qū)隊(duì)列中;以及報(bào)文發(fā)送模塊,當(dāng)網(wǎng)卡發(fā)送報(bào)文時(shí),指定所述報(bào)文存儲(chǔ)到所述多個(gè)報(bào)文緩沖區(qū)隊(duì)列中 的哪個(gè)報(bào)文緩沖區(qū)隊(duì)列中,然后采用零拷貝方式進(jìn)行報(bào)文發(fā)送。
5. 根據(jù)權(quán)利要求4所述的裝置,其特征在于,當(dāng)接收報(bào)文時(shí),所述報(bào)文接收模塊根據(jù)所 接收的報(bào)文頭中的源IP地址和目的IP地址進(jìn)行哈希運(yùn)算。
6. 根據(jù)權(quán)利要求4所述的裝置,其特征在于,當(dāng)發(fā)送報(bào)文時(shí),同時(shí)運(yùn)行一個(gè)或多個(gè)應(yīng)用 程序進(jìn)行發(fā)送操作,每個(gè)所述應(yīng)用程序使用不同的報(bào)文緩沖區(qū)隊(duì)列。
全文摘要
本發(fā)明提供一種基于零拷貝方式的多隊(duì)列報(bào)文發(fā)送和接收方法和裝置,其中,該方法包括網(wǎng)卡驅(qū)動(dòng)程序申請用于發(fā)送和接收報(bào)文的多個(gè)報(bào)文緩沖區(qū)隊(duì)列;當(dāng)網(wǎng)卡接收報(bào)文時(shí),采用零拷貝方式接收報(bào)文,并將所接收的報(bào)文存儲(chǔ)到多個(gè)報(bào)文緩沖區(qū)隊(duì)列中相應(yīng)的報(bào)文緩沖區(qū)隊(duì)列中;以及當(dāng)網(wǎng)卡發(fā)送報(bào)文時(shí),指定報(bào)文存儲(chǔ)到多個(gè)報(bào)文緩沖區(qū)隊(duì)列中的哪個(gè)報(bào)文緩沖區(qū)隊(duì)列中,然后采用零拷貝方式進(jìn)行報(bào)文發(fā)送。本發(fā)明充分利用了多核CPU的處理能力,保證了多個(gè)應(yīng)用程序接收的報(bào)文都同源同宿,不采用互斥操作,提高了報(bào)文的處理效率。
文檔編號H04L12/56GK101719872SQ20091024231
公開日2010年6月2日 申請日期2009年12月11日 優(yōu)先權(quán)日2009年12月11日
發(fā)明者歷軍, 李永成, 聶華, 邵宗有 申請人:曙光信息產(chǎn)業(yè)(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
拜泉县| 开原市| 元阳县| 万年县| 西充县| 新丰县| 陇川县| 固原市| 清苑县| 常山县| 铁力市| 濮阳县| 会东县| 武功县| 武宁县| 亳州市| 莱州市| 昭通市| 互助| 兰西县| 阿克苏市| 黄山市| 宣恩县| 颍上县| 朔州市| 白沙| 卓尼县| 略阳县| 都匀市| 峨边| 商河县| 新宾| 林州市| 黄梅县| 常熟市| 镇雄县| 红桥区| 怀化市| 台安县| 太康县| 西乌珠穆沁旗|