亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種多個應(yīng)用共享一個緩沖區(qū)的報文接收方法

文檔序號:7896225閱讀:233來源:國知局
專利名稱:一種多個應(yīng)用共享一個緩沖區(qū)的報文接收方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)處理領(lǐng)域,具體涉及一種多個應(yīng)用共享一個緩沖區(qū)的報文接 收方法。
背景技術(shù)
在網(wǎng)絡(luò)數(shù)據(jù)分析系統(tǒng)中,往往在一個硬件平臺上運行多個應(yīng)用,也就是說對設(shè)備 接收到的同一個網(wǎng)絡(luò)報文中的數(shù)據(jù),需要多個應(yīng)用軟件進行接收和處理。目前常用的一種方案是采取數(shù)據(jù)拷貝的方法,把每一個網(wǎng)絡(luò)報文數(shù)據(jù)復(fù)制兩份, 分別交給兩個應(yīng)用,每個應(yīng)用處理自己的數(shù)據(jù)拷貝;另一種方案是采用二次分發(fā)的方法,每 個應(yīng)用建立自己的報文指針隊列,設(shè)備每收到一個報文,就把報文的指針分發(fā)到每個應(yīng)用 的接收隊列中。但是在高速網(wǎng)絡(luò)上,采取數(shù)據(jù)拷貝的方法會帶來大量的cpu數(shù)據(jù)拷貝和內(nèi)存訪問 開銷,采用二次分發(fā)的方法,需要每個應(yīng)用建立自己的報文指針隊列,需要使用同步機制進 行復(fù)雜的隊列管理。兩種方案都會使系統(tǒng)的整體性能降低。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種多個應(yīng)用共享一個緩沖區(qū)的報文接收方法,避免多應(yīng)用 接收報文的內(nèi)存拷貝和二次分發(fā)。一種多個應(yīng)用共享一個緩沖區(qū)的報文接收方法,包括硬件網(wǎng)卡、驅(qū)動軟件、接口庫 軟件,方法如下A、硬件網(wǎng)卡的PCI控制器向主機注冊PCI空間,定義接收報文相關(guān)的寄存器地址; PCI空間寄存器有報文緩沖區(qū)地址、長度、軟件從緩沖區(qū)讀報文的讀指針、硬件向緩沖區(qū) 寫報文的寫指針,其中讀指針有多個,每個應(yīng)用有自己的讀指針;B、驅(qū)動軟件申請連續(xù)的物理內(nèi)存,作為接收報文的緩沖區(qū),并把緩沖區(qū)的物理地 址和長度寫入PCI空間的對應(yīng)寄存器,并設(shè)置硬件的寫指針和所有應(yīng)用軟件的讀指針為初 始值0;C、硬件網(wǎng)卡每次從網(wǎng)絡(luò)接收到一個報文后,把報文傳輸?shù)杰浖膱笪木彌_區(qū)中, 并根據(jù)報文長度,修改PCI空間的寫指針;D、接口庫中的API接口被一個應(yīng)用調(diào)用時,首先把內(nèi)核空間的緩沖區(qū)和硬件的 PCI空間映射到該應(yīng)用的用戶空間,然后根據(jù)該應(yīng)用是第幾個應(yīng)用,把PCI空間的第幾個軟 件讀指針寄存器作為該應(yīng)用的讀指針寄存器使用;E、應(yīng)用軟件循環(huán)收包,每次收包都要查看接口庫中映射出的PCI空間寄存器,判 斷硬件寫指針是否等于軟件的讀指針,如果不相等,則說明讀指針和寫指針之間是新的報 文,則讀取出來,并移動讀指針;如果讀指針追上了寫指針,則說明緩沖區(qū)內(nèi)報文已經(jīng)全部 讀出,則等待一個時間片后,進行下一次輪詢。本發(fā)明使多個應(yīng)用可以利用一個共享緩沖區(qū)從網(wǎng)絡(luò)接收報文,從而避免多應(yīng)用收包時的報文拷貝或二次分發(fā)開銷。


