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