專利名稱:待發(fā)送數(shù)據(jù)的處理方法以及數(shù)據(jù)發(fā)送方法、裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)處理方法和一種數(shù)據(jù)發(fā)送方法以及數(shù)據(jù)發(fā)送裝置。
背景技術(shù):
在數(shù)據(jù)傳輸系統(tǒng)中,數(shù)據(jù)發(fā)送端為了快速有效地將數(shù)據(jù)發(fā)送到數(shù)據(jù)接收端,通常要采取很多措施,例如對待發(fā)送的數(shù)據(jù)進(jìn)行編碼壓縮、對待發(fā)送的數(shù)據(jù)進(jìn)行數(shù)據(jù)緩沖區(qū)的分配等處理。一種常見的處理方法是將數(shù)據(jù)按照重要性或預(yù)先確定的權(quán)值分類,確定發(fā)送優(yōu)先級,再將優(yōu)先級不同的數(shù)據(jù)分配優(yōu)先等級不同的隊列發(fā)送。圖1是一個數(shù)據(jù)傳輸系統(tǒng)示例圖。圖1中,每一個服務(wù)器都連接著多臺終端,一個終端通過互聯(lián)網(wǎng)發(fā)送到另一個終端的數(shù)據(jù),需要通過與之連接的服務(wù)器發(fā)送到數(shù)據(jù)處理設(shè)備,經(jīng)過數(shù)據(jù)處理設(shè)備的處理發(fā)送到對端的數(shù)據(jù)處理設(shè)備,進(jìn)而發(fā)送到目的終端。圖1中,數(shù)據(jù)處理設(shè)備發(fā)送的數(shù)據(jù)需要經(jīng)過適當(dāng)?shù)奶幚恚呛唵蔚陌葱虬l(fā)送。
圖2是圖1所示系統(tǒng)的數(shù)據(jù)處理設(shè)備的數(shù)據(jù)處理方法原理圖。按照圖2,匯集到數(shù)據(jù)處理設(shè)備的數(shù)據(jù)通常按照某種通信協(xié)議將數(shù)據(jù)包裝為具體的數(shù)據(jù)包,所述數(shù)據(jù)包經(jīng)過服務(wù)器匯集到數(shù)據(jù)處理設(shè)備,所述數(shù)據(jù)處理設(shè)備的優(yōu)先級判斷單元按照預(yù)先設(shè)定的標(biāo)準(zhǔn)判斷所述數(shù)據(jù)包的優(yōu)先級,然后將所述數(shù)據(jù)包送到數(shù)據(jù)緩沖區(qū)組中的相應(yīng)優(yōu)先級的數(shù)據(jù)緩沖區(qū)中,最后由所述數(shù)據(jù)發(fā)送單元調(diào)度發(fā)送。在大部分的數(shù)據(jù)傳輸系統(tǒng)中,數(shù)據(jù)發(fā)送前的處理,一是如圖2所示將數(shù)據(jù)包劃分優(yōu)先級,然后按照優(yōu)先級的順序發(fā)送。如果要壓縮數(shù)據(jù)包,減少發(fā)送的數(shù)據(jù)量,則要在優(yōu)先級判斷單元的前面或后面增加一個編碼壓縮單元,將數(shù)據(jù)包分別編碼壓縮后再按照其優(yōu)先級分配到所述的優(yōu)先級隊列。或者,在數(shù)據(jù)發(fā)送裝置的前面增加一個編碼壓縮單元,使數(shù)據(jù)包的編碼壓縮既可以針對具體的分級數(shù)據(jù)包,也可以將從不同的優(yōu)先級隊列中調(diào)度出的不同的數(shù)據(jù)包進(jìn)行混合的編碼壓縮后發(fā)送。在一個具體的應(yīng)用中,所述優(yōu)先級判斷裝置可以拆分為數(shù)據(jù)包輸入單元和數(shù)據(jù)包分配單元,而數(shù)據(jù)發(fā)送裝置可以拆分為數(shù)據(jù)輸出單元和輸出數(shù)據(jù)緩沖區(qū)。
由上可知,現(xiàn)有的待發(fā)送數(shù)據(jù)的處理方法無論是優(yōu)先級隊列的分配還是數(shù)據(jù)的編碼壓縮,都是順序進(jìn)行的,由于數(shù)據(jù)的調(diào)度、壓縮等處理操作消耗的時間較多,使得優(yōu)先級隊列的串行處理產(chǎn)生的延遲導(dǎo)致物理鏈路的大量傳輸資源空閑。這樣,不但使得一些優(yōu)先級較低數(shù)據(jù)包的發(fā)送延遲較大,即使對于優(yōu)先級較高的數(shù)據(jù)來說,也可能導(dǎo)致數(shù)據(jù)發(fā)送的延遲。
發(fā)明方案本發(fā)明要解決的技術(shù)問題在于提供一種數(shù)據(jù)發(fā)送延遲較低的待發(fā)送數(shù)據(jù)的處理方法以及數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送裝置。
本發(fā)明提供的待發(fā)送數(shù)據(jù)的處理方法,包括設(shè)置多個數(shù)據(jù)包處理線程;接收數(shù)據(jù)包,將所述數(shù)據(jù)包分別輸入多個數(shù)據(jù)緩沖區(qū),使每個數(shù)據(jù)緩沖區(qū)對應(yīng)一個數(shù)據(jù)包處理線程;利用所述數(shù)據(jù)包處理線程處理對應(yīng)數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包。
其中,按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,以及,按照對數(shù)據(jù)包的操作將所述數(shù)據(jù)分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
也可以按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的目的地址將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
所述目的地址包括目的IP地址和目的端口號。
還可以按照數(shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的優(yōu)先級將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
而且,隔離所述數(shù)據(jù)包處理線程的內(nèi)存空間。
另外,將每一個數(shù)據(jù)緩沖區(qū)分為兩部分,第一部分用于存儲待處理的數(shù)據(jù)包,第二部分用于存儲處理后的數(shù)據(jù)包。
所述方法還包括設(shè)置多個數(shù)據(jù)包分配線程,用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
所述方法還包括所述數(shù)據(jù)緩沖區(qū)包括多個并列的子數(shù)據(jù)緩沖區(qū)。
為所述數(shù)據(jù)包處理線程設(shè)置多個與所述子數(shù)據(jù)緩沖區(qū)對應(yīng)的子線程,用于處理所述子數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包。
所述方法還包括設(shè)置多個數(shù)據(jù)包發(fā)送線程,用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。
本發(fā)明提供的數(shù)據(jù)發(fā)送方法,包括設(shè)置多個數(shù)據(jù)包處理線程;接收數(shù)據(jù)包,將所述數(shù)據(jù)包分別輸入多個數(shù)據(jù)緩沖區(qū),使每個數(shù)據(jù)緩沖區(qū)對應(yīng)一個數(shù)據(jù)包處理線程;利用所述數(shù)據(jù)包處理線程處理對應(yīng)數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包;
將處理后的數(shù)據(jù)包送到輸出數(shù)據(jù)緩沖區(qū)中發(fā)送。
其中,按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,以及,按照對數(shù)據(jù)包的操作將所述數(shù)據(jù)分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
或者,按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的目的地址將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
所述目的地址包括目的IP地址和目的端口號。
還可以按照數(shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的優(yōu)先級將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
所述方法還包括設(shè)置多個數(shù)據(jù)包分配線程,用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
所述方法還包括設(shè)置多個數(shù)據(jù)包發(fā)送線程,用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。
本發(fā)明提供的數(shù)據(jù)發(fā)送裝置,包括數(shù)據(jù)包輸入單元、數(shù)據(jù)包分配單元、數(shù)據(jù)緩沖區(qū)組、數(shù)據(jù)輸出單元和輸出數(shù)據(jù)緩沖區(qū),其特征在于還包括第一線程存儲單元,用于存儲預(yù)先設(shè)置的多個數(shù)據(jù)包處理線程,所述數(shù)據(jù)包處理線程與所述數(shù)據(jù)緩沖區(qū)一一對應(yīng);所述數(shù)據(jù)包分配單元,從所述數(shù)據(jù)包輸入單元接收數(shù)據(jù)包,將所述數(shù)據(jù)包分別輸入多個數(shù)據(jù)緩沖區(qū);所述數(shù)據(jù)輸出單元,將所述數(shù)據(jù)包處理線程處理后的數(shù)據(jù)包送到所述輸出數(shù)據(jù)緩沖區(qū)中發(fā)送。
其中,按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,以及,按照對數(shù)據(jù)包的操作將所述數(shù)據(jù)分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
或者,按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的目的地址將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
所述目的地址包括目的IP地址和目的端口號。
還可以按照數(shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的優(yōu)先級將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
所述裝置還包括用于存儲多個數(shù)據(jù)包分配線程的第二線程存儲單元,所述數(shù)據(jù)包分配線程用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
所述裝置還包括用于存儲多個數(shù)據(jù)包發(fā)送線程的第三線程存儲單元,所述數(shù)據(jù)包發(fā)送線程用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。
由于本發(fā)明設(shè)置多個數(shù)據(jù)包處理線程,使每個數(shù)據(jù)緩沖區(qū)對應(yīng)一個數(shù)據(jù)包處理線程,使得能夠利用所述數(shù)據(jù)包處理線程處理對應(yīng)數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包,由于線程具有并發(fā)處理的特性,能夠充分利用系統(tǒng)CPU資源處理數(shù)據(jù)包,因此能夠最大限度地提高數(shù)據(jù)包處理和數(shù)據(jù)包發(fā)送的效率,具有較低的數(shù)據(jù)發(fā)送延遲。
更進(jìn)一步,由于本發(fā)明可以按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,或者按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,或者按照數(shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,上述方案的單獨或組合使用,不但使本發(fā)明更具有應(yīng)用的靈活性,還能夠更充分的利用系統(tǒng)CPU和存儲資源,進(jìn)一步提高數(shù)據(jù)包處理的效率。
另外,本發(fā)明采取的設(shè)置多個數(shù)據(jù)包分配線程,以及為所述數(shù)據(jù)包處理線程設(shè)置多個與所述子數(shù)據(jù)緩沖區(qū)對應(yīng)的子線程,和設(shè)置多個數(shù)據(jù)包發(fā)送線程的改進(jìn)方案,更能夠幫助促進(jìn)系統(tǒng)資源的更充分的利用,從而最大限度地提高系統(tǒng)的數(shù)據(jù)傳輸性能。
圖1是一個數(shù)據(jù)傳輸系統(tǒng)示例圖;圖2是圖1所示系統(tǒng)的數(shù)據(jù)處理設(shè)備的數(shù)據(jù)處理方法原理圖;圖3是本發(fā)明所述待發(fā)送數(shù)據(jù)的處理方法的一個實施例的流程圖;圖4是本發(fā)明一個實施例的數(shù)據(jù)包處理線程與數(shù)據(jù)緩沖區(qū)的關(guān)系圖;圖5為本發(fā)明的實施例采用的數(shù)據(jù)包分配線程工作原理圖;圖6是本發(fā)明所述數(shù)據(jù)發(fā)送方法的一個實施例的流程圖;圖7是本發(fā)明所述數(shù)據(jù)發(fā)送裝置的第一實施例框圖;圖8是本發(fā)明所述數(shù)據(jù)發(fā)送裝置的第二實施例框圖;圖9是本發(fā)明所述數(shù)據(jù)發(fā)送裝置的第三實施例框圖。
具體實施例方式
參考圖2,按照傳統(tǒng)方法處理數(shù)據(jù)包,數(shù)據(jù)包的發(fā)送延時幾乎是不可避免的,首先,數(shù)據(jù)包按照優(yōu)先級輸入相應(yīng)數(shù)據(jù)緩沖區(qū)的判斷要逐個進(jìn)行;其次,從數(shù)據(jù)緩沖區(qū)中調(diào)度出來的數(shù)據(jù)包無論是否進(jìn)行壓縮,都要按照優(yōu)先級的原則發(fā)送或者混合編碼發(fā)送;延遲的主要原因是順序或串行的處理方式導(dǎo)致的。
本發(fā)明采用多線程處理的方式,充分利用系統(tǒng)的資源并行處理待發(fā)送的數(shù)據(jù)包,從而能夠減少數(shù)據(jù)發(fā)送的延遲。具體的實施例可以參考圖3。按照圖3,為了實現(xiàn)對數(shù)據(jù)包的并發(fā)處理,需要預(yù)先設(shè)置多個數(shù)據(jù)包處理線程,當(dāng)所述設(shè)置的線程的個數(shù)與要處理的任務(wù)數(shù)量相適應(yīng)時,能夠充分利用系統(tǒng)的資源。在本實施例中,由于要處理的數(shù)據(jù)包存儲在不同的數(shù)據(jù)緩沖區(qū)中,因此預(yù)先設(shè)置的數(shù)據(jù)包處理線程的個數(shù)與數(shù)據(jù)緩沖區(qū)的個數(shù)相同。事實上,所述數(shù)據(jù)包處理線程的個數(shù)與數(shù)據(jù)緩沖區(qū)的個數(shù)不相同,使一個數(shù)據(jù)包處理線程處理兩個數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)包,或者,使二個數(shù)據(jù)包處理線程處理一個數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)包,等等,也能夠?qū)崿F(xiàn)本發(fā)明。
以所述預(yù)先設(shè)置的多個數(shù)據(jù)包處理線程為基礎(chǔ),就可以在步驟31接收數(shù)據(jù)包,然后在步驟32將所述接受大數(shù)據(jù)包分別輸入多個數(shù)據(jù)緩沖區(qū)中對應(yīng)數(shù)據(jù)緩沖區(qū),使每個數(shù)據(jù)緩沖區(qū)對應(yīng)一個數(shù)據(jù)包處理線程;最后在步驟33由所述數(shù)據(jù)包處理線程處理其對應(yīng)的隊列中的數(shù)據(jù)包。在本例中,為了提高數(shù)據(jù)包的發(fā)送效率,將具有相同目的地址的數(shù)據(jù)包采用同一個的數(shù)據(jù)包發(fā)送線程處理,因此,按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的目的地址將所述數(shù)據(jù)包分別輸入到相應(yīng)的隊列。
在通常的通信協(xié)議規(guī)定中,用于包裝數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)通常有發(fā)出數(shù)據(jù)的源終端和接收數(shù)據(jù)的目的終端的地址,以使終端能夠正確接收數(shù)據(jù)以及進(jìn)行各種反饋。例如,IP協(xié)議規(guī)定的IP數(shù)據(jù)包,TCP協(xié)議規(guī)定的TCP數(shù)據(jù)包,UDP協(xié)議規(guī)定的UDP數(shù)據(jù)包,盡管它們由于不同的數(shù)據(jù)傳輸目的而設(shè)置,具有不同的結(jié)構(gòu),但是在數(shù)據(jù)包中,例如在包頭中,都記載有源地址和目的地址等信息。本實施例涉及的數(shù)據(jù)包,其中記載的目的地址就包括目的IP地址和目的端口號兩部分。因此,本實施例采用的數(shù)據(jù)緩沖區(qū)的個數(shù)與其涉及的目的地址的組數(shù)是相同的。例如,應(yīng)用本實施例的數(shù)據(jù)處理設(shè)備涉及或連接著9個其它的能夠進(jìn)行數(shù)據(jù)包收發(fā)的數(shù)據(jù)處理設(shè)備,因此,這十個數(shù)據(jù)處理設(shè)備中的任意一個,都以其它9個數(shù)據(jù)處理設(shè)備作為目的端點,因此,對應(yīng)設(shè)置的數(shù)據(jù)緩沖區(qū)的個數(shù)也是9個,每一個數(shù)據(jù)處理設(shè)備對應(yīng)其中的一個數(shù)據(jù)緩沖區(qū)。在本實施例中,一個數(shù)據(jù)處理設(shè)備及其連接的所有終端的地址被視為相同的目的地址,這樣便于采用一個數(shù)據(jù)緩沖區(qū)處理到相同目的地數(shù)據(jù)處理設(shè)備的數(shù)據(jù)包。實際上,按照二個數(shù)據(jù)處理設(shè)備對應(yīng)一個數(shù)據(jù)緩沖區(qū),進(jìn)而對應(yīng)一個數(shù)據(jù)包處理線程的方法設(shè)置所述數(shù)據(jù)包處理線程,或者按照一個數(shù)據(jù)處理設(shè)備對應(yīng)二個數(shù)據(jù)緩沖區(qū),進(jìn)而對應(yīng)二個數(shù)據(jù)包處理線程的方法設(shè)置所述數(shù)據(jù)包處理線程,都可以實現(xiàn)本發(fā)明的思想。
在另外的實施例中,所述的數(shù)據(jù)緩沖區(qū)也可以是一組,這樣可以增加針對一個數(shù)據(jù)處理設(shè)備的數(shù)據(jù)包處理的靈活性。即,所述數(shù)據(jù)緩沖區(qū)包括多個并列的子數(shù)據(jù)緩沖區(qū),同時,為所述數(shù)據(jù)包處理線程設(shè)置多個與所述子數(shù)據(jù)緩沖區(qū)對應(yīng)的子線程,用于處理所述子數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)。實際中,每一個數(shù)據(jù)緩沖區(qū)需要設(shè)置多少個子數(shù)據(jù)緩沖區(qū),以及是否需要設(shè)置子數(shù)據(jù)緩沖區(qū)根據(jù)實際的需要確定,例如目的數(shù)據(jù)處理裝置連接有5個終端,就可能在所述數(shù)據(jù)處理裝置對應(yīng)的數(shù)據(jù)緩沖區(qū)中設(shè)置5個并列的子數(shù)據(jù)緩沖區(qū),而另一個數(shù)據(jù)處理裝置連接有10個終端,就有可能在其對應(yīng)的數(shù)據(jù)緩沖區(qū)中設(shè)置10個并列的子數(shù)據(jù)緩沖區(qū)。相應(yīng)的,所述子數(shù)據(jù)緩沖區(qū)對應(yīng)的子線程也要根據(jù)操作的需要預(yù)先設(shè)置。同理,也可以多個終端對應(yīng)一個子數(shù)據(jù)緩沖區(qū),進(jìn)而對應(yīng)一個子線程,或者,一個終端的數(shù)據(jù)包由于操作的不同等因素,而使一個終端對應(yīng)多個子數(shù)據(jù)緩沖區(qū),進(jìn)而對應(yīng)多個子線程。
需要指出的是,所述數(shù)據(jù)包處理線程及子線程的個數(shù)受系統(tǒng)內(nèi)存空間大小的約束,實際中,可以通過隔離所述數(shù)據(jù)包處理線程的內(nèi)存空間的方法輔助設(shè)置數(shù)據(jù)包處理線程或子線程,例如為一個具體的線程或子線程配置內(nèi)存空間的地址范圍或標(biāo)志來實現(xiàn)所述隔離。
按照數(shù)據(jù)包的目的地址設(shè)置數(shù)據(jù)包處理線程只是實現(xiàn)數(shù)據(jù)包并發(fā)及并行處理的一種方式,在本發(fā)明另外的實施例中,按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,以及,按照對數(shù)據(jù)包的操作將所述數(shù)據(jù)分別輸入到相應(yīng)的隊列,也是其中的一種方式。也就是說,劃分對數(shù)據(jù)包的不同操作,進(jìn)行相同操作的數(shù)據(jù)包采用相同的線程處理,不同的操作對應(yīng)不同的線程。在該實施例中,將數(shù)據(jù)包的處理分為拆包、數(shù)據(jù)轉(zhuǎn)換、編碼壓縮三個操作,其中,拆包是將接收到的IP數(shù)據(jù)包中的目的地址、目的端口號、具體的數(shù)據(jù)等等取出;所述數(shù)據(jù)轉(zhuǎn)換是將上一步驟得到的有意義的數(shù)據(jù)轉(zhuǎn)換為便于壓縮編碼的無意義的數(shù)據(jù);所述編碼壓縮是對轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行壓縮編碼,生成具體的傳輸數(shù)據(jù)。參考圖4。接收到的數(shù)據(jù)包首先在第一數(shù)據(jù)緩沖區(qū)中由線程1完成拆包操作,拆包后的數(shù)據(jù)被線程1送到第二數(shù)據(jù)緩沖區(qū);所述第二數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)由線程2完成數(shù)據(jù)轉(zhuǎn)換操作,轉(zhuǎn)換后的數(shù)據(jù)被線程2送到第三數(shù)據(jù)緩沖區(qū);線程3對所述第三數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)完成編碼壓縮后輸出。
根據(jù)常識可知,根據(jù)數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)的不同,每一個數(shù)據(jù)緩沖區(qū)實際上可能是由具有更小存儲單元組成的串行存儲單元隊列,或者由較小存儲單元并列組成的空間更大的存儲單元。在本實施例中,這些數(shù)據(jù)緩沖區(qū)具有串行關(guān)系,而在圖3所示的實施例中,所述數(shù)據(jù)緩沖區(qū)具有并行的關(guān)系,對于本實施例來說,盡管物理上為串行關(guān)系,但在數(shù)據(jù)處理時確是多個線程構(gòu)成的并行處理關(guān)系。
在本發(fā)明的第三個實施例中,按照數(shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的優(yōu)先級將所述數(shù)據(jù)包分別輸入到相應(yīng)的隊列。該實施例在涉及服務(wù)質(zhì)量(QoS)保證的傳輸中有重要意義。由于數(shù)據(jù)包具有傳輸效率的約定,因此,為不同終端或不同用戶的數(shù)據(jù)包設(shè)置優(yōu)先級,以保證該數(shù)據(jù)包的傳輸效率。數(shù)據(jù)包傳輸效率的實現(xiàn),一種措施是保證數(shù)據(jù)傳輸?shù)膬?yōu)先,在本實施例中,體現(xiàn)的是數(shù)據(jù)處理的優(yōu)先。因此,根據(jù)數(shù)據(jù)包具有的優(yōu)先級,將優(yōu)先級分組,即將所述數(shù)據(jù)包劃分為若干個等級,數(shù)據(jù)緩沖區(qū)的設(shè)置與所述等級相對應(yīng),在設(shè)置數(shù)據(jù)包處理線程時,使數(shù)據(jù)包處理線程的個數(shù)與所述數(shù)據(jù)緩沖區(qū)的個數(shù)相同,由于不同數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包的優(yōu)先等級不同,本實施例中,為優(yōu)先等級高的數(shù)據(jù)緩沖區(qū)設(shè)置的數(shù)據(jù)包處理線程分配較多的系統(tǒng)資源,例如較長的CPU(中央處理器)的時間片,從而使優(yōu)先等級高的數(shù)據(jù)緩沖區(qū)對應(yīng)的線程占有較多的CPU資源處理數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包。
需要指出的是,在本發(fā)明的方法具體實施時,上述數(shù)據(jù)包處理線程的設(shè)置方案可以混合采用,例如,按優(yōu)先級設(shè)置與按目的地址設(shè)置的方式就可以混合在一起,比如,目的地址相同的數(shù)據(jù)包,優(yōu)先級可能不同,因此可以考慮將一個目的數(shù)據(jù)處理設(shè)備對應(yīng)的數(shù)據(jù)緩沖區(qū)劃分為多個優(yōu)先等級不同的子數(shù)據(jù)緩沖區(qū),這樣能夠方便數(shù)據(jù)包輸出是按照優(yōu)先級調(diào)度。同理,按優(yōu)先級設(shè)置與按對數(shù)據(jù)包的操作設(shè)置的方式也可以混合在一起,在保證操作順序的前提下,需要較長時間處理的數(shù)據(jù)部分可以獲得高優(yōu)先級的處理,從而實現(xiàn)整體數(shù)據(jù)包處理過程中的協(xié)調(diào)。等等。
例如,本實施例中,數(shù)據(jù)包的優(yōu)先級為5級,分別為a、b、c、d、e,將其分為三組,即三個等級,分別為A、B、C,其中,級別a、b對應(yīng)等級A,級別c、d對應(yīng)等級B,級別e對應(yīng)等級C,為等級A、B、C設(shè)置的數(shù)據(jù)包處理線程分別為線程A、線程B、線程C,線程A占用的CPU時間片最大,而線程C占用的CPU時間片最小,從而保證對級別為a、b的數(shù)據(jù)包處理的速度最快,能夠優(yōu)先處理完畢并通過發(fā)送數(shù)據(jù)緩沖區(qū)優(yōu)先發(fā)送。在本實施例中,所述數(shù)據(jù)緩沖區(qū)物理上的關(guān)系為并行關(guān)系。
在上面提到的實施例中,可以更進(jìn)一步的改進(jìn),將每一個數(shù)據(jù)緩沖區(qū)分為兩部分,第一部分用于存儲待處理的數(shù)據(jù)包,第二部分用于存儲處理后的數(shù)據(jù)包。上面所述數(shù)據(jù)包處理線程對應(yīng)的是第一部分,而第二部分需要后續(xù)的線程處理,或者設(shè)置單獨的線程處理。
更進(jìn)一步,對上述實施例還可以采用下述更進(jìn)一步的改進(jìn)1、將所述數(shù)據(jù)緩沖區(qū)設(shè)置為多個子數(shù)據(jù)緩沖區(qū),所述子數(shù)據(jù)緩沖區(qū)物理上可以如前文所述的并行關(guān)系或串行關(guān)系,但是由于并行處理,其之間的關(guān)系實質(zhì)上為并列關(guān)系。所述并列關(guān)系體現(xiàn)在為所述數(shù)據(jù)包處理線程設(shè)置多個與所述子數(shù)據(jù)緩沖區(qū)對應(yīng)的子線程,這些子線程用于并行或并發(fā)處理所述子數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包。
2、設(shè)置多個數(shù)據(jù)包分配線程,用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。這里所述數(shù)據(jù)包分配線程具有相同的操作和功能,可以與上述提到的任何一個具體實施例結(jié)合起來處理數(shù)據(jù)包進(jìn)入數(shù)據(jù)緩沖區(qū)前的分配數(shù)據(jù)緩沖區(qū)的處理。參考圖5,接收到的數(shù)據(jù)包首先被送入到輸入數(shù)據(jù)緩沖區(qū)中,并發(fā)操作的多個數(shù)據(jù)包分配線程從所述輸入數(shù)據(jù)緩沖區(qū)取出數(shù)據(jù)包進(jìn)行判斷或其他規(guī)定的操作,進(jìn)而將所述處理完畢的數(shù)據(jù)送入到相應(yīng)的數(shù)據(jù)緩沖區(qū)中。或者,還可以采用另外的處理方式,首先采用一個數(shù)據(jù)包分配線程處理接收到的數(shù)據(jù)包,此時,其它數(shù)據(jù)包分配線程的CPU資源釋放給系統(tǒng)的其它線程使用,當(dāng)一個數(shù)據(jù)包分配線程不足以處理接收到的數(shù)據(jù)包時,再啟動其它的數(shù)據(jù)包分配線程,從而通過線程的按需使用,實現(xiàn)系統(tǒng)資源的合理共享。
3、設(shè)置多個數(shù)據(jù)包發(fā)送線程,用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。在具有多個數(shù)據(jù)發(fā)送通道的前提下,設(shè)置多個數(shù)據(jù)包發(fā)送進(jìn)程能夠加快數(shù)據(jù)包的發(fā)送速度。與該思想相對應(yīng),可以將輸出數(shù)據(jù)緩沖區(qū)設(shè)置為多個并列的子緩沖區(qū),以與多個數(shù)據(jù)包發(fā)送線程對應(yīng)。在數(shù)據(jù)包發(fā)送過程中,也可以通過線程的按需使用,實現(xiàn)系統(tǒng)資源的合理共享。即,先采用一個數(shù)據(jù)包發(fā)送線程發(fā)送輸出緩沖區(qū)中的數(shù)據(jù)包,其它數(shù)據(jù)包發(fā)送線程的CPU資源釋放給系統(tǒng)的其它線程使用,當(dāng)一個數(shù)據(jù)包發(fā)送線程不足以發(fā)送所述輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包時,再啟動其它的數(shù)據(jù)包發(fā)送線程發(fā)送數(shù)據(jù)包。
圖6是本發(fā)明所述數(shù)據(jù)發(fā)送方法的一個實施例的流程圖。圖6所示實施例包括4個步驟,同樣,為了實現(xiàn)圖4所示實施例,也需要預(yù)先設(shè)置多個數(shù)據(jù)包處理線程。在本實施例中,預(yù)先設(shè)置的數(shù)據(jù)包處理線程的個數(shù)與數(shù)據(jù)緩沖區(qū)的個數(shù)相同。同樣,所述數(shù)據(jù)包處理線程的個數(shù)與數(shù)據(jù)緩沖區(qū)的個數(shù)不相同,使一個數(shù)據(jù)包處理線程處理兩個數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)包,或者,使二個數(shù)據(jù)包處理線程處理一個數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)包等等,也能夠?qū)崿F(xiàn)本發(fā)明。
按照圖6,首先在步驟61接收數(shù)據(jù)包,然后在步驟62將所述接受大數(shù)據(jù)包分別輸入多個數(shù)據(jù)緩沖區(qū)中對應(yīng)數(shù)據(jù)緩沖區(qū),使每個數(shù)據(jù)緩沖區(qū)對應(yīng)一個數(shù)據(jù)包處理線程;在步驟63由所述數(shù)據(jù)包處理線程處理其對應(yīng)的隊列中的數(shù)據(jù)包,最后在步驟64將處理后的數(shù)據(jù)包送到輸出數(shù)據(jù)緩沖區(qū)中,由后續(xù)的進(jìn)程調(diào)度發(fā)送。
在本例中,為了提高數(shù)據(jù)包的發(fā)送效率,將具有相同目的地址的數(shù)據(jù)包采用同一個的數(shù)據(jù)包發(fā)送線程處理,因此,按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的目的地址將所述數(shù)據(jù)包分別輸入到相應(yīng)的隊列。
所述的目的地址包括目的IP地址和目的端口號兩部分。通過接收到的要發(fā)送的數(shù)據(jù)包中的目的地址,將發(fā)送到同一個數(shù)據(jù)處理設(shè)備的數(shù)據(jù)包暫存到同一個數(shù)據(jù)緩沖區(qū)中,經(jīng)過處理后,例如編碼壓縮,以新的數(shù)據(jù)包發(fā)送到目的數(shù)據(jù)處理設(shè)備,由該數(shù)據(jù)處理設(shè)備解碼解壓縮后再逐步分發(fā)到目的終端(可能經(jīng)過多個中間節(jié)點)。
在本發(fā)明另外的實施例中,按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,以及,按照對數(shù)據(jù)包的操作將所述數(shù)據(jù)分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。即,劃分對數(shù)據(jù)包的不同操作,使進(jìn)行相同操作的數(shù)據(jù)包采用相同的線程處理,不同的操作對應(yīng)不同的線程。
在本發(fā)明的第三個實施例中,按照數(shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的優(yōu)先級將所述數(shù)據(jù)包分別輸入到相應(yīng)的隊列。
上述數(shù)據(jù)包處理線程的設(shè)置方案可以混合采用,例如,按優(yōu)先級設(shè)置與按目的地址設(shè)置的方式就可以混合在一起,或者,按優(yōu)先級設(shè)置與按對數(shù)據(jù)包的操作設(shè)置的方式也可以混合在一起,等等。
在上面提到的實施例中,可以更進(jìn)一步的改進(jìn),將每一個數(shù)據(jù)緩沖區(qū)分為兩部分,第一部分用于存儲待處理的數(shù)據(jù)包,第二部分用于存儲處理后的數(shù)據(jù)包。上面所述數(shù)據(jù)包處理線程對應(yīng)的是第一部分,而第二部分需要后續(xù)的線程處理,或者設(shè)置單獨的線程處理。
更進(jìn)一步,對上述實施例還可以采用下述更進(jìn)一步的改進(jìn)1、將所述數(shù)據(jù)緩沖區(qū)實質(zhì)為多個子數(shù)據(jù)緩沖區(qū),并且為所述數(shù)據(jù)包處理線程設(shè)置多個與所述子數(shù)據(jù)緩沖區(qū)對應(yīng)的子線程,這些子線程用于并行或并發(fā)處理所述子數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包。
2、設(shè)置多個數(shù)據(jù)包分配線程,用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。這里所述數(shù)據(jù)包分配線程具有相同的操作和功能,可以與上述提到的任何一個具體實施例結(jié)合起來處理數(shù)據(jù)包進(jìn)入數(shù)據(jù)緩沖區(qū)前的分配數(shù)據(jù)緩沖區(qū)的處理。
3、設(shè)置多個數(shù)據(jù)包發(fā)送線程,用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。在具有多個數(shù)據(jù)發(fā)送通道的前提下,設(shè)置多個數(shù)據(jù)包發(fā)送進(jìn)程能夠加快數(shù)據(jù)包的發(fā)送速度。
以圖6為例,由于本發(fā)明所述的數(shù)據(jù)發(fā)送方法中主要包括了待發(fā)送數(shù)據(jù)的處理方法,且所述待發(fā)送數(shù)據(jù)的處理方法前文已經(jīng)有詳細(xì)的說明,因此,有關(guān)本發(fā)明所述的數(shù)據(jù)發(fā)送方法的實施例的詳細(xì)內(nèi)容可以參考前文。
圖7是本發(fā)明所述數(shù)據(jù)發(fā)送裝置的第一實施例框圖。圖7所示的數(shù)據(jù)發(fā)送裝置,包括數(shù)據(jù)包輸入單元71、數(shù)據(jù)包分配單元72、數(shù)據(jù)緩沖區(qū)組73、數(shù)據(jù)包輸出單元75和輸出數(shù)據(jù)緩沖區(qū)76,以及第一線程存儲單元74,用于存儲預(yù)先設(shè)置的多個數(shù)據(jù)包處理線程,所述數(shù)據(jù)包處理線程與所述數(shù)據(jù)緩沖區(qū)組73中的數(shù)據(jù)緩沖區(qū)一一對應(yīng);所述數(shù)據(jù)包分配單元72,從所述數(shù)據(jù)包輸入單元71接收數(shù)據(jù)包,根據(jù)預(yù)先設(shè)定的條件判斷,將所述數(shù)據(jù)包分別輸入數(shù)據(jù)緩沖區(qū)組73中的多個數(shù)據(jù)緩沖區(qū);所述數(shù)據(jù)輸出單元75給出通知系統(tǒng)啟動第一線程存儲單元74中的相應(yīng)線程處理所述數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包,并將處理后的數(shù)據(jù)包送到所述輸出數(shù)據(jù)緩沖區(qū)76中發(fā)送。
在圖7所示實施例中,對數(shù)據(jù)緩沖區(qū)組73中的數(shù)據(jù)緩沖區(qū)的監(jiān)控以及通知系統(tǒng)啟動第一線程存儲單元74中的相應(yīng)線程由數(shù)據(jù)輸出單元75完成,然而在另外的實施例中,這些操作由數(shù)據(jù)包分配單元72完成,或者由系統(tǒng)的另外線程完成,此時,所述數(shù)據(jù)輸出單元75僅僅用于處理后的數(shù)據(jù)打包以及將打包后的數(shù)據(jù)包向輸出數(shù)據(jù)緩沖區(qū)76中調(diào)度。
本實施例中,按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的目的地址將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。所述目的地址包括目的IP地址和目的端口號。在另外的實施例中,也可以按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,以及,按照對數(shù)據(jù)包的操作將所述數(shù)據(jù)分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)?;蛘甙凑諗?shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的優(yōu)先級將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
上述數(shù)據(jù)包處理線程的設(shè)置方案可以混合采用,例如,按優(yōu)先級設(shè)置與按目的地址設(shè)置的方式就可以混合在一起,比如,目的地址相同的數(shù)據(jù)包,優(yōu)先級可能不同,因此可以考慮將一個目的數(shù)據(jù)處理設(shè)備對應(yīng)的數(shù)據(jù)緩沖區(qū)劃分為多個優(yōu)先等級不同的子數(shù)據(jù)緩沖區(qū),這樣能夠方便數(shù)據(jù)包輸出是按照優(yōu)先級調(diào)度。等等。
同樣,對上述裝置的實施例還可以采用下述更進(jìn)一步的改進(jìn)1、將所述數(shù)據(jù)緩沖區(qū)設(shè)置為多個子數(shù)據(jù)緩沖區(qū),所述并列關(guān)系體現(xiàn)在為所述數(shù)據(jù)包處理線程設(shè)置多個與所述子數(shù)據(jù)緩沖區(qū)對應(yīng)的子線程,這些子線程用于并行或并發(fā)處理所述子數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包。
2、設(shè)置多個數(shù)據(jù)包分配線程,用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
3、設(shè)置多個數(shù)據(jù)包發(fā)送線程,用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。這是在具有多個數(shù)據(jù)發(fā)送通道的前提下的改進(jìn)方案,設(shè)置多個數(shù)據(jù)包發(fā)送進(jìn)程能夠加快數(shù)據(jù)包的發(fā)送速度。同樣,也可以將輸出數(shù)據(jù)緩沖區(qū)設(shè)置為多個并列的子緩沖區(qū),以與多個數(shù)據(jù)包發(fā)送線程對應(yīng)。在數(shù)據(jù)包發(fā)送過程中,也可以通過線程的按需使用,實現(xiàn)系統(tǒng)資源的合理共享。即,先采用一個數(shù)據(jù)包發(fā)送線程發(fā)送輸出緩沖區(qū)中的數(shù)據(jù)包,其它數(shù)據(jù)包發(fā)送線程的CPU資源釋放給系統(tǒng)的其它線程使用,當(dāng)一個數(shù)據(jù)包發(fā)送線程不足以發(fā)送所述輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包時,再啟動其它的數(shù)據(jù)包發(fā)送線程發(fā)送數(shù)據(jù)包圖8示出了一個改進(jìn)的方案,圖8所示的是本發(fā)明所述數(shù)據(jù)發(fā)送裝置的第二實施例框圖。與圖7不同的是,圖8所示裝置還包括一個用于存儲多個數(shù)據(jù)包分配線程的第二線程存儲單元77,所述數(shù)據(jù)包分配線程用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
圖9示出了另一個改進(jìn)的方案,圖9所示的是本發(fā)明所述數(shù)據(jù)發(fā)送裝置的第三實施例框圖。與圖8不同的是,圖9所示裝置還包括用于存儲多個數(shù)據(jù)包發(fā)送線程的第三線程存儲單元78,所述數(shù)據(jù)包發(fā)送線程用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。
由于本實施例的具體實施細(xì)節(jié)在前文已經(jīng)有詳細(xì)的表述,在此不再詳述。
權(quán)利要求
1.一種待發(fā)送數(shù)據(jù)的處理方法,其特征在于包括設(shè)置多個數(shù)據(jù)包處理線程;接收數(shù)據(jù)包,將所述數(shù)據(jù)包分別輸入多個數(shù)據(jù)緩沖區(qū),使每個數(shù)據(jù)緩沖區(qū)對應(yīng)一個數(shù)據(jù)包處理線程;利用所述數(shù)據(jù)包處理線程處理對應(yīng)數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包。
2.如權(quán)利要求1所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,以及,按照對數(shù)據(jù)包的操作將所述數(shù)據(jù)分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
3.如權(quán)利要求1所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的目的地址將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
4.如權(quán)利要求3所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于所述目的地址包括目的IP地址和目的端口號。
5.如權(quán)利要求1所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于按照數(shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的優(yōu)先級將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
6.如權(quán)利要求1、2、3、4或5所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于隔離所述數(shù)據(jù)包處理線程的內(nèi)存空間。
7.如權(quán)利要求1、2、3、4或5所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于還包括將每一個數(shù)據(jù)緩沖區(qū)分為兩部分,第一部分用于存儲待處理的數(shù)據(jù)包,第二部分用于存儲處理后的數(shù)據(jù)包。
8.如權(quán)利要求7所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于還包括設(shè)置多個數(shù)據(jù)包分配線程,用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
9.如權(quán)利要求8所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于所述數(shù)據(jù)緩沖區(qū)包括多個并列的子數(shù)據(jù)緩沖區(qū)。
10.如權(quán)利要求9所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于還包括為所述數(shù)據(jù)包處理線程設(shè)置多個與所述子數(shù)據(jù)緩沖區(qū)對應(yīng)的子線程,用于處理所述子數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包。
11.如權(quán)利要求10所述的待發(fā)送數(shù)據(jù)的處理方法,其特征在于還包括設(shè)置多個數(shù)據(jù)包發(fā)送線程,用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。
12.一種數(shù)據(jù)發(fā)送方法,其特征在于包括設(shè)置多個數(shù)據(jù)包處理線程;接收數(shù)據(jù)包,將所述數(shù)據(jù)包分別輸入多個數(shù)據(jù)緩沖區(qū),使每個數(shù)據(jù)緩沖區(qū)對應(yīng)一個數(shù)據(jù)包處理線程;利用所述數(shù)據(jù)包處理線程處理對應(yīng)數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包;將處理后的數(shù)據(jù)包送到輸出數(shù)據(jù)緩沖區(qū)中發(fā)送。
13.如權(quán)利要求12所述的數(shù)據(jù)發(fā)送方法,其特征在于按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,以及,按照對數(shù)據(jù)包的操作將所述數(shù)據(jù)分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
14.如權(quán)利要求12所述的數(shù)據(jù)發(fā)送方法,其特征在于按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的目的地址將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
15.如權(quán)利要求12所述的數(shù)據(jù)發(fā)送方法,其特征在于所述目的地址包括目的IP地址和目的端口號。
16.如權(quán)利要求12所述的數(shù)據(jù)發(fā)送方法,其特征在于按照數(shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的優(yōu)先級將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
17.如權(quán)利要求12、13、14、15或16所述的數(shù)據(jù)發(fā)送方法,其特征在于還包括設(shè)置多個數(shù)據(jù)包分配線程,用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
18.如權(quán)利要求17所述的數(shù)據(jù)發(fā)送方法,其特征在于還包括設(shè)置多個數(shù)據(jù)包發(fā)送線程,用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。
19.一種數(shù)據(jù)發(fā)送裝置,包括數(shù)據(jù)包輸入單元、數(shù)據(jù)包分配單元、數(shù)據(jù)緩沖區(qū)組、數(shù)據(jù)輸出單元和輸出數(shù)據(jù)緩沖區(qū),其特征在于還包括第一線程存儲單元,用于存儲預(yù)先設(shè)置的多個數(shù)據(jù)包處理線程,所述數(shù)據(jù)包處理線程與所述數(shù)據(jù)緩沖區(qū)一一對應(yīng);所述數(shù)據(jù)包分配單元,從所述數(shù)據(jù)包輸入單元接收數(shù)據(jù)包,將所述數(shù)據(jù)包分別輸入多個數(shù)據(jù)緩沖區(qū);所述數(shù)據(jù)輸出單元,將所述數(shù)據(jù)包處理線程處理后的數(shù)據(jù)包送到所述輸出數(shù)據(jù)緩沖區(qū)中發(fā)送。
20.如權(quán)利要求19所述的數(shù)據(jù)發(fā)送裝置,其特征在于按照對數(shù)據(jù)包的操作設(shè)置數(shù)據(jù)包處理線程,以及,按照對數(shù)據(jù)包的操作將所述數(shù)據(jù)分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
21.如權(quán)利要求19所述的數(shù)據(jù)發(fā)送裝置,其特征在于按照數(shù)據(jù)包發(fā)送的目的地址設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的目的地址將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
22.如權(quán)利要求21所述的數(shù)據(jù)發(fā)送裝置,其特征在于所述目的地址包括目的IP地址和目的端口號。
23.如權(quán)利要求19所述的數(shù)據(jù)發(fā)送裝置,其特征在于按照數(shù)據(jù)包優(yōu)先級的級數(shù)設(shè)置數(shù)據(jù)包處理線程,以及,按照數(shù)據(jù)包的優(yōu)先級將所述數(shù)據(jù)包分別輸入到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
24.如權(quán)利要求19、20、21、22或23所述的數(shù)據(jù)發(fā)送裝置,其特征在于還包括用于存儲多個數(shù)據(jù)包分配線程的第二線程存儲單元,所述數(shù)據(jù)包分配線程用于判斷接收到的數(shù)據(jù)包歸屬的數(shù)據(jù)緩沖區(qū),以及將所判斷的數(shù)據(jù)包發(fā)送到相應(yīng)的數(shù)據(jù)緩沖區(qū)。
25.如權(quán)利要求24所述的數(shù)據(jù)發(fā)送裝置,其特征在于還包括用于存儲多個數(shù)據(jù)包發(fā)送線程的第三線程存儲單元,所述數(shù)據(jù)包發(fā)送線程用于將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包通過不同的數(shù)據(jù)通道發(fā)送。
全文摘要
本發(fā)明公開了一種待發(fā)送數(shù)據(jù)的處理方法,首先設(shè)置多個數(shù)據(jù)包處理線程,然后接收數(shù)據(jù)包,將所述數(shù)據(jù)包分別輸入多個數(shù)據(jù)緩沖區(qū),使每個數(shù)據(jù)緩沖區(qū)對應(yīng)一個數(shù)據(jù)包處理線程,利用所述數(shù)據(jù)包處理線程處理對應(yīng)數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)包。本發(fā)明能夠充分利用系統(tǒng)CPU資源處理數(shù)據(jù)包,因此能夠最大限度地提高數(shù)據(jù)包處理和數(shù)據(jù)包發(fā)送的效率,具有較低的數(shù)據(jù)發(fā)送延遲。本發(fā)明還提供了一種基于上述方法的數(shù)據(jù)發(fā)送方法以及數(shù)據(jù)發(fā)送裝置。
文檔編號H04L12/56GK1905531SQ200610109628
公開日2007年1月31日 申請日期2006年8月11日 優(yōu)先權(quán)日2006年8月11日
發(fā)明者白杰, 李薇, 魯征宇 申請人:白杰, 李薇, 魯征宇