專利名稱:通信緩沖管理器和通信緩沖管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電信系統(tǒng),特別地涉及無線通信設(shè)備,并且更特別地涉及存儲受限的通信設(shè)備。
背景技術(shù):
移動無線設(shè)備越來越多地通過異構(gòu)連接(heterogeneous connection)來傳送消息,在異構(gòu)連接中,一個或多個構(gòu)成鏈路(constituent link)包括一個公共網(wǎng)絡(luò),諸如因特網(wǎng)。因特網(wǎng)是包括無線網(wǎng)絡(luò)的自治的、互連的、基于分組的網(wǎng)絡(luò)的松散地構(gòu)成的國際聯(lián)合,可以用分級多層的體系結(jié)構(gòu)、服務(wù)描述和協(xié)議來表示因特網(wǎng)??梢允褂梅Q為路由器的分組交換計算機(jī)通過網(wǎng)絡(luò)對通信端點或主機(jī)進(jìn)行互連。為使用因特網(wǎng)來進(jìn)行通信,主機(jī)通常實現(xiàn)來自網(wǎng)際協(xié)議組的至少一個層的協(xié)議。每個主機(jī)和路由器執(zhí)行一個或多個程序或進(jìn)程,這些程序或進(jìn)程執(zhí)行各種任務(wù),包括信息的傳送、處理和顯示。一種應(yīng)用是一種進(jìn)程,其運行于網(wǎng)際協(xié)議組的最高層,并且其可以使用低層傳輸協(xié)議通過彼此不同但彼此互連的網(wǎng)絡(luò)來提供傳輸層通信服務(wù)。接著,傳輸協(xié)議通常在通信進(jìn)程之間使用網(wǎng)絡(luò)協(xié)議通過網(wǎng)絡(luò)來實現(xiàn)消息傳送。在最低層,可以對消息進(jìn)行邏輯的和物理的轉(zhuǎn)換,并將其作為電磁信號或光電信號通過聯(lián)網(wǎng)的媒體進(jìn)行傳送。
用于因特網(wǎng)上的一組主要的協(xié)議是傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)協(xié)議組。傳輸控制協(xié)議(TCP)是在成對的主機(jī)計算機(jī)進(jìn)程之間提供可靠的進(jìn)程間通信(interprocess communication)的面向連接的、端到端的、全雙工的傳輸協(xié)議。全雙工的協(xié)議允許在已連接的主機(jī)之間進(jìn)行并行的通信??煽康膮f(xié)議是提供發(fā)送方和接收方用來直接地或間接地交換關(guān)于通信狀態(tài)(諸如“消息已傳送”)的信息的機(jī)制的協(xié)議。一般稱為“確認(rèn)”或ACK的機(jī)制可以包括諸如格式化的響應(yīng)之類的各種方法,以傳送給定協(xié)議期望的信息。面向連接的協(xié)議即TCP協(xié)議通過在數(shù)據(jù)發(fā)送之前在進(jìn)行通信的主機(jī)之間通過網(wǎng)絡(luò)對雙向邏輯連接進(jìn)行路由而基本上確保了消息傳送,并且TCP協(xié)議使用稱為TCP分段(segment)的格式化數(shù)據(jù)單元的消息來進(jìn)行傳送。端到端協(xié)議通常在通信主機(jī)中而不是在中間網(wǎng)關(guān)或中間路由器中負(fù)責(zé)通信完整性、安全性和流量管理。然而,這種端到端協(xié)議有可能由于中間鏈路或中間路由器中的延遲或中斷而受到破壞。為增強通信系統(tǒng)的健壯性,路由器通常使用無連接的網(wǎng)絡(luò)層協(xié)議,這種協(xié)議獨立于其他消息或數(shù)據(jù)單元而轉(zhuǎn)發(fā)每個消息或數(shù)據(jù)單元。
網(wǎng)際協(xié)議(IP)是網(wǎng)絡(luò)協(xié)議,其中每個消息由目的地地址即目的地主機(jī)IP地址來標(biāo)識。IP協(xié)議是不能確保端到端的分段傳送的無連接(無狀態(tài))協(xié)議。在通過網(wǎng)絡(luò)對獨立發(fā)送的TCP分段進(jìn)行路由時,可以強制性地使這些TCP分段爭用網(wǎng)絡(luò)資源,并且這些TCP分段在到達(dá)目的地主機(jī)時有可能已被損壞、復(fù)制、次序顛倒,或者根本到達(dá)不了目的地主機(jī)。因此,諸如應(yīng)用程序或TCP進(jìn)程之類的高層進(jìn)程通常會負(fù)責(zé)對基于IP協(xié)議而傳送的分段或消息進(jìn)行正確的接收、重新排序、修復(fù)、確認(rèn)和請求重發(fā)。默認(rèn)情況下,盡管TCP/IP有可能是可靠的、健壯的通信協(xié)議組,但傳送期間的實際消息流可能是給定瞬間傳送的大量消息中經(jīng)歷了各種變化的突發(fā)消息流。在一種極端的情況下,突發(fā)消息量有可能暫時超出主機(jī)接收和處理消息的能力。在另一種極端的情況下,連續(xù)消息之間的實際停頓在消息減少的時段期間有可能錯誤地指示通信已經(jīng)停止或者已經(jīng)終止中間鏈路。
當(dāng)應(yīng)用程序或進(jìn)程(例如HTTP(超文本傳輸控制協(xié)議))使用TCP/IP類協(xié)議與另一主機(jī)進(jìn)行通信時,任一端點上的傳輸層進(jìn)程(例如TCP)使用稱為TCP套接字的接口與相應(yīng)的應(yīng)用程序進(jìn)行連接,該接口包括IP地址和TCP端口號。IP地址通常與主機(jī)相關(guān)聯(lián),并且TCP端口通常與調(diào)用主機(jī)傳送進(jìn)程的特定應(yīng)用程序進(jìn)程的特定通信功能相關(guān)聯(lián)。通過經(jīng)由特定的本地主機(jī)套接字將消息發(fā)往特定的遠(yuǎn)程主機(jī)套接字,本地主機(jī)能夠通過網(wǎng)絡(luò)與遠(yuǎn)程主機(jī)進(jìn)行通信。
通常,當(dāng)在主機(jī)之間建立傳輸層連接時,為每個主機(jī)套接字創(chuàng)建通信緩沖器。通信緩沖器可以用于補償在消息傳送過程中由于通信主機(jī)的特性、用于進(jìn)行通信的方法以及在主機(jī)之間插入的網(wǎng)絡(luò)連接的情況而出現(xiàn)的各種不規(guī)則和突發(fā)性。緩沖器可以包括多個存儲器對象,這些存儲器對象可以配置為邏輯數(shù)據(jù)結(jié)構(gòu)和單元,并部署為在其中存儲信息。在通信期間,可以從每個緩沖器中讀取消息或向每個緩沖器寫入消息。示例性的“緩沖器讀取”(BUFFER READ)可以是將數(shù)據(jù)從緩沖器傳送到正在執(zhí)行的應(yīng)用程序(進(jìn)程)的操作,并且示例性的“緩沖器寫入”(BUFFER WRITE)可以是將數(shù)據(jù)從進(jìn)程傳送到緩沖器的操作。
TCP協(xié)議是多種通信協(xié)議中的一種在網(wǎng)絡(luò)和通信領(lǐng)域中公知的通信協(xié)議,TCP協(xié)議試圖使用積極的基于確認(rèn)的控制來確保消息傳送。在發(fā)送方發(fā)起的確認(rèn)協(xié)議中,無論是客戶端還是服務(wù)器,通信的每個發(fā)送端點都保留發(fā)送消息的副本,以便進(jìn)行可能的重發(fā),直到相應(yīng)的接收端點對特定消息進(jìn)行了確認(rèn)時為止。當(dāng)接收到接收方的確認(rèn)時,發(fā)送方可以釋放其中存儲了所保留副本的存儲器對象。如果沒有接收到正確的確認(rèn),則發(fā)送端點可以重發(fā)開始于最近一次正確的確認(rèn)的時間點的消息。有可能發(fā)送例如TCP分段之類的多個消息,每個發(fā)送方累積發(fā)送消息的副本,直到接收到相應(yīng)的確認(rèn)。由于因特網(wǎng)通信的突發(fā)性質(zhì)、對先前所發(fā)送的消息所進(jìn)行的與確認(rèn)有關(guān)的的保留以及主機(jī)發(fā)送多個消息的能力,存在這樣的風(fēng)險,即任一方主機(jī)或兩個主機(jī)有可能暫時被在給定時間上處理、接收和發(fā)送的大量分段淹沒(overwhelm)。在通信期間,遠(yuǎn)程主機(jī)可以用作客戶端本地主機(jī)的服務(wù)器,并且反之亦然,其中在通信過程期間角色會發(fā)生改變。采用全雙工通信,主機(jī)可以并行地傳送消息。然而,客戶端或服務(wù)器通常不能一次在內(nèi)部執(zhí)行兩個事務(wù),例如不能在主機(jī)緩沖器中與“緩沖器寫入”并行地執(zhí)行“緩沖器讀取”,并且反之亦然。這一點也有可能會促使主機(jī)例如在消息量較高的時段期間暫時被淹沒。
相對于其他通信系統(tǒng),移動設(shè)備通常是存儲受限的,只具有有限的可用通信存儲空間。在某些情況下,這種限制有可能給流量控制和緩沖器管理帶來不利的影響。例如,存儲受限的設(shè)備有可能受到諸如緩沖器死鎖(buffer deadlock)和緩沖器匱乏(buffer starvation)之類的消息流異常的影響。當(dāng)正在執(zhí)行的進(jìn)程等待有可能永遠(yuǎn)無法獲得的資源時,就會發(fā)生緩沖器死鎖。與此類似,當(dāng)在某些環(huán)境下,正在執(zhí)行的進(jìn)程停止了較長的時間段或永遠(yuǎn)地等待有可能永遠(yuǎn)無法獲得的資源時,就會發(fā)生緩沖器匱乏。某些移動設(shè)備應(yīng)用程序進(jìn)程配置為推遲執(zhí)行對通信緩沖器的“緩沖器讀取”操作,直到已經(jīng)完成進(jìn)程內(nèi)(in-progress)“緩沖器寫入”時為止。在執(zhí)行這種應(yīng)用程序進(jìn)程時,有可能同時在移動設(shè)備的發(fā)送緩沖器和接收緩沖器中累積所存儲的TCP分段,導(dǎo)致可用的通信存儲空間耗盡。由于耗盡了存儲空間,進(jìn)程有可能不能完成進(jìn)程內(nèi)“緩沖器寫入”。同時,應(yīng)用程序進(jìn)程等待完成“緩沖器寫入”以執(zhí)行“緩沖器讀取”操作。所形成的僵局稱為“死鎖”。通常,形成死鎖一段時間之后,移動設(shè)備會停止通信,同時保持TCP連接斷開。多種TCP協(xié)議和進(jìn)程可以提供超時機(jī)制,在這些超時機(jī)制中在數(shù)量級為數(shù)秒的預(yù)定超時時段之后,會關(guān)閉移動設(shè)備和服務(wù)器之間的TCP連接。然而,死鎖和TCP超時機(jī)制會浪費大量系統(tǒng)資源,因此希望減少死鎖和TCP超時的發(fā)生。
發(fā)明內(nèi)容
本發(fā)明提供通信方法和通信緩沖管理方法,以及通信系統(tǒng)和通信設(shè)備,諸如移動通信設(shè)備。該通信緩沖管理方法在此構(gòu)成用于在本地主機(jī)與具有遠(yuǎn)程主機(jī)接口的遠(yuǎn)程主機(jī)之間傳送消息的方法。這種方法包括為本地主機(jī)接口分配通信控制數(shù)據(jù)結(jié)構(gòu);將處理緩沖器分配給該通信控制數(shù)據(jù)結(jié)構(gòu)以便存儲消息;以及將備用緩沖器分配給通信控制結(jié)構(gòu)。通信控制數(shù)據(jù)結(jié)構(gòu)存儲于已分配的存儲器對象中,并且對應(yīng)于本地主機(jī)接口。本地主機(jī)接口位于本地主機(jī)中。
在通信期間,將消息存儲于處理緩沖器中。然而,響應(yīng)于預(yù)定的操作狀態(tài),可以將備用緩沖器用于存儲消息。從位于全局存儲池中的未分配的空閑存儲器對象中分配通信控制數(shù)據(jù)結(jié)構(gòu)、處理緩沖器和備用緩沖器,在此之后,在全局存儲池中將存儲器對象、通信控制數(shù)據(jù)結(jié)構(gòu)、處理緩沖器和備用緩沖器指定為已分配的存儲器對象。
可以從未分配的空閑存儲器對象中分配多個處理緩沖器給通信控制數(shù)據(jù)結(jié)構(gòu),其中將多個選定的處理緩沖器指定為發(fā)送處理緩沖器。發(fā)送處理緩沖器存儲從本地主機(jī)發(fā)送到遠(yuǎn)程主機(jī)的消息。與此類似,在已分配的多個處理緩沖器中,可將其他選定的處理緩沖器指定為接收處理緩沖器。接收處理緩沖器存儲本地主機(jī)從遠(yuǎn)程主機(jī)接收到的消息。此外,可以從未分配的空閑存儲器對象中分配多個備用緩沖器給通信控制數(shù)據(jù)結(jié)構(gòu),其中將多個選定的備用緩沖器指定為發(fā)送備用緩沖器。如同對多個處理緩沖器所進(jìn)行的指定那樣,可將其他選定的備用緩沖器指定為接收備用緩沖器??蓪溆镁彌_器與特定的處理緩沖器相關(guān)聯(lián)。也就是說,可以將選定的發(fā)送備用緩沖器與相應(yīng)的發(fā)送處理緩沖器相關(guān)聯(lián),并且可以將選定的接收備用緩沖器與相應(yīng)的接收備用緩沖器相關(guān)聯(lián)。顧名思義,在存在預(yù)定的操作狀態(tài)之前,備用緩沖器都可以保持備用狀態(tài)。預(yù)定的操作狀態(tài)有可能表示未分配的空閑存儲空間小于預(yù)定存儲限度。有用的是,本地接口可以是諸如TCP套接字之類的套接字,并且通信控制數(shù)據(jù)結(jié)構(gòu)可以是諸如TCP SCB之類的套接字控制功能塊(SCB)。該方法還可以包括采用動態(tài)存儲分配、動態(tài)存儲回收以及其組合來管理全局存儲器中的已分配的存儲器對象和未分配的存儲器對象,從而使由未分配的存儲器對象表示的未分配的空閑存儲空間最大化。
某些方法包括將全局存儲池劃分為處理緩沖池BP和備用緩沖池BR。在這種情況下,可以從指定的處理緩沖池BP中分配處理緩沖器,并且可以從指定的備用緩沖池BR中分配備用緩沖器。例如,當(dāng)希望確保為備用緩沖器以及處理緩沖器和通信控制數(shù)據(jù)結(jié)構(gòu)留出可確定的最小存儲空間時,該方法有可能是有用的。這種方法還包括響應(yīng)于對每個資源實體的請求,創(chuàng)建另外的通信控制數(shù)據(jù)結(jié)構(gòu)、處理緩沖器和備用緩沖器,從而在進(jìn)行了相應(yīng)配置的情況下,使得進(jìn)程可以根據(jù)需要調(diào)用另外的資源。在這種方法中,響應(yīng)于預(yù)定的存儲器狀態(tài)的存在,將備用緩沖器投入使用。
某些方法還可以包括在本地主機(jī)與遠(yuǎn)程主機(jī)之間的通信網(wǎng)絡(luò)上建立通信鏈路,以及在發(fā)送發(fā)送消息之前,將發(fā)送消息存儲于發(fā)送處理緩沖器中,在從遠(yuǎn)程主機(jī)接收到接收消息之后,將接收消息存儲于接收處理緩沖器中,或者同時包括這兩個存儲過程。
某些方法還可以包括監(jiān)控是否存在預(yù)定的存儲器狀態(tài)。可以對池BP或與空閑存儲池協(xié)作的池BP進(jìn)行監(jiān)控。如果存在預(yù)定的存儲器狀態(tài),則在將發(fā)送消息發(fā)送給遠(yuǎn)程主機(jī)之前,將發(fā)送消息存儲于發(fā)送備用緩沖器中,在從遠(yuǎn)程主機(jī)接收到接收消息之后,將接收消息存儲于接收備用緩沖器中,或者同時包括這兩個存儲過程。處理緩沖池BP包括空閑存儲位置、已占用的存儲位置以及其組合,其中如果空閑存儲位置小于預(yù)定存儲級別L,則存在預(yù)定的存儲器狀態(tài)。
為方便起見,某些具體實現(xiàn)方法包括使用預(yù)定的傳輸層協(xié)議在本地主機(jī)接口與遠(yuǎn)程主機(jī)接口之間建立通信鏈路。同樣,本地主機(jī)接口可以是套接字,并且通信控制數(shù)據(jù)結(jié)構(gòu)可以是套接字控制功能塊。此外,某些方法包括通過作為網(wǎng)絡(luò)通信鏈路的一部分的物理空中接口Um使用預(yù)定的無線協(xié)議進(jìn)行通信。
某些其他的方法在此還包括響應(yīng)于選定的存儲管理策略而將選定的發(fā)送處理緩沖器、選定的發(fā)送備用緩沖器、選定的接收處理緩沖器以及選定的接收備用緩沖器與相應(yīng)的通信控制數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)。根據(jù)選定的存儲管理策略,可以通過以下步驟來進(jìn)行這種關(guān)聯(lián)將選定的已占用存儲空間的發(fā)送處理緩沖器中的多個發(fā)送處理緩沖器指定為選定的空閑存儲空間的發(fā)送處理緩沖器,并將該選定的空閑存儲空間的發(fā)送處理緩沖器與池BP的空閑存儲空間相關(guān)聯(lián);將選定的已占用存儲空間的發(fā)送備用緩沖器中的多個發(fā)送備用緩沖器指定為選定的空閑存儲空間的發(fā)送備用緩沖器,并將該選定的空閑存儲空間的發(fā)送備用緩沖器與池BR的空閑存儲空間相關(guān)聯(lián);將選定的已占用存儲空間的接收處理緩沖器中的多個接收處理緩沖器指定為選定的空閑存儲空間的接收處理緩沖器,并將該選定的空閑存儲空間的接收處理緩沖器與池BP的空閑存儲空間相關(guān)聯(lián);將選定的已占用存儲空間的接收備用緩沖器中的多個接收備用緩沖器指定為選定的空閑存儲空間的接收備用緩沖器,并將該選定的空閑存儲空間的接收備用緩沖器與池BR的空閑存儲空間相關(guān)聯(lián);或者這些步驟的某種組合。
所用的選定存儲管理策略可以是動態(tài)存儲管理,該動態(tài)存儲管理包括動態(tài)存儲分配、動態(tài)存儲回收以及其組合中的一種方式。該動態(tài)存儲管理適用于選擇性地將緩沖器分配從第一通信控制數(shù)據(jù)結(jié)構(gòu)變?yōu)榈诙ㄐ趴刂茢?shù)據(jù)結(jié)構(gòu)。同樣,該動態(tài)存儲管理適用于選擇性地將備用緩沖器關(guān)聯(lián)從第一處理緩沖器變?yōu)榈诙幚砭彌_器。此外,將該選定的存儲管理策略配置為使空閑存儲空間最大化。該方法還包括使用以下協(xié)議在通信網(wǎng)絡(luò)中建立通信鏈路預(yù)定的網(wǎng)絡(luò)層協(xié)議,諸如網(wǎng)際協(xié)議;預(yù)定的傳輸層協(xié)議,諸如傳輸控制協(xié)議;以及結(jié)合預(yù)定的傳輸層協(xié)議而使用的預(yù)定的網(wǎng)絡(luò)層協(xié)議,諸如使用TCP/IP協(xié)議。其中,一部分通信鏈路包括物理空中接口Um,可以使用預(yù)定的無線協(xié)議通過該部分通信鏈路進(jìn)行通信。
另外某些具體實現(xiàn)方法在此還可以包括協(xié)作存儲管理方法,其中如果存在預(yù)定的存儲器狀態(tài),則處理緩沖器與備用緩沖器協(xié)作,以在本地進(jìn)程與遠(yuǎn)程進(jìn)程之間交換消息。在可協(xié)作的布置中,如果處理緩沖器可用,則通過處理緩沖器傳送消息,或者如果處理緩沖器不可用,則通過相關(guān)聯(lián)的備用緩沖器傳送消息。因此,如果存在預(yù)定的存儲器狀態(tài),則除非發(fā)送處理緩沖器已經(jīng)充滿,否則發(fā)送處理緩沖器仍然可以存儲發(fā)送消息,在發(fā)送處理緩沖器已經(jīng)充滿的情況下,相關(guān)聯(lián)的發(fā)送備用緩沖器可以存儲發(fā)送消息。同樣,除非接收處理緩沖器已經(jīng)充滿,否則接收處理緩沖器仍然可以存儲接收消息,在接收處理緩沖器已經(jīng)充滿的情況下,相關(guān)聯(lián)的接收備用緩沖器可以存儲接收消息。
除包括將存儲器劃分為處理緩沖池BP和備用緩沖池BR之外,這些方法在此還可以將緩沖池BR劃分為發(fā)送備用緩沖池TS和接收備用緩沖池RS。一般來說,BR中的存儲位置的數(shù)目可以包括分別由發(fā)送備用緩沖池TS和接收備用緩沖池RS表示的存儲位置的數(shù)目的總和。此外,當(dāng)N是所創(chuàng)建的套接字的選定最大數(shù)目,則下標(biāo)s可以代表套接字索引,套接字索引的值在大約1≤s≤N的近似范圍內(nèi)。有利的是,當(dāng)未分配的空閑存儲空間的量至少約為預(yù)定的空閑存儲級別L時,從BP中為套接字s分配發(fā)送緩沖器和接收緩沖器。另一方面,當(dāng)未分配的空閑存儲空間的量小于大約預(yù)定的空閑存儲級別L時,有可能希望分別從TS中分配發(fā)送緩沖器并從RS中分配接收緩沖器。
在未分配的空閑存儲空間減小到小于預(yù)定的存儲級別之前,可以隨意地從處理緩沖池BP中分配發(fā)送備用緩沖器和接收備用緩沖器。當(dāng)未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別時,該方法可以包括從備用緩沖池BR中分配備用緩沖器。在某些實施例中,從備用緩沖池BR中進(jìn)行分配可以包括從發(fā)送備用緩沖池TS中分配發(fā)送備用緩沖器,并從接收備用緩沖池RS中分配接收備用緩沖器。如同在此具體實現(xiàn)的其他方法,前述方法可以包括采用存儲分配、存儲回收或其組合來管理通信緩沖器、處理緩沖器和備用緩沖器中的存儲空間。
本發(fā)明還提供了通信緩沖管理設(shè)備,其中某些設(shè)備可以在本地主機(jī)與遠(yuǎn)程主機(jī)之間的通信系統(tǒng)中具體實現(xiàn)。這種系統(tǒng)包括本地主機(jī)中的通信管理器,其適用于與遠(yuǎn)程主機(jī)之間傳送消息。通信管理器包括處理緩沖器,其配置為存儲與遠(yuǎn)程主機(jī)之間傳送的消息;備用緩沖器,其配置為在存在預(yù)定的操作狀態(tài)的情況下存儲消息。該系統(tǒng)還包括網(wǎng)絡(luò)通信鏈路,建立該網(wǎng)絡(luò)通信鏈路是為了在本地主機(jī)與遠(yuǎn)程主機(jī)之間傳送消息;以及收發(fā)信機(jī),其連接在通信管理器與網(wǎng)絡(luò)通信鏈路之間,并部署為在網(wǎng)絡(luò)通信鏈路與通信管理器之間傳送所述消息。
通信管理器還可以包括通信接口和通信控制數(shù)據(jù)結(jié)構(gòu)。通信接口可以連接到本地進(jìn)程,并且可適用于在處理緩沖器或備用緩沖器與本地進(jìn)程之間交換消息。通信控制數(shù)據(jù)結(jié)構(gòu)的特征可以在于通信接口并且可以將其分配給該通信接口。接著,可以將處理緩沖器和備用緩沖器分配給通信控制數(shù)據(jù)結(jié)構(gòu)。通信管理器可以在其中包括通信緩沖器。通信緩沖器可以單獨地或以組合形式包括已分配的存儲器對象和未分配的空閑存儲空間。通信控制數(shù)據(jù)結(jié)構(gòu)、處理緩沖器和備用緩沖器均可以為通信緩沖器中的存儲器對象。在這種通信管理器中,當(dāng)未分配的空閑存儲空間小于預(yù)定的空閑存儲空間級別時,存在預(yù)定的操作狀態(tài)。
通信緩沖管理器可以包括在通信管理器中,并連接到通信緩沖器。通信緩沖管理器可以監(jiān)控未分配的空閑存儲空間,以便確定是否存在預(yù)定的操作狀態(tài),并且可以響應(yīng)于預(yù)定的操作狀態(tài)的存在而將消息存儲于備用緩沖器中??梢詫⒍鄠€處理緩沖器和備用緩沖器分配給通信控制數(shù)據(jù)結(jié)構(gòu),其中將多個處理緩沖器指定為接收處理緩沖器并將其他多個處理緩沖器指定為接收處理緩沖器。同樣,可以將多個備用緩沖器分配給通信控制數(shù)據(jù)結(jié)構(gòu),其中將多個備用緩沖器指定為發(fā)送備用緩沖器并將其他多個備用緩沖器指定為接收備用緩沖器。使選定發(fā)送備用緩沖器可協(xié)作地與相應(yīng)的發(fā)送處理緩沖器相關(guān)聯(lián),并且使選定接收備用緩沖器可協(xié)作地與相應(yīng)的接收處理緩沖器相關(guān)聯(lián)??梢詫⑼ㄐ啪彌_器劃分為處理緩沖池BP和備用緩沖池BR,分別從處理緩沖池BP和備用緩沖池BR中分配處理緩沖器和備用緩沖器。在此處具體實現(xiàn)的某些系統(tǒng)中,本地主機(jī)可以與遠(yuǎn)程主機(jī)結(jié)合預(yù)定的傳輸層協(xié)議而使用預(yù)定的網(wǎng)絡(luò)層協(xié)議通過網(wǎng)絡(luò)通信鏈路傳送消息。在此處選定的系統(tǒng)中,通信控制數(shù)據(jù)結(jié)構(gòu)可以是TCP套接字控制功能塊,并且通信接口可以是傳輸控制套接字。此外,預(yù)定的傳輸層協(xié)議可以是傳輸控制協(xié)議。其中一部分網(wǎng)絡(luò)通信鏈路通過物理空中(Um)接口,本地主機(jī)與遠(yuǎn)程主機(jī)可以使用預(yù)定的無線協(xié)議通過該Um接口傳送消息。
本發(fā)明的其他示例性實施例包括一種移動通信設(shè)備,其具有位于其中的收發(fā)信機(jī)和通信管理器。該收發(fā)信機(jī)適用于使用預(yù)定的無線協(xié)議通過一部分通信網(wǎng)絡(luò)鏈路連接到遠(yuǎn)程主機(jī)。該通信管理器適用于與遠(yuǎn)程主機(jī)之間傳送信息。該通信管理器可以包括通信緩沖器,該通信緩沖器可以具有未分配的空閑存儲空間以及在其中分配的備用緩沖器。該備用緩沖器可以響應(yīng)于未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別而存儲與遠(yuǎn)程主機(jī)之間傳送的消息。該通信緩沖器還可以包括在其中分配的處理緩沖器,該處理緩沖器基本上獨立于未分配的空閑存儲空間是否減小到了小于預(yù)定的存儲級別而存儲與遠(yuǎn)程主機(jī)之間傳送的消息。處理緩沖器與備用緩沖器協(xié)作,以響應(yīng)于未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別而存儲與遠(yuǎn)程主機(jī)之間傳送的消息。可以將通信緩沖器劃分為處理緩沖池BP和備用緩沖池BR。然后,可以從處理緩沖池中分配處理緩沖器,并且可以從備用緩沖池中分配備用緩沖器。
在分配之后,還可以將處理緩沖器分配為發(fā)送處理緩沖器和接收處理緩沖器。同樣,還可以將備用緩沖器分配為發(fā)送備用緩沖器和接收備用緩沖器。有利的是,可以將發(fā)送備用緩沖器與發(fā)送處理緩沖器相關(guān)聯(lián),并且可以將發(fā)送處理緩沖器和發(fā)送備用緩沖器均配置為可協(xié)作地存儲發(fā)送給遠(yuǎn)程主機(jī)的消息。同樣,可以將接收備用緩沖器與接收處理緩沖器相關(guān)聯(lián),并且可以將接收處理緩沖器和接收備用緩沖器均配置為可協(xié)作地存儲從遠(yuǎn)程主機(jī)接收的消息。
在此具體實現(xiàn)的示例性移動設(shè)備還可以包括本地進(jìn)程,其在本地主機(jī)上執(zhí)行,并且具有在本地進(jìn)程與通信緩沖器之間交換消息的本地進(jìn)程接口;以及本地主機(jī)通信接口控制結(jié)構(gòu),其對應(yīng)于本地進(jìn)程接口,并且配置為與遠(yuǎn)程主機(jī)中的遠(yuǎn)程進(jìn)程接口之間傳送消息。本地主機(jī)通信接口控制結(jié)構(gòu)可通信地與處理緩沖器和備用緩沖器協(xié)作,將處理緩沖器和備用緩沖器分配給本地主機(jī)接口控制結(jié)構(gòu)。可以將通信緩沖器劃分為發(fā)送處理緩沖池TS和接收處理緩沖池RS。當(dāng)未分配的空閑存儲空間近似地在預(yù)定的存儲級別L上或高于該預(yù)定的存儲級別L,則可以從空閑存儲池BP中分配處理緩沖器和備用緩沖器。在未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別之后,可以從發(fā)送備用緩沖池TS中分配發(fā)送備用緩沖器并且可以從接收備用緩沖池RS中分配接收備用緩沖器。
這種移動通信設(shè)備可以包括連接到通信緩沖器的通信緩沖管理器。通信緩沖管理器可以將通信緩沖器劃分為發(fā)送處理緩沖器和接收處理緩沖器,將處理緩沖器分配為發(fā)送處理緩沖器和接收處理緩沖器,將備用緩沖器分配為發(fā)送備用緩沖器和接收備用緩沖器,監(jiān)控未分配的空閑存儲空間,并且可以使得響應(yīng)于未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別而將消息存儲于發(fā)送備用緩沖器、接收備用緩沖器或同時存儲于這兩個備用緩沖器中。
某些通信緩沖管理器可以配置為響應(yīng)于期望的緩沖器大小、本地通信接口的預(yù)期通信用途、預(yù)定的通信參數(shù)以及其組合中的一個參數(shù)而選擇處理緩沖器和備用緩沖器的大小、數(shù)目或同時選擇其大小和數(shù)目。通信緩沖管理器可以實現(xiàn)動態(tài)存儲分配、動態(tài)存儲回收以及其組合,從而使未分配的空閑存儲空間最大化。同樣,通信緩沖管理器還可以包括處理緩沖管理器和備用緩沖管理器。處理緩沖管理器和備用緩沖管理器用來管理相應(yīng)的處理緩沖存儲器和備用緩沖存儲器的方法可以包括存儲分配、存儲回收或其組合。處理緩沖管理器和備用緩沖管理器中的一個或兩個緩沖管理器可以實現(xiàn)動態(tài)存儲分配、動態(tài)存儲回收以及其組合,從而使未分配的空閑存儲空間最大化。
結(jié)合附圖,根據(jù)以下對本發(fā)明實施例的詳細(xì)描述,可以更全面地理解本發(fā)明,其中圖1是示出通信系統(tǒng)環(huán)境中的通信緩沖管理器的實施例的簡化的示意性框圖;圖2是位于本地主機(jī)中的通信緩沖管理器的另一實施例的簡化的示意性框圖;圖3A是根據(jù)本發(fā)明的包括初始化階段(INSTANTIATION PHASE)和執(zhí)行階段(EXECUTION PHASE)的通信緩沖存儲器管理過程的簡化的示意性框圖;圖3B是圖3A中示出的實施例的初始化階段的簡化的示意性框圖;以及圖3C是圖3A中示出的實施例的執(zhí)行階段的簡化的示意性框圖。
具體實施例方式
這些實施例在此提供了通信緩沖管理方法和設(shè)備,其可以用于在移動通信設(shè)備中管理移動設(shè)備通信緩沖器。
1.術(shù)語定義如同在此所用,消息是在通信期間在兩個通信端點或主機(jī)之間傳送的示例性數(shù)據(jù)單元。消息的組成部分可以是一個或多個數(shù)據(jù)單元,諸如TCP分段(稱為分段)。TCP分段可以包括TCP報頭和TCP數(shù)據(jù)有效載荷(分別稱為報頭和有效載荷)。此外,消息可以是視頻、音頻、文本、數(shù)據(jù)、多媒體以及對主機(jī)或主機(jī)用戶有意義的其他內(nèi)容中的一個或多個數(shù)據(jù)單元,包括重發(fā)消息和控制消息。消息可以由一個或多個數(shù)據(jù)單元構(gòu)成,這些數(shù)據(jù)單元非限制性地包括數(shù)據(jù)幀、分組、數(shù)據(jù)報、分隔流(delimited stream)、管理響應(yīng)和通信控制數(shù)據(jù)??刂葡⒖梢圆扇》e極確認(rèn)或消極確認(rèn)、狀態(tài)更新、請求、應(yīng)答等形式。
一般來說,可以從一個或多個存儲功能塊中分配存儲緩沖器,或簡單地說是緩沖器??梢詮囊粋€或多個單位存儲位置中依次分配每個存儲塊。構(gòu)成存儲塊的單位存儲位置的數(shù)目以及構(gòu)成存儲緩沖器的存儲塊的數(shù)目可以是固定的、可選的、可變的或其組合。固定的值是一個單獨的值,并且通常在進(jìn)行操作之前分配??蛇x的值可以從一組離散的值中選取,并且通常在操作之前分配。可變的值通常在預(yù)定范圍內(nèi)取值,并且通常動態(tài)地或在操作期間分配。除非上下文引用了特定的存儲實體,否則存儲位置、存儲塊和存儲緩沖器都可以稱為存儲器對象。緩沖器可以是一個單獨的存儲器對象,并且同樣可以從多個更小的存儲器對象中分配。
因此,系統(tǒng)存儲緩沖器邏輯上可以包含固定數(shù)目的更小的功能性緩沖器,每個功能性緩沖器由固定數(shù)目的單位存儲位置有效地構(gòu)成。在替代性的方案中,系統(tǒng)存儲緩沖器可以包含大小不同的固定大小的、可選大小的以及可變大小的存儲器對象,該系統(tǒng)存儲緩沖器可以適用于符合特定的目的,以使得所浪費的存儲空間最小化,等等。例如,可以為所有的通信接口控制結(jié)構(gòu)分配具有一個預(yù)定大小的存儲器對象,而通信緩沖器可以包括不同大小的存儲器對象,其中可以將對象大小調(diào)整為便于進(jìn)行有效的通信??梢詮囊粋€單獨的集成設(shè)備中或在一個單獨的集成設(shè)備中,或者從多個集成的或分立的物理存儲設(shè)備或模塊中或在多個集成的或分立的物理存儲設(shè)備或模塊中形成可用的物理通信存儲空間。此外,其中可以使用有利的分級的、分布式的或共享的存儲器對象配置。
在本公開文件的上下文中,存儲管理可以包括存儲分配和存儲回收。存儲分配可以包括分配用于存儲信息的存儲資源,并且可以實現(xiàn)一個或多個存儲分配策略,以提供足夠的資源來滿足通信期間所期望的分配請求??梢圆捎糜嬎銠C(jī)領(lǐng)域中公知的存儲分配策略,包括而不限于存儲映射和重新映射、靜態(tài)存儲分配、動態(tài)存儲分配以及可以是這些分配策略的組合的混合分配。
還有可能希望在存儲管理中包括存儲回收,以識別、收集和收回存儲位置、功能塊和緩沖器,這些存儲位置、功能塊和緩沖器有可能已經(jīng)不用或可以由與最初為其分配的處理器不同的處理器更好地利用??梢詥为毜鼗蛞越M合形式采用多種公知的存儲回收方法,包括而不限于策略垃圾回收、解除分配、重新映射和存儲收回。這些方法可以與在此所用的存儲分配方法相結(jié)合或作為其補充。實際上,根據(jù)在相應(yīng)實施例中執(zhí)行的存儲管理策略的需要,存儲分配可以與存儲回收協(xié)作,以重新分配存儲位置、功能塊和緩沖器。
在存儲分配或存儲回收無法實現(xiàn)或受到限制的環(huán)境下,存儲管理還可以包括一個或多個預(yù)定的存儲管理步驟。如果暫時不能獲得足夠的空閑存儲空間,則預(yù)定的存儲管理步驟可以包括例如丟棄到來的接收消息或阻斷發(fā)出的發(fā)送消息。
如同在此所用,“存儲受限”設(shè)備可以是具有可用作通信緩沖器的有限存儲空間或有限數(shù)目存儲位置的設(shè)備。緊湊型移動通信設(shè)備中的存儲限制有可能源于例如電源、成本或設(shè)備尺寸上的考慮。在以下示例和實施例中,術(shù)語“本地”和“遠(yuǎn)程”用于提供相對參考點,而不是用于指定通信主機(jī)之間的特定物理關(guān)系或特定空間關(guān)系。實際上,本發(fā)明的實施例可以用于本地主機(jī)、遠(yuǎn)程主機(jī)或同時用于本地主機(jī)和遠(yuǎn)程主機(jī)。
此外,在此將術(shù)語“空閑”和“已占用”應(yīng)用于存儲實體,包括存儲位置、功能塊和緩沖器,“空閑”和“已占用”分別將存儲實體指定為處于從功能上說類似于“可以寫入”狀態(tài)或“禁止寫入”狀態(tài)的狀態(tài)中。在禁止寫入存儲器中,可以暫時阻止新的數(shù)據(jù)存儲,以便暫時保護(hù)存儲實體中現(xiàn)有的數(shù)據(jù)。可以寫入的存儲實體可以允許在其中存儲新的數(shù)據(jù)。因此,可以將數(shù)據(jù)寫入到空閑存儲空間中,然后,可以將該空閑存儲空間指定為已占用的存儲空間,直到已經(jīng)根據(jù)需要使用了該存儲空間中的數(shù)據(jù)例如對這些數(shù)據(jù)進(jìn)行讀取、發(fā)送或確認(rèn)時為止。當(dāng)已占用的存儲空間沒有充分利用或根據(jù)預(yù)期用途不再使用時,可以再次將該存儲空間指定為空閑存儲空間。有利的是,通信緩沖器包括空閑存儲空間、已占用的存儲空間或同時包括空閑存儲空間和已占用的存儲空間。
有可能希望在向存儲實體中存儲數(shù)據(jù)之前分配存儲實體。一旦將存儲實體分配給特定的進(jìn)程,就可以將已分配的存儲空間指定為與相應(yīng)進(jìn)程的相應(yīng)操作狀態(tài)有關(guān)的空閑存儲空間或已占用的存儲空間。例如,在回收之前,希望將已占用的存儲空間指定為空閑存儲空間,以便不會過早地從激活的進(jìn)程中去除這些資源。當(dāng)將存儲實體指定為空閑存儲空間時,可以將該存儲實體返回空閑存儲池,如果進(jìn)行了相應(yīng)的配置,則可以從空閑存儲池中重新分配隨后的資源。
某些進(jìn)程可以推遲執(zhí)行“緩沖器讀取”操作,直到完成待進(jìn)行的“緩沖器寫入”操作時為止。在這種情況下,進(jìn)程可以不讀取有可能已經(jīng)接收的數(shù)據(jù),并因此不會釋放相關(guān)聯(lián)的存儲位置以供到來消息使用或供諸如“確認(rèn)”之類的發(fā)出消息使用。同樣,很多通信協(xié)議有可能期望發(fā)送方保留發(fā)送消息的副本,直到發(fā)送方從消息接收方接收到相關(guān)聯(lián)的響應(yīng)(例如“確認(rèn)”)時為止。當(dāng)執(zhí)行這種進(jìn)程時,所存儲的TCP分段會同時累積在移動設(shè)備的發(fā)送緩沖器和接收緩沖器中,導(dǎo)致基本上耗盡可用的通信存儲空間。由于耗盡了存儲空間,進(jìn)程有可能不能完成進(jìn)程內(nèi)“緩沖器寫入”操作。同時,進(jìn)程會等待完成“緩沖器寫入”以執(zhí)行“緩沖器讀取”操作。所形成的僵局可稱為“死鎖”。因此,在存儲受限的環(huán)境下,希望有效地管理通信緩沖器。因此,在執(zhí)行進(jìn)程的存儲受限的移動無線設(shè)備的環(huán)境中,在此提出了示例性通信緩沖管理方法和設(shè)備。然而,這些方法和設(shè)備可以在各種各樣的設(shè)備、系統(tǒng)和環(huán)境中實現(xiàn)。
2.實施例描述圖1示出了通信系統(tǒng)100,其中本地主機(jī)(LHOST)102通過在通信網(wǎng)絡(luò)108上建立通信鏈路與遠(yuǎn)程主機(jī)REMHOST(110)通信。LHOST102和REMHOST 110可以通過以半雙工傳輸模式或全雙工傳輸模式單向地或雙向地傳送包括信息和控制數(shù)據(jù)的消息來進(jìn)行通信。一部分通信鏈路可以包括一般采用適用于分組交換網(wǎng)的通信協(xié)議在其上進(jìn)行通信的分組交換網(wǎng),例如網(wǎng)絡(luò)108。網(wǎng)絡(luò)108可以表示具有多種構(gòu)成網(wǎng)絡(luò)部分的異構(gòu)網(wǎng)絡(luò),這些構(gòu)成網(wǎng)絡(luò)部分包括而不限于電路交換網(wǎng)、分組交換網(wǎng)、與這些網(wǎng)絡(luò)等效的網(wǎng)絡(luò)以及這些網(wǎng)絡(luò)的組合。包括諸如因特網(wǎng)之類的分組交換公共網(wǎng)的網(wǎng)絡(luò)108的一部分可以使用可靠的、面向連接的、端到端的協(xié)議,諸如TCP/IP協(xié)議組。一部分通信鏈路還可以使用預(yù)定的無線協(xié)議通過物理空中(Um)接口進(jìn)行通信。在系統(tǒng)100中,預(yù)定的無線協(xié)議有利地與用于通信鏈路中的包括分組交換協(xié)議的其他通信協(xié)議進(jìn)行協(xié)作。
LHOST 102可以是移動無線系統(tǒng),其與移動服務(wù)提供商(MSP)104進(jìn)行通信。LHOST 102可以包括有可能存儲受限的多功能、多媒體移動終端(M3T)114,諸如手機(jī)、個人數(shù)字助理或其他緊湊型通信設(shè)備。LHOST 102還可以使用移動臺管理器(MSM)112來實現(xiàn)M3T 114與REMHOST 110之間的通信。盡管圖1中將MSM 112示出為獨立于M3T114的實體,但是也可以預(yù)期,MSM 112可以集成到M3T 114中。MSM112可以包括一個或多個通信緩沖器,諸如通信緩沖器118。MSM 112可以連接到或結(jié)合移動收發(fā)信機(jī)(XCVR)116。此外,MSM 112可以連接到諸如第一本地進(jìn)程(LPROC#1)120和第二本地進(jìn)程(LPROC#2)121之類的一個或多個本地進(jìn)程,以及相關(guān)聯(lián)的接口或服務(wù)模塊,諸如TCP進(jìn)程。LPROC#1 120、LPROC#2 121可以為與M3T 114協(xié)作的用戶應(yīng)用程序提供聯(lián)網(wǎng)的通信服務(wù)。在此處的發(fā)明實施例的范圍內(nèi),可以單獨地或以組合形式在MSM 112或在M3T 114中執(zhí)行LPROC#1 120和LPROC#2 121。
XCVR 116可以包括無線接收機(jī)122和無線發(fā)射機(jī)124。發(fā)射機(jī)124可以通過物理空中(Um)接口將發(fā)出消息從發(fā)送處理緩沖器128傳送到MSP 104。MSP 104可以包括基站收發(fā)信機(jī)(未示出)和移動交換中心(未示出),并且可以通過MSP路由器106連接到網(wǎng)絡(luò)108。MSP路由器106可以根據(jù)需要在網(wǎng)絡(luò)108與MSP 104之間執(zhí)行物理信號和邏輯消息的轉(zhuǎn)換。LHOST 102與REMHOST 110之間的消息傳送可以是雙向的和全雙工的。接收機(jī)122可以從MSP 104接收到來的無線消息,并且可以將接收消息傳送給接收處理緩沖器126。
通常,在通信開始時,在任一方主機(jī)上執(zhí)行的進(jìn)程使用選定的通信接口對在這兩個主機(jī)之間建立連接進(jìn)行協(xié)商。在REMHOST 110和LHOST 102中的每個主機(jī)都使用TCP類傳輸協(xié)議來實現(xiàn)通信的示例中,每個進(jìn)程可以創(chuàng)建一個或多個TCP套接字以在兩個主機(jī)之間建立期望的連接。盡管通信緩沖器118可以代表為在LHOST 102中創(chuàng)建的每個套接字Si分配的存儲器對象,但通信緩沖器118還可以表示作為全局存儲池而由兩個或多個套接字Si共享的存儲器對象。在操作期間,這些套接字可以爭用存儲資源分配。當(dāng)建立了TCP連接時,進(jìn)行通信的TCP進(jìn)程可以識別端口號并協(xié)商其他參數(shù),例如已發(fā)送但未確認(rèn)的數(shù)據(jù)的最大數(shù)量(稱為提供窗或通知窗)以及將在REMHOST 110與LHOST 102之間雙向傳送的TCP分段的最大大小??梢詫⑦@種控制信息存儲于稱為套接字控制功能塊(SCB)125的數(shù)據(jù)結(jié)構(gòu)中,還可以在通信緩沖器118的一部分中創(chuàng)建這種數(shù)據(jù)結(jié)構(gòu)。一般來說,套接字Si可以包括SCB 125和一個或多個處理緩沖器,諸如緩沖器126、128。有可能希望從通信緩沖器118中分配接收處理緩沖器126和發(fā)送處理緩沖器128??梢愿鶕?jù)預(yù)期的通信的需要來配置處理緩沖器126、128,這種需要可以由在通信鏈路協(xié)商期間傳送給SCB 125的參數(shù)來反映。例如,分配給SCB 125的緩沖器和其他存儲器對象的大小和數(shù)目可以與通信的性質(zhì)(例如TCP、UDP(用戶數(shù)據(jù)報協(xié)議)等)、預(yù)期的存儲需求(例如通信優(yōu)先級、TCP分段大小等)以及其他有密切關(guān)系的操作參數(shù)有關(guān)。盡管將SCB 125/接收處理緩沖器126和發(fā)送處理緩沖器128示出為物理上獨立的實體,但這種區(qū)別通常是虛擬的。
REMHOST 110包括還分配為接收處理緩沖器(未示出)和發(fā)送處理緩沖器(未示出)的通信緩沖器134。緩沖器134可以連接到第一遠(yuǎn)程進(jìn)程(RPC#1)136、第二遠(yuǎn)程進(jìn)程(RPC#2)138或同時連接到這兩個遠(yuǎn)程進(jìn)程。REMHOST 110可以包括諸如緩沖器134之類的多個緩沖器,以支持多個套接字和多個進(jìn)程。同樣,LHOST 102中的多個本地進(jìn)程(例如LPROC#1 120、LPROC#2 121)可以適用于與REMHOST 110或不同的遠(yuǎn)程主機(jī)的組合中的多個遠(yuǎn)程進(jìn)程(例如RPC#1 136、RPC#2138)進(jìn)行通信。
LPROC#1 120從M3T 114接收發(fā)出消息,并將這些消息寫入到發(fā)送處理緩沖器128的空閑存儲空間中。無線發(fā)射機(jī)124從發(fā)送處理緩沖器128中讀取消息并且可以通過Um接口將這些消息發(fā)送給MSP 104。在將消息從LHOST 102發(fā)送到REMHOST 110之后,可以將發(fā)送消息副本存儲于發(fā)送處理緩沖器128中的選定存儲器對象中,等待確認(rèn)??梢詫⒖蓪懭胂⒌拇鎯ζ鲗ο笾付橐颜加玫拇鎯臻g,直到這些消息已被發(fā)送和確認(rèn)時為止,之后可以將這些已占用的存儲空間指定為空閑存儲空間。除非進(jìn)行了回收,否則無論是將構(gòu)成緩沖器128的存儲器對象指定為已占用的存儲空間還是指定為空閑存儲空間,該存儲器對象都可以保持作為緩沖器128分配給SCB 125的狀態(tài)。隨著LHOST 102與REMHOST 110之間的通信的繼續(xù),發(fā)送處理緩沖器128中的空閑存儲空間數(shù)量相對于已占用存儲空間數(shù)量和總存儲空間的比例會發(fā)生變化,其同時包含例如從進(jìn)程120接收的發(fā)出消息和發(fā)送給REMHOST 110的已發(fā)送但未確認(rèn)的消息的副本。
LHOST 102還可以從REMHOST 110接收消息,基本上與LHOST102發(fā)送消息給REMHOST 110并行。一般來說,可以在發(fā)送之前將從REMHOST 110發(fā)送到LHOST 102的消息例如作為TCP分段存儲于緩沖器134中??梢酝ㄟ^MSP路由器106在網(wǎng)絡(luò)108上向MSP 104發(fā)送發(fā)出消息。MSP 104可以使用預(yù)先選定的無線協(xié)議通過Um接口向LHOST 102發(fā)送消息。LHOST 102中的無線接收機(jī)122能夠檢測到來信號并且能夠?qū)⑽锢硇盘栟D(zhuǎn)換為邏輯接收消息,例如TCP分段。接收TCP分段通常包括接收有效載荷和接收報頭,接收報頭包含接收消息標(biāo)識符。一般來說,可以將接收消息存儲于接收處理緩沖器126中,直到進(jìn)程120請求選定的接收信息時為止。響應(yīng)于進(jìn)程的“緩沖器讀取”操作,可以將存儲于接收處理緩沖器126中的接收有效載荷傳送給進(jìn)程120,并且可以使得該數(shù)據(jù)可供例如M3T 114使用。在“緩沖器讀取”之后,可以將緩沖器126中的已占用存儲空間指定為空閑存儲空間。除非進(jìn)行了回收,否則無論是將構(gòu)成緩沖器126的存儲器對象指定為已占用的存儲空間還是指定為空閑存儲空間,該存儲器對象都可以保持作為緩沖器126分配給SCB 125的狀態(tài)。隨著REMHOST 110與LHOST 102之間的通信的繼續(xù),接收處理緩沖器126中的空閑接收存儲空間數(shù)量相對于已占用的接收存儲空間數(shù)量的比例會發(fā)生變化,特別地,其中諸如LPROC#1 120、LPROC#2 121之類的進(jìn)程推遲執(zhí)行對接收處理緩沖器126的“緩沖器讀取”操作,直到完成進(jìn)程內(nèi)“緩沖器寫入”操作時為止。LHOST 102還可以通過發(fā)送確認(rèn)接收到了來自REMHOST 110的發(fā)送數(shù)據(jù)的“確認(rèn)”消息來對這些發(fā)送數(shù)據(jù)進(jìn)行響應(yīng)。
有可能希望通信緩沖管理器(CBM)130的實施例或功能上等效的設(shè)備在通信緩沖器118內(nèi)提供對存儲器對象的改善的管理。可以實現(xiàn)于CBM 130中的存儲管理包括存儲分配、存儲回收和存儲管理步驟。存儲分配可以包括為發(fā)送操作或為接收操作分配不同的存儲器對象。存儲管理還可以包括將已分配的存儲器對象指定為空閑存儲空間或已占用的存儲空間。因此,由CBM 130管理的存儲器對象的例子可以包括通信緩沖器118、SCB 125、接收處理緩沖器126和發(fā)送處理緩沖器。此外,CBM 130可以管理包括諸如接收備用緩沖器RR127和發(fā)送備用緩沖器RT129之類的備用緩沖器的存儲器對象。
存儲回收可以包括識別未使用的存儲器對象和可回收的存儲器對象。有可能希望將回收的存儲器對象返回到已定義的、空閑的存儲池。未使用的存儲器對象的例子可以包括未分配的存儲空間,不再使用的已分配且空閑的存儲器對象和緩沖器,或者已分配的孤立存儲碎片??苫厥盏拇鎯ζ鲗ο蟮睦影▽儆诮K止進(jìn)程、存儲泄漏的對象,以及諸如有可能已分配給低需求套接字的未充分利用的和優(yōu)先級較低的對象。CBM 130可以對已回收的存儲空間進(jìn)行重新分配,以供其他進(jìn)程(如果需要這些其他進(jìn)程)使用,例如,供SCB使用、供處理緩沖器使用或供備用緩沖器使用。CBM 130可以對最初分配給通信堆棧中較低的進(jìn)程的未使用存儲器對象進(jìn)行重新分配,以便將其重新分配為緩沖器,包括發(fā)送備用緩沖器、接收備用緩沖器或同時包括這兩種備用緩沖器。
CBM 130可以在創(chuàng)建套接字Si期間將備用緩沖器RR127和備用緩沖器RT129分配給SCB 125。盡管已經(jīng)分配,但CBM 130仍可以使得Si推遲將消息存儲于備用緩沖器RR127和備用緩沖器RT129中,直到檢測到存在預(yù)定的操作狀態(tài)時為止。因此,在存在預(yù)定的操作狀態(tài)之前,備用緩沖器RR127和備用緩沖器RT129可以仍然保持為已分配且空閑的。然而,例如在通過相應(yīng)的套接字進(jìn)行的通信終止之前,無論是否存在預(yù)定的操作狀態(tài),都有可能不希望回收已分配且空閑的備用緩沖器。
所希望的是,預(yù)定的操作狀態(tài)可以由未分配且可回收的存儲空間減小到小于所述預(yù)定的存儲級別L來表示。當(dāng)CBM 130檢測到通信緩沖器118中存在預(yù)定的操作狀態(tài)時,CBM 130可以使用處理緩沖器126、128與相關(guān)聯(lián)的備用緩沖器RR127和備用緩沖器RT129來增加通信。盡管備用緩沖器RR127和備用緩沖器RT129可以表示在創(chuàng)建SCB 125期間分配給SCB 125的存儲器對象,但備用緩沖器RR127和備用緩沖器RT129還可以表示稍后由CBM 130在操作期間通過補充分配或通過回收和重新分配而添加的存儲器對象。這些備用緩沖器127、129有可能有利于防止或有利于改善緩沖器死鎖狀態(tài)或緩沖器匱乏狀態(tài),例如,當(dāng)LPROC#1 120基本上與接收處理緩沖器126接受從REMHOST 110傳送的大量消息并行地將大量消息傳送給發(fā)送處理緩沖器128時,就有可能出現(xiàn)緩沖器死鎖狀態(tài)或緩沖器匱乏狀態(tài)。同樣,可以將LPROC#1 120配置為推遲執(zhí)行從接收處理緩沖器126中進(jìn)行的“緩沖器讀取”操作,直到完成對緩沖器128的進(jìn)程內(nèi)“緩沖器寫入”操作之后為止。在發(fā)送處理緩沖器128接受了來自LPROC#1 120的消息的情況下,除保留傳送給REMHOST 110的消息的副本之外,通信緩沖器118中的可用存儲空間會開始減小。當(dāng)發(fā)送處理緩沖器128中存在預(yù)定的操作狀態(tài)時,在此描述的實施例可以提供足夠的備用存儲空間以便有可能避免緩沖器死鎖或緩沖器匱乏。
為方便起見,如果進(jìn)行了相應(yīng)的配置,則CBM 130可以適應(yīng)性地對發(fā)送的消息進(jìn)行過濾,使其通過備用緩沖器RR127和備用緩沖器RT129,以便可以將預(yù)先選定的消息存儲于這些緩沖器并通過這些緩沖器進(jìn)行傳送。例如,由于通信緩沖器118中的空閑存儲空間數(shù)量減小到了小于預(yù)定存儲級別L并且可用的備用緩沖器RR127和備用緩沖器RT129的數(shù)量也變得有限,有可能希望將通過備用緩沖器RR127和備用緩沖器RT129的通信限制為基本控制消息,諸如“確認(rèn)”消息。備用緩沖器RR127和備用緩沖器RT129可以為進(jìn)程(例如LPROC#1 120)提供足夠的存儲空間,以使得可以完成“緩沖器寫入”操作,將“確認(rèn)”發(fā)送給REMHOST 110,等等。
在圖2的通信系統(tǒng)200中,本地主機(jī)LHOST(201)采用通信管理器203通過通信網(wǎng)絡(luò)270將消息傳送給遠(yuǎn)程主機(jī)(REMHOST)280。通常,每個主機(jī)執(zhí)行至少一個通信進(jìn)程,以與另一主機(jī)交換消息。在圖2中,可以通過在第一本地通信進(jìn)程(LPROC#1)209與第一遠(yuǎn)程通信進(jìn)程(RPROC#1)281之間的通信網(wǎng)絡(luò)270上建立鏈路而在LHOST 201與REMHOST 280之間交換消息。在LHOST 201包括移動無線設(shè)備時,LHOST 201可以包括收發(fā)信機(jī)(XCVR)207,可以將XCVR 207配置為通過物理空中(Um)接口與移動服務(wù)提供商(MSP)265之間傳送消息。有可能希望通信使用雙向通信鏈路實現(xiàn)預(yù)定的全雙工無線通信協(xié)議,但也可以使用其他通信協(xié)議。有可能有用的是通過在LHOST 201中執(zhí)行第二本地通信進(jìn)程(LPROC#2)211、在REMHOST 280中執(zhí)行第二遠(yuǎn)程通信進(jìn)程(RPROC#2)283或同時執(zhí)行這兩個通信進(jìn)程而在通信網(wǎng)絡(luò)270上提供用于消息交換的另外的鏈路。REMHOST 280可以通過網(wǎng)絡(luò)網(wǎng)關(guān)275與網(wǎng)絡(luò)270進(jìn)行通信。網(wǎng)絡(luò)270的至少一部分可以包括公共分組交換網(wǎng),諸如因特網(wǎng)。
為方便起見,LHOST 201和REMHOST 280可以使用可靠的、端到端的網(wǎng)絡(luò)傳輸協(xié)議以一種使消息在傳輸兩端之間基本保持原樣、不改變順序并且以及時的方式傳送消息??紤]到在LHOST 201與REMHOST280之間的通信期間消息有可能未到達(dá)、損壞、丟失或過度延遲,LPROC#1 209和RPROC#1 281可以采用相應(yīng)的可靠傳輸服務(wù)來提供消息重發(fā)。盡管示例性的傳輸協(xié)議與示例性的無線通信協(xié)議協(xié)作,但仍有可能希望LHOST 201包括通信緩沖器205,以補償與REMHOST 280的通信鏈路中的消息速率和消息流的差異。
有利的是,可以在每個主機(jī)201、280上提供通信緩沖器,以實現(xiàn)可靠的通信傳輸。諸如對于一個或多個發(fā)送緩沖器、接收緩沖器或同時對于這兩者,可以將由多個存儲器對象構(gòu)成的通信緩沖器部署到分立的物理子單元或邏輯子單元中。作為替代,還可以將通信緩沖器部署為一個單獨的全局存儲池,可以從該全局存儲池中分配存儲器對象以滿足當(dāng)前的通信需求。一般來說,可以將部署為接收諸如消息之類的信息的存儲器對象指定為空閑存儲空間。從功能上說,可以將空閑存儲空間中的存儲器對象視為可寫入的存儲器對象。另一方面,可以將暫時存儲信息的存儲器對象指定為已占用的存儲空間。從功能上說,可以將指定為已占用的存儲空間的存儲器對象視為暫時禁止寫入,以便保留其中的邏輯內(nèi)容。當(dāng)不再希望保留這些內(nèi)容時,就可以將已占用的存儲空間指定為從功能上講能夠接收新的數(shù)據(jù)的(即為可寫入的)空閑存儲空間。
TCP/IP協(xié)議屬于示例性的可靠的、端到端的網(wǎng)絡(luò)傳輸協(xié)議,其可以用于LHOST 201與REMHOST 280之間的通信。當(dāng)希望在LHOST 201與REMHOST 280之間進(jìn)行通信時,可以在本地進(jìn)程209與遠(yuǎn)程進(jìn)程281之間的每個通信方向上為每個通信進(jìn)程建立一個或多個通信鏈路。當(dāng)建立了這種鏈路時,可以為與通信進(jìn)程(例如LPROC#1 209和RPROC#1281)相關(guān)聯(lián)的每個傳輸協(xié)議端點或接入點創(chuàng)建一個或多個通信鏈路接口。通常,可以為在網(wǎng)絡(luò)上進(jìn)行通信的每個計算機(jī)分配邏輯標(biāo)識符,例如,IP地址。與此類似,可以針對運行于網(wǎng)絡(luò)上的通信進(jìn)程而將邏輯標(biāo)識符(其可以是端口號)分配給相應(yīng)的計算機(jī)上的接入點。總而言之,可以將計算機(jī)標(biāo)識符和端口號配置為標(biāo)識接入點或套接字,本地主機(jī)上的通信進(jìn)程可以通過接入點或套接字與遠(yuǎn)程主機(jī)上的通信進(jìn)程之間傳送消息。
一般來說,TCP/IP消息可以由報頭和數(shù)據(jù)有效載荷構(gòu)成。有利的是,可以表示套接字的已配置的標(biāo)識符(例如[<IP地址><端口號>])可以包括在TCP/IP消息頭內(nèi),從而通過標(biāo)識通信源端點和通信目的地端點來為可靠的消息傳輸提供輔助。在TCP類型的實現(xiàn)中,消息可以類似于TCP分段,并且處理緩沖器可以類似于一個或多個套接字緩沖器。無論將緩沖器分配為固定數(shù)目的存儲位置,還是根據(jù)處理存儲需求來分配緩沖器,諸如在此描述和主張的通信緩沖管理設(shè)備和方法都可以有利于消除尤其是在可用存儲空間總量有可能受限的嵌入式環(huán)境中有可能產(chǎn)生的不均等。
在示例性的LHOST 201中,通信管理器203可以包括通信緩沖器205和通信緩沖管理器215。通信緩沖管理器215可以適用于響應(yīng)于LPROC#1 209和LPROC#2 211而分配通信緩沖器205中的存儲器對象。可以將處理緩沖器分配為實現(xiàn)LPROC#1 209、LPROC#2 211的通信功能。在某些實施例中,可以將通信緩沖器205提供為全局存儲池213。全局存儲池213中的存儲器對象可以同時包括已占用存儲部分204和空閑存儲池206。當(dāng)需要時,通信緩沖管理器215可以將存儲器對象指定為空閑存儲空間或指定為已占用的存儲空間。根據(jù)通信鏈路協(xié)商參數(shù),或根據(jù)通信管理器203當(dāng)前的操作需求或通信需求,存儲器對象分配可以包括選擇所分配的緩沖器的大小、數(shù)量和用途。
通常,當(dāng)建立了通信鏈路時,可以在任一端創(chuàng)建相應(yīng)的TCP套接字。例如,可以在LHOST 201中為LPROC#1 209創(chuàng)建套接字Si,在REMHOST 280中為RPROC#1 281創(chuàng)建套接字。套接字Si可以由諸如套接字控制功能塊(SCB)、發(fā)送處理緩沖器(TXB)和接收處理緩沖器(RXB)之類的存儲器對象表示。示例性的SCB可以是SCB#1 240,示例性的TXB可以是TXB#1 221,并且示例性的RXB可以是RXB#1223。一般來說,可以將至少一個TXB分配給SCB以服務(wù)于本地進(jìn)程發(fā)送功能,并且可以將至少一個RXB分配給SCB以服務(wù)于本地進(jìn)程接收功能,但是也可以分配更多TXB、更多RXB或同時分配更多TXB和RXB。例如,LPROC#1 209可以采用SCB#1 240,可以將TXB#1 221分配給SCB#1 240以將消息發(fā)送給RPROC#1 281,并且可以將RXB#1223分配給SCB#1 240以從RPROC#1 281接收消息。LPROC#1 209可以采用SCB#2 243,可以將TXB#2A 225、TXB#2B 227、RXB#2A 229和RXB#2B 231分配給SCB#2 243以與REMHOST 280中的諸如可以在RPROC#1 281中或在RPROC#2 283中的另一遠(yuǎn)程接入點進(jìn)行通信。在最初從未分配的空閑存儲池206中進(jìn)行分配之后,可以將存儲器對象SCB#1 240、TXB#1 221、RXB#1 223指定為已分配的空閑存儲空間或已分配的已占用存儲空間。在創(chuàng)建套接字之后,可以例如基于按需原則對處理緩沖器進(jìn)行分配,并且可以選擇性地將處理緩沖器分配為RXB、分配為TXB以及分配為其組合。
在此考慮在創(chuàng)建套接字Si期間分配備用緩沖器,并且可以在稍后將另外的備用緩沖器分配給套接字Si或在創(chuàng)建套接字Si之后例如基于按需原則對備用緩沖器進(jìn)行分配。還考慮了可以不在創(chuàng)建套接字Si期間分配備用緩沖器,而是在以后根據(jù)與套接字Si相關(guān)聯(lián)的通信進(jìn)程的需求而對備用緩沖器進(jìn)行分配。盡管可以將一個單獨的備用緩沖器分配給SCB#i,但有可能有利的是向SCB#i分配發(fā)送備用緩沖器(TRB)和接收備用緩沖器(RRB)。同樣,有可能希望將要使用的TRB與相應(yīng)的TXB相關(guān)聯(lián),并將要使用的RRB與相應(yīng)的RXB相關(guān)聯(lián)。
如同對于處理緩沖器所進(jìn)行的調(diào)整那樣,可以將備用緩沖器大小、數(shù)量和類型調(diào)整為適合于預(yù)期通信的性質(zhì)。備用緩沖器的大小可以使得在LHOST 201與REMHOST 280之間進(jìn)行選定的通信,從而使死鎖和緩沖器匱乏的可能性最小化。所希望的是,選定的通信包括以預(yù)先選定的通信速率傳送消息。然而,選定的通信可以是控制消息,包括在LHOST201與REMHOST 280之間交換的“確認(rèn)”消息。
在此處的備用緩沖器實施例的一個示例中,當(dāng)已對示例性的SCB#1240進(jìn)行了初始化時,以及當(dāng)已分別從全局存儲池213中為發(fā)送通信操作和接收通信操作分配了示例性的處理緩沖器TXB#1 221和RXB#1223時,可以創(chuàng)建套接字SI。可以用于對套接字控制功能塊進(jìn)行初始化并用于對緩沖器進(jìn)行分配的方法和設(shè)備在計算機(jī)和通信領(lǐng)域是公知的,并且同樣可以在此使用。在某些實施例中,可以通過全局存儲池213與處理緩沖管理器250以及可能的有限狀態(tài)機(jī)或狀態(tài)控制器259的協(xié)作來對套接字控制功能塊進(jìn)行初始化并對處理緩沖器進(jìn)行分配。
可以基本上與創(chuàng)建套接字S1并行地為套接字S1的發(fā)送操作分配和保留TRB#1 253,并為套接字S1的接收操作分配和保留RRB#1 251。可以將多個備用緩沖器分配給一個套接字Si,諸如S1,用于發(fā)送操作、接收操作或同時用于發(fā)送操作和接收操作。在另一示例中,其中可以使用UDP類型的傳輸協(xié)議,可以將套接字S2與SCB#2 243相關(guān)聯(lián)。UDP數(shù)據(jù)報的標(biāo)稱最大大小可以是n個緩沖器。因此,有可能希望從全局存儲池213中將n個TRB以及n個RRB分配給UDP套接字S2,其中1≤n≤N。
此外,有可能希望在可以從中分配備用緩沖器的全局存儲池213內(nèi)指定邏輯上不同的備用緩沖空間BR245??梢詫溆镁彌_空間BR245配置為可以為預(yù)期數(shù)量和類型的通信進(jìn)程的套接字Si分配足夠數(shù)目的備用緩沖器,在執(zhí)行時這些進(jìn)程有可能重疊。此外,發(fā)送備用緩沖池TS249和備用接收緩沖池RS247可以是備用緩沖空間BR245的構(gòu)成部分。發(fā)送備用緩沖池TS249可以用作可以從中分配和保留TRB(一般用253表示)的源。與此類似,備用接收緩沖池RS247可以用作可以從中分配和保留RRB(一般用251表示)的源。如果不能分配預(yù)定的最小數(shù)目的備用緩沖器,則可以中止創(chuàng)建套接字Si,用一個可識別消息來表明發(fā)生了故障。
盡管可以在創(chuàng)建套接字時分配備用緩沖器,但有可能有利的是在到達(dá)預(yù)定的操作狀態(tài)之前不用備用緩沖器來進(jìn)行通信。一種示例性的非限制性預(yù)定操作狀態(tài)可以包括預(yù)定的存儲器狀態(tài)。當(dāng)空閑存儲池206中的其余存儲空間減小到預(yù)先選定的空閑存儲值L 241時,會存在預(yù)定的存儲器狀態(tài)。在可以這樣配置通信緩沖管理器215的情況下,可以將激活的套接字Si配置為對動態(tài)存儲分配進(jìn)行響應(yīng),其中對應(yīng)于LPROC#1209、LPROC#2 211和其他激活的本地進(jìn)程的一個或多個激活的套接字Si可以分配、回收、釋放、占用或在這些激活的套接字Si之間共享處理緩沖器TXB#1 221、TXB#2A 225、TXB#2B 227、TXB#N 233、RXB#1223、RXB#2A 229、RXB#2B 231以及RXB#N 235,以及可以在全局存儲池213內(nèi)創(chuàng)建的其他處理緩沖器??梢赃B續(xù)地或基于按需原則來執(zhí)行對可用存儲器對象的分配。
在產(chǎn)生預(yù)定的操作狀態(tài)前,可以從處理緩沖空間BR245的任意部分中開放地分配發(fā)送緩沖器和接收緩沖器。在產(chǎn)生預(yù)定的操作狀態(tài)后,有可能希望只從發(fā)送備用緩沖空間TS249中分配發(fā)送緩沖器,并且只從備用接收緩沖空間RS247中分配接收緩沖器。如同處理緩沖器,備用緩沖器可以是未分配的或已分配的。未分配的備用緩沖器可以是通常準(zhǔn)備分配給進(jìn)程的存儲器對象。已分配的備用緩沖器是可以指定為空閑的或已占用的存儲器對象。空閑的已分配備用緩沖器可以處于準(zhǔn)備接收消息的狀態(tài),而已占用的備用緩沖器可以存儲與其所分配到的進(jìn)程有關(guān)的消息,并且可以暫時地禁止在其中存儲新的消息。然而,如果對通信緩沖管理器中所采用的存儲管理策略進(jìn)行了相應(yīng)調(diào)整,則在將已占用的備用緩沖器指定為空閑備用緩沖器之后,可以將該備用緩沖器回收并返回未分配的空閑存儲空間以便進(jìn)行重新分配。
可以通過監(jiān)控是否正在使用特定備用緩沖器(一般用251、253表示),以及通過將未充分利用或不再使用的備用緩沖器返回最初分配該備用緩沖器的選定備用緩沖池,諸如備用RS247和TS249中來實現(xiàn)對備用緩沖空間BR245的有效存儲管理。同樣,可以將最初在與特定套接字相關(guān)聯(lián)的協(xié)議棧的低層中的有可能未充分利用或不再使用的緩沖器重新分配給選定的備用緩沖池??梢栽诤谋M與選定的備用緩沖池相關(guān)聯(lián)的備用緩沖器后,并且基本上與預(yù)定的操作狀態(tài)并行地執(zhí)行選定的存儲管理步驟。
例如,當(dāng)全局存儲池203中的可用存儲器對象的數(shù)目減小到小于大約存儲級別L 241,會存在預(yù)定的操作狀態(tài)。有利的是,諸如LPROC#1209和LPROC#2 211之類的本地進(jìn)程可以在這些進(jìn)程之間可協(xié)作地分配處理緩沖器TXB#1 221、TXB#2A 225、TXB#2B 227、TXB#N 233、RXB#1 223、RXB#2A 229、RXB#2B 231和RXB#N 235,以及與其相關(guān)聯(lián)的其他處理緩沖器。當(dāng)創(chuàng)建新的套接字Si時,可以在備用緩沖空間BR245的空閑存儲范圍內(nèi)分配接收備用緩沖器(例如,一般用RRB#1 251表示)和發(fā)送備用緩沖器(例如,一般用TRB#1 253表示)。然而,在進(jìn)行了相應(yīng)配置的應(yīng)用程序中,在到達(dá)預(yù)定的操作狀態(tài)之前,不可使用備用緩沖器RRB#1 251和TRB#1 253。
當(dāng)未分配空閑存儲池206中的可用存儲器對象的數(shù)目減小到預(yù)定的存儲級別L 241時,特別是當(dāng)例如TXB#1 221、RXB#1 223之類的一個或多個相關(guān)聯(lián)的處理緩沖器將過渡到諸如緩沖器匱乏或緩沖器死鎖之類的不期望狀態(tài)時,諸如LPROC#1和LPROC#2之類的本地進(jìn)程可以使用例如RRB#1 251和TRB#1 253之類的分配給相關(guān)聯(lián)的套接字Si的發(fā)送備用緩沖器和接收備用緩沖器。
當(dāng)在存在預(yù)定的操作狀態(tài)之后創(chuàng)建套接字Si時,可以從存儲池206中的其余空閑存儲空間中分配相關(guān)聯(lián)的發(fā)送處理緩沖器和套接字控制功能塊。同樣,有可能希望從發(fā)送備用緩沖池TS249的可用緩沖器中分配發(fā)送備用緩沖器(一般用TRB#1 253表示)。當(dāng)進(jìn)行了相應(yīng)的配置時,可以將最初在協(xié)議棧的低層中并與特定的套接字SX相關(guān)聯(lián)的有可能未充分利用或不再使用的緩沖器改為與發(fā)送備用緩沖池TS249相關(guān)聯(lián)。當(dāng)耗盡發(fā)送備用緩沖池TS249中的可用緩沖器時,可以執(zhí)行諸如阻斷另外的發(fā)送操作之類的存儲管理步驟。
至于產(chǎn)生預(yù)定的操作狀態(tài)后的接收功能,有可能希望從備用接收緩沖池RS247中的可用緩沖器中得到接收備用緩沖器(一般用RRB#1 251表示)。同樣,可以將那些不再使用的已占用接收備用緩沖器指定為空閑接收備用緩沖器,將其返回備用接收緩沖池RS247,并且隨后由稍后到來的消息所用。當(dāng)耗盡備用接收池RS247中的可用緩沖器時,可以執(zhí)行諸如使套接字Si轉(zhuǎn)存(dump)或拒收當(dāng)前接收消息之類的存儲管理步驟。
當(dāng)進(jìn)行了相應(yīng)的配置時,通信緩沖管理器215可以經(jīng)由處理緩沖管理器250實現(xiàn)對通信緩沖器205中的處理緩沖器的可協(xié)作存儲分配。此外,可以由備用緩沖管理器255來實現(xiàn)對備用緩沖空間BR245中備用緩沖器的存儲分配。對處理緩沖器、備用緩沖器或?qū)@兩種緩沖器的存儲分配可以采用靜態(tài)的或動態(tài)的存儲管理方法。通信緩沖管理器215可以適用于采用處理緩沖管理器250來實現(xiàn)靜態(tài)的或動態(tài)的處理緩沖器管理。與此類似,通信緩沖管理器215還可以適用于采用備用緩沖管理器255來實現(xiàn)靜態(tài)的或動態(tài)的備用緩沖器管理。有可能希望可協(xié)作地采用存儲計數(shù)器257和有限狀態(tài)機(jī)259或功能上與其等效的設(shè)備來實現(xiàn)存儲分配并對預(yù)定的操作狀態(tài)進(jìn)行響應(yīng)。在靜態(tài)存儲分配中,可以預(yù)先設(shè)定均具有預(yù)定的緩沖器大小的預(yù)定量的處理緩沖器以便分配給套接字控制功能塊,而不管套接字Si的通信的需求如何。在靜態(tài)存儲分配的一個示例中,可以為每個處理緩沖器TXB#1 221、TXB#2A 225、TXB#2B 227、TXB#N 233、RXB#1 223、RXB#2A 229、RXB#2B 231以及RXB#N 235的預(yù)定緩沖器大小預(yù)先設(shè)定一個單獨的值。同樣,可以為每個套接字Si預(yù)先設(shè)定預(yù)定的處理緩沖器量。然而,靜態(tài)存儲分配有可能受到套接字Si的通信用途的影響,因此可以響應(yīng)于該用途并從而響應(yīng)于特定套接字類型的預(yù)期通信需求來預(yù)先設(shè)定預(yù)定的處理緩沖器量和預(yù)定的緩沖器大小。通常,一旦進(jìn)行了分配,則在套接字Si的整個使用期限內(nèi),靜態(tài)分配的處理緩沖器往往基本保持不變。
在動態(tài)存儲分配中,通信緩沖管理器215可以首先為套接字Si分配選定的多個處理緩沖器TXB#1 221、TXB#2A 225、TXB#2B 227、TXB#N 233、RXB#1 223、RXB#2A 229、RXB#2B 231以及RXB#N 235。所希望的是,在創(chuàng)建套接字Si期間,通信緩沖管理器215可以根據(jù)期望的通信需求、套接字Si的預(yù)期通信用途和其他預(yù)定的通信參數(shù)或者其組合來選擇所提供的處理緩沖器的大小和數(shù)目。在執(zhí)行LPROC#1 209、LPROC#2 211或同時執(zhí)行這兩個進(jìn)程期間,通信緩沖管理器215可以通過改變分配給套接字Si的預(yù)定處理緩沖器量、預(yù)定處理緩沖器大小或同時對這兩個參數(shù)進(jìn)行改變來對套接字Si的當(dāng)前通信需求進(jìn)行響應(yīng)。這種響應(yīng)可以由處理緩沖管理器250來實現(xiàn)。
在動態(tài)存儲分配的另一示例中,同樣如圖2所示,可以為LPROC#1209分配TXB#1 221和RXB#1 223。在LPROC#2 211最初采用了比LPROC#1 209更多的緩沖器的實例中,通信緩沖管理器215可以為與LPROC#2 211相關(guān)聯(lián)的發(fā)送通信功能分配發(fā)送緩沖器TXB#2A 225、TXB#2B 227,以及為LPROC#2 211的接收通信功能分配RXB#2A 229和RXB#2B 231。根據(jù)LPROC#1 209的通信功能,在為LPROC#2 211分配存儲空間之后,可以將諸如TXB#N 233和RXB#N 235之類的另外的處理緩沖器分配給LPROC#1 209。
圖3A示出了根據(jù)本發(fā)明的描述的非限制性的示例性通信緩沖管理方法300。方法300可以用于實現(xiàn)在本地主機(jī)中的本地通信進(jìn)程與遠(yuǎn)程主機(jī)中的遠(yuǎn)程通信進(jìn)程之間的消息傳送。每個通信進(jìn)程通常采用一個通信處理接口,該本地通信處理接口通過通信網(wǎng)絡(luò)連接到遠(yuǎn)程通信處理接口。通信處理接口可以通過采用邏輯通信控制數(shù)據(jù)結(jié)構(gòu)和至少一個通信緩沖器來實現(xiàn)消息傳送。通常的通信控制數(shù)據(jù)結(jié)構(gòu)和通信緩沖器是電信和計算機(jī)領(lǐng)域中公知的并且可以由至少一個(并且通常是多個)數(shù)據(jù)存儲單元或存儲器對象來表示。
一般來說,可以將本地主機(jī)通信緩沖器部署為全局存儲池,可以從全局存儲池中將存儲器對象部署為處理緩沖器、備用緩沖器、邏輯通信控制數(shù)據(jù)結(jié)構(gòu)等??梢詫⑻幚砭彌_器與特定的控制結(jié)構(gòu)相關(guān)聯(lián)并由該特定的控制結(jié)構(gòu)所用,以實現(xiàn)典型的消息傳送。為方便起見,可以將控制結(jié)構(gòu)與發(fā)送處理緩沖器和接收處理緩沖器相關(guān)聯(lián)??梢詫溆镁彌_器與特定的控制結(jié)構(gòu)相關(guān)聯(lián)并由該特定的控制結(jié)構(gòu)所用,以根據(jù)預(yù)定的操作狀態(tài)來實現(xiàn)選定的通信??梢詾榭刂平Y(jié)構(gòu)提供發(fā)送備用緩沖器和接收備用緩沖器。盡管可以在全局存儲池內(nèi)一并創(chuàng)建和部署前述控制結(jié)構(gòu)和緩沖器,但仍可以將全局存儲池的一部分部署為備用緩沖空間BR,可以從備用緩沖空間BR中分配通信備用緩沖器。此外,有可能希望進(jìn)一步將空間BR部署為發(fā)送備用緩沖器TS和接收備用緩沖器RS??梢詫⒋鎯ζ鲗ο笾付榭臻e存儲空間或指定為已占用的存儲空間。空閑存儲空間可以進(jìn)行讀取和寫入,并且可用于在其中存儲新的數(shù)據(jù)。已占用的存儲空間可以進(jìn)行讀取但有可能禁止寫入,通過禁止寫入可以暫時地保留其中已經(jīng)存在的數(shù)據(jù)。通常,可以將現(xiàn)有的進(jìn)程用來傳送消息的緩沖器指定為已占用的存儲空間。
出于說明的目的,圖3A的管理方法300包括與執(zhí)行階段350協(xié)作的初始化階段301。圖3B可以是初始化階段301的示例性圖示,并且圖3C可以是執(zhí)行階段350的示例性圖示。當(dāng)對過程300和階段301、350進(jìn)行了相應(yīng)的配置時,一個或多個本地通信進(jìn)程可以請求和接收另外的資源,包括套接字、處理緩沖器和備用緩沖器。有利的是,在通信操作期間可以采用各種存儲管理策略來有效地控制對資源的使用。一個示例性的策略可以是基于先進(jìn)先存(first-come,first serve)的存儲管理策略,另一個策略可以是基于按需原則的存儲管理策略。然而,還有可能希望預(yù)先將固定量的資源分配給每個通信進(jìn)程,或根據(jù)進(jìn)行請求的進(jìn)程的類型將固定量的資源分配給每個通信進(jìn)程。在適當(dāng)?shù)臅r候,在執(zhí)行階段350期間,可以對在初始化階段301期間分配的資源進(jìn)行回收,并使其可用于在隨后對資源進(jìn)行初始化期間進(jìn)行重新分配或重新映射。可以想到,此處的實施例不限于所采用的存儲管理和存儲回收的策略和方法,而是可以進(jìn)行擴(kuò)展。
繼續(xù)圖3A中的內(nèi)容,在初始化階段301期間,可以通過創(chuàng)建諸如套接字控制功能塊(SCB)之類的相關(guān)聯(lián)的通信處理控制結(jié)構(gòu)來對諸如套接字之類的通信處理接口進(jìn)行初始化。此外,可以分配一個或多個通信處理緩沖器以供相應(yīng)的SCB用來控制用于相應(yīng)的通信進(jìn)程的消息流。在此處的發(fā)明性實施例中,還可以將一個或多個通信備用緩沖器分配給SCB并與該SCB相關(guān)聯(lián)。在示例性的執(zhí)行階段350期間,SCB和相關(guān)聯(lián)的通信處理緩沖器可以用于通過通信網(wǎng)絡(luò)鏈路在本地通信進(jìn)程與遠(yuǎn)程通信進(jìn)程之間執(zhí)行例行的消息傳送。有利的是,甚至在空閑存儲空間充分耗盡從而出現(xiàn)緩沖器匱乏狀態(tài)或緩沖器死鎖狀態(tài)的情況下,備用緩沖器也可以使得能夠在本地通信進(jìn)程與相應(yīng)的遠(yuǎn)程通信進(jìn)程之間繼續(xù)預(yù)定的最小通信。
執(zhí)行階段350可以諸如通過處理路徑A 325、處理路徑B 319和處理路徑C 323而與初始化階段301進(jìn)行交互。根據(jù)需要,通過處理路徑A 325,運行于執(zhí)行階段350中的通信進(jìn)程可以請求創(chuàng)建另外的SCB,或者如果進(jìn)行了相應(yīng)的配置,則可以將該另外的進(jìn)程或備用緩沖器分配給現(xiàn)有的SCB。與此類似,通過處理路徑B 319和處理路徑C 323,初始化階段301可以為執(zhí)行階段350提供多種模式的操作。例如,響應(yīng)于預(yù)定的操作狀態(tài),初始化階段301可以通過將過程300導(dǎo)向選定的處理路徑B 319或處理路徑C 323來與執(zhí)行階段350進(jìn)行協(xié)作。預(yù)定的操作狀態(tài)可以是預(yù)定的存儲器狀態(tài)。同樣,執(zhí)行階段350還可以執(zhí)行選定的存儲回收功能。在典型的存儲回收功能中,可以將與非激活的資源相關(guān)聯(lián)的存儲位置返回全局存儲池以供重新使用。
例如,圖3B中的初始化階段301可以開始于來自本地通信進(jìn)程的到來的資源請求(操作302)。所請求的資源可以是新的通信套接字,或者如果進(jìn)行了相應(yīng)的配置,所請求的資源可以是與現(xiàn)有通信套接字共同使用的另外的資源??梢詫νㄐ啪彌_存儲器進(jìn)行分析以確定是否有足夠的存儲空間可用于實現(xiàn)到來的資源請求(操作303)。當(dāng)空閑的未分配存儲空間有可能不足以創(chuàng)建所請求的資源時,可以中止創(chuàng)建(操作305),同時伴隨適當(dāng)?shù)目勺R別消息。
另外,如果請求套接字資源(操作307),就可以創(chuàng)建SCB(操作309)。與此類似,如果所請求的資源包括處理緩沖器(操作311),則可以從存儲池BP中分配處理緩沖器(操作313)。有可能希望套接字創(chuàng)建包括例如SCB創(chuàng)建(操作307),以及對一個或多個相關(guān)聯(lián)的處理緩沖器的分配(操作313)。然而,有可能不會請求在創(chuàng)建套接字時分配處理緩沖器,并且可以根據(jù)需要在稍后的時間上分配處理緩沖器。通信進(jìn)程的緩沖器資源請求可以包括對一個或多個備用緩沖器的請求(操作314)。
在某些實施例中,有可能希望在操作313期間結(jié)合對處理緩沖器的分配而常規(guī)地分配備用緩沖器。然而,這不是必須的,并且有可能有利的是響應(yīng)于預(yù)定的操作狀態(tài)而分配備用緩沖器(操作315)。這種預(yù)定的操作狀態(tài)可以是預(yù)定的存儲器狀態(tài),例如當(dāng)處理緩沖存儲池BP中的可用空閑存儲位置減小到小于大約級別L時的狀態(tài)。一般來說,采用響應(yīng)于預(yù)定的操作狀態(tài)而分配備用緩沖器的方法,在存在預(yù)定的操作狀態(tài)之前(PRE-STATE),可以同時從處理緩沖存儲池BP中分配發(fā)送備用緩沖器和接收備用緩沖器(操作317)。在存在預(yù)定的狀態(tài)之后(POST-STATE),有可能希望改為從備用緩沖池BR中分配備用緩沖器(操作321)。同樣有可能有利的是從發(fā)送備用緩沖存儲池部分TS中創(chuàng)建發(fā)送備用緩沖器,并從接收備用緩沖存儲池部分RS中創(chuàng)建接收備用緩沖器。發(fā)送備用緩沖存儲池部分TS和接收備用緩沖存儲池部分RS可以是備用緩沖池BR的構(gòu)成部分。
如同以上對于圖3A所示,執(zhí)行階段302可以具有多種操作模式。對于圖3B,在PRE-STATE的情況下,可以選擇沿著處理路徑B 319的第一操作模式,而在POST-STATE的情況下,可以選擇沿著處理路徑C323的第二操作模式。盡管可以結(jié)合此處的實施例而采用替代性的或另外的操作模式,但為清楚起見,在圖3C中示出了執(zhí)行階段350的兩個非限制性的示例性操作模式,即PRE-STATE操作模式351和POST-STATE操作模式360。為了與先前的示例保持一致,當(dāng)空閑存儲位置的數(shù)目大于或等于大約級別L時,通信存儲管理過程300可以沿著處理路徑B 319進(jìn)入PRE-STATE操作模式351。與此類似,當(dāng)空閑存儲位置的數(shù)目小于大約級別L時,通信存儲管理過程300可以沿著處理路徑C 323進(jìn)入POST-STATE操作模式360。
在示例性的PRE-STATE操作模式351中,可以在本地主機(jī)中的本地通信進(jìn)程中的包括SCB和處理緩沖器的相應(yīng)本地套接字與遠(yuǎn)程主機(jī)中的遠(yuǎn)程通信進(jìn)程中的遠(yuǎn)程套接字之間傳送消息,其間可以對通信存儲器進(jìn)行監(jiān)控(操作352)。在操作352期間,可以使用消息通信協(xié)議來傳送消息,這些消息通信協(xié)議包括而不限于公知的TCP傳輸協(xié)議和UDP傳輸協(xié)議。在通信結(jié)束時,可以關(guān)閉套接字并且其關(guān)聯(lián)資源可以變?yōu)榭臻e或未使用。有利的是,PRE-STATE操作模式351可以包括存儲回收(操作330),通過存儲回收,可以將與已關(guān)閉的套接字相關(guān)聯(lián)的已占用的存儲空間指定為空閑存儲空間并將其返回空閑存儲池以供重新使用。
同樣,可以基于操作330中所采用的存儲分配策略而將選定的已占用的存儲空間指定為空閑存儲空間。例如,有可能希望采用一種存儲分配策略,其中對最初分配給具有第一優(yōu)先級的第一進(jìn)程的不經(jīng)常使用的緩沖器進(jìn)行重新分配,并將其分配給具有第二優(yōu)先級的第二進(jìn)程,并且其中第二優(yōu)先級高于第一優(yōu)先級。隨著通信進(jìn)程在PRE-STATE操作模式351期間繼續(xù),有可能導(dǎo)致可用空閑存儲空間數(shù)量發(fā)生波動,有可能希望確定是否產(chǎn)生了預(yù)定的操作狀態(tài)(操作353)。如果執(zhí)行階段350還沒有進(jìn)入POST-STATE狀態(tài),則有可能希望確定本地通信進(jìn)程是否請求了另外的資源(操作355)。當(dāng)不存在預(yù)定的操作狀態(tài)時,有可能希望確定是否請求了另外的資源(操作333)。如果請求了另外的資源,則經(jīng)由處理路徑A 325將這種資源請求發(fā)送給初始化階段301(例如圖3B)。如果沒有請求另外的資源,則當(dāng)經(jīng)由相應(yīng)的本地套接字將消息傳送給遠(yuǎn)端套接字時,可以繼續(xù)通信處理存儲監(jiān)控(操作352)。
當(dāng)存在POST-STATE狀態(tài)時(操作353),還有可能希望確定是否需要另外的資源(操作340),包括例如另外的套接字或另外的緩沖器,或者同時需要這兩者。當(dāng)請求諸如另外的套接字或在進(jìn)行了相應(yīng)的配置的情況下的一個或多個另外的緩沖器之類的另外的資源時,可以經(jīng)由處理路徑A 325將這種請求發(fā)送給初始化階段301(圖3B)。另一方面,當(dāng)在產(chǎn)生POST-STATE狀態(tài)之后沒有請求另外的資源時,執(zhí)行階段350操作可以經(jīng)由處理路徑C 323而繼續(xù),即進(jìn)入POST-STATE操作模式350。
在POST-STATE操作模式360中,有可能希望確定是否已經(jīng)耗盡相應(yīng)的處理緩沖器內(nèi)的空閑存儲空間(操作361)。例如,在已經(jīng)接收到消息突發(fā)之后但在對處理緩沖器進(jìn)行讀取之前,相應(yīng)的接收處理緩沖器有可能已經(jīng)充滿。當(dāng)然,處理緩沖器內(nèi)的空閑存儲空間有可能不同于處理緩沖池BP或備用緩沖池BR中的空閑存儲空間,原因是通??梢詮奶幚砭彌_池BP中創(chuàng)建處理緩沖器空閑存儲空間并將其分配給相應(yīng)的套接字。根據(jù)與相應(yīng)的套接字相關(guān)聯(lián)的通信進(jìn)程的需求,處理緩沖器可以在其中包括空閑存儲位置和已占用的存儲位置。當(dāng)處理緩沖器空閑存儲空間基本上耗盡時,可以通過采用與相應(yīng)的套接字相關(guān)聯(lián)的備用緩沖器來避免死鎖或另一不期望的通信狀態(tài)(操作365),從而使得通信可以繼續(xù)。有可能希望限制本地主機(jī)與遠(yuǎn)程主機(jī)之間的通信以對消息、狀態(tài)消息等進(jìn)行流量控制,這對于預(yù)防或防止由于緩沖器匱乏、緩沖器死鎖和其他受限的緩沖器通信狀態(tài)而引起的通信故障比較有用。
然而,當(dāng)相應(yīng)的處理緩沖器具有足夠的空閑存儲空間時,可以采用可用的緩沖存儲器在本地主機(jī)中的本地通信進(jìn)程中的包括SCB和處理緩沖器的相應(yīng)本地套接字與遠(yuǎn)程主機(jī)中的遠(yuǎn)程通信進(jìn)程中的遠(yuǎn)程套接字之間傳送消息(操作363)。在操作363中,可以使用消息通信協(xié)議來傳送消息,這些消息通信協(xié)議包括而不限于公知的TCP傳輸協(xié)議和UDP傳輸協(xié)議。除處理緩沖器在操作363中實現(xiàn)消息傳送之外,相關(guān)聯(lián)的套接字還可以采用相應(yīng)的通信備用緩沖器(操作365)。有利的是,如同在PRE-STATE操作模式351中,POST-STATE操作模式360可以采用存儲回收(操作330),例如,存儲回收可以包括將分配給發(fā)送備用緩沖器的已占用的存儲空間釋放回存儲池TS,將分配給接收備用緩沖器的已占用的存儲空間釋放回存儲池RS,并將分配給處理緩沖器的已占用的存儲空間釋放回空閑存儲池BP。同樣,POST-STATE操作模式360中的存儲回收(操作330)可以包括使得最初分配給較低的協(xié)議層但當(dāng)前不再使用的存儲位置可供重新使用。盡管有可能有利的是將這種回收的存儲空間包括在發(fā)送備用緩沖池TS中,但還是有可能希望將這種存儲空間的一部分或全部包括在接收備用緩沖存儲池RS中。此外,可以將這種存儲空間的全部或一部分包括在諸如存儲池BP之類的空閑存儲池中。此外,特別是當(dāng)可以將過程300配置為動態(tài)存儲分配時,存儲回收還可以包括將存儲空間從第一進(jìn)程、存儲器類型中或同時從這兩者中重新分配給第二進(jìn)程、緩沖器類型或同時分配給這兩者。例如,可以將第一進(jìn)程的發(fā)送緩沖器重新分配給第二進(jìn)程的接收緩沖器,并且反之亦然。
在存儲回收(操作330)之后,有可能希望確定選定的處理緩沖器中是否有可用于傳送消息的足夠存儲空間(操作369)。當(dāng)選定處理緩沖器的空閑存儲空間幾乎耗盡時,除存儲回收(操作330)之外,有可能有用的是執(zhí)行預(yù)定的存儲管理步驟(操作367)。在示例性的存儲管理步驟中,當(dāng)選定的處理緩沖器是接收處理緩沖器時,預(yù)定的存儲管理步驟可以包括RS池緩沖器交換,其中當(dāng)將接收備用緩沖器指定為空閑存儲空間時可以將到來消息置于接收備用緩沖池RS中。同樣,當(dāng)接收備用緩沖存儲器不足以傳送另外的消息時,方便的做法可以是在可以恢復(fù)足夠的存儲空間之前,例如從在通信結(jié)束時關(guān)閉的套接字、從在進(jìn)程之間重新分配的一個或多個處理緩沖器等中丟棄接收消息。當(dāng)選定的處理緩沖器是發(fā)送處理緩沖器時,預(yù)定的存儲管理步驟可以包括阻止將另外的消息添加到發(fā)送處理緩沖器。當(dāng)與特定套接字相關(guān)聯(lián)的接收處理緩沖器、發(fā)送處理緩沖器或這兩者都幾乎充滿時,有可能希望采用相應(yīng)的備用緩沖器來繼續(xù)傳送選定的消息,諸如控制消息(例如“確認(rèn)”)(操作365)。
當(dāng)然,本領(lǐng)域的普通技術(shù)人員可以意識到,圖1和圖2中所述的結(jié)構(gòu)以及圖3A、圖3B和圖3C中的實現(xiàn)過程300的操作都是說明性的,并且僅旨在對此處的發(fā)明原理進(jìn)行例示。因此,圖1、圖2、圖3A、圖3B和圖3C所示的示例性實體可以直接地或間接地實現(xiàn),整體地或部分地實現(xiàn),以硬件實現(xiàn),以軟件實現(xiàn),或以這些方式的可操作組合實現(xiàn),并且這些示例性實體可以是分布在整個MSM(例如MSM 112)、通信管理器(例如通信管理器203)、本地主機(jī)(例如LHOST 102或LHOST 201)或者通信系統(tǒng)(例如通信系統(tǒng)100))上的功能的可操作結(jié)果。盡管在此在分級多層的TCP/IP傳輸/網(wǎng)絡(luò)層協(xié)議組的環(huán)境中描述了示例性的方法和設(shè)備,但這些示例性方法和設(shè)備還可以用于在采用包括而不限于基于確認(rèn)的通信協(xié)議的其他直接或間接的響應(yīng)類型的通信協(xié)議的主機(jī)之間提供消息傳送。
現(xiàn)在,在不偏離本發(fā)明的本質(zhì)和范圍的情況下,本領(lǐng)域的普通技術(shù)人員可以想到并得到多種替代、修改、變更和等效形式。因此,應(yīng)當(dāng)理解,已經(jīng)僅出于示例的目的闡明了所示的實施例,并且不應(yīng)將其看作對本發(fā)明的限制,本發(fā)明由以下權(quán)利要求限定。因此,可讀的以下權(quán)利要求不但包括以文字形式闡明的單元的組合,而且還包括以基本上相同的方式執(zhí)行基本上相同的功能以獲得基本上相同的效果的所有等效單元。因此,應(yīng)將權(quán)利要求理解為包括以上具體示出和描述的內(nèi)容,原理上等效的內(nèi)容,以及結(jié)合本發(fā)明的內(nèi)容。
權(quán)利要求
1.一種用于在本地主機(jī)與具有遠(yuǎn)程主機(jī)接口的遠(yuǎn)程主機(jī)之間傳送消息的方法,包括為本地主機(jī)接口分配對應(yīng)于本地主機(jī)接口的通信控制數(shù)據(jù)結(jié)構(gòu),所述本地主機(jī)接口位于所述本地主機(jī)中;將處理緩沖器分配給所述通信控制數(shù)據(jù)結(jié)構(gòu)以便存儲所述消息;以及將備用緩沖器分配給所述通信控制數(shù)據(jù)結(jié)構(gòu),所述備用緩沖器響應(yīng)于預(yù)定的操作狀態(tài)而存儲所述消息。
2.根據(jù)權(quán)利要求1所述的方法,還包括從位于全局存儲池中的未分配的空閑存儲器對象中分配所述通信控制數(shù)據(jù)結(jié)構(gòu)、所述處理緩沖器和所述備用緩沖器,此后將所述通信控制數(shù)據(jù)結(jié)構(gòu)、所述處理緩沖器和所述備用緩沖器指定為已分配的存儲器對象。
3.根據(jù)權(quán)利要求2所述的方法,還包括將未分配的空閑存儲器對象作為多個處理緩沖器分配給所述通信控制數(shù)據(jù)結(jié)構(gòu)以便存儲所述消息;以及將所述多個處理緩沖器中的多個選定的處理緩沖器指定為發(fā)送處理緩沖器,將所述發(fā)送處理緩沖器配置為存儲發(fā)送消息。
4.根據(jù)權(quán)利要求3所述的方法,還包括將所述多個處理緩沖器中的其他選定的處理緩沖器指定為接收處理緩沖器,將所述接收處理緩沖器配置為存儲接收到的消息。
5.根據(jù)權(quán)利要求4所述的方法,還包括將未分配的空閑存儲器對象作為多個備用緩沖器分配給通信控制數(shù)據(jù)結(jié)構(gòu);將所述多個備用緩沖器中的多個選定的備用緩沖器指定為發(fā)送備用緩沖器;以及將所述發(fā)送備用緩沖器與相應(yīng)的發(fā)送處理緩沖器相關(guān)聯(lián)。
6.根據(jù)權(quán)利要求5所述的方法,還包括將所述多個備用緩沖器中的其他選定的備用緩沖器指定為接收備用緩沖器;以及將所述接收備用緩沖器與相應(yīng)的接收處理緩沖器相關(guān)聯(lián)。
7.根據(jù)權(quán)利要求6所述的方法,其中所述本地主機(jī)接口包括TCP套接字,并且所述通信控制數(shù)據(jù)結(jié)構(gòu)包括TCP套接字控制功能塊。
8.根據(jù)權(quán)利要求7所述的方法,還包括采用動態(tài)存儲分配、動態(tài)存儲回收以及其組合來管理位于所述全局存儲器中的已分配的存儲器對象和未分配的存儲器對象,使由所述未分配的存儲器對象表示的未分配的空閑存儲空間最大化。
9.根據(jù)權(quán)利要求6所述的方法,其中所述預(yù)定操作狀態(tài)表示未分配的空閑存儲空間小于預(yù)定存儲限度。
10.一種用于在本地主機(jī)與具有遠(yuǎn)程主機(jī)接口的遠(yuǎn)程主機(jī)之間傳送消息的方法,所述本地主機(jī)具有未分配的空閑存儲空間,所述方法包括分配TCP套接字控制功能塊,所述TCP套接字控制功能塊適合于與本地主機(jī)套接字相對應(yīng);將多個處理緩沖器分配給所述TCP套接字控制功能塊,以便存儲在所述本地主機(jī)中的所述套接字與所述遠(yuǎn)程主機(jī)中的所述遠(yuǎn)程主機(jī)接口之間傳送的消息;將多個備用緩沖器分配給所述TCP套接字控制功能塊;將所述多個處理緩沖器中的多個選定的處理緩沖器指定為發(fā)送處理緩沖器,將所述發(fā)送處理緩沖器配置為存儲從所述本地主機(jī)套接字發(fā)送到所述遠(yuǎn)程主機(jī)接口的消息;將所述多個處理緩沖器中的其他選定的處理緩沖器指定為接收處理緩沖器,將所述接收處理緩沖器配置為存儲接收到的從所述遠(yuǎn)程主機(jī)接口到所述本地主機(jī)套接字的消息;將所述多個備用緩沖器中的多個選定的備用緩沖器指定為發(fā)送備用緩沖器,將所述發(fā)送備用緩沖器配置為響應(yīng)于預(yù)定的操作狀態(tài)而存儲從所述本地主機(jī)套接字發(fā)送到所述遠(yuǎn)程主機(jī)接口的消息;將所述多個備用緩沖器中的其他選定的備用緩沖器指定為接收備用緩沖器,將所述接收備用緩沖器配置為響應(yīng)于預(yù)定的操作狀態(tài)而存儲接收到的從所述遠(yuǎn)程主機(jī)接口到所述本地主機(jī)套接字的消息;將所述發(fā)送備用緩沖器與相應(yīng)的發(fā)送處理緩沖器相關(guān)聯(lián);以及將所述接收備用緩沖器與相應(yīng)的接收處理緩沖器相關(guān)聯(lián);其中從位于全局存儲池中的未分配的空閑存儲空間中分配所述TCP套接字控制功能塊、所述處理緩沖器和所述備用緩沖器;并且其中所述預(yù)定的操作狀態(tài)包括未分配的空閑存儲空間的量小于預(yù)定的存儲限度。
11.一種用于在本地主機(jī)與具有遠(yuǎn)程主機(jī)接口的遠(yuǎn)程主機(jī)之間傳送消息的方法,包括從位于所述本地主機(jī)中的通信緩沖器的空閑存儲空間中分配通信控制數(shù)據(jù)結(jié)構(gòu),所述通信控制數(shù)據(jù)結(jié)構(gòu)對應(yīng)于本地主機(jī)接口;將多個處理緩沖器分配給所述通信控制數(shù)據(jù)結(jié)構(gòu);將所述多個處理緩沖器中的多個選定的處理緩沖器指定為發(fā)送處理緩沖器,并將所述多個處理緩沖器中的其他選定的處理緩沖器指定為接收處理緩沖器;將多個備用緩沖器分配給所述通信控制數(shù)據(jù)結(jié)構(gòu);以及將所述多個備用緩沖器中的多個選定的備用緩沖器指定為發(fā)送備用緩沖器,并將所述多個備用緩沖器中的其他選定的備用緩沖器指定為接收備用緩沖器;其中將所述多個處理緩沖器均配置為存儲在所述本地主機(jī)中的所述本地主機(jī)接口與所述遠(yuǎn)程主機(jī)中的所述遠(yuǎn)程主機(jī)接口之間傳送的消息;其中將所述接收處理緩沖器配置為存儲接收到的從所述遠(yuǎn)程主機(jī)接口到所述本地主機(jī)接口的消息,并將所述發(fā)送處理緩沖器配置為存儲從所述本地主機(jī)接口發(fā)送到所述遠(yuǎn)程主機(jī)接口的消息;其中將所述多個備用緩沖器均配置為存儲在所述本地主機(jī)中的所述本地主機(jī)接口與所述遠(yuǎn)程主機(jī)中的所述遠(yuǎn)程主機(jī)接口之間傳送的消息;并且其中所述備用緩沖器響應(yīng)于預(yù)定的存儲器狀態(tài)而存儲消息。
12.根據(jù)權(quán)利要求11所述的方法,還包括將選定發(fā)送備用緩沖器與相應(yīng)的選定發(fā)送處理緩沖器相關(guān)聯(lián);以及將選定接收備用緩沖器與相應(yīng)的選定接收處理緩沖器相關(guān)聯(lián)。
13.根據(jù)權(quán)利要求11所述的方法,其中所述預(yù)定操作狀態(tài)表示未分配的空閑存儲空間的量小于預(yù)定存儲限度。
14.一種用于在本地主機(jī)與遠(yuǎn)程主機(jī)之間傳送消息的方法,所述本地主機(jī)包括全局存儲池,所述方法包括將所述全局存儲池劃分為處理緩沖池BP和備用緩沖池BR;響應(yīng)于請求,從池BP中創(chuàng)建對應(yīng)于本地主機(jī)接口的通信控制數(shù)據(jù)結(jié)構(gòu);響應(yīng)于請求,從池BP中分配處理緩沖器給所述通信控制數(shù)據(jù)結(jié)構(gòu),以便存儲在所述本地主機(jī)中的所述本地主機(jī)接口與所述遠(yuǎn)程主機(jī)中的遠(yuǎn)程主機(jī)接口之間傳送的消息;以及響應(yīng)于請求,將備用緩沖器分配給所述通信控制數(shù)據(jù)結(jié)構(gòu);其中響應(yīng)于預(yù)定的存儲器狀態(tài)而從池BP和池BR之一中分配所述備用緩沖器;并且其中所述備用緩沖器響應(yīng)于預(yù)定的存儲器狀態(tài)而存儲在所述本地主機(jī)中的所述本地主機(jī)接口與所述遠(yuǎn)程主機(jī)中的所述遠(yuǎn)程主機(jī)接口之間傳送的消息。
15.根據(jù)權(quán)利要求14所述的方法,還包括在所述本地主機(jī)與具有遠(yuǎn)程主機(jī)接口的所述遠(yuǎn)程主機(jī)之間的通信網(wǎng)絡(luò)上建立通信鏈路;以及以下步驟之一(a)在將發(fā)送消息發(fā)送給所述遠(yuǎn)程主機(jī)之前,將所述發(fā)送消息存儲于發(fā)送處理緩沖器中;(b)在從所述遠(yuǎn)程主機(jī)接收到接收消息之后,將所述接收消息存儲于接收處理緩沖器中;(c)(a)和(b)的組合。
16.根據(jù)權(quán)利要求15所述的方法,還包括監(jiān)控池BP或與空閑存儲池協(xié)作的池BP,以便確定是否存在預(yù)定的存儲器狀態(tài);以及如果存在所述預(yù)定的存儲器狀態(tài),則進(jìn)行以下步驟之一(a)在將發(fā)送消息發(fā)送給所述遠(yuǎn)程主機(jī)之前,將所述發(fā)送消息存儲于發(fā)送備用緩沖器中;(b)在從所述遠(yuǎn)程主機(jī)接收到接收消息之后,將所述接收消息存儲于接收備用緩沖器中;以及(c)(a)和(b)的組合。
17.根據(jù)權(quán)利要求16所述的方法,其中池BP包括空閑存儲位置、已占用的存儲位置以及其組合,并且其中如果空閑存儲位置小于預(yù)定存儲級別L,則存在所述預(yù)定的存儲器狀態(tài)。
18.根據(jù)權(quán)利要求17所述的方法,其中在所述本地主機(jī)與所述遠(yuǎn)程主機(jī)之間的所述通信網(wǎng)絡(luò)上建立所述通信鏈路包括使用預(yù)定的傳輸層協(xié)議在所述本地主機(jī)接口與所述遠(yuǎn)程主機(jī)接口之間建立所述通信鏈路。
19.根據(jù)權(quán)利要求18所述的方法,其中所述本地主機(jī)接口包括套接字,并且所述通信控制數(shù)據(jù)結(jié)構(gòu)包括套接字控制功能塊。
20.根據(jù)權(quán)利要求19所述的方法,其中至少一部分所述通信鏈路包括物理空中接口Um,并且在所述本地主機(jī)與所述遠(yuǎn)程主機(jī)之間的所述通信網(wǎng)絡(luò)上建立所述通信鏈路還包括使用預(yù)定的無線協(xié)議在所述一部分通信鏈路上進(jìn)行通信。
21.一種用于在本地主機(jī)與遠(yuǎn)程主機(jī)之間傳送消息的方法,所述本地主機(jī)包括全局存儲池,所述方法包括將所述全局存儲池劃分為處理緩沖池BP和備用緩沖池BR;響應(yīng)于相應(yīng)的請求,從池BP的空閑存儲空間中創(chuàng)建對應(yīng)于相應(yīng)的本地主機(jī)接口的相應(yīng)的通信控制數(shù)據(jù)結(jié)構(gòu);響應(yīng)于相應(yīng)的請求,從池BP的空閑存儲空間中分配相應(yīng)的處理緩沖器給所述相應(yīng)的通信控制數(shù)據(jù)結(jié)構(gòu),以便存儲在所述本地主機(jī)中的所述本地主機(jī)接口與所述遠(yuǎn)程主機(jī)中的所述遠(yuǎn)程主機(jī)接口之間傳送的消息;將所述處理緩沖器中的多個處理緩沖器指定為發(fā)送處理緩沖器,并將所述處理緩沖器中的其他處理緩沖器指定為接收處理緩沖器;將選定的發(fā)送處理緩沖器和選定的接收處理緩沖器與相應(yīng)的通信控制數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián);響應(yīng)于相應(yīng)的請求,將相應(yīng)的備用緩沖器分配給所述通信控制數(shù)據(jù)結(jié)構(gòu),其中響應(yīng)于預(yù)定的存儲器狀態(tài)而從池BP和池BR之一中分配所述備用緩沖器;將所述備用緩沖器中的多個備用緩沖器指定為發(fā)送備用緩沖器,并將所述備用緩沖器中的其他備用緩沖器指定為接收備用緩沖器;以及將選定的發(fā)送備用緩沖器和選定的接收備用緩沖器與相應(yīng)的通信控制數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián);其中池BP和池BR均包括空閑存儲位置、已占用的存儲位置以及其組合;并且其中所述備用緩沖器響應(yīng)于預(yù)定的存儲器狀態(tài)而存儲在所述本地主機(jī)中的所述本地主機(jī)接口與所述遠(yuǎn)程主機(jī)中的所述遠(yuǎn)程主機(jī)接口之間傳送的消息。
22.根據(jù)權(quán)利要求21所述的方法,還包括將選定的發(fā)送備用緩沖器與相應(yīng)的發(fā)送處理緩沖器相關(guān)聯(lián),并將選定的接收備用緩沖器與相應(yīng)的接收處理緩沖器相關(guān)聯(lián)。
23.根據(jù)權(quán)利要求22所述的方法,還包括在所述本地主機(jī)與具有遠(yuǎn)程主機(jī)接口的所述遠(yuǎn)程主機(jī)之間的通信網(wǎng)絡(luò)上建立通信鏈路;以及以下步驟之一(a)在將發(fā)送消息發(fā)送給所述遠(yuǎn)程主機(jī)之前,將所述發(fā)送消息存儲于相應(yīng)的空閑存儲空間的發(fā)送處理緩沖器中,在進(jìn)行所述存儲之后,將所述相應(yīng)的空閑存儲空間的發(fā)送處理緩沖器指定為已占用的存儲空間的發(fā)送處理緩沖器;(b)在從所述遠(yuǎn)程主機(jī)接收到接收消息之后,將所述接收消息存儲于相應(yīng)的空閑存儲空間的接收處理緩沖器中,在進(jìn)行所述存儲之后,將所述相應(yīng)的空閑存儲空間的接收處理緩沖器指定為已占用的存儲空間的接收處理緩沖器;(c)(a)和(b)的組合。
24.根據(jù)權(quán)利要求23所述的方法,其中如果池BP中的空閑存儲空間小于預(yù)定存儲級別L,則存在所述預(yù)定的存儲器狀態(tài)。
25.根據(jù)權(quán)利要求24所述的方法,還包括監(jiān)控池BP,以便確定是否存在所述預(yù)定的存儲器狀態(tài);以及如果存在所述預(yù)定的存儲器狀態(tài),則進(jìn)行以下步驟之一(a)在將發(fā)送消息發(fā)送給所述遠(yuǎn)程主機(jī)之前,將所述發(fā)送消息存儲于相應(yīng)的發(fā)送備用緩沖器中;(b)在從所述遠(yuǎn)程主機(jī)接收到接收消息之后,將所述接收消息存儲于相應(yīng)的接收備用緩沖器中;以及(c)(a)和(b)的組合。
26.根據(jù)權(quán)利要求25所述的方法,還包括響應(yīng)于選定的存儲管理策略而將選定的發(fā)送處理緩沖器、選定的發(fā)送備用緩沖器、選定的接收處理緩沖器以及選定的接收備用緩沖器與相應(yīng)的通信控制數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián);以及根據(jù)所述選定的存儲管理策略,通過以下步驟之一來實現(xiàn)所述關(guān)聯(lián)(a)將選定的已占用存儲空間的發(fā)送處理緩沖器中的多個發(fā)送處理緩沖器指定為選定的空閑存儲空間的發(fā)送處理緩沖器,并將所述選定的空閑存儲空間的發(fā)送處理緩沖器與池BP的空閑存儲空間相關(guān)聯(lián);(b)將選定的已占用存儲空間的發(fā)送備用緩沖器中的多個發(fā)送備用緩沖器指定為選定的空閑存儲空間的發(fā)送備用緩沖器,并將所述選定的空閑存儲空間的發(fā)送備用緩沖器與池BR的空閑存儲空間相關(guān)聯(lián);(c)將選定的已占用存儲空間的接收處理緩沖器中的多個接收處理緩沖器指定為選定的空閑存儲空間的接收處理緩沖器,并將所述選定的空閑存儲空間的接收處理緩沖器與池BP的空閑存儲空間相關(guān)聯(lián);(d)將選定的已占用存儲空間的接收備用緩沖器中的多個接收備用緩沖器指定為選定的空閑存儲空間的接收備用緩沖器,并將所述選定的空閑存儲空間的接收備用緩沖器與池BR的空閑存儲空間相關(guān)聯(lián);以及(e)(a)、(b)、(c)和(d)中的至少兩個步驟的組合;其中所述選定的存儲管理策略包括采用動態(tài)存儲管理,所述動態(tài)存儲管理包括動態(tài)存儲分配、動態(tài)存儲回收以及其組合中的一種方式;其中所述動態(tài)存儲管理適用于選擇性地將緩沖器分配從第一通信控制數(shù)據(jù)結(jié)構(gòu)變?yōu)榈诙ㄐ趴刂茢?shù)據(jù)結(jié)構(gòu);其中所述動態(tài)存儲管理適用于選擇性地將備用緩沖器關(guān)聯(lián)從第一處理緩沖器變?yōu)榈诙幚砭彌_器;并且其中將所述選定的存儲管理策略配置為使空閑存儲空間最大化。
27.根據(jù)權(quán)利要求26所述的方法,其中在所述本地主機(jī)與所述遠(yuǎn)程主機(jī)之間的所述通信網(wǎng)絡(luò)上建立通信鏈路還包括使用以下協(xié)議之一在所述本地主機(jī)接口與所述遠(yuǎn)程主機(jī)接口之間建立所述通信鏈路預(yù)定的網(wǎng)絡(luò)層協(xié)議;預(yù)定的傳輸層協(xié)議;以及結(jié)合預(yù)定的傳輸層協(xié)議而使用的預(yù)定的網(wǎng)絡(luò)層協(xié)議。
28.根據(jù)權(quán)利要求27所述的方法,其中所述本地主機(jī)接口是套接字,并且所述通信控制數(shù)據(jù)結(jié)構(gòu)是套接字控制功能塊。
29.根據(jù)權(quán)利要求28所述的方法,其中在所述本地主機(jī)接口與所述遠(yuǎn)程主機(jī)接口之間建立所述通信鏈路包括結(jié)合所述預(yù)定的傳輸層協(xié)議而使用所述預(yù)定的網(wǎng)絡(luò)層協(xié)議;其中所述預(yù)定的網(wǎng)絡(luò)層協(xié)議是網(wǎng)際協(xié)議;其中所述預(yù)定的傳輸層協(xié)議是傳輸控制協(xié)議;其中所述套接字是傳輸控制協(xié)議套接字;并且其中所述套接字控制功能塊是TCP套接字控制功能塊。
30.根據(jù)權(quán)利要求29所述的方法,其中至少一部分所述通信鏈路包括物理空中接口Um,并且在所述本地主機(jī)與所述遠(yuǎn)程主機(jī)之間的所述通信網(wǎng)絡(luò)上建立通信鏈路還包括使用預(yù)定的無線協(xié)議在所述一部分通信鏈路上進(jìn)行通信。
31.根據(jù)權(quán)利要求21所述的方法,還包括從所述處理緩沖器池BP中將處理緩沖器分配為發(fā)送處理緩沖器和接收處理緩沖器;從所述備用緩沖器池BR中將備用緩沖器分配為發(fā)送備用緩沖器和接收備用緩沖器;使所述發(fā)送備用緩沖器與所述發(fā)送處理緩沖器可協(xié)作地相關(guān)聯(lián),所述發(fā)送備用緩沖器與所述相關(guān)聯(lián)的發(fā)送處理緩沖器協(xié)作,以響應(yīng)于所述預(yù)定的操作狀態(tài)的存在而存儲發(fā)送消息;使所述接收備用緩沖器與所述接收處理緩沖器可協(xié)作地相關(guān)聯(lián),所述接收備用緩沖器與所述相關(guān)聯(lián)的接收處理緩沖器協(xié)作,以響應(yīng)于所述預(yù)定的操作狀態(tài)的存在而存儲接收消息。
32.根據(jù)權(quán)利要求31所述的方法,還包括監(jiān)控所述未分配的空閑存儲空間以便確定所述未分配的空閑存儲空間是否減小到小于所述預(yù)定的存儲級別;以及如果所述未分配的空閑存儲空間減小到了小于所述預(yù)定的存儲級別,則將消息存儲于所述發(fā)送備用緩沖器和所述接收備用緩沖器中的至少一個備用緩沖器中。
33.根據(jù)權(quán)利要求32所述的方法,還包括將所述備用緩沖池劃分為發(fā)送備用緩沖池和接收備用緩沖池;以及如果所述未分配的空閑存儲空間減小到了小于所述預(yù)定的存儲級別,則從所述發(fā)送備用緩沖池中分配所述發(fā)送備用緩沖器,并從所述接收備用緩沖池中分配所述接收備用緩沖器。
34.根據(jù)權(quán)利要求33所述的方法,還包括采用存儲分配、存儲回收以及其組合中的一種方式來管理所述通信緩沖器、所述處理緩沖器和所述備用緩沖器中的存儲空間。
35.一種本地主機(jī)與遠(yuǎn)程主機(jī)之間的通信系統(tǒng),包括通信管理器,其位于所述本地主機(jī)中,并且適用于與所述遠(yuǎn)程主機(jī)之間傳送消息,所述通信管理器包括處理緩沖器,其配置為存儲與所述遠(yuǎn)程主機(jī)之間傳送的所述消息;以及備用緩沖器,其配置為在存在預(yù)定的操作狀態(tài)的情況下存儲所述消息;網(wǎng)絡(luò)通信鏈路,建立所述網(wǎng)絡(luò)通信鏈路是為了在所述本地主機(jī)與所述遠(yuǎn)程主機(jī)之間傳送所述消息;以及收發(fā)信機(jī),其連接在所述通信管理器與所述網(wǎng)絡(luò)通信鏈路之間,并部署為在所述網(wǎng)絡(luò)通信鏈路與所述通信管理器之間傳送所述消息。
36.根據(jù)權(quán)利要求35所述的通信系統(tǒng),其中所述通信管理器對所述本地主機(jī)中執(zhí)行的本地進(jìn)程進(jìn)行響應(yīng),所述通信管理器還包括通信接口,其連接到所述本地進(jìn)程,并適用于在所述處理緩沖器或所述備用緩沖器與所述本地進(jìn)程之間交換消息;通信控制數(shù)據(jù)結(jié)構(gòu),其特征在于所述通信接口并將其分配給所述通信接口,其中將所述處理緩沖器和所述備用緩沖器分配給所述通信控制數(shù)據(jù)結(jié)構(gòu)。
37.根據(jù)權(quán)利要求36所述的通信系統(tǒng),其中所述通信管理器還包括通信緩沖器,所述通信緩沖器位于所述通信管理器中并包括已分配的存儲器對象、未分配的空閑存儲空間以及其組合;其中所述通信控制數(shù)據(jù)結(jié)構(gòu)、所述處理緩沖器和所述備用緩沖器中均為所述通信緩沖器中的已分配存儲器對象;并且其中當(dāng)未分配的空閑存儲空間小于預(yù)定的空閑存儲空間級別時,存在所述預(yù)定的操作狀態(tài)。
38.根據(jù)權(quán)利要求37所述的通信系統(tǒng),還包括通信緩沖管理器,其可操作地連接到所述通信緩沖器并監(jiān)控未分配的空閑存儲空間以便確定是否存在所述預(yù)定的操作狀態(tài),所述通信緩沖管理器使得響應(yīng)于所述預(yù)定的操作狀態(tài)的存在而將消息存儲于所述備用緩沖器中。
39.根據(jù)權(quán)利要求38所述的通信系統(tǒng),還包括分配給所述通信控制數(shù)據(jù)結(jié)構(gòu)的處理緩沖器和備用緩沖器;其中將所述處理緩沖器中的多個處理緩沖器指定為發(fā)送處理緩沖器,并將所述處理緩沖器中的其他處理緩沖器指定為接收處理緩沖器;其中將所述備用緩沖器中的多個備用緩沖器指定為發(fā)送備用緩沖器,并將所述備用緩沖器中的其他備用緩沖器指定為接收備用緩沖器;其中使多個選定的發(fā)送備用緩沖器與相應(yīng)的發(fā)送處理緩沖器可協(xié)作地相關(guān)聯(lián),并將多個選定的接收備用緩沖器與相應(yīng)的接收處理緩沖器可協(xié)作地相關(guān)聯(lián)。
40.根據(jù)權(quán)利要求39所述的通信系統(tǒng),其中將所述通信緩沖器劃分為處理緩沖池BP和備用緩沖池BR,從處理緩沖池中分配所述處理緩沖器并且從備用緩沖池中分配所述備用緩沖器。
41.根據(jù)權(quán)利要求40所述的通信系統(tǒng),其中所述本地主機(jī)與所述遠(yuǎn)程主機(jī)結(jié)合預(yù)定的傳輸層協(xié)議而使用所述預(yù)定的網(wǎng)絡(luò)層協(xié)議通過所述網(wǎng)絡(luò)通信鏈路傳送所述消息。
42.根據(jù)權(quán)利要求41所述的通信系統(tǒng),其中所述預(yù)定的網(wǎng)絡(luò)層協(xié)議包括網(wǎng)際協(xié)議,其中所述預(yù)定的傳輸層協(xié)議包括傳輸控制協(xié)議,其中所述通信接口包括傳輸控制套接字,并且其中所述通信控制數(shù)據(jù)結(jié)構(gòu)包括TCP套接字控制功能塊。
43.根據(jù)權(quán)利要求42所述的通信系統(tǒng),其中一部分所述網(wǎng)絡(luò)通信鏈路通過物理空中(Um)接口,并且其中所述本地主機(jī)與所述遠(yuǎn)程主機(jī)使用預(yù)定的無線協(xié)議通過所述一部分網(wǎng)絡(luò)通信鏈路傳送所述消息。
44.一種移動通信設(shè)備,包括收發(fā)信機(jī),其位于所述移動通信設(shè)備中,并且適用于使用預(yù)定的無線協(xié)議通過一部分通信網(wǎng)絡(luò)鏈路連接到遠(yuǎn)程主機(jī);以及通信管理器,其位于所述移動通信設(shè)備中,可操作地連接到所述收發(fā)信機(jī),并且適用于與所述遠(yuǎn)程主機(jī)之間傳送信息,所述通信管理器包括通信緩沖器,所述通信緩沖器具有未分配的空閑存儲空間和在其中分配的備用緩沖器,所述備用緩沖器響應(yīng)于所述未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別而存儲與所述遠(yuǎn)程主機(jī)之間傳送的所述消息。
45.根據(jù)權(quán)利要求44所述的移動通信設(shè)備,還包括在所述通信緩沖器中分配的處理緩沖器,所述備用緩沖器與所述處理緩沖器相關(guān)聯(lián),所述處理緩沖器基本上獨立于所述未分配的空閑存儲空間是否減小到了小于預(yù)定的存儲級別而存儲與所述遠(yuǎn)程主機(jī)之間傳送的所述消息,并且所述處理緩沖器與所述備用緩沖器協(xié)作,以響應(yīng)于所述未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別而存儲與所述遠(yuǎn)程主機(jī)之間傳送的所述消息。
46.根據(jù)權(quán)利要求45所述的移動通信設(shè)備,其中將所述通信緩沖器劃分為處理緩沖池和備用緩沖池,從處理緩沖池中分配所述處理緩沖器并且從備用緩沖池中分配所述備用緩沖器。
47.根據(jù)權(quán)利要求46所述的移動通信設(shè)備,其中將所述處理緩沖器分配為發(fā)送處理緩沖器和接收處理緩沖器,并將所述備用緩沖器分配為發(fā)送備用緩沖器和接收備用緩沖器,其中使所述發(fā)送備用緩沖器可協(xié)作地與所述發(fā)送處理緩沖器相關(guān)聯(lián)并使所述接收備用緩沖器可協(xié)作地與所述接收處理緩沖器相關(guān)聯(lián),其中將所述發(fā)送處理緩沖器和所述發(fā)送備用緩沖器配置為存儲發(fā)送給所述遠(yuǎn)程主機(jī)的消息,并且其中將所述接收處理緩沖器和所述接收備用緩沖器配置為存儲從所述遠(yuǎn)程主機(jī)接收到的消息。
48.根據(jù)權(quán)利要求47所述的移動通信設(shè)備,還包括本地進(jìn)程,其在所述本地主機(jī)上執(zhí)行,并且具有在所述本地進(jìn)程與所述通信緩沖器之間交換消息的本地進(jìn)程接口;以及本地主機(jī)通信接口控制結(jié)構(gòu),其對應(yīng)于所述本地進(jìn)程接口,并且配置為與所述遠(yuǎn)程主機(jī)中的遠(yuǎn)程進(jìn)程接口之間傳送消息,所述本地主機(jī)通信接口控制結(jié)構(gòu)可通信地與所述處理緩沖器和所述備用緩沖器協(xié)作,將所述處理緩沖器和所述備用緩沖器分配給所述本地主機(jī)接口控制結(jié)構(gòu)的。
49.根據(jù)權(quán)利要求47所述的移動通信設(shè)備,還包括連接到所述通信緩沖器的通信緩沖管理器;其中所述通信緩沖管理器將所述通信緩沖器劃分為所述發(fā)送處理緩沖器和所述接收處理緩沖器;其中所述通信緩沖管理器將所述處理緩沖器分配為所述發(fā)送處理緩沖器和所述接收處理緩沖器;其中所述通信緩沖管理器將所述備用緩沖器分配為所述發(fā)送備用緩沖器和所述接收備用緩沖器;其中所述通信緩沖管理器監(jiān)控所述未分配的空閑存儲空間;并且其中所述通信緩沖管理器使得響應(yīng)于所述未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別而將消息存儲于所述發(fā)送備用緩沖器和所述接收備用緩沖器中的至少一個備用緩沖器中。
50.根據(jù)權(quán)利要求47所述的移動通信設(shè)備,其中將備用緩沖池劃分為發(fā)送備用緩沖池和接收備用緩沖池,并且備用緩沖池可以對所述未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別進(jìn)行響應(yīng),其中從所述發(fā)送備用緩沖池中分配所述發(fā)送備用緩沖器并且從所述接收備用緩沖池中分配所述接收備用緩沖器。
51.根據(jù)權(quán)利要求47所述的移動通信設(shè)備,其中所述通信緩沖管理器將所述備用緩沖池劃分為發(fā)送備用緩沖池和接收備用緩沖池,并對所述未分配的空閑存儲空間減小到了小于預(yù)定的存儲級別進(jìn)行響應(yīng),其中所述通信緩沖管理器從所述發(fā)送備用緩沖池中分配所述發(fā)送備用緩沖器并從所述接收備用緩沖池中分配所述接收備用緩沖器。
52.根據(jù)權(quán)利要求51所述的移動通信設(shè)備,其中所述通信緩沖管理器實現(xiàn)了動態(tài)存儲分配、動態(tài)存儲回收以及其組合中的一種方式,從而使未分配的空閑存儲空間最大化。
53.根據(jù)權(quán)利要求51所述的移動通信設(shè)備,其中所述通信緩沖管理器還包括處理緩沖管理器,其管理所述處理緩沖器,所述管理包括存儲分配、存儲回收以及其組合中的一種方式;以及備用緩沖管理器,其管理所述備用緩沖器,所述管理包括存儲分配、存儲回收以及其組合中的一種方式。
54.根據(jù)權(quán)利要求45所述的移動通信設(shè)備,其中所述通信緩沖管理器響應(yīng)于期望的緩沖器大小、本地通信接口的預(yù)期通信用途、預(yù)定的通信參數(shù)以及其組合中的一個參數(shù)而選擇在所述通信緩沖器中分配的處理緩沖器大小和處理緩沖器數(shù)目中的至少一個。
55.根據(jù)權(quán)利要求45所述的移動通信設(shè)備,其中所述通信緩沖管理器響應(yīng)于期望的緩沖器大小、本地通信接口的預(yù)期通信用途、預(yù)定的通信參數(shù)以及其組合中的一個參數(shù)而選擇在所述通信緩沖器中分配的備用緩沖器大小和備用緩沖器數(shù)目中的至少一個。
56.根據(jù)權(quán)利要求55所述的移動通信設(shè)備,其中所述通信緩沖管理器響應(yīng)于期望的緩沖器大小、本地通信接口的預(yù)期通信用途、預(yù)定的通信參數(shù)以及其組合中的一個參數(shù)而選擇在所述通信緩沖器中分配的備用緩沖器大小和備用緩沖器數(shù)目中的至少一個。
57.根據(jù)權(quán)利要求56所述的移動通信設(shè)備,其中所述通信緩沖管理器還包括處理緩沖管理器,其管理所述處理緩沖器,所述管理包括存儲分配、存儲回收以及其組合中的一種方式;以及備用緩沖管理器,其管理所述備用緩沖器,所述管理包括存儲分配、存儲回收以及其組合中的一種方式;其中所述處理緩沖管理器和所述備用緩沖管理器中的至少一個緩沖管理器執(zhí)行動態(tài)存儲分配、動態(tài)存儲回收以及其組合中的一種方式而使未分配的空閑存儲空間最大化。
全文摘要
一種用于通信緩沖管理的方法,其在本地主機(jī)與遠(yuǎn)程主機(jī)之間傳送消息。對套接字、處理緩沖器和備用緩沖器進(jìn)行分配。處理緩沖器和備用緩沖器對于發(fā)送和接收是有區(qū)別的。將全局存儲池劃分為處理緩沖池和備用緩沖池,將備用緩沖池劃分為發(fā)送池和接收池。將消息存儲于處理緩沖器中,但如果存儲空間不夠(預(yù)定的操作狀態(tài),POS),則備用緩沖器就存儲消息。通信系統(tǒng)和移動設(shè)備包括通信管理器,通信管理器將消息存儲于處理緩沖器中,如果存在POS,則將消息存儲于備用緩沖器中。一種通信緩沖管理器,用于對存儲空間進(jìn)行管理、分配、回收。該通信緩沖管理方法和該通信緩沖管理器都適用于靜態(tài)存儲管理和動態(tài)存儲管理。
文檔編號H04L12/56GK1868193SQ200480030225
公開日2006年11月22日 申請日期2004年9月1日 優(yōu)先權(quán)日2003年9月5日
發(fā)明者桑迪普·辛格海, 尼斯喬·阿布羅爾 申請人:高通股份有限公司