專(zhuān)利名稱(chēng):用于網(wǎng)絡(luò)的等待時(shí)間管理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸,并在音頻或傳真數(shù)據(jù)的傳輸中有特定的應(yīng)用,該音頻或傳真數(shù)據(jù)以前通過(guò)電話網(wǎng)絡(luò)發(fā)送,但現(xiàn)在經(jīng)常通過(guò)例如因特網(wǎng)的分組交換網(wǎng)絡(luò)來(lái)發(fā)送。
背景技術(shù):
近來(lái),通過(guò)數(shù)據(jù)網(wǎng)絡(luò)傳輸以前通過(guò)電話網(wǎng)絡(luò)傳輸?shù)恼Z(yǔ)音、傳真及其他信息,已經(jīng)變得很普遍了。通過(guò)例如因特網(wǎng)的數(shù)據(jù)網(wǎng)絡(luò)傳輸這些信息,花銷(xiāo)更少,并且得到了對(duì)網(wǎng)絡(luò)帶寬更有效的利用。涉及因特網(wǎng)技術(shù)的許多工程師甚至相信,在接下來(lái)的若干年內(nèi),所有的電話業(yè)務(wù)量實(shí)際上將通過(guò)因特網(wǎng)來(lái)傳送。
由于通過(guò)因特網(wǎng)傳輸音頻業(yè)務(wù)量而帶來(lái)的一個(gè)問(wèn)題涉及到把這樣的業(yè)務(wù)量分解成多個(gè)分組。特別是對(duì)于通過(guò)傳統(tǒng)的公共交換電話網(wǎng)絡(luò)(PSTN)的連接在兩個(gè)用戶(hù)間完成電話呼叫的情況,在兩個(gè)用戶(hù)之間要建立電路。該電路的全部帶寬只能用于所述的電話呼叫,而該帶寬通常超出了該呼叫所需的帶寬。
當(dāng)呼叫通過(guò)因特網(wǎng)傳送時(shí),來(lái)自任何一方的音頻信號(hào)被分解成多個(gè)分組,該分組通過(guò)數(shù)據(jù)網(wǎng)絡(luò)被分別傳送,有時(shí)使用不同的路徑。當(dāng)分組離開(kāi)數(shù)據(jù)網(wǎng)絡(luò)后,它們被用來(lái)重組模擬音頻信號(hào)以傳送到聽(tīng)話方。
圖3示出了前述的因特網(wǎng)電話呼叫的示意性結(jié)構(gòu)。更具體地說(shuō),在呼叫建立后,在電話機(jī)301處始發(fā)的音頻信號(hào)將沿著電路交換連接經(jīng)過(guò)PSTN302到達(dá)網(wǎng)關(guān)303。網(wǎng)關(guān)303對(duì)音頻信號(hào)分組并按照前述,通過(guò)數(shù)據(jù)網(wǎng)絡(luò)304傳送這些分組。分組在網(wǎng)關(guān)305處被接收,但由于不同的分組經(jīng)歷了變化的網(wǎng)絡(luò)延時(shí),所接收的分組經(jīng)常次序顛倒,要由網(wǎng)關(guān)305重組裝。接著,分組被轉(zhuǎn)換成模擬音頻,該模擬音頻信號(hào)經(jīng)過(guò)PSTN306傳送到電話機(jī)307。如同數(shù)據(jù)連接320和計(jì)算機(jī)322所示的,信號(hào)的多個(gè)部分可以通過(guò)或不通過(guò)PSTN來(lái)傳播。
圖3結(jié)構(gòu)的一個(gè)問(wèn)題就是在分組通過(guò)因特網(wǎng)304傳播時(shí)所遭受的變化的延時(shí)。如果分組到達(dá)時(shí)次序顛倒,那么在把信號(hào)轉(zhuǎn)換回模擬量并傳送給其他方之前,它們必須被重組裝。為了便于在示意性的接收網(wǎng)關(guān)305處對(duì)分組的這種重新排序,緩沖器通常存儲(chǔ)幾個(gè)到達(dá)的分組,使得在網(wǎng)關(guān)305把數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換成模擬形式之前,那些后到達(dá)并且次序顛倒的分組能夠被放置為正確的順序。
為了最小化“等待時(shí)間”,即音頻信號(hào)在離開(kāi)電話機(jī)301的時(shí)刻與到達(dá)電話機(jī)307的時(shí)刻之間所經(jīng)歷的延時(shí),期望最小化前述緩沖器的長(zhǎng)度。長(zhǎng)緩沖器意味著分組在被傳送之前在緩沖器中等待長(zhǎng)的時(shí)間。因此,長(zhǎng)緩沖器意味著長(zhǎng)的等待時(shí)間,而這不是所期望的。
然而,如果緩沖器太小,后到達(dá)的分組將會(huì)丟失。例如,假設(shè)緩沖器的長(zhǎng)度被設(shè)置為,在把每個(gè)到達(dá)的分組發(fā)送到接收機(jī)之前保持它250毫秒。假設(shè)發(fā)出了兩個(gè)連續(xù)的分組,第一個(gè)穿過(guò)網(wǎng)絡(luò)用了500毫秒,第二個(gè)穿過(guò)網(wǎng)絡(luò)只用了10毫秒。第二個(gè)分組到達(dá),在接收緩沖器處被保持250毫秒,然后被發(fā)送給接收機(jī)。而第一個(gè)分組幾乎晚了四分之一秒才接著到達(dá)。在第一個(gè)分組到達(dá)的時(shí)候,第二個(gè)分組已經(jīng)被讀出了。既然這些分組可能代表著音頻,那么在后面的分組已被讀出之后再讀出第一個(gè)分組就變得毫無(wú)意義了。
現(xiàn)有技術(shù)在于,通過(guò)基于在等待時(shí)間和分組丟失的概率之間的折中來(lái)執(zhí)行計(jì)算,以最優(yōu)化緩沖器長(zhǎng)度。而且,美國(guó)專(zhuān)利申請(qǐng)?zhí)朜o.09/585,744說(shuō)明并要求了一種技術(shù),該技術(shù)響應(yīng)于分組通過(guò)網(wǎng)絡(luò)的不同延時(shí),動(dòng)態(tài)調(diào)整緩沖器的尺寸,從而動(dòng)態(tài)地恒定保持最優(yōu)的緩沖器尺寸。
所有的現(xiàn)有技術(shù)的問(wèn)題就是它們不能解決可能發(fā)生了暫時(shí)性的,并且一般上過(guò)度的延時(shí)的一群分組。例如,如果網(wǎng)絡(luò)路由器之一突然停止服務(wù),以上情況就可能發(fā)生。通過(guò)網(wǎng)絡(luò)的延時(shí)會(huì)有突然的增加,直到路由協(xié)議產(chǎn)生響應(yīng),路由數(shù)據(jù)從該路由器旁邊通過(guò)為止。在這里被稱(chēng)為“群延時(shí)”的這種暫時(shí)性的、有代表性的延時(shí),導(dǎo)致幾個(gè)分組經(jīng)歷增加的等待時(shí)間。
由于上述問(wèn)題,在本領(lǐng)域里需要一種技術(shù)來(lái)折中等待時(shí)間和分組丟失的概率以在接收網(wǎng)關(guān)處獲得合適的緩沖器長(zhǎng)度,該技術(shù)也應(yīng)當(dāng)解決通過(guò)因特網(wǎng)的暫時(shí)性的群延時(shí)。
圖1描述了示意性的接收網(wǎng)關(guān)的功能構(gòu)造,該接收網(wǎng)關(guān)可以用來(lái)實(shí)現(xiàn)本發(fā)明的教導(dǎo);圖2示出了根據(jù)一個(gè)實(shí)施例被讀出的一隊(duì)接收緩沖器的示意圖;圖3示出了用于通過(guò)因特網(wǎng)傳輸語(yǔ)音的示意性的現(xiàn)有技術(shù)的構(gòu)造;圖4是用于在樣本接收網(wǎng)關(guān),例如網(wǎng)關(guān)305處實(shí)現(xiàn)本發(fā)明的示意性算法的流程圖;和圖5是本發(fā)明的另一個(gè)實(shí)施例。
具體實(shí)施例方式
圖1是本發(fā)明一個(gè)實(shí)施例的方框圖。圖1的構(gòu)造可以被用在圖3的系統(tǒng)中以取代圖3的網(wǎng)關(guān)303。根據(jù)本發(fā)明,代表了電話呼叫的數(shù)據(jù)以分組的形式從數(shù)據(jù)網(wǎng)絡(luò)到達(dá)網(wǎng)絡(luò)接口卡(NIC,network interface card)101。NIC是一種常見(jiàn)的產(chǎn)品,它實(shí)現(xiàn)適當(dāng)?shù)木W(wǎng)絡(luò)協(xié)議,例如TCP/IP或類(lèi)似的協(xié)議。該NIC可以負(fù)責(zé)接收數(shù)字分組,并通過(guò)CPU102把分組傳送給系統(tǒng)的剩余部分。
接著,所解碼的數(shù)據(jù)通過(guò)CPU102被發(fā)送給緩沖器104。CPU102可以與可選擇的數(shù)字信號(hào)處理器(DSP)103聯(lián)合起來(lái)工作。CPU102用來(lái)把到達(dá)的分組以適當(dāng)?shù)捻樞蚍胖迷诰彌_器104中,從而由數(shù)模轉(zhuǎn)換器(D/A)105按順序地讀出??蛇x擇的DSP103可用來(lái)執(zhí)行部分或全部的,在(NIC)101所完成的處理之外處理數(shù)據(jù)所需要的,在計(jì)算上代價(jià)高昂的信號(hào)處理。
正如在申請(qǐng)?zhí)朜o.09/585,744中所討論的,CPU102計(jì)算適當(dāng)?shù)母郊友訒r(shí),在分組到達(dá)時(shí)把該延時(shí)引入每個(gè)分組,用于在緩沖器104中存儲(chǔ)。更具體地說(shuō),CPU102給每個(gè)到達(dá)的分組引入一定數(shù)量的延時(shí),使得所引入的延時(shí)加上通過(guò)數(shù)據(jù)網(wǎng)絡(luò)304的延時(shí),等于一個(gè)固定值。如在’744申請(qǐng)中所說(shuō)明的,基于穿過(guò)網(wǎng)絡(luò)的每個(gè)分組所經(jīng)歷的延時(shí),保持分組延時(shí)的柱狀圖。接著,接收系統(tǒng)動(dòng)態(tài)地更新分組延時(shí)的柱狀圖,計(jì)算分組丟失的可接受的概率。即該系統(tǒng)動(dòng)態(tài)地打算應(yīng)該丟棄所有經(jīng)歷了超過(guò)X的網(wǎng)絡(luò)延時(shí)的分組,其中基于分組延時(shí)的柱狀圖對(duì)X進(jìn)行更新。于是,到達(dá)分組一旦到達(dá)就被延時(shí)了數(shù)量X減去該分組在穿過(guò)網(wǎng)絡(luò)時(shí)所經(jīng)歷的延時(shí),X即最佳等待時(shí)間。因此,每個(gè)分組都經(jīng)歷了最佳等待時(shí)間,如果一個(gè)分組在穿過(guò)網(wǎng)絡(luò)時(shí)經(jīng)歷了超過(guò)最佳等待時(shí)間的延時(shí),則它被丟棄。
圖2示出了與圖1中數(shù)模轉(zhuǎn)換器105相連接的緩沖器104的概念圖。連接106也被更詳細(xì)地表示為連接230-232和開(kāi)關(guān)250。示意性的位置201-218代表了到達(dá)接收網(wǎng)關(guān)305的分組所放入的緩沖器。
在操作中,可以引入每個(gè)分組所需要的延時(shí)的示意性方式涉及了到達(dá)的分組被放入緩沖器104的位置。更具體地說(shuō),在正常操作中,到達(dá)的分組每一個(gè)都被放入緩沖器201-210中單獨(dú)的一個(gè)。緩沖器接著從左至右進(jìn)行移位,分組被傳送出去到數(shù)模轉(zhuǎn)換器105。
當(dāng)分組到達(dá)時(shí),它們被放入位置201-210之一,當(dāng)分組在圖2中向右移位時(shí)被讀出。因此,經(jīng)歷了相對(duì)短的通過(guò)網(wǎng)絡(luò)的延時(shí)的分組被放置得相對(duì)遠(yuǎn)一些,更接近左側(cè)(例如,位置202或203),而經(jīng)歷了相對(duì)長(zhǎng)的通過(guò)網(wǎng)絡(luò)的延時(shí)的分組則被放置得相對(duì)接近右側(cè)(例如208或209)。所以,通過(guò)網(wǎng)絡(luò)的延時(shí)越短,分組被放置得越接近左側(cè)。由于是從左至右移位,這意味著經(jīng)歷了短網(wǎng)絡(luò)延時(shí)的分組在接收網(wǎng)關(guān)的緩沖器處,因?yàn)橐ǜL(zhǎng)的時(shí)間進(jìn)行移位,所以會(huì)經(jīng)歷更長(zhǎng)的延時(shí)。這導(dǎo)致所有分組的總延時(shí)基本上是相等的。通過(guò)檢測(cè)由發(fā)射分組進(jìn)入因特網(wǎng)的網(wǎng)關(guān)所放置在分組內(nèi)的時(shí)間標(biāo)記,并通過(guò)將該時(shí)間標(biāo)記與接收網(wǎng)關(guān)的本地時(shí)鐘進(jìn)行比較,可以計(jì)算通過(guò)網(wǎng)絡(luò)的延時(shí)。注意,由于發(fā)射網(wǎng)關(guān)和接收網(wǎng)關(guān)的時(shí)鐘可能不精確同步的事實(shí),計(jì)算出的網(wǎng)絡(luò)延時(shí)不是一個(gè)實(shí)際的網(wǎng)絡(luò)延時(shí),而是一個(gè)相對(duì)于通過(guò)網(wǎng)絡(luò)傳輸?shù)钠渌纸M的網(wǎng)絡(luò)延時(shí)的網(wǎng)絡(luò)延時(shí)。
例如,如果一個(gè)分組經(jīng)歷了相對(duì)短的通過(guò)網(wǎng)絡(luò)的延時(shí),它會(huì)被放入位置202。另一個(gè)分組,它經(jīng)歷了相對(duì)長(zhǎng)的通過(guò)網(wǎng)絡(luò)的延時(shí),會(huì)被放入位置210,這就引入了相當(dāng)可觀地更短的延時(shí)。既然系統(tǒng)設(shè)計(jì)者事先知道由每一次緩沖器104向右移位所引入的延時(shí)量,那么為了保證引入在到達(dá)的分組間有效地均衡總延時(shí)(即,網(wǎng)絡(luò)延時(shí)加上附加延時(shí))的正確的延時(shí),可以計(jì)算每個(gè)分組的適當(dāng)?shù)奈恢谩?br>
有時(shí),一個(gè)或多個(gè)分組可能經(jīng)歷如此大的延時(shí),以致于在接收機(jī)處丟失。更具體地說(shuō),假設(shè)有一個(gè)分組A,它到達(dá)接收網(wǎng)關(guān)305并被放入圖2中的位置208。當(dāng)分組向右移位時(shí),一開(kāi)始放入位置208的分組A將在四個(gè)時(shí)隙后從位置211讀出,其中一個(gè)時(shí)隙是一次右移的時(shí)間量。第二分組B早于分組A從發(fā)射網(wǎng)關(guān)303發(fā)射出來(lái),它會(huì)到達(dá)并被放入位置209。因?yàn)樵趫D2中,位置209早于位置208通過(guò)線230被讀出,上面的排序就意味著分組B會(huì)早于分組A從位置211被讀出。
然而,考慮分組B被延時(shí)了遠(yuǎn)遠(yuǎn)超過(guò)預(yù)期的情況。甚至有可能在分組B到達(dá)之前,分組A就可能從位置208被讀出,并被轉(zhuǎn)換成模擬數(shù)據(jù)。此時(shí),分組B只能被丟棄,因?yàn)橐坏┓纸M被轉(zhuǎn)換成模擬音頻,代表了音頻信號(hào)前面部分的分組不能被隨后發(fā)出。
根據(jù)緩沖器104的長(zhǎng)度會(huì)丟棄一定數(shù)量的分組。在圖2示出的示意性的緩沖器104中,經(jīng)歷了最短延時(shí)的分組被放入位置201。這個(gè)分組在從位置211被讀出之前將進(jìn)行10次右移。如果應(yīng)早于這個(gè)分組到達(dá)的分組被延時(shí)了,所延時(shí)的分組可能在來(lái)自位置201的分組已經(jīng)從緩沖器104中移位出去后才到達(dá)。
一般,如同上一段所說(shuō)明的太遲到達(dá)的分組都簡(jiǎn)單地被丟失了。使得緩沖器的長(zhǎng)度足以實(shí)現(xiàn)可接受的丟失概率。然而,如果突發(fā)分組(a burstof packets)被延時(shí),那么系統(tǒng)可能會(huì)丟失幾個(gè)連續(xù)的分組,導(dǎo)致較低質(zhì)量的語(yǔ)音傳輸。為了等待時(shí)間最小化的目的,出于最小化緩沖器104的長(zhǎng)度的考慮,不希望使用將處理潛在的分組突發(fā)(packet bursts)的長(zhǎng)緩沖器。
然而,根據(jù)本發(fā)明,臨時(shí)增加緩沖器104的長(zhǎng)度以解決突發(fā)延時(shí)??梢杂糜趯?shí)現(xiàn)的一種方式是,一旦檢測(cè)到突發(fā)延時(shí),就把圖2中的讀出位置從緩沖器211臨時(shí)改變到緩沖器218。在突發(fā)結(jié)束時(shí),讀出位置回到突發(fā)前的位置211,因而緩沖器的長(zhǎng)度也回到突發(fā)前的狀態(tài)。
圖4示出了本發(fā)明步驟的示意性流程圖。圖4的設(shè)置可以由CPU102實(shí)施以便于從緩沖器104讀出信息。在開(kāi)始401處,檢查起始線230的位置,即位置211的信息。如果在位置211上存在分組,那么判斷點(diǎn)403將把控制權(quán)轉(zhuǎn)移給用于讀出分組的方框404。接著,在方框405,寄存器從左至右移位,從而把以前位于位置210的分組放入讀出位置211。如同循環(huán)450所指示的,該過(guò)程按照前述繼續(xù)檢查分組并把它們讀出。
當(dāng)檢查位置211時(shí),如果發(fā)現(xiàn)它是空的,那么判斷點(diǎn)403將使方框408處的計(jì)數(shù)器向上計(jì)數(shù)。該計(jì)數(shù)器從零開(kāi)始。在計(jì)數(shù)值被加給方框408后,判斷點(diǎn)407判斷該計(jì)數(shù)值是否達(dá)到了預(yù)定的計(jì)數(shù)值。
預(yù)定的計(jì)數(shù)值N被提前定義為在緩沖器104中,到達(dá)讀出位置211的為空的連續(xù)存儲(chǔ)位置的數(shù)量。一般,N的值域是2或3,但也可能有所不同。更具體地說(shuō),如果每個(gè)分組都在緩沖器104的長(zhǎng)度能夠處理的時(shí)限內(nèi)到達(dá),那么在每次右移后,應(yīng)該有一個(gè)分組在位置211處準(zhǔn)備用于讀出。在讀出一個(gè)分組后,如果一次右移導(dǎo)致位置211成為空的,這就意味著應(yīng)該被讀出的下一個(gè)分組已經(jīng)被延時(shí)太長(zhǎng)時(shí)間了,它丟失了。
在大多數(shù)情況下,系統(tǒng)僅僅在下次移位之后讀下一個(gè)分組,并且偶爾丟失的分組是可以接受的。但是,如果系統(tǒng)讀到連續(xù)N個(gè)空的位置,這就意味著突發(fā)分組已經(jīng)歷了異常長(zhǎng)的通過(guò)網(wǎng)絡(luò)的延時(shí)。在這種情況下,系統(tǒng)將嘗試通過(guò)從緩沖器104最右側(cè)的包含分組的位置中臨時(shí)讀出分組,而從所丟失的突發(fā)分組中恢復(fù)過(guò)來(lái)。
當(dāng)分組到達(dá)時(shí),如果任何分組是“太遲的”,即在該到達(dá)分組之前的分組已經(jīng)被傳送出了位置211,那么分配負(fù)延時(shí)給這些遲到達(dá)的分組。因此,所有放在位置211右側(cè)的分組都是需要負(fù)延時(shí)的分組,這就使得這些分組的網(wǎng)絡(luò)延時(shí)加上由接收網(wǎng)關(guān)所添加的附加延時(shí),兩者之和等于如前所述地為每個(gè)分組所設(shè)定的總固定延時(shí)。例如,如果總延時(shí)假定為2秒,并且該分組經(jīng)歷了2.3秒的網(wǎng)絡(luò)延時(shí),它需要負(fù)0.3的延時(shí)。
如圖2所示,分組可以被讀出的第二位置是位置218。假設(shè)每次移位需要0.15秒,上述的示意性分組被放入位置216。經(jīng)過(guò)這樣放置分組,該分組和位置218有兩個(gè)位置移位的距離,即0.3秒。每個(gè)要被讀出的太遲到達(dá)的分組將被相對(duì)于位置218放置,以致于當(dāng)系統(tǒng)開(kāi)始從位置218讀分組時(shí),要被從位置211讀出的太遲到達(dá)的所有分組將從位置218被順序地讀出。
如果在判斷點(diǎn)407計(jì)數(shù)值沒(méi)有達(dá)到N,那么寄存器被再次移位,并且過(guò)程進(jìn)行重復(fù),在判斷點(diǎn)403和407繼續(xù)對(duì)空的存儲(chǔ)位置計(jì)數(shù),直到該計(jì)數(shù)值等于預(yù)定值N。
當(dāng)讀出N個(gè)預(yù)定的連續(xù)的空存儲(chǔ)位置時(shí),在方框409激活開(kāi)關(guān)250。開(kāi)關(guān)250使讀出點(diǎn)處于位置218,而不是位置211。在方框410,從位置218讀分組。如果在判斷點(diǎn)411突發(fā)結(jié)束,無(wú)效開(kāi)關(guān)250以使讀出點(diǎn)返回位置211。但是,如果在突發(fā)里有更多的分組,那么這些分組在方框406繼續(xù)從左至右移位,并且如圖4中流程圖所示,繼續(xù)從位置218讀出。
注意,如果從位置218讀出分組,所有在位置211左側(cè)的位置(例如,201-210)仍繼續(xù)被移位。這樣做的效果就是保證,一旦系統(tǒng)完成了讀出被存儲(chǔ)在位置211右側(cè)的第一分組,而且開(kāi)關(guān)接著被無(wú)效,那么所有隨后的分組不會(huì)代表空位置。
應(yīng)該注意,兩個(gè)對(duì)立的準(zhǔn)則,即等待時(shí)間和分組丟失概率,每一個(gè)在系統(tǒng)操作的不同時(shí)間具有不同的優(yōu)先權(quán)。具體地說(shuō),在正常操作中,通過(guò)使用相對(duì)短的緩沖器長(zhǎng)度并接受給定數(shù)量的分組丟失,最小化等待時(shí)間。當(dāng)發(fā)生突發(fā)的被延時(shí)的分組時(shí),例如在突然的網(wǎng)絡(luò)擁塞狀況下,緩沖器被暫時(shí)加長(zhǎng),最好通過(guò)改變讀出的位置,這樣所有遭受突然的突發(fā)延時(shí)的分組不會(huì)丟失。但是,因?yàn)閿U(kuò)大的延時(shí)只是暫時(shí)的,在傳送了遭受突發(fā)的剩余分組后就結(jié)束了,所以等待時(shí)間不是問(wèn)題。
應(yīng)該注意,雖然上面說(shuō)明了基于緩沖器長(zhǎng)度的硬件實(shí)施方式,但是本發(fā)明不是如此受限的。更具體地說(shuō),本發(fā)明可以完全由軟件實(shí)現(xiàn)。一般,經(jīng)歷了超過(guò)預(yù)定值的延時(shí)的分組將簡(jiǎn)單地被丟棄,但是,系統(tǒng)可以通過(guò)檢查每個(gè)分組上的時(shí)間標(biāo)記來(lái)確認(rèn)是否預(yù)定數(shù)量N的連續(xù)分組經(jīng)歷了超過(guò)預(yù)定值的延時(shí)。如果經(jīng)歷了這種延時(shí)的一群分組的數(shù)量超過(guò)預(yù)定值N,那么不丟棄所延時(shí)的分組,而是對(duì)這些分組進(jìn)行處理并轉(zhuǎn)換成用于傳送給用戶(hù)的模擬信號(hào)。因此,更廣泛地講,本發(fā)明包括對(duì)所有經(jīng)歷了少于預(yù)定值的延時(shí)的分組進(jìn)行處理或傳送給終端用戶(hù),而對(duì)經(jīng)歷了超過(guò)所述值的延時(shí)的分組不進(jìn)行處理或傳送,除非特定數(shù)量的連續(xù)分組經(jīng)歷了過(guò)度的延時(shí)。
圖5表示了本發(fā)明的另一個(gè)實(shí)施例。雖然圖5設(shè)置的基本功能類(lèi)似于圖1的,但是每個(gè)方框所執(zhí)行的任務(wù)略有不同。
NIC160執(zhí)行所需的網(wǎng)絡(luò)協(xié)議接口功能。本領(lǐng)域內(nèi)公知的這類(lèi)協(xié)議的例子是UDP/IP和異步傳輸模式(ATM)。
方框102,分組規(guī)則模塊(PRM,Packet Regulation Module)執(zhí)行基本的分組處理和信息解析。PRM161從分組中提取時(shí)間標(biāo)記和數(shù)據(jù),以及其他任何相關(guān)信息。PRM還負(fù)責(zé)把本地接收時(shí)間標(biāo)記分配給每個(gè)分組,該時(shí)間標(biāo)記按照本地接收時(shí)鐘來(lái)記錄收到分組的時(shí)間。PRM實(shí)現(xiàn)前面討論的保持柱狀圖,計(jì)算最佳的等待時(shí)間,以及存儲(chǔ)、排序和讀出分組所需的處理。為了解決前面所討論的突發(fā)延時(shí),PRM也判斷是否至少N個(gè)分組已經(jīng)被延時(shí)。PRM有效地監(jiān)視分組接收,控制從系統(tǒng)中的讀出,以及實(shí)現(xiàn)所有用于這里前面所討論的方法的處理。PRM可以在數(shù)字信號(hào)處理器、通用目的處理器或者兩者的聯(lián)合上用軟件實(shí)現(xiàn)。
抖動(dòng)緩沖器模塊162按照每個(gè)分組被延時(shí)了如PRM所指定和如上所討論的適當(dāng)數(shù)量的方式來(lái)存儲(chǔ)分組??尚械?,抖動(dòng)緩沖器是如上面討論所引入的延時(shí)器。抖動(dòng)緩沖器可以是設(shè)置適當(dāng)?shù)臅r(shí)間以讀出每個(gè)分組的一列計(jì)時(shí)器。
剩下的兩個(gè)框?qū)?shù)據(jù)進(jìn)行解碼(103)并把它輸出到適當(dāng)?shù)哪康牡?。目的地可以是存?chǔ)器件、實(shí)時(shí)播放器件或者任何適當(dāng)?shù)哪康牡亍?br>
雖然上面定義了本發(fā)明的優(yōu)選實(shí)施例,但是對(duì)于本領(lǐng)域的技術(shù)人員,其他的各種修改和附加是清楚的。可以認(rèn)定,本發(fā)明可被解釋為覆蓋了落入所附權(quán)利要求的精神和范圍內(nèi)的所有這樣的變化和修改。
權(quán)利要求
1.一種裝置,包括緩沖器,用于存儲(chǔ)從數(shù)據(jù)網(wǎng)絡(luò)中所接收的分組,并且便于按順序的讀出所述的分組;和處理器,用于如果所述的網(wǎng)絡(luò)對(duì)所述的分組造成預(yù)定的延時(shí)特性,則改變?cè)谒龅木彌_器內(nèi)該分組被按順序地讀出的位置。
2.如權(quán)利要求1所述的裝置,其中,所述的預(yù)定的延時(shí)特性包括特定數(shù)量的按順序的分組在某個(gè)時(shí)間上從數(shù)據(jù)網(wǎng)絡(luò)到達(dá),使得要在所述的特定數(shù)量的按順序的分組后被從緩沖器讀出的分組已經(jīng)被從緩沖器讀出。
3.如權(quán)利要求2所述的裝置,還包括改變所述位置,在所述的特定數(shù)量的按順序的分組被從所述的緩沖器讀出后,所述的分組從所改變的位置第二次被按順序地讀出。
4.如權(quán)利要求3所述的裝置,還包括用于在所述的分組被從所述的緩沖器讀出后接收分組的,連接到所述的緩沖器的數(shù)模轉(zhuǎn)換器。
5.一種裝置,包括具有多個(gè)存儲(chǔ)位置的緩沖器,該緩沖器把數(shù)據(jù)按順序地從每個(gè)存儲(chǔ)位置移位到相鄰的存儲(chǔ)位置,具有連接到至少兩個(gè)存儲(chǔ)位置的輸入的開(kāi)關(guān),和根據(jù)數(shù)據(jù)在被存儲(chǔ)進(jìn)所述的緩沖器之前,在穿過(guò)網(wǎng)絡(luò)時(shí)所經(jīng)歷的不同延時(shí)來(lái)控制哪一個(gè)開(kāi)關(guān)輸入處于活動(dòng)態(tài)的處理器。
6.如權(quán)利要求5所述的裝置,其中,所述的處理器根據(jù)一個(gè)判斷,即數(shù)據(jù)的預(yù)定數(shù)量的連續(xù)分組是否已遭受大于預(yù)定量的延時(shí),來(lái)控制哪一個(gè)開(kāi)關(guān)輸入處于活動(dòng)態(tài)。
7.如權(quán)利要求6所述的裝置,其中,所述的處理器在遭受大于預(yù)定量的延時(shí)的分組已被從緩沖器讀出后,再次切換開(kāi)關(guān)的活動(dòng)態(tài)輸入。
8.如權(quán)利要求7所述的裝置,還包括用于從數(shù)據(jù)網(wǎng)絡(luò)接收數(shù)據(jù)的網(wǎng)絡(luò)接口卡和用于處理所接收的數(shù)據(jù)的數(shù)字信號(hào)處理器。
9.一種裝置,包括緩沖器,有一定長(zhǎng)度,并且可以構(gòu)造用來(lái)存儲(chǔ)從數(shù)據(jù)網(wǎng)絡(luò)所接收的分組和用來(lái)允許按順序地讀出所述的分組,和處理器,用于在數(shù)據(jù)網(wǎng)絡(luò)造成分組經(jīng)歷了預(yù)定的延時(shí)特性時(shí),改變所述的長(zhǎng)度。
10.如權(quán)利要求9所述的裝置,其中,通過(guò)切換從中讀出分組的緩沖器的位置來(lái)改變所述的長(zhǎng)度。
11.一種方法,包括把多個(gè)到達(dá)的分組的每一個(gè)放入緩沖器的單獨(dú)的位置,在所述的緩沖器中,按順序地從第一位置讀出所述的分組,和在檢測(cè)到已經(jīng)歷了至少預(yù)定值的延時(shí)的、預(yù)定數(shù)量的按順序的分組時(shí),開(kāi)始從所述的緩沖器的第二位置按順序地讀出所述的分組。
12.如權(quán)利要求11所述的方法,其中,檢測(cè)預(yù)定數(shù)量的按順序的分組包括檢測(cè)預(yù)定數(shù)量的按順序的空存儲(chǔ)位置。
13.如權(quán)利要求12所述的方法,還包括切換開(kāi)關(guān)的活動(dòng)態(tài)輸入,以便于從所述分組的所述的第二位置進(jìn)行所述的按順序讀出所述的分組。
14.一種方法,包括從數(shù)據(jù)網(wǎng)絡(luò)接收分組,并分配正延時(shí)給全部所接收的經(jīng)歷了少于預(yù)定值的網(wǎng)絡(luò)延時(shí)的分組,分配負(fù)延時(shí)給全部所接收的經(jīng)歷了多于所述預(yù)定值的延時(shí)的分組,把全部具有被分配的負(fù)延時(shí)的分組放到緩沖器中讀出位置的第一側(cè),把全部具有被分配的正延時(shí)的分組放到緩沖器中讀出位置的第二側(cè)。
15.如權(quán)利要求14所述的方法,其中,具有被分配的負(fù)延時(shí)的分組被彼此相對(duì)地放在一個(gè)位置,該位置至少部分地基于所述的延時(shí)。
16.如權(quán)利要求14所述的方法,其中,具有被分配的正延時(shí)的分組被彼此相對(duì)地放在一個(gè)位置,該位置至少部分地基于所述的延時(shí)。
17.一種方法,包括從數(shù)據(jù)網(wǎng)絡(luò)接收分組,把該分組放入有一定長(zhǎng)度的緩沖器,并且如果預(yù)定數(shù)量的分組經(jīng)歷了過(guò)度的延時(shí),就暫時(shí)地改變?cè)摼彌_器的長(zhǎng)度。
18.如權(quán)利要求17所述的方法,其中,通過(guò)改變分組的讀出位置以便于實(shí)現(xiàn)所述的長(zhǎng)度改變。
19.如權(quán)利要求18所述的方法,其中,通過(guò)數(shù)出緩沖器中空存儲(chǔ)位置的個(gè)數(shù)來(lái)檢測(cè)所述的過(guò)度的延時(shí)。
20.一種方法,包括接收進(jìn)入的分組;處理全部所接收的被延時(shí)少于預(yù)定量的分組,并且丟棄被延時(shí)多于所述預(yù)定量的分組,除非有至少預(yù)定數(shù)量的這樣的分組被如此延時(shí),在這樣的情況下,不丟棄所述的至少預(yù)定數(shù)量的所述的分組。
21.如權(quán)利要求20所述的方法,其中,所述的處理步驟包括把分組放入緩沖器。
22.如權(quán)利要求21所述的方法,其中,所述的處理步驟包括把所過(guò)度延時(shí)的分組放在存儲(chǔ)器的第一部分,把其他分組放在存儲(chǔ)器的另一個(gè)部分。
全文摘要
一種緩沖器(104)接收數(shù)據(jù)分組,并把它們放在適當(dāng)?shù)奈恢?201-218)上,以致它們?cè)谧兓难訒r(shí)后被讀出。分配負(fù)延時(shí)給遲到達(dá)的分組,而且如果有太多的分組遲到達(dá),該系統(tǒng)開(kāi)始從存儲(chǔ)器中一個(gè)不同的位置處讀出所述的遲到達(dá)的分組,而不是允許這些遲到達(dá)的分組丟失。
文檔編號(hào)H04L12/56GK1473419SQ01818403
公開(kāi)日2004年2月4日 申請(qǐng)日期2001年11月1日 優(yōu)先權(quán)日2000年11月2日
發(fā)明者凱·苗, 凱 苗 申請(qǐng)人:英特爾公司