圖1是本發(fā)明工作原理圖
具體實施例方式本發(fā)明是一個軟硬件結(jié)合的系統(tǒng),包括硬件網(wǎng)卡、驅(qū)動軟件、接口庫軟件。驅(qū)動軟件負責(zé)分配接收報文使用的緩沖區(qū),需要在內(nèi)核中申請一整片物理地址連 續(xù)的內(nèi)存,作為接收報文的緩沖區(qū)。硬件網(wǎng)卡負責(zé)從網(wǎng)絡(luò)接收報文,并把報文傳輸?shù)街鳈C內(nèi)存的報文緩沖區(qū)中,通過 寫PCI空間的寄存器,通知軟件有新報文到達。PCI空間寄存器主要有報文緩沖區(qū)地址、 長度、軟件從緩沖區(qū)讀報文的讀指針、硬件向緩沖區(qū)寫報文的寫指針,其中讀指針有多個, 每個應(yīng)用有自己的讀指針。接口庫軟件在每個應(yīng)用調(diào)用API接口時,把報文緩沖區(qū)和PCI空間映射到該應(yīng)用 的用戶空間,每個應(yīng)用去輪詢PCI空間中該應(yīng)用的緩沖區(qū)讀寫指針信息,查看是否有新的 報文到達。該發(fā)明接收報文的方法如下(1)硬件網(wǎng)卡的PCI控制器向主機注冊PCI空間,其中定義接收報文相關(guān)的寄存器 地址,包括報文緩沖區(qū)地址、長度、軟件從緩沖區(qū)讀報文的讀指針、硬件向緩沖區(qū)寫報文的 寫指針,根據(jù)預(yù)設(shè)的最大應(yīng)用軟件個數(shù),配置多個讀指針寄存器。(2)驅(qū)動軟件申請報文緩沖區(qū)。驅(qū)動軟件申請一片物理地址連續(xù)的內(nèi)存,作為接收報文的緩沖區(qū),把緩沖區(qū)的物 理地址和長度寫入PCI空間的對應(yīng)寄存器,并設(shè)置硬件的寫指針和所有應(yīng)用軟件的讀指針 為初始值0。(3)硬件接收報文。硬件每次從網(wǎng)絡(luò)接收到一個報文后,把報文傳輸?shù)杰浖膱笪木彌_區(qū)中,并根據(jù) 報文長度,修改PCI空間的寫指針。(4)接口庫映射報文緩沖區(qū)和PCI空間寄存器。接口庫中的API接口被一個應(yīng)用調(diào)用時,首先把內(nèi)核空間的緩沖區(qū)和硬件的PCI 空間映射到該應(yīng)用的用戶空間,然后根據(jù)該應(yīng)用是第幾個應(yīng)用,把PCI空間的第幾個軟件 讀指針寄存器作為該應(yīng)用的讀指針寄存器使用。(5)應(yīng)用軟件接收報文。應(yīng)用軟件循環(huán)收包,每次收包都要查看接口庫中映射出的PCI空間寄存器,判斷 硬件寫指針是否等于軟件的讀指針,如果不相等,則說明讀指針和寫指針之間是新的報文, 則讀取出來,并移動讀指針;如果讀指針追上了寫指針,則說明緩沖區(qū)內(nèi)報文已經(jīng)全部讀 出,則等待一個時間片后,進行下一次輪詢。
權(quán)利要求
1. 一種多個應(yīng)用共享一個緩沖區(qū)的報文接收方法,其特征在于包括硬件網(wǎng)卡、驅(qū)動 軟件、接口庫軟件,方法如下A、硬件網(wǎng)卡的PCI控制器向主機注冊PCI空間,定義接收報文相關(guān)的寄存器地址;PCI 空間寄存器有報文緩沖區(qū)地址、長度、軟件從緩沖區(qū)讀報文的讀指針、硬件向緩沖區(qū)寫報 文的寫指針,其中讀指針有多個,每個應(yīng)用有自己的讀指針;B、驅(qū)動軟件申請連續(xù)的物理內(nèi)存,作為接收報文的緩沖區(qū),并把緩沖區(qū)的物理地址和 長度寫入PCI空間的對應(yīng)寄存器,并設(shè)置硬件的寫指針和所有應(yīng)用軟件的讀指針為初始值 0 ;C、硬件網(wǎng)卡每次從網(wǎng)絡(luò)接收到一個報文后,把報文傳輸?shù)杰浖膱笪木彌_區(qū)中,并根 據(jù)報文長度,修改PCI空間的寫指針;D、接口庫中的API接口被一個應(yīng)用調(diào)用時,首先把內(nèi)核空間的緩沖區(qū)和硬件的PCI空 間映射到該應(yīng)用的用戶空間,然后根據(jù)該應(yīng)用是第幾個應(yīng)用,把PCI空間的第幾個軟件讀 指針寄存器作為該應(yīng)用的讀指針寄存器使用;E、應(yīng)用軟件循環(huán)收包,每次收包都要查看接口庫中映射出的PCI空間寄存器,判斷硬 件寫指針是否等于軟件的讀指針,如果不相等,則說明讀指針和寫指針之間是新的報文,則 讀取出來,并移動讀指針;如果讀指針追上了寫指針,則說明緩沖區(qū)內(nèi)報文已經(jīng)全部讀出, 則等待一個時間片后,進行下一次輪詢。
全文摘要
本發(fā)明提供了一種多個應(yīng)用共享一個緩沖區(qū)的報文接收方法。硬件網(wǎng)卡的PCI控制器向主機注冊PCI空間,驅(qū)動軟件申請一個報文緩沖區(qū),對緩沖區(qū)設(shè)置一個寫指針和多個讀指針寄存器,每個應(yīng)用單獨使用一個,硬件接收報文后移動寫指針,接口庫映射報文緩沖區(qū)和PCI空間寄存器,應(yīng)用軟件調(diào)用接口庫時確定自己的讀指針,之后通過移動自己的讀指針接收報文。本發(fā)明使多個應(yīng)用可以利用一個共享緩沖區(qū)從網(wǎng)絡(luò)接收報文,從而避免多應(yīng)用收包時的報文拷貝或二次分發(fā)開銷。
文檔編號H04L12/56GK102006241SQ201010597759
公開日2011年4月6日 申請日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者劉興奎, 劉朝輝, 劉燦, 李鋒偉, 竇曉光 申請人:天津曙光計算機產(chǎn)業(yè)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1