專利名稱:一種基于信令協(xié)議的緩沖區(qū)的管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,具體涉及一種基于信令協(xié)議的緩沖區(qū)的管理方法。
背景技術(shù):
信令協(xié)議系統(tǒng)是現(xiàn)代通信網(wǎng)絡(luò)中的關(guān)鍵技術(shù)。
信令協(xié)議中的TCP(傳輸控制協(xié)議)、SCTP(流控制傳輸協(xié)議)等信令協(xié)議提供可靠的數(shù)據(jù)傳輸方法,這類信令協(xié)議往往需要一個(gè)發(fā)送緩沖區(qū),將所有發(fā)送出去的數(shù)據(jù)暫時(shí)存儲(chǔ)在該緩沖區(qū)中,直到接收到對(duì)端的證實(shí)消息后,才從其發(fā)送緩沖區(qū)中刪除證實(shí)消息對(duì)應(yīng)的數(shù)據(jù)。
目前,提供發(fā)送緩沖內(nèi)存的信令協(xié)議對(duì)發(fā)送緩沖內(nèi)存的使用和管理的方法主要有兩種方法一直接將系統(tǒng)的動(dòng)態(tài)內(nèi)存作為發(fā)送緩沖區(qū)來(lái)使用。在信令協(xié)議需要發(fā)送數(shù)據(jù)時(shí),直接向系統(tǒng)申請(qǐng)一塊內(nèi)存空間來(lái)存放該數(shù)據(jù),在接收到對(duì)端的證實(shí)消息后,釋放對(duì)應(yīng)的內(nèi)存空間。在該方法中,信令協(xié)議依賴系統(tǒng)對(duì)內(nèi)存空間進(jìn)行管理,信令協(xié)議頻繁的申請(qǐng)、釋放內(nèi)存容易使系統(tǒng)的內(nèi)存空間形成過(guò)多的內(nèi)存碎片。
方法二將緩沖區(qū)分為空間大小不同的緩沖區(qū)來(lái)使用和管理,如將發(fā)送緩沖區(qū)分為大、中、小三種緩沖區(qū),協(xié)議在發(fā)送數(shù)據(jù)時(shí)根據(jù)數(shù)據(jù)包長(zhǎng)度和路徑MTU(最大傳輸單元)將數(shù)據(jù)存儲(chǔ)在相應(yīng)大小的緩沖區(qū)中。
下面以路徑MTU大于大緩沖區(qū)空間的大小為例對(duì)分配緩沖區(qū)的具體實(shí)現(xiàn)過(guò)程進(jìn)行描述。
若發(fā)送數(shù)據(jù)的路徑MTU大于大緩沖區(qū)空間的大小,則對(duì)發(fā)送數(shù)據(jù)包的長(zhǎng)度和小緩沖區(qū)空間的大小進(jìn)行比較。
如果發(fā)送數(shù)據(jù)包的長(zhǎng)度≤小緩沖區(qū)空間的大小,則優(yōu)先使用小緩沖區(qū),當(dāng)小緩沖區(qū)不夠時(shí),則可依次使用中緩沖區(qū)和大緩沖區(qū)。
如果小緩沖區(qū)空間的大小<發(fā)送數(shù)據(jù)包的長(zhǎng)度≤中緩沖區(qū)空間的大小,則優(yōu)先使用中緩沖區(qū),當(dāng)中緩沖區(qū)不夠時(shí),則可依次使用大緩沖區(qū)和小緩沖區(qū)。
如果發(fā)送數(shù)據(jù)包的長(zhǎng)度>中緩沖區(qū)空間的大小,則優(yōu)先使用大緩沖區(qū),當(dāng)大緩沖區(qū)不夠時(shí),則可依次使用中緩沖區(qū)和小緩沖區(qū)。
該方法在大緩沖區(qū)空間全部被用完后,只能使用剩余的中、小緩沖區(qū)空間來(lái)存儲(chǔ)數(shù)據(jù),這樣勢(shì)必會(huì)造成系統(tǒng)性能的下降,而且發(fā)送緩沖區(qū)中總是有一定的緩沖空間沒(méi)有存放有效數(shù)據(jù),造成了發(fā)送緩沖內(nèi)存的資源浪費(fèi)。
綜上所述,現(xiàn)有的發(fā)送緩沖內(nèi)存的使用和管理方法不能夠?qū)Πl(fā)送緩沖內(nèi)存進(jìn)行有效管理,致使系統(tǒng)性能差、緩沖內(nèi)存利用率低。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種基于信令協(xié)議的緩沖區(qū)的管理方法,利用循環(huán)隊(duì)列讀取數(shù)據(jù)的方式來(lái)對(duì)預(yù)定存儲(chǔ)空間的緩沖區(qū)進(jìn)行數(shù)據(jù)管理,以實(shí)現(xiàn)提高系統(tǒng)性能,提高緩沖區(qū)利用率的目的。
為達(dá)到上述目的,本發(fā)明提供的一種基于信令協(xié)議的緩沖區(qū)的管理方法,包括設(shè)置預(yù)定存儲(chǔ)空間的基于信令協(xié)議的緩沖區(qū),以循環(huán)隊(duì)列讀寫(xiě)數(shù)據(jù)的形式對(duì)所述緩沖區(qū)進(jìn)行數(shù)據(jù)存取管理。
所述信令協(xié)議包括傳輸控制協(xié)議、流控制傳輸協(xié)議。
所述緩沖區(qū)為具有連續(xù)地址的緩沖區(qū)。
所述緩沖區(qū)包括發(fā)送緩沖區(qū)、接收緩沖區(qū)。
所述設(shè)置預(yù)定存儲(chǔ)空間的基于信令協(xié)議的緩沖區(qū)包括根據(jù)需要設(shè)置預(yù)定存儲(chǔ)空間的基于信令協(xié)議的緩沖區(qū),并確定該緩沖區(qū)的首地址;確定所述緩沖區(qū)的有效存儲(chǔ)空間和所述有效存儲(chǔ)空間的起始寫(xiě)地址。
當(dāng)所述緩沖區(qū)為初始化狀態(tài)時(shí),所述緩沖區(qū)的預(yù)定存儲(chǔ)空間與有效存儲(chǔ)空間相同,所述首地址與所述有效存儲(chǔ)空間的起始寫(xiě)地址相同。
所述以循環(huán)隊(duì)列讀寫(xiě)數(shù)據(jù)的形式對(duì)所述緩沖區(qū)進(jìn)行數(shù)據(jù)存取管理包括a、當(dāng)所述緩沖區(qū)需要存儲(chǔ)數(shù)據(jù)時(shí),根據(jù)所述首地址、有效存儲(chǔ)空間、起始寫(xiě)地址進(jìn)行數(shù)據(jù)存儲(chǔ),并相應(yīng)更新所述有效存儲(chǔ)空間和有效存儲(chǔ)空間的起始寫(xiě)地址;b、當(dāng)所述緩沖區(qū)需要?jiǎng)h除數(shù)據(jù)時(shí),刪除所述緩沖區(qū)中存儲(chǔ)的相應(yīng)數(shù)據(jù),并根據(jù)所述刪除的數(shù)據(jù)包的長(zhǎng)度相應(yīng)更新所述緩沖區(qū)的有效存儲(chǔ)空間。
所述步驟a包括當(dāng)所述緩沖區(qū)需要存儲(chǔ)數(shù)據(jù)時(shí),將數(shù)據(jù)包長(zhǎng)度不大于有效存儲(chǔ)空間的數(shù)據(jù)從起始寫(xiě)地址開(kāi)始向緩沖區(qū)的末端依次存儲(chǔ);當(dāng)所述數(shù)據(jù)存儲(chǔ)完成時(shí),判斷所述存儲(chǔ)的數(shù)據(jù)是否存儲(chǔ)至緩沖區(qū)的末端;如果沒(méi)有存儲(chǔ)至緩沖區(qū)的末端,將緩沖區(qū)的有效存儲(chǔ)空間、起始寫(xiě)地址根據(jù)所述存儲(chǔ)的數(shù)據(jù)包的長(zhǎng)度進(jìn)行更新;如果存儲(chǔ)至緩沖區(qū)的末端,將緩沖區(qū)的有效存儲(chǔ)空間根據(jù)所述存儲(chǔ)的數(shù)據(jù)包的長(zhǎng)度進(jìn)行更新,并將所述有效存儲(chǔ)空間的起始寫(xiě)地址根據(jù)首地址進(jìn)行更新;當(dāng)所述數(shù)據(jù)存儲(chǔ)至緩沖區(qū)的末端仍有剩余數(shù)據(jù)沒(méi)有被存儲(chǔ)時(shí),將所述剩余數(shù)據(jù)從所述首地址繼續(xù)存儲(chǔ),直至所述剩余數(shù)據(jù)存儲(chǔ)完成,并將所述緩沖區(qū)的有效存儲(chǔ)空間根據(jù)數(shù)據(jù)包的長(zhǎng)度進(jìn)行更新,將所述有效存儲(chǔ)空間的起始寫(xiě)地址根據(jù)所述首地址、剩余數(shù)據(jù)包的長(zhǎng)度進(jìn)行更新。
所述步驟b包括當(dāng)接收到基于信令協(xié)議的證實(shí)消息,證實(shí)所述緩沖區(qū)中存儲(chǔ)的從首個(gè)數(shù)據(jù)包開(kāi)始的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包已被接收端接收時(shí),從所述緩沖區(qū)中存儲(chǔ)的首個(gè)數(shù)據(jù)包開(kāi)始刪除相應(yīng)的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包,并根據(jù)所述刪除的數(shù)據(jù)包的長(zhǎng)度更新所述緩沖區(qū)的有效存儲(chǔ)空間。
所述步驟b包括當(dāng)所述緩沖區(qū)中存儲(chǔ)的從首個(gè)數(shù)據(jù)包開(kāi)始的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包已被用戶讀取時(shí),從所述緩沖區(qū)中存儲(chǔ)的首個(gè)數(shù)據(jù)包開(kāi)始刪除相應(yīng)的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包,并根據(jù)所述刪除的數(shù)據(jù)包的長(zhǎng)度更新所述緩沖區(qū)的有效存儲(chǔ)空間。
通過(guò)上述技術(shù)方案的描述可明顯得知,本發(fā)明中的緩沖區(qū)為預(yù)定存儲(chǔ)空間的緩沖區(qū),通過(guò)對(duì)緩沖區(qū)以循環(huán)隊(duì)列讀寫(xiě)數(shù)據(jù)的形式進(jìn)行數(shù)據(jù)存取,使緩沖區(qū)不會(huì)產(chǎn)生存儲(chǔ)空間碎片;當(dāng)預(yù)定存儲(chǔ)空間的緩沖區(qū)為具有連續(xù)地址的一段內(nèi)存時(shí),使本發(fā)明對(duì)緩沖區(qū)中數(shù)據(jù)的存取管理更方便;本發(fā)明可以通過(guò)設(shè)置預(yù)定存儲(chǔ)空間的首地址、有效存儲(chǔ)空間、有效存儲(chǔ)空間的起始寫(xiě)地址,且有效存儲(chǔ)空間、起始寫(xiě)地址隨存儲(chǔ)或刪除的數(shù)據(jù)包的長(zhǎng)度隨時(shí)更新,能夠使數(shù)據(jù)在緩沖區(qū)中的尾部和首部的有效存儲(chǔ)空間連續(xù)存儲(chǔ),使本發(fā)明能夠簡(jiǎn)單、有效的實(shí)現(xiàn)以循環(huán)隊(duì)列讀寫(xiě)數(shù)據(jù)的形式對(duì)緩沖區(qū)的數(shù)據(jù)存取管理;從而實(shí)現(xiàn)了提高系統(tǒng)性能,提高緩沖區(qū)利用率的目的。
圖1是本發(fā)明的具有預(yù)定存儲(chǔ)空間的發(fā)送緩沖區(qū)示意圖;圖2是本發(fā)明的發(fā)送緩沖區(qū)存儲(chǔ)數(shù)據(jù)時(shí)的示意圖;圖3是本發(fā)明的發(fā)送緩沖區(qū)刪除、存儲(chǔ)數(shù)據(jù)時(shí)的示意圖。
具體實(shí)施例方式
本發(fā)明的核心是設(shè)置預(yù)定存儲(chǔ)空間的基于信令協(xié)議的緩沖區(qū),以循環(huán)隊(duì)列讀寫(xiě)數(shù)據(jù)的形式對(duì)緩沖區(qū)進(jìn)行數(shù)據(jù)存取管理。
下面以基于信令協(xié)議的發(fā)送緩沖區(qū)為例,對(duì)本發(fā)明提供的緩沖區(qū)的管理方法做進(jìn)一步的描述。
在傳輸性可靠的信令協(xié)議如TCP、SCTP中,對(duì)于其需要發(fā)送的數(shù)據(jù)首先應(yīng)存儲(chǔ)在發(fā)送緩沖區(qū)中,并且在接收到接收端傳輸來(lái)的證實(shí)消息,證實(shí)發(fā)送緩沖區(qū)中存儲(chǔ)的某個(gè)數(shù)據(jù)包已被成功接收時(shí),需要將發(fā)送緩沖區(qū)中存儲(chǔ)的相應(yīng)數(shù)據(jù)刪除。
本發(fā)明中為T(mén)CP、STCP等信令協(xié)議而設(shè)置的發(fā)送緩沖區(qū)是具有預(yù)定存儲(chǔ)空間的發(fā)送緩沖區(qū),而且該發(fā)送緩沖區(qū)可以是一段地址連續(xù)的內(nèi)存,如附圖1所示。發(fā)送緩沖區(qū)的存儲(chǔ)空間可根據(jù)不同系統(tǒng)的具體需求來(lái)確定。
本發(fā)明可以通過(guò)設(shè)置發(fā)送緩沖區(qū)的有效存儲(chǔ)空間、有效存儲(chǔ)空間的起始寫(xiě)地址、發(fā)送緩沖區(qū)的首地址來(lái)實(shí)現(xiàn)以循環(huán)隊(duì)列讀寫(xiě)數(shù)據(jù)的形式對(duì)發(fā)送緩沖區(qū)中的數(shù)據(jù)進(jìn)行存取管理,其具體實(shí)現(xiàn)方法如下所述在本發(fā)明中,發(fā)送緩沖區(qū)的初始化狀態(tài)可以為有效存儲(chǔ)空間與預(yù)定存儲(chǔ)空間相同,即發(fā)送緩沖區(qū)中還沒(méi)有存儲(chǔ)任何數(shù)據(jù),此時(shí),發(fā)送緩沖區(qū)的首地址和有效存儲(chǔ)空間的起始寫(xiě)地址相同。
當(dāng)發(fā)送緩沖區(qū)需要存儲(chǔ)數(shù)據(jù)時(shí),應(yīng)該將數(shù)據(jù)從有效存儲(chǔ)空間的起始寫(xiě)地址開(kāi)始依次向發(fā)送緩沖區(qū)的末端存儲(chǔ),有效存儲(chǔ)空間應(yīng)隨著存儲(chǔ)的數(shù)據(jù)包的長(zhǎng)度而相應(yīng)減小、起始寫(xiě)地址應(yīng)相應(yīng)更新為起始寫(xiě)地址與存儲(chǔ)的數(shù)據(jù)包的長(zhǎng)度之和。存儲(chǔ)至發(fā)送緩沖區(qū)中的數(shù)據(jù)的長(zhǎng)度始終應(yīng)該不大于發(fā)送緩沖區(qū)的有效存儲(chǔ)空間。當(dāng)數(shù)據(jù)包的長(zhǎng)度大于有效存儲(chǔ)空間時(shí),發(fā)送緩沖區(qū)不存儲(chǔ)該數(shù)據(jù)。
當(dāng)發(fā)送緩沖區(qū)接收到接收端傳輸來(lái)的證實(shí)消息,證實(shí)發(fā)送緩沖區(qū)中存儲(chǔ)的從首個(gè)數(shù)據(jù)包開(kāi)始的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包已被接收端成功接收時(shí),緩沖區(qū)應(yīng)將從其存儲(chǔ)的首個(gè)數(shù)據(jù)包開(kāi)始刪除相應(yīng)的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包,有效存儲(chǔ)空間應(yīng)隨著刪除的數(shù)據(jù)包的長(zhǎng)度而相應(yīng)增加。
設(shè)定本發(fā)明在存儲(chǔ)一定的數(shù)據(jù)之后,預(yù)定存儲(chǔ)空間的發(fā)送緩沖區(qū)、有效存儲(chǔ)空間、有效存儲(chǔ)空間的起始寫(xiě)地址、發(fā)送緩沖區(qū)的首地址如附圖2所示。
在圖2中,發(fā)送緩沖區(qū)中依次存儲(chǔ)了序列號(hào)為1、序列號(hào)為2和序列號(hào)為3的數(shù)據(jù),此時(shí)發(fā)送緩沖區(qū)的有效存儲(chǔ)空間為發(fā)送緩沖區(qū)的預(yù)定存儲(chǔ)空間與序列號(hào)為1、序列號(hào)為2、序列號(hào)為3的各數(shù)據(jù)包長(zhǎng)度之差;有效存儲(chǔ)空間的起始寫(xiě)地址應(yīng)在序列號(hào)為3的數(shù)據(jù)包的后面,即起始寫(xiě)地址應(yīng)為首地址與序列號(hào)為1、序列號(hào)為2、序列號(hào)為3的各數(shù)據(jù)包的長(zhǎng)度之和。
當(dāng)信令協(xié)議接收到接收端傳輸來(lái)的序列號(hào)為2的數(shù)據(jù)對(duì)應(yīng)的證實(shí)消息時(shí),信令協(xié)議需要從發(fā)送緩沖區(qū)中存儲(chǔ)的首個(gè)數(shù)據(jù)包開(kāi)始刪除序列號(hào)為1的數(shù)據(jù)和序列號(hào)為2的數(shù)據(jù)。數(shù)據(jù)被刪除后,發(fā)送緩沖區(qū)如附圖3中的(a)圖所示,此時(shí),有效存儲(chǔ)空間的起始寫(xiě)地址不發(fā)生改變,有效存儲(chǔ)空間更新為有效存儲(chǔ)空間與序列號(hào)為1的數(shù)據(jù)包長(zhǎng)度、序列號(hào)為2的數(shù)據(jù)包長(zhǎng)度之和。
從附圖3中(a)圖所示的有效存儲(chǔ)空間可明顯看出,此時(shí)的有效存儲(chǔ)空間包括兩部分,即從首地址開(kāi)始到序列號(hào)為3的數(shù)據(jù)的首部有效存儲(chǔ)空間、從起始寫(xiě)地址開(kāi)始到發(fā)送緩沖區(qū)末端的尾部有效存儲(chǔ)空間。
當(dāng)附圖3中的(a)圖所示的發(fā)送緩沖區(qū)需要存儲(chǔ)數(shù)據(jù),如需要存儲(chǔ)附圖3(b)圖所示的序列號(hào)為4的數(shù)據(jù)時(shí),如果序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度不大于有效存儲(chǔ)空間,則應(yīng)該將該序列號(hào)為4的數(shù)據(jù)從有效存儲(chǔ)空間的起始寫(xiě)地址開(kāi)始向發(fā)送緩沖區(qū)的末端依次存儲(chǔ)。
在將數(shù)據(jù)包長(zhǎng)度不大于有效存儲(chǔ)空間的序列號(hào)為4的數(shù)據(jù)存儲(chǔ)至發(fā)送緩沖區(qū)中的有效存儲(chǔ)空間時(shí),可能會(huì)出現(xiàn)三種不同的情況,即序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度小于尾部有效存儲(chǔ)空間、序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度等于尾部有效存儲(chǔ)空間、序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度大于尾部有效存儲(chǔ)空間。
當(dāng)序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度小于尾部有效存儲(chǔ)空間時(shí),將序列號(hào)為4的數(shù)據(jù)從起始寫(xiě)地址開(kāi)始向發(fā)送緩沖區(qū)末端順序存儲(chǔ),存儲(chǔ)完成后,如附圖3中(c)圖所示,有效存儲(chǔ)空間更新為有效存儲(chǔ)空間與序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度之差,起始寫(xiě)地址更新為起始寫(xiě)地址與數(shù)據(jù)包長(zhǎng)度之和。
當(dāng)序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度等于尾部有效存儲(chǔ)空間時(shí),將序列號(hào)為4的數(shù)據(jù)從起始寫(xiě)地址開(kāi)始向發(fā)送緩沖區(qū)末端順序存儲(chǔ),存儲(chǔ)完成后,如附圖3中(d)圖所示,有效存儲(chǔ)空間更新為有效存儲(chǔ)空間與序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度之差,起始寫(xiě)地址更新為首地址。
當(dāng)序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度大于尾部有效存儲(chǔ)空間時(shí),將序列號(hào)為4的數(shù)據(jù)從起始寫(xiě)地址開(kāi)始向發(fā)送緩沖區(qū)末端順序存儲(chǔ),存儲(chǔ)至發(fā)送緩沖區(qū)的末端后,將剩余沒(méi)有存儲(chǔ)完成的數(shù)據(jù)從首地址開(kāi)始順序存儲(chǔ)在首部有效存儲(chǔ)空間中,直至將剩余數(shù)據(jù)存儲(chǔ)完成。此時(shí)如附圖3中(e)圖所示,有效存儲(chǔ)空間更新為有效存儲(chǔ)空間與序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度之差,起始寫(xiě)地址更新為首地址與剩余數(shù)據(jù)包長(zhǎng)度之和。剩余數(shù)據(jù)包長(zhǎng)度為序列號(hào)為4的數(shù)據(jù)包的長(zhǎng)度與尾部有效存儲(chǔ)空間之差。
由于本發(fā)明中發(fā)送緩沖區(qū)的存儲(chǔ)空間是固定的,所以尾部有效存儲(chǔ)空間、首部有效存儲(chǔ)空間可方便的通過(guò)發(fā)送緩沖區(qū)的存儲(chǔ)空間、有效存儲(chǔ)空間、起始寫(xiě)地址獲得,如末端有效存儲(chǔ)空間=(發(fā)送緩沖區(qū)的預(yù)定存儲(chǔ)空間-起始寫(xiě)地址);首端有效存儲(chǔ)空間=(有效存儲(chǔ)空間-(發(fā)送緩沖區(qū)的存儲(chǔ)空間-起始寫(xiě)地址)。
上述實(shí)施例是以基于信令協(xié)議的發(fā)送緩沖區(qū)為例進(jìn)行說(shuō)明的,本發(fā)明的緩沖區(qū)的管理方法同樣適用于基于信令協(xié)議的接收緩沖區(qū)。接收緩沖區(qū)同樣可以為具有預(yù)定存儲(chǔ)空間的具有連續(xù)地址的緩沖區(qū)。接收緩沖區(qū)存儲(chǔ)數(shù)據(jù)與刪除數(shù)據(jù)的過(guò)程與發(fā)送緩沖區(qū)的過(guò)程基本一致,只是接收緩沖區(qū)是在用戶將其存儲(chǔ)從首個(gè)數(shù)據(jù)包開(kāi)始的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包讀取后,需要從其存儲(chǔ)的從首個(gè)數(shù)據(jù)包開(kāi)始刪除相應(yīng)的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包,在本實(shí)施方式中不再詳細(xì)描述。
本發(fā)明的緩沖區(qū)的管理方法同樣可以適用于緩沖區(qū)刪除數(shù)據(jù)時(shí),是從其存儲(chǔ)的首個(gè)數(shù)據(jù)包開(kāi)始刪除的緩沖區(qū)。
雖然通過(guò)實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化。
權(quán)利要求
1.一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于包括設(shè)置預(yù)定存儲(chǔ)空間的基于信令協(xié)議的緩沖區(qū),以循環(huán)隊(duì)列讀寫(xiě)數(shù)據(jù)的形式對(duì)所述緩沖區(qū)進(jìn)行數(shù)據(jù)存取管理。
2.如權(quán)利要求1所述的一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于所述信令協(xié)議包括傳輸控制協(xié)議、流控制傳輸協(xié)議。
3.如權(quán)利要求1所述的一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于所述緩沖區(qū)為具有連續(xù)地址的緩沖區(qū)。
4.如權(quán)利要求1所述的一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于所述緩沖區(qū)包括發(fā)送緩沖區(qū)、接收緩沖區(qū)。
5.如權(quán)利要求1所述的一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于所述設(shè)置預(yù)定存儲(chǔ)空間的基于信令協(xié)議的緩沖區(qū)包括根據(jù)需要設(shè)置預(yù)定存儲(chǔ)空間的基于信令協(xié)議的緩沖區(qū),并確定該緩沖區(qū)的首地址;確定所述緩沖區(qū)的有效存儲(chǔ)空間和所述有效存儲(chǔ)空間的起始寫(xiě)地址。
6.如權(quán)利要求5所述的一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于當(dāng)所述緩沖區(qū)為初始化狀態(tài)時(shí),所述緩沖區(qū)的預(yù)定存儲(chǔ)空間與有效存儲(chǔ)空間相同,所述首地址與所述有效存儲(chǔ)空間的起始寫(xiě)地址相同。
7.如權(quán)利要求5所述的一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于所述以循環(huán)隊(duì)列讀寫(xiě)數(shù)據(jù)的形式對(duì)所述緩沖區(qū)進(jìn)行數(shù)據(jù)存取管理包括a、當(dāng)所述緩沖區(qū)需要存儲(chǔ)數(shù)據(jù)時(shí),根據(jù)所述首地址、有效存儲(chǔ)空間、起始寫(xiě)地址進(jìn)行數(shù)據(jù)存儲(chǔ),并相應(yīng)更新所述有效存儲(chǔ)空間和有效存儲(chǔ)空間的起始寫(xiě)地址;b、當(dāng)所述緩沖區(qū)需要?jiǎng)h除數(shù)據(jù)時(shí),刪除所述緩沖區(qū)中存儲(chǔ)的相應(yīng)數(shù)據(jù),并根據(jù)所述刪除的數(shù)據(jù)包的長(zhǎng)度相應(yīng)更新所述緩沖區(qū)的有效存儲(chǔ)空間。
8.如權(quán)利要求7所述的一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于所述步驟a包括當(dāng)所述緩沖區(qū)需要存儲(chǔ)數(shù)據(jù)時(shí),將數(shù)據(jù)包長(zhǎng)度不大于有效存儲(chǔ)空間的數(shù)據(jù)從起始寫(xiě)地址開(kāi)始向緩沖區(qū)的末端依次存儲(chǔ);當(dāng)所述數(shù)據(jù)存儲(chǔ)完成時(shí),判斷所述存儲(chǔ)的數(shù)據(jù)是否存儲(chǔ)至緩沖區(qū)的末端;如果沒(méi)有存儲(chǔ)至緩沖區(qū)的末端,將緩沖區(qū)的有效存儲(chǔ)空間、起始寫(xiě)地址根據(jù)所述存儲(chǔ)的數(shù)據(jù)包的長(zhǎng)度進(jìn)行更新;如果存儲(chǔ)至緩沖區(qū)的末端,將緩沖區(qū)的有效存儲(chǔ)空間根據(jù)所述存儲(chǔ)的數(shù)據(jù)包的長(zhǎng)度進(jìn)行更新,并將所述有效存儲(chǔ)空間的起始寫(xiě)地址根據(jù)首地址進(jìn)行更新;當(dāng)所述數(shù)據(jù)存儲(chǔ)至緩沖區(qū)的末端仍有剩余數(shù)據(jù)沒(méi)有被存儲(chǔ)時(shí),將所述剩余數(shù)據(jù)從所述首地址繼續(xù)存儲(chǔ),直至所述剩余數(shù)據(jù)存儲(chǔ)完成,并將所述緩沖區(qū)的有效存儲(chǔ)空間根據(jù)數(shù)據(jù)包的長(zhǎng)度進(jìn)行更新,將所述有效存儲(chǔ)空間的起始寫(xiě)地址根據(jù)所述首地址、剩余數(shù)據(jù)包的長(zhǎng)度進(jìn)行更新。
9.如權(quán)利要求7所述的一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于所述步驟b包括當(dāng)接收到基于信令協(xié)議的證實(shí)消息,證實(shí)所述緩沖區(qū)中存儲(chǔ)的從首個(gè)數(shù)據(jù)包開(kāi)始的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包已被接收端接收時(shí),從所述緩沖區(qū)中存儲(chǔ)的首個(gè)數(shù)據(jù)包開(kāi)始刪除相應(yīng)的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包,并根據(jù)所述刪除的數(shù)據(jù)包的長(zhǎng)度更新所述緩沖區(qū)的有效存儲(chǔ)空間。
10.如權(quán)利要求7所述的一種基于信令協(xié)議的緩沖區(qū)的管理方法,其特征在于所述步驟b包括當(dāng)所述緩沖區(qū)中存儲(chǔ)的從首個(gè)數(shù)據(jù)包開(kāi)始的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包已被用戶讀取時(shí),從所述緩沖區(qū)中存儲(chǔ)的首個(gè)數(shù)據(jù)包開(kāi)始刪除相應(yīng)的一個(gè)或連續(xù)的多個(gè)數(shù)據(jù)包,并根據(jù)所述刪除的數(shù)據(jù)包的長(zhǎng)度更新所述緩沖區(qū)的有效存儲(chǔ)空間。
全文摘要
本發(fā)明提供一種基于信令協(xié)議的緩沖區(qū)的管理方法,其核心為設(shè)置預(yù)定存儲(chǔ)空間的基于信令協(xié)議的緩沖區(qū),以循環(huán)隊(duì)列讀寫(xiě)數(shù)據(jù)的形式對(duì)所述緩沖區(qū)進(jìn)行數(shù)據(jù)存取管理;本發(fā)明通過(guò)對(duì)預(yù)定存儲(chǔ)空間的緩沖區(qū)以循環(huán)隊(duì)列的形式進(jìn)行數(shù)據(jù)存儲(chǔ),使數(shù)據(jù)在緩沖區(qū)中的末端和首端能夠連續(xù)存儲(chǔ),使緩沖區(qū)不會(huì)產(chǎn)生存儲(chǔ)空間碎片,有效的利用了緩沖區(qū)的存儲(chǔ)空間;從而實(shí)現(xiàn)了提高系統(tǒng)性能,提高緩沖區(qū)利用率的目的。
文檔編號(hào)H04L29/06GK1725728SQ20041010409
公開(kāi)日2006年1月25日 申請(qǐng)日期2004年12月19日 優(yōu)先權(quán)日2004年7月22日
發(fā)明者汪碧海 申請(qǐng)人:華為技術(shù)有限公司