專利名稱:用于在多個套接字之間通信的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在通信網(wǎng)絡(luò)內(nèi)在多個套接字之間的通信,其可應(yīng)用于通過
因特網(wǎng)通信網(wǎng)絡(luò)從多個源接收消息或數(shù)據(jù)并使用諸如TCP (傳輸控制協(xié) 議)等的協(xié)議進(jìn)行操作的處理。
背景技術(shù):
一般地,套接字包括用于列出包含所接收的數(shù)據(jù)流的緩沖存儲器接收 列表和用于列出包含將要發(fā)送的數(shù)據(jù)流的緩沖存儲器的發(fā)送列表。
接收列表和發(fā)送列表被稱為是"雙鏈接的,,,因為組成接收列表和發(fā) 送列表的緩沖存儲器的每一個都具有包括用于指示在對應(yīng)的列表中在當(dāng)前 緩沖存儲器之前的緩沖存儲器的"前一個"指針和用于指示在對應(yīng)的列表 中在當(dāng)前緩沖存儲器之后的緩沖存儲器的第二 "下一個"指針的結(jié)構(gòu)。
只使用 一個套接字,該處理可以在等待消息或數(shù)據(jù)到達(dá)所述套接字的 接收列表時接收消息或數(shù)據(jù)。
使用多個套接字,則需要首先對接收列表執(zhí)行循環(huán)分析以發(fā)現(xiàn)已接收 了想要被讀取的消息的套接字。
多個已知的解決方案,尤其是那些已知為"select" 、 "poU"、 "kqueue,, 和"epoll"的解決方案已被提出以實現(xiàn)該分析。
這些已知的解決方案是相對滿意的,但沒有考慮消息到達(dá)的順序,并 涉及附加任務(wù)。
結(jié)果是網(wǎng)絡(luò)性能顯著劣化,隨著該劣化變大,需要讀取的套接字也更 多,例如,超過1000個套接字。
發(fā)明內(nèi)容
本發(fā)明用于緩解該缺陷。
本發(fā)明涉及用于在通信網(wǎng)絡(luò)內(nèi)在多個套接字之間通信的通信設(shè)備,其 中,每個套接字包括用于列出包含所接收的數(shù)據(jù)流的緩沖存儲器的接收列 表,所述緩沖存儲器的每一個具有包括用于指示在對應(yīng)的接收列表中在當(dāng) 前緩沖存儲器之前的緩沖存儲器的"前一個"指針和用于指示在對應(yīng)的接 收列表中在當(dāng)前緩沖存儲器之后的緩沖存儲器的第二 "下一個,,指針的結(jié) 構(gòu)。
根據(jù)本發(fā)明的總定義,所述套接字中的一個被指定為能夠接收由與所
選擇的處理相關(guān)聯(lián)的每個套接字接收的數(shù)據(jù)流;
所述被指定的套接字還包括附加接收列表,其列出包含由所選擇的處 理所涉及的所有套接字接收的數(shù)據(jù)流的緩沖存儲器;
每個套接字的緩沖存儲器同時屬于兩個接收列表,每一個緩沖存儲器 還包括用于指示在附加接收列表中在當(dāng)前緩沖存儲器之前的緩沖存儲器的 附加"前一個,,指針和用于指示在附加接收列表中在當(dāng)前緩沖存儲器之后 的緩沖存儲器的附加"下一個"指針。
這樣,本發(fā)明的設(shè)備對于所述被指定的套接字可以訪問由所述處理所 涉及的所有套接字接收的數(shù)據(jù)流,并按照所述所接收的數(shù)據(jù)流到達(dá)的順序 進(jìn)行訪問。
結(jié)果是網(wǎng)絡(luò)性能優(yōu)于現(xiàn)有的結(jié)構(gòu)。
本發(fā)明的另一個目的是由上述的通信設(shè)備執(zhí)行的通信方法。
通過以下的詳細(xì)描述和附圖,本發(fā)明的其它特征和優(yōu)點(diǎn)將變得更加明 顯,其中
圖1示意性地示出根據(jù)本發(fā)明的具備指定套接字的通信設(shè)備; 圖2示意性地示出根據(jù)本發(fā)明的緩沖存儲器的結(jié)構(gòu)。
具體實施例方式
在圖1中,示出了 TCP/IP消息處理。
該處理經(jīng)由使用TCP協(xié)議進(jìn)行操作的通信網(wǎng)絡(luò)從多個源接收消息。 套接字SC與每個源相關(guān)聯(lián),并被單獨(dú)標(biāo)記為SC1、 SC2和SC3。 每個套接字SC包括接收列表RX,其列出包含所接收的數(shù)據(jù)的緩沖存 儲器SKB。
每個套接字還包括發(fā)送列表(未示出),其列出包含將要發(fā)送的數(shù)據(jù) 流的緩沖存儲器。
在圖2中,接收列表RX的結(jié)構(gòu)是使得每個緩沖存儲器SKB包括用于 指示在對應(yīng)的列表中在當(dāng)前緩沖存儲器之前的緩沖存儲器SKB的"前一
個,,指針PP和用于指示在對應(yīng)的列表中在當(dāng)前緩沖存儲器之后的緩沖存 儲器的第二 "下一個"指針。
對于所選擇的套接字,緩沖存儲器彼此相鏈接。
每個緩沖存儲器SKB識別設(shè)備ND的結(jié)構(gòu),其中數(shù)據(jù)分組向該設(shè)備 ND發(fā)送或者從該i殳備ND接收。
緩沖存儲器SKB與每個分組相關(guān)聯(lián)。分組的頭部通過一組指針TH、 IPH和MAC被正確地定位。
對于給定的套接字,緩沖存儲器相互鏈接,并包含諸如到協(xié)議頭的鏈 接和與分組相關(guān)聯(lián)的設(shè)備的信息。
再次參考圖1。
套接字SC3被指定為額外接收從與所選擇的處理(諸如消息處理)相 關(guān)聯(lián)的每個套接字SC1、 SC2和SC3接收的數(shù)據(jù)流。
套接字SC3包括附加接收列表RXS,其列出包含由所述處理所涉及的 一組套接字接收的數(shù)據(jù)流的緩沖存儲器SKB。
再次參考圖2。
每個套接字SC1、 SC2和SC3的緩沖存儲器SKB同時屬于兩個接收 列表RX、 RXS。
每一個緩沖存儲器SKB還包括用于指示在附加接收列表RXS中在當(dāng)前緩沖存儲器之前的緩沖存儲器的附加"前一個"指針PPS和用于指示在 附加接收列表RXS中在當(dāng)前緩沖存儲器之后的緩沖存儲器的附加"下一 個"指針PPS。
在由此被指定的套接字SC3中,可以訪問由所述處理所涉及的一組套 接字接收的數(shù)據(jù)流,并且按照所述所接收的數(shù)據(jù)流到達(dá)的順序進(jìn)行訪問。
這是因為附加接收列表RXS包含可以按照該數(shù)據(jù)到達(dá)各套接字的順 序定位所接收的數(shù)據(jù)流的指針信息。
例如,在圖1中,所接收的數(shù)據(jù)流按照以下的順序到達(dá)
Skb 3.1
Skb 2.1
Skb 1.1
Skb 3.2
Skb 1.2
Skb 1.3。
使用附加接收列表RXS,可以按照該順序訪問數(shù)據(jù)流,然而當(dāng)沒有附 加接收列表時,訪問是基于套接字的排位,即,首先套接字SC1,然后套 接字SC2,然后SC3。在這種情況下,處理數(shù)據(jù)流的順序是
Skb 1.1
Skb 1.2
Skb 1.3
Skb 2.1
Skb 3.1
Skb 3.2。
權(quán)利要求
1. 一種用于在通信網(wǎng)絡(luò)內(nèi)在多個套接字(SC1,SC2,SC3)之間通信的通信設(shè)備,其中,每個套接字(SC1,SC2,SC3)都包括用于列出包含所接收的數(shù)據(jù)流的緩沖存儲器(SKB)的接收列表(RX),在所述接收列表(RX)具有的結(jié)構(gòu)中,每個緩沖存儲器(SKB)包括用于指示在對應(yīng)的接收列表中在當(dāng)前緩沖存儲器之前的緩沖存儲器的“前一個”指針(PP)和用于指示在對應(yīng)的接收列表中在當(dāng)前緩沖存儲器之后的緩沖存儲器的第二“下一個”指針;其特征在于,所述套接字(SC)中的一個套接字(SC3)被指定為能夠接收由與所選擇的處理相關(guān)聯(lián)的每個套接字接收的數(shù)據(jù)流;被指定的套接字(SC3)還包括附加接收列表(RXS),其列出包含由所選擇的處理所涉及的所有套接字接收的數(shù)據(jù)流的緩沖存儲器;每個套接字(SC1,SC2,SC3)的緩沖存儲器(SKB)同時屬于兩個接收列表(RX,RXS),每個緩沖存儲器(SKB)還包括用于指示在所述附加接收列表(RXS)中在當(dāng)前緩沖存儲器之前的緩沖存儲器的附加“前一個”指針(PPS)和用于指示在所述附加接收列表(RXS)中在當(dāng)前緩沖存儲器之后的緩沖存儲器的附加“下一個”指針(PSS);這使被指定的套接字(SC3)可以按照所述所接收的數(shù)據(jù)流到達(dá)的順序訪問由所述處理所涉及的一組套接字接收的數(shù)據(jù)流。
2. —種用于在通信網(wǎng)絡(luò)內(nèi)在多個套接字(SC1, SC2, SC3)之間通信 的通信方法,其中,每個套接字(SC1, SC2, SC3)包括用于列出包含所 接收的數(shù)據(jù)流的緩沖存儲器(SKB)的接收列表(RX),在所述接收列表 (RX)具有的結(jié)構(gòu)中,每個緩沖存儲器(SKB)包括用于指示在對應(yīng)的接 收列表中在當(dāng)前緩沖存儲器之前的緩沖存儲器的"前一個"指針(PP)和 用于指示在對應(yīng)的接收列表中在當(dāng)前緩沖存儲器之后的緩沖存儲器的第二 "下一個"指針;其特征在于,所述套接字(SC)中的一個套接字(SC3)被指定為能夠接收由與所選擇的處理相關(guān)聯(lián)的每個套接字接收的數(shù)據(jù)流;被指定的套接字(SC3)還包括附加接收列表(RXS),其列出包含 由所選擇的處理所涉及的所有套接字接收的數(shù)據(jù)流的緩沖存儲器;每個套接字(SCI, SC2, SC3)的緩沖存儲器(SKB)同時屬于兩個 接收列表(RX, RXS),每個緩沖存儲器(SKB)還包括用于指示在所述 附加接收列表(RXS)中在當(dāng)前緩沖存儲器之前的緩沖存儲器的附加"前 一個"指針(PPS)和用于指示在所述附加接收列表(RXS)中在當(dāng)前緩 沖存儲器之后的緩沖存儲器的附加"下一個,,指針(PSS);這使被指定的套接字(SC3)可以按照所述所接收的數(shù)據(jù)流到達(dá)的順 序訪問由所述處理所涉及的一組套接字接收的數(shù)據(jù)流。
全文摘要
用于在多個套接字之間通信的方法和設(shè)備,其中多個套接字(SC)中的一個(SC3)被指定為能夠接收由與所選擇的處理相關(guān)聯(lián)的每個套接字接收的數(shù)據(jù)流,被指定的套接字(SC3)還包括附加接收列表(RXS),其列出包含由所選擇的處理所涉及的所有套接字接收的數(shù)據(jù)流的緩沖存儲器;每個套接字(SC1,SC2,SC3)的緩沖存儲器(SKB)同時屬于兩個接收列表(RX,RXS),每個緩沖存儲器(SKB)還包括用于指示在附加接收列表(RXS)中在當(dāng)前緩沖存儲器之前的緩沖存儲器的附加“前一個”指針(PPS)和用于指示在附加接收列表(RXS)中在當(dāng)前緩沖存儲器之后的緩沖存儲器的附加“下一個”指針(PPS),這使被指定的套接字(SC3)可以按照所述所接收的數(shù)據(jù)流到達(dá)的順序訪問由所述進(jìn)程所涉及的一組套接字接收的數(shù)據(jù)流。
文檔編號H04L12/56GK101488910SQ200810209899
公開日2009年7月22日 申請日期2008年12月18日 優(yōu)先權(quán)日2007年12月18日
發(fā)明者M·拉扎爾, T·弗羅門特 申請人:阿爾卡特朗訊公司