專利名稱:使用環(huán)形緩沖器來檢測(cè)流送應(yīng)用中分組丟失的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及因特網(wǎng)流送中分組丟失的檢測(cè)。更具體來講,本發(fā)明涉及一種用于使用環(huán)形緩沖器檢測(cè)因特網(wǎng)流送中分組丟失的系統(tǒng)和方法,其中所述環(huán)形緩沖器是由形成環(huán)形的緩沖器鏈來實(shí)現(xiàn)的。更特別的是,本發(fā)明涉及一種用于使分組丟失檢測(cè)時(shí)延(latency)動(dòng)態(tài)地適應(yīng)網(wǎng)絡(luò)條件和應(yīng)用需求的系統(tǒng)和方法,其中所述分組丟失檢測(cè)時(shí)延是通過所述鏈的大小來確定的,本發(fā)明的系統(tǒng)和方法可以實(shí)現(xiàn)合理的檢測(cè)準(zhǔn)確性并且容易被實(shí)現(xiàn)。
在因特網(wǎng)流送應(yīng)用中,當(dāng)重要的分組(諸如是屬于視頻中的I幀或者可擴(kuò)展編碼中的基層)丟失時(shí),所述接收器可以要求發(fā)送器重新傳送該丟失的分組。為了迅速地發(fā)送重新傳送請(qǐng)求,所述接收器必須具有用于及時(shí)檢測(cè)分組丟失的裝置。目前,分組丟失檢測(cè)是使用定時(shí)器或者時(shí)間窗來執(zhí)行的。
在傳輸控制(TCP)協(xié)議中,對(duì)于丟失檢測(cè),使用定時(shí)器。當(dāng)發(fā)送分組時(shí),由該分組的發(fā)送器來設(shè)定具有超時(shí)值的定時(shí)器。如果在確認(rèn)所述分組被接收以前所述定時(shí)器期滿,那么把所述分組聲明為丟失的,并且由所述發(fā)送器重新發(fā)送。
在大部分流送應(yīng)用中,通過使用時(shí)間窗來實(shí)現(xiàn)丟失檢測(cè)。時(shí)間窗(或者更確切的說是表)具有固定數(shù)目的二進(jìn)制條目。每個(gè)條目表明分組的狀態(tài)(0丟失,1已接收)。在某一個(gè)時(shí)間點(diǎn),把此窗口中的第一條目與由序列號(hào)(諸如實(shí)時(shí)傳輸協(xié)議(RTP)分組的序列號(hào))標(biāo)識(shí)的分組相關(guān)聯(lián)。把后續(xù)窗口條目與具有更高序列號(hào)的分組依照相繼次序相關(guān)聯(lián)。因此,可以把分組序列號(hào)的空間視作是被劃分為塊的,把每塊與某一個(gè)時(shí)間點(diǎn)的窗口相關(guān)聯(lián)。
當(dāng)前,把與兩個(gè)連續(xù)的分組塊相關(guān)聯(lián)的兩個(gè)這種時(shí)間窗用于分組丟失檢測(cè)。開始時(shí),把所有條目標(biāo)記為“0”。當(dāng)接收到分組時(shí),把相應(yīng)的窗口條目標(biāo)記為“1”。當(dāng)接收到具有超過第一窗口的序列號(hào)的分組時(shí),標(biāo)記對(duì)應(yīng)的第二窗口條目。一旦傳送具有甚至超過第二窗口的序列號(hào)的分組,那么關(guān)閉第一窗口,并且檢查其條目。把與保持標(biāo)記為“0”的條目相關(guān)聯(lián)的分組聲明為丟失。在第二窗口之后,立刻打開一個(gè)相繼的新窗口,并且檢測(cè)過程繼續(xù)進(jìn)行。
定時(shí)器方法僅可以被應(yīng)用于像TCP這樣的協(xié)議,這類協(xié)議可以測(cè)量分組往返時(shí)間以便正確設(shè)定定時(shí)器的超時(shí)值。在流送應(yīng)用中,大多數(shù)時(shí)間只生成單向的媒體流。所述定時(shí)器方法不適用于這些情況。相反,可以使用時(shí)間窗方法。然而,采用所述時(shí)間窗方法存在如下的局限性·窗口大小是固定的—對(duì)于窗口大小適應(yīng)沒有內(nèi)置的機(jī)制,當(dāng)網(wǎng)絡(luò)條件和應(yīng)用需求(例如,延遲)改變時(shí),這是希望有的。
·對(duì)不同的丟失現(xiàn)不均勻的丟失檢測(cè)時(shí)延—丟失檢測(cè)時(shí)延位于T-2T的范圍內(nèi),其中T是時(shí)間窗的平均周期,因此當(dāng)把丟失與所述窗口的第一條目相關(guān)聯(lián)時(shí),所述檢測(cè)時(shí)延是2T,如果把丟失與所述窗口的最后條目相關(guān)聯(lián),那么它是T。
由此,需要一種丟失檢測(cè)方法來允許自適應(yīng)的丟失檢測(cè)時(shí)延以及均勻的丟失檢測(cè)時(shí)延。本發(fā)明的系統(tǒng)和方法包括·具有可根據(jù)網(wǎng)絡(luò)條件和應(yīng)用需求調(diào)節(jié)的鏈大小的環(huán)形緩沖器鏈,由此提供自適應(yīng)的丟失檢測(cè)時(shí)延;以及·具有固定鏈大小的環(huán)形緩沖器鏈,由此當(dāng)鏈大小是固定時(shí)、提供均勻的檢測(cè)。
縮短所述時(shí)延可以增加恢復(fù)丟失分組的概率(chance)。具有均勻的時(shí)延可以暗指對(duì)于所有丟失都具有相等恢復(fù)概率。因此,使所有丟失檢測(cè)具體相等時(shí)延對(duì)于許多流送應(yīng)用來說都是希望有的。
本發(fā)明的環(huán)形緩沖器的執(zhí)行系統(tǒng)開銷很少,并且少于時(shí)間窗方法。
圖1a舉例說明了本發(fā)明的環(huán)形緩沖器結(jié)構(gòu)的優(yōu)選實(shí)施例。
圖1b舉例說明了圖1a中示出的環(huán)形緩沖器中的每個(gè)緩沖器的結(jié)構(gòu)。
圖2a舉例說明了實(shí)現(xiàn)圖1a-1b中示出的環(huán)形緩沖器結(jié)構(gòu)的優(yōu)選算法。
圖2b舉例說明了圖2a中示出的算法的流程圖。
圖3舉例說明了用于基于網(wǎng)絡(luò)特性適應(yīng)環(huán)形緩沖器鏈結(jié)構(gòu)的算法的優(yōu)選實(shí)施例。
現(xiàn)在參照?qǐng)D1a,緩沖器1至m形成了m個(gè)緩沖器Bi10的環(huán)形鏈表,其中i=,...,m,圖1b中示出了每個(gè)緩沖器的結(jié)構(gòu)12。如圖1a所示,m是用于確定丟失檢測(cè)時(shí)延的循環(huán)鏈的長度,并且它可適應(yīng)網(wǎng)絡(luò)條件以及應(yīng)用需求。P11是通過所述鏈環(huán)流的指針,依次指向每個(gè)緩沖器。所述鏈中的每個(gè)緩沖器Bi10包括兩個(gè)字段,F(xiàn)113和F214。F113存儲(chǔ)指向下一緩沖器的指針。F214存儲(chǔ)可能已丟失的分組的序列號(hào)s。
在流送應(yīng)用中,假定把分組按照分組序列號(hào)的順序發(fā)送。在沒有丟失并且理想的世界中,到達(dá)的分組始終具有一個(gè)高于前一序列號(hào)的序列號(hào)。如果分組沒有按順序到達(dá),或者丟失,那么在所接收的分組的序列號(hào)中可以觀察到空缺或者間隙。每當(dāng)觀察到空缺(可能是間隔一個(gè)以上連續(xù)號(hào)的空缺)時(shí),那么此空缺很可能表明一個(gè)或多個(gè)丟失的分組。然而,無序分組遞送對(duì)因特網(wǎng)來說是普遍存在的,這是因?yàn)槊總€(gè)分組可以采取不同的路徑通過網(wǎng)絡(luò),并且更早編號(hào)的分組可能會(huì)花費(fèi)比后來編號(hào)的分組更長的時(shí)間能到達(dá)。在到達(dá)的分組序列中觀察到空缺之后,應(yīng)用無法立即作出丟失聲明。所述應(yīng)用必須觀望此空缺是否只是無序遞送的事件。所述環(huán)形緩沖器方法提供了確定是否可以執(zhí)行丟失聲明的方式。
圖2a舉例說明了用于實(shí)現(xiàn)本發(fā)明方法的算法的優(yōu)選實(shí)施例的C程序設(shè)計(jì)語言代碼。圖2b是圖2a中示出的算法的流程圖。所述指針P12循環(huán)通過緩沖器Bi11鏈,所述循環(huán)是通過在步驟20接收分組來驅(qū)動(dòng)的。在步驟21,對(duì)照早已接收的當(dāng)前最大序列號(hào)s來檢查所接收的分組的序列號(hào),并且如果小于所接收的當(dāng)前最大序列號(hào),那么它是無序分組。
如果不是無序分組,那么在步驟22,檢查所述序列中的空缺,并且當(dāng)所述序列中的空缺被觀察到時(shí),執(zhí)行如下步驟a.如果P正指向的緩沖器包含未接收到的分組(P->F2不是零,在步驟24),那么在步驟25,具有序列號(hào)P->F2的分組被聲明丟失。
b.然后,無論P(yáng)是否曾指向未接收的分組,在步驟26,都把當(dāng)前最大序列號(hào)加一,并存儲(chǔ)在當(dāng)前緩沖器中,并且更新P,以便順次指向下一緩沖器,即,P=P->F1。
c.在步驟27,把落入空缺的緩沖器數(shù)目減少1,并且重復(fù)步驟a-c,直到剩余緩沖區(qū)數(shù)目是零為止。由此,把落入空缺的所有序列號(hào)都存儲(chǔ)在環(huán)形緩沖器鏈中,每個(gè)號(hào)占據(jù)一個(gè)緩沖器。
當(dāng)沒有觀察到空缺時(shí),執(zhí)行如下步驟d.在步驟28,如果P正指向的緩沖器包含未接收到的分組(P->F2不是零),那么在步驟29,具有序列號(hào)P->F2的分組被聲明丟失,并且把存儲(chǔ)在緩沖器中的序列號(hào)設(shè)定為零。
e.不管P->F2是否指向未接收的分組,在步驟30,更新P以便順次指向下一緩沖器。
當(dāng)完成所有與有序分組相關(guān)聯(lián)的處理時(shí)f.在步驟31,把當(dāng)前最大序列號(hào)設(shè)定為所接收的分組的序列號(hào)。
如果分組是無序到達(dá)的(具有比當(dāng)前接收的最大序列號(hào)s更早的序列號(hào))g.那么把所接收的分組編號(hào)與存儲(chǔ)在所述環(huán)形緩沖器中的編號(hào)相比較,并且清空緩沖器中的相應(yīng)記錄,即設(shè)定為零,步驟32。
由此,因?yàn)橹挥挟?dāng)指針重新訪問非空緩沖器時(shí)、即當(dāng)F2是非零之時(shí),才作出丟失聲明,故而可以通過緩沖器鏈的大小m來確定檢測(cè)時(shí)延。
如圖3中所示那樣,可以采用鏈大小m來確定檢測(cè)時(shí)延。例如,在優(yōu)選的實(shí)施例中,最初m=4。如果觀察到的假聲明率高于給定閾值,即,false_rate>TOLERABLE_RATE那么,所述長度也許太短了,并且需要通過插入新的緩沖器并且相應(yīng)地調(diào)節(jié)m來延長所述長度36。網(wǎng)絡(luò)通路的長度、即穿越的鏈路的數(shù)目越大,則需要的m就越大,這是因?yàn)楫?dāng)分組穿越的網(wǎng)絡(luò)通路越長,發(fā)生無序遞送的可能性就越大。隨著當(dāng)P循環(huán)通過緩沖器鏈Bi11,值越大的m就越能減小指針P在緩沖器中遇到被遞送但卻無序的分組的可能性。
所述success_rate最初被聲明為預(yù)先確定的EXPECT_RATE并且此后被調(diào)節(jié)為Success_rate=declared_lossess-falselt_declared_lossesdeclared_losses]]>false_rate=1-success_rate
并且如果所述success_rate太高,即,如果success_rate>EXPECT_RATE那么,緩沖器鏈的長度會(huì)過長,因而可能需要通過刪除緩沖器來加以縮短,如圖3所示那樣。
本發(fā)明可用于播放來自于聯(lián)網(wǎng)的存儲(chǔ)器的媒體的多媒體播放器的實(shí)現(xiàn)?;蛘?,本發(fā)明可由任何類型的多媒體接收器來使用,其中所述多媒體接收器希望使用重新傳送作為錯(cuò)誤恢復(fù)手段,因此需要執(zhí)行分組丟失檢測(cè)。最后,本發(fā)明可由傳輸控制協(xié)議執(zhí)行過程來使用,其中所述傳輸控制協(xié)議執(zhí)行過程是在接收器側(cè)執(zhí)行分組丟失檢測(cè)的。
如上所述并且在附圖中示出的本發(fā)明的方法和系統(tǒng)提供了一種環(huán)形緩沖器,用于允許自適應(yīng)地時(shí)延檢測(cè)時(shí)間或者固定的時(shí)延檢測(cè)時(shí)間。對(duì)于本領(lǐng)域技術(shù)人員顯而易見的是,在不脫離本發(fā)明的精神和范圍的情況下,可以依照本發(fā)明的方法和系統(tǒng)作出各種修改和變化。由此,本發(fā)明包括落入所附權(quán)利要求書及其等價(jià)物范圍內(nèi)的修改和變化。
權(quán)利要求
1.一種用于由接收器自適應(yīng)地檢測(cè)從給定發(fā)送器經(jīng)由網(wǎng)絡(luò)傳送到所述接收器的多個(gè)流送分組中的流送分組丟失的系統(tǒng),所述系統(tǒng)包括具有大小m>1個(gè)條目(13)的環(huán)形緩沖器(10),每個(gè)條目(13)具有仍未被接收并可能丟失的流送分組的最多一個(gè)序列號(hào)(15);分組丟失檢測(cè)模塊(33),用于使用所述環(huán)形緩沖器(10)來檢測(cè)并且在其中存儲(chǔ)未接收且可能丟失的分組的序列號(hào)(15),以便在其中檢測(cè)丟失分組的序列號(hào)(15)并且從其中除去所述丟失分組的序列號(hào)(15)并且聲明所述分組丟失,并且從其中除去從給定發(fā)送器接收的可能丟失的分組的序列號(hào)(15);適應(yīng)模塊(37),用于使所述系統(tǒng)適應(yīng)于網(wǎng)絡(luò)條件,其中用環(huán)形緩沖器(10)的大小m來確定丟失檢測(cè)時(shí)延,并且丟失聲明可能是假的。
2.如權(quán)利要求1所述的系統(tǒng),其中把m最初設(shè)定為4。
3.如權(quán)利要求1所述的系統(tǒng),還包括變量s,具有初始值1并且用于存儲(chǔ)從給定發(fā)送器經(jīng)由網(wǎng)絡(luò)傳送并且由接收器接收到的流送分組的最高序列號(hào);指針P(12),具有指向環(huán)形鏈中預(yù)定地點(diǎn)的初始位置,并且用于從下一環(huán)形緩沖器(10)中的條目(13)開始順次到對(duì)應(yīng)于變量s的條目(13)來順序地循環(huán)通過所述環(huán)形緩沖器(10)的m個(gè)條目;其中,對(duì)于從給定發(fā)送器接收的流送分組來說,所述分組丟失檢測(cè)模塊(33)對(duì)照變量s檢查所接收的分組的序列號(hào)并且執(zhí)行如下步驟之一a.如果從指針P(12)指向的地點(diǎn)開始觀察到所接收的分組序列中的空缺,那么檢查處于所述空缺中的環(huán)形緩沖器(10)的每個(gè)條目(13)以便檢查查找可能丟失的分組的序列號(hào)(15)并且聲明該相應(yīng)分組丟失了,把總聲明的丟失declared_losses加一,把空缺中的每個(gè)序列號(hào)依照升序存儲(chǔ)在從指針P(12)指向的地點(diǎn)開始的連續(xù)條目(13)中,更新P(12)以便指向空缺之后的環(huán)形緩沖器(10)中的條目(13),并且把s設(shè)定為等于所接收的pkt的序列號(hào),b.如果沒有觀察到所接收的分組序列中的空缺,那么檢查指針P(12)指向的條目(13),以便查找可能丟失的分組的序列號(hào)(15)并且聲明該相應(yīng)分組丟失了,把總聲明的丟失declared_losses加一,清除條目(13),更新P(12)以便指向環(huán)形緩沖器(10)中的下一條目(14),并且把s設(shè)定為等于所接收的pkt的序列號(hào),c.如果觀察到了無序分組,那么搜索環(huán)形緩沖器(10)的條目以便發(fā)現(xiàn)包含等于所接收分組的序列號(hào)的序列號(hào)(15)的條目,如果發(fā)現(xiàn),則清除條目(13),如果沒有發(fā)現(xiàn),則把假聲明率false_declared_losses如一。
4.如權(quán)利要求3所述的系統(tǒng),其中所述網(wǎng)絡(luò)條件是傳輸?shù)某晒β?success_rate)和假聲明率(false_rate)的至少一個(gè),其中所述成功率被最初設(shè)定為預(yù)定的期望率(EXPECT_RATE);并且所述適應(yīng)模塊(37)根據(jù)網(wǎng)絡(luò)條件按照如下來調(diào)節(jié)環(huán)形緩沖器(10)的大小ma.如果false_rate>TOLERABLE_RATE,那么增加m,其中TOLERABLE_RATE是預(yù)定閾值,并且把條目(13)添加到所述環(huán)形緩沖器(10),否則b.如果success-rate=declared-losses-falsely-declared-lossesEXPECT-RATE>EXPECT-RATE]]>那么減少m,并且把條目(13)從環(huán)形緩沖器(10)除去。
5.如權(quán)利要求4所述的系統(tǒng),其中所述環(huán)形緩沖器(10)是m>1個(gè)緩沖器的環(huán)形緩沖器(10)鏈Bi,i=1,...,m,這樣所述多個(gè)緩沖器的每個(gè)是一條目(13),所述條目包括指向鏈中下一緩沖器(14)的指針以及用于存儲(chǔ)未接收的緩沖器的序列號(hào)(15)的值,并且所述指針P(12)指向該鏈中的緩沖器。
6.一種用于由接收器自適應(yīng)地檢測(cè)從給定發(fā)送器經(jīng)由網(wǎng)絡(luò)傳送到所述接收器的多個(gè)流送分組中的流送分組丟失的系統(tǒng),所述系統(tǒng)包括具有大小m>1個(gè)條目(13)的環(huán)形緩沖器(10),每個(gè)條目(13)具有仍未被接收并且可能丟失的流送分組的最多一個(gè)序列號(hào)(15);分組丟失檢測(cè)模塊(33),用于使用所述環(huán)形緩沖器(10)來檢測(cè)并且在其中存儲(chǔ)未接收的和可能丟失的分組的序列號(hào)(15),以便在其中檢測(cè)并且從其中除去丟失分組的序列號(hào)(15)并且聲明所述分組丟失,并且從其中除去從給定發(fā)送器接收的可能丟失的分組的序列號(hào)(15);用于使所述系統(tǒng)適應(yīng)于網(wǎng)絡(luò)條件(37)的裝置,其中用環(huán)形緩沖器(10)的大小m來確定丟失檢測(cè)時(shí)延,并且丟失聲明可能是假的。
7.如權(quán)利要求6所述的系統(tǒng),還包括變量s,具有初始值1并且用于存儲(chǔ)從給定發(fā)送器經(jīng)由網(wǎng)絡(luò)傳送并且由接收器接收到的流送分組的最高序列號(hào);指針P(12),具有指向環(huán)形鏈中預(yù)定地點(diǎn)的初始位置,并且用于從下一環(huán)形緩沖器(10)中的條目(13)開始順次地到對(duì)應(yīng)于變量s的條目(13)來順序地循環(huán)通過所述環(huán)形緩沖器(10)的m個(gè)條目;其中,對(duì)于從給定發(fā)送器接收的流送分組來說,所述分組丟失檢測(cè)模塊(33)對(duì)照變量s檢查所接收的分組的序列號(hào)并且執(zhí)行如下步驟之一a.如果從指針P(12)指向的地點(diǎn)開始觀察到所接收的分組序列中的空缺,那么檢查處于所述空缺中的環(huán)形緩沖器(10)的每個(gè)條目(13)以便查找可能丟失的分組的序列號(hào)(15)并且聲明該相應(yīng)分組丟失了,把聲明丟失的declared_losses加一,把空缺中的每個(gè)序列號(hào)依照升序存儲(chǔ)在從指針P(12)指向的地點(diǎn)開始的連續(xù)條目(13)中,更新P(12)以便指向空缺之后的環(huán)形緩沖器(10)中的條目(13),并且把s設(shè)定為等于所接收的pk t的序列號(hào),b.如果沒有觀察到所接收的分組序列中的空缺,那么檢查指針P(12)指向的條目(13),以便查找可能丟失的分組的序列號(hào)(15)并且聲明該相應(yīng)分組丟失了,把總聲明的丟失declared_losses加一,清除條目(13),更新P(12)以便指向環(huán)形緩沖器(10)中的下一條目(14),并且把s設(shè)定為等于所接收的pkt的序列號(hào),c.如果觀察到無序分組,那么搜索環(huán)形緩沖器(10)的條目(13)以便找到包含等于所接收分組的序列號(hào)的序列號(hào)(15)的條目,并且如果發(fā)現(xiàn),則清除條目(13),如果沒有發(fā)現(xiàn),則把假聲明率false_declared_losses加一。
8.一種用于由接收器自適應(yīng)地檢測(cè)從給定發(fā)送器經(jīng)由網(wǎng)絡(luò)傳送到所述接收器的多個(gè)流送分組中的流送分組丟失的方法,所述方法包括如下步驟提供大小為m>1個(gè)條目的環(huán)形緩沖器(10),每個(gè)條目(13)具有仍未被接收并可能丟失的流送分組的最多一個(gè)序列號(hào)(15);從給定發(fā)送器接收具有序列號(hào)的流送分組;使用所述環(huán)形緩沖器(10)和所接收的打包的序列號(hào)來執(zhí)行如下步驟之一a.檢測(cè)并且在環(huán)形緩沖器(10)中存儲(chǔ)未接收和可能丟失的分組的序列號(hào)(15),b.在環(huán)形緩沖器(10)中檢測(cè)并且從其中除去丟失分組的序列號(hào)(15),并且聲明所述分組丟失,如此使得丟失聲明可能是假的,并且c.從所述環(huán)形緩沖器(10)中除去可能丟失的分組的序列號(hào)(15),所述可能丟失的分組的序列號(hào)對(duì)應(yīng)于所接收的分組的序列號(hào);使所述方法適應(yīng)網(wǎng)絡(luò)條件,以便使得用環(huán)形緩沖器(10)的大小m來確定丟失檢測(cè)時(shí)延。
9.如權(quán)利要求8所述的方法,還包括如下步驟提供初始值為1的變量s;把所提供的變量設(shè)定為s=max(s,所接收的流送分組的序列號(hào));提供指針P(12),所述指針P(12)具有指向環(huán)形緩沖器(10)中預(yù)定地點(diǎn)的初始位置,用于從下一環(huán)形緩沖器(10)中的條目(13)開始順次到對(duì)應(yīng)于變量s的條目(13)來順序地循環(huán)通過所提供的環(huán)形緩沖器(10)的m個(gè)條目;對(duì)于從給定發(fā)送器接收的流送分組來說,對(duì)照變量s檢查所接收的分組的序列號(hào),并且執(zhí)行如下步驟之一a.如果從指針P(12)指向的地點(diǎn)開始觀察到所接收分組序列中的空缺,那么a.1檢查處于所述空缺中的環(huán)形緩沖器(10)的每個(gè)條目(13),以便查找可能丟失的分組的序列號(hào)(15)并且聲明該相應(yīng)分組丟失了,a.2如果聲明分組丟失,那么把總聲明的丟失declared_losses加一,a.3把空缺中的每個(gè)序列號(hào)按升序存儲(chǔ)在從指針P(12)指向的地點(diǎn)開始的連續(xù)條目(13)中,a.4更新所述指針P(12)以便指向空缺之后的環(huán)形緩沖器(10)中的條目(13),并且a.5把s設(shè)定為等于所接收的pkt的序列號(hào);b.如果沒有觀察到所接收的分組序列中的空缺,那么b.1檢查指針P(12)指向的條目(13),以便查找可能丟失的分組的序列號(hào)(15)并且聲明該相應(yīng)分組丟失了,b.2如果聲明分組丟失,那么總聲明的丟失declared_losses加一,b.3清除由P(12)指向的條目(13),b.4更新P(12)以便指向環(huán)形緩沖器(10)中的下一條目(14),并且b.5把s設(shè)定為等于所接收的pkt的序列號(hào);c.如果觀察到無序分組,那么c.1搜索環(huán)形緩沖器(10)的條目(13),以便找到包含等于所接收分組的序列號(hào)的序列號(hào)(15)的條目,c.2如果找到,則清除條目(13),c.3如果沒有找到,那么把假聲明率falsely_declared_losses加一。
10.如權(quán)利要求9所述的方法,其中所述網(wǎng)絡(luò)條件是傳輸?shù)某晒β?success_rate)和假聲明率(false_rate)的至少一個(gè),其中所述success_rate被最初設(shè)定為預(yù)定的期望率(EXPECT_RATE);并且所述適應(yīng)步驟通過執(zhí)行如下步驟之一并且根據(jù)網(wǎng)絡(luò)條件來調(diào)節(jié)環(huán)形緩沖器(10)的大小m,所述步驟為d.如果false_rate>TOLERABLE_RATE,其中TOLERABLE_RATE是預(yù)定閾值,執(zhí)行如下步驟d.1把m加1,并且d.2把條目(13)添加到環(huán)形緩沖器(10)中,否則e.如果success_rate>EXPECT_RATEe.1把m減少1,e.2把條目(13)從環(huán)形緩沖器(10)除去。
11.如權(quán)利要求9所述的方法,其中把m最初設(shè)定為4。
12.一種結(jié)合處理器使用的計(jì)算機(jī)程序產(chǎn)品,適用由接收器檢測(cè)從給定發(fā)送器經(jīng)由網(wǎng)絡(luò)傳送到所述接收器的多個(gè)流送分組中的流送分組丟失,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以及嵌入其中的計(jì)算機(jī)程序機(jī)制,所述計(jì)算機(jī)程序機(jī)制包括大小為m>1個(gè)條目(13)的環(huán)形緩沖器(10),每個(gè)條目(13)具有仍未被接收并可能丟失的流送分組的最多一個(gè)序列號(hào)(15);分組丟失檢測(cè)例程(33),包括指令,所述指令用于使用所述環(huán)形緩沖器(10)來檢測(cè)并且在其中存儲(chǔ)未接收的和可能丟失的分組的序列號(hào)(15),在其中檢測(cè)并且從其中除去丟失分組的序列號(hào)(15)并且聲明所述分組丟失,并且從其中除去從給定發(fā)送器接收的可能丟失的分組的序列號(hào)(15);適應(yīng)例程(37),包括用于使系統(tǒng)適應(yīng)于網(wǎng)絡(luò)條件的指令,其中,用環(huán)形緩沖器(10)的大小m來確定丟失檢測(cè)時(shí)延,并且丟失聲明可能是假的。
13.如權(quán)利要求12所述的計(jì)算機(jī)程序產(chǎn)品,還包括變量s,具有初始值1并且用于存儲(chǔ)從給定發(fā)送器經(jīng)由網(wǎng)絡(luò)傳送并且由接收器接收到的流送分組的最高序列號(hào);指針P(12),具有指向環(huán)形鏈中預(yù)定地點(diǎn)的初始位置,并且用于從下一環(huán)形緩沖器(10)中的條目(13)開始順次到對(duì)應(yīng)于變量s的條目(13)來順序地循環(huán)所述環(huán)形緩沖器(10)的m個(gè)條目;其中,對(duì)于從給定發(fā)送器接收的流送分組來說,所述分組丟失檢測(cè)例程(33)的指令對(duì)照變量s檢驗(yàn)所接收的分組的序列號(hào)并且執(zhí)行如下步驟之一a.如果從指針P(12)指向的地點(diǎn)開始觀察到所接收的分組序列中的空缺,那么檢查處于所述空缺中的環(huán)形緩沖器(10)的每個(gè)條目(13)以便查找可能丟失的分組的序列號(hào)(15)并且聲明該相應(yīng)分組丟失了,把總聲明的丟失declared_losses加一,把空缺中的每個(gè)序列號(hào)依照升序存儲(chǔ)在從指針P(12)指向的地點(diǎn)開始的連續(xù)條目(13)中,更新P(12)以便指向空缺之后的環(huán)形緩沖器(10)中的條目(13),并且把s設(shè)定為等于所接收的pkt的序列號(hào),b.如果沒有觀察到所接收的分組序列中的空缺,那么檢查指針P(12)指向的條目(13),以便查找可能丟失的分組的序列號(hào)(15)并且聲明該相應(yīng)分組丟失了,把總聲明的丟失declared_losses加一,清除條目(13),更新P(12)以便指向環(huán)形緩沖器(10)中的下一條目(14),并且把s設(shè)定為等于所接收的pkt的序列號(hào),c.如果觀察到無序分組,那么搜索環(huán)形緩沖器(10)的條目(13)以便找到包含等于所接收分組的序列號(hào)的序列號(hào)(15)的條目,并且如果找到,則清除條目(13),如果沒有找到,則把假聲明率falsely_declared_losses加一并且把總聲明的丟失declared_losses減一。
14.如權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,其中所述網(wǎng)絡(luò)條件是傳輸?shù)某晒β?success_rate)和假聲明率(false_rate)的至少一個(gè),其中所述success_rate被最初設(shè)定為預(yù)定的期望率(EXPECT_RATE);并且所述適應(yīng)例程(37)根據(jù)網(wǎng)絡(luò)條件按照如下來調(diào)節(jié)環(huán)形緩沖器(10)的大小m,所述網(wǎng)絡(luò)條件為a.如果false_rate>TOLERABLE_RATE,那么增加m,其中TOLERABLE_RATE是預(yù)定閾值,并且把條目(13)添加到所述環(huán)形緩沖器(10),否則b.如果success-rate=declared-losses-falsely-declared-lossesEXPECT-RATE>EXPECT-RATE]]>那么減小m,并且把條目(13)從環(huán)形緩沖器(10)除去。
全文摘要
提供了一種環(huán)形緩沖器,即形成環(huán)形的緩沖器鏈,用于管理在因特網(wǎng)流送中分組丟失檢測(cè)。用所述緩沖器鏈的大小來確定檢測(cè)時(shí)延,可以使其動(dòng)態(tài)地適應(yīng)網(wǎng)絡(luò)條件和應(yīng)用需求。本發(fā)明可以實(shí)現(xiàn)合理的檢測(cè)準(zhǔn)確性。
文檔編號(hào)H04L12/56GK1726677SQ200380105839
公開日2006年1月25日 申請(qǐng)日期2003年12月10日 優(yōu)先權(quán)日2002年12月12日
發(fā)明者Q·李, M·范德沙爾 申請(qǐng)人:皇家飛利浦電子股份有限公司