專利名稱:在基于否定確認(rèn)的協(xié)議中有效重發(fā)超時估計的方法
對照相關(guān)申請本申請要求2001年1月18日提交的美國臨時申請序號60/262,591的優(yōu)先權(quán),其教導(dǎo)合并在這里供參考。
參見
圖1(a),TCP對于到達接收端點的數(shù)據(jù)利用肯定確認(rèn)(ACK)系統(tǒng)作為錯誤恢復(fù)機制。這個系統(tǒng)在僅有未確認(rèn)幀應(yīng)該重發(fā)的原則下運行。為確保分組被發(fā)送源安全地接收,TCP通過為每個連接管理重發(fā)定時器來使用重發(fā)超時(RTO)機制。也就是,TCP為連接設(shè)置重發(fā)定時器并且增加一個RTO值以及一個往返時間(RTT)。RTT是在TCP類型的數(shù)據(jù)段的傳輸開始和該段的確認(rèn)的接收之間流逝的時間。如果到RTO1期滿為止沒有接收到確認(rèn),則TCP在下個RTO2中再次重發(fā)數(shù)據(jù)。
相反,UDP通過向發(fā)送源轉(zhuǎn)發(fā)NACK分組響應(yīng)丟失幀以便重發(fā)來利用否定確認(rèn)(NACK)系統(tǒng),如圖1(b)所示。除此之外,NACK分組可以沿從接收機到發(fā)送器的路徑丟失。為此,UDP利用與TCP用于重發(fā)連接類似的重發(fā)超時機制。
準(zhǔn)確地執(zhí)行RTO值估計很重要。通常的,通過基于RTT的前面的采樣值預(yù)測RTT的下一個值來執(zhí)行RTO估計。如果RTO估計過高,則將導(dǎo)致TCP中較低的吞吐量性能并且導(dǎo)致增加數(shù)量的實時應(yīng)用中下溢出的事件。但是,如果RTO估計不足,則協(xié)議生成大量的重復(fù)分組,因更多的不必要的分組重發(fā)導(dǎo)致嚴(yán)重的網(wǎng)絡(luò)擁塞。
下面描述基于TCP的重發(fā)超時估算量的當(dāng)前標(biāo)準(zhǔn)的背景。標(biāo)準(zhǔn)由下述的兩個算法組成。第一個算法,平滑RTT估算量(SRTT),是基于以前RTT采樣的指數(shù)加權(quán)的移動平均數(shù)(EWMA) (1)其中RTTi表示在時間ti生成的往返延遲的第i個采樣值并且α(缺省設(shè)置為1/8)表示平滑因數(shù),可以變化以便對RTT采樣的歷史給出或多或少的權(quán)重。
第二種算法,平滑RTT方差估算量(SVAR),利用上述類似EWMA的公式計算RTT方差的近似值 (2)其中β(缺省設(shè)置為1/4)表示EWMA平滑因數(shù)并且VARi表示第i個RTT采樣與平滑平均值的絕對偏差VARi=|SRTTi-1-RTTi|。
最后,通過將平滑方差乘以四并且將其加到平滑往返延遲中得到RTORTO(t)=SRTTi+4·SVARi, (3)其中t表示RTO計算的時間,并且i=maxti≤t。
在實時流應(yīng)用,例如多媒體應(yīng)用中,因為沿從接收機到發(fā)送器的路徑的較低系統(tǒng)開銷以及潛在的更快的丟失分組恢復(fù),優(yōu)選基于NACK的操作。但是,RTO估算量,如前面章節(jié)所述,典型地設(shè)計為僅適合于基于ACK的應(yīng)用并且不適合于基于NACK的協(xié)議。其生成擴展數(shù)量的重復(fù)分組并且因下一個RTT值的拙劣預(yù)測導(dǎo)致實時流應(yīng)用中后續(xù)NACK請求的生成中不必要的延遲。除此之外,基于NACK的協(xié)議沒有在異構(gòu)互聯(lián)網(wǎng)情況下運行很好的通用RTO估計方案。盡管有這些缺點,許多基于NACK的協(xié)議仍應(yīng)用已有的從TCP借來的RTO估計協(xié)議。
如上所述,由兩個參數(shù)描述RTO估算量-重復(fù)分組數(shù)以及不必要的超時等待量。但是,這兩個參數(shù)因為表示估算量的基本折衷(也就是減少一個參數(shù)將增加另一個)而不能同時最小化。因為TCP的RTO估算量被證明不適合于基于NACK的協(xié)議,所以這些協(xié)議需要采用在本發(fā)明的公開內(nèi)容中描述的最佳類型的RTO估算量。
根據(jù)優(yōu)選實施方案,本發(fā)明提供在通信系統(tǒng)中用于估計重發(fā)超時(RTOj)的方法以便支持多個重發(fā)并且該方法包括步驟從服務(wù)器向客戶機發(fā)送多個數(shù)據(jù)分組;如果一個數(shù)據(jù)分組丟失,則由客戶機發(fā)送一個否定確認(rèn)(NACK)分組以便重發(fā);計算對應(yīng)于向服務(wù)器發(fā)送NACK分組以及從服務(wù)器接收丟失分組的對應(yīng)重發(fā)之間的等待時間的往返延遲(RTTi);計算客戶機的多個數(shù)據(jù)分組的臨近分組接收之間的延遲(Δj)的多個采樣;基于計算的延遲采樣來確定平滑的分組間延遲方差(SVARΔj);以及,基于確定的RTTi以及確定的平滑分組間延遲方差來計算RTOj。
根據(jù)優(yōu)選實施方案,本發(fā)明提供管理在服務(wù)器系統(tǒng)和客戶機系統(tǒng)之間的通信鏈路上多個數(shù)據(jù)分組的傳輸?shù)南到y(tǒng)并且包括用于接收以由分組構(gòu)成的幀形式的數(shù)據(jù)分組的裝置;確定在傳輸期間是否有任何幀分組丟失的裝置;用于請求任何丟失的幀分組重發(fā)的裝置;用于確定對應(yīng)于請求丟失幀重發(fā)到服務(wù)器和從服務(wù)器接收到對應(yīng)重發(fā)的丟失幀之間等待時間的往返延遲(RTTi)的裝置;用于確定突發(fā)分組間延遲變化的裝置;以及,用于基于確定的RTT以及確定的突發(fā)延遲間變化來確定重發(fā)超時(RTOj)的裝置。
通過結(jié)合附圖來閱讀下列詳細描述,這些以及其他優(yōu)點對于本領(lǐng)域的技術(shù)人員是顯而易見的。
圖4(a)說明根據(jù)本發(fā)明在服務(wù)器端的用戶數(shù)據(jù)報協(xié)議(UDP)的格式;圖4(b)說明根據(jù)本發(fā)明在客戶機端的用戶數(shù)據(jù)報協(xié)議(UDP)的格式;圖5是描述根據(jù)本發(fā)明的基于抖動的重發(fā)超時(RTO)估計的時間圖;以及圖6是說明根據(jù)本發(fā)明的重發(fā)超時(RTO)估算量的操作的流程圖。
根據(jù)本發(fā)明的實施方案,提供了用于控制在數(shù)字通信環(huán)境中數(shù)據(jù)分組的重發(fā)的機制。參見圖2,使用本發(fā)明的系統(tǒng)10包括第一個系統(tǒng)12,如服務(wù)器設(shè)備,第二個系統(tǒng)14,如客戶機設(shè)備,通過網(wǎng)絡(luò)16的接入鏈路彼此通信。優(yōu)選地,發(fā)明的重發(fā)機制放置在客戶機系統(tǒng)。如圖2所示,本發(fā)明可以在客戶機-服務(wù)器環(huán)境中實現(xiàn),但是客戶機-服務(wù)器環(huán)境不是必需的。
在這個發(fā)明中,服務(wù)器系統(tǒng)12通過網(wǎng)絡(luò)向客戶機系統(tǒng)14發(fā)送至少一個源分組或突發(fā)分組。但是,在從服務(wù)器系統(tǒng)12到客戶機系統(tǒng)14的源分組或突發(fā)分組傳輸錯誤或丟失的情況下,客戶機系統(tǒng)14向服務(wù)器系統(tǒng)12發(fā)送一個否定確認(rèn)(NACK)分組用于重發(fā)。然后,客戶機系統(tǒng)14在定時器周期上建立限制并且如果在規(guī)定的時間周期內(nèi)沒有接收到請求的分組或突發(fā)分組,則向服務(wù)器系統(tǒng)12重發(fā)NACK分組。
應(yīng)該指出,許多實時流服務(wù)器實現(xiàn)為在突發(fā)分組中發(fā)送其數(shù)據(jù)代替在每個規(guī)定周期內(nèi)發(fā)送一個分組。這類突發(fā)傳輸?shù)湫偷販p少了與處理器之間頻繁轉(zhuǎn)換相關(guān)的系統(tǒng)開銷。除此之外,突發(fā)的分組傳輸更適合于處理變化的分組大小并且允許每個服務(wù)器更多的同時流。但是,不需要這樣。
根據(jù)本發(fā)明的實施方案,由客戶機系統(tǒng)14通過NACK分組將接收錯誤或丟失的分組通知回服務(wù)器系統(tǒng)12。這里,利用用戶數(shù)據(jù)報(UDP)。圖3描述了組成傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)組的各層。基本上,TCP提供多個異構(gòu)網(wǎng)絡(luò)上端到端的傳輸服務(wù)以及互聯(lián)網(wǎng)上信息的后續(xù)分組的發(fā)送。UDP是非連接的傳輸協(xié)議設(shè)計利用IP服務(wù)運行并且提供信息流的最少的錯誤檢測。在網(wǎng)絡(luò)層,IP提供“數(shù)據(jù)報”發(fā)送服務(wù)。
圖4(a)和圖4(b)顯示了根據(jù)本發(fā)明的UDP分組的格式。實時應(yīng)用中的每個分組攜帶一個突發(fā)標(biāo)識符,其使接收端能夠從不同突發(fā)中區(qū)別出分組。參見圖1(b),如果從中的源分組沿傳輸路徑丟失,則NACK分組發(fā)送到服務(wù)器系統(tǒng)。系統(tǒng)14通過序號的間隔檢測出分組的丟失。對于發(fā)送的每個NACK分組,發(fā)明的協(xié)議保持一個定時器。如果定時器期滿,則重發(fā)NACK分組。為避免混淆哪個重發(fā)的相同分組實際返回客戶機系統(tǒng),每個NACK分組的頭包含一個額外的域,它規(guī)定除了丟失分組的序號之外的重發(fā)序號計數(shù),如圖4(b)所示。因此,當(dāng)對應(yīng)NACK分組發(fā)送出并且正確地測量RTT時,客戶機系統(tǒng)可以將每個重發(fā)分組與確切時間配對。
因為源分組在具有不可預(yù)測延遲的路徑上發(fā)送,所以本發(fā)明不斷地調(diào)整重發(fā)定時器期滿的閾值。也就是,傳輸路徑在連接存在期間改變,并且路由器(或交換機)的狀態(tài)也隨著網(wǎng)絡(luò)傳送的或多或少的業(yè)務(wù)量而改變。因此,本發(fā)明合并一種新的往返估計機制可用于在重發(fā)NACK分組中確定更準(zhǔn)確的定時。與現(xiàn)有技術(shù)不同,到達分組之間延遲抖動的估計在本發(fā)明中用作設(shè)置重發(fā)定時器閾值的基礎(chǔ)。
下面的描述是根據(jù)本發(fā)明的重發(fā)機制的特定算法的詳細描述。在實時多媒體應(yīng)用中,服務(wù)器系統(tǒng)12在Db期間典型地發(fā)送突發(fā)分組。這里Db基于流速率和平均分組大小。參見圖5,對于每個突發(fā)j,突發(fā)的最后一個分組在時間tjlast到達客戶機,并且突發(fā)的第一個分組在時間tjfirst到達。因此,對突發(fā)j的突發(fā)間延遲可以用下列等式4定義Δf=tffirst-tklast, (4)其中突發(fā)k表示在突發(fā)j之前接收的最后一個突發(fā)(除非有分組丟失,k=j(luò)-1)。對于每個突發(fā)j,使用類似TCP中的EWMA公式,如下列等式(5)和(6)定義的計算平滑突發(fā)間延遲SΔj以及平滑突發(fā)間延遲方差SVARΔj (5)以及 (6)其中α1和β1表示指數(shù)權(quán)重并且VARΔj表示對其平滑形式SΔj-1的絕對偏差Δj。這里,SΔj典型地正比于突發(fā)期間Db,并且因此其在具有不同突發(fā)期間的實時應(yīng)用中不能以同樣的方式使用。但是,平滑方差SVARΔj相當(dāng)獨立于突發(fā)期間并且反映沿從服務(wù)器到客戶機的路徑的路由器隊列中交叉業(yè)務(wù)量的數(shù)量的變化。
通過傳輸延遲以及其來自等式(6)的延遲變化,如果Tj是當(dāng)客戶機生成突發(fā)間延遲Δj的第j個采樣時的時間(理想地,Tj等于tjfirst),并且ti是當(dāng)客戶機計算第i個RTT采樣RTTi的時間(后面解釋),則根據(jù)本發(fā)明在時間t的有效的基于抖動的RTO是RTOJ(t)=n*RTTi+m*SVARΔj, (7)其中i=maxti≤t并且j=maxTj≤t。
而且,在RTT測量值之間有更長延遲的情況下,可以提供等式(7)的稍微改變以便更好地估計RTO。這個更好的估算量,稱為RTOJD,可以通過將最后的RTT采樣(也就是ti)的時間與估計RTO的時間(也就是t)之間的持續(xù)時間合并到RTOJ估算量中來創(chuàng)建RTOJD(t)=(n+k(t-ti)*RTTi+m*SVARΔj,(8)其中i=maxti≤t,j=maxTj≤t,并且t和ti的時間單位是秒。
應(yīng)該指出,在前面章節(jié)描述的兩個基于抖動的RTO估算量,當(dāng)α1=0.5,β1=0.25,k=0.5,并且m=4.2792*n-2.6646時獲得最優(yōu)性。剩余的空閑參數(shù)n可用于在每個應(yīng)用的基礎(chǔ)上改變想要的重復(fù)分組數(shù)較高值的n對應(yīng)較少的重復(fù)分組。n的建議值在1和4之間。應(yīng)該指出,頻繁的延遲抖動采樣被證明在基于NACK的RTO估計的微調(diào)中非常有用并且可用做未來RTT中變化的很好的預(yù)測器。
應(yīng)該指出,用于確定重發(fā)超時(RTO)的本發(fā)明的估算量可利用處理器、微機、特定用途集成電路(ASIC)、可編程設(shè)備、或設(shè)計和運行以便提供這里所述功能的其他設(shè)備來實現(xiàn)。圖6中顯示了估算量的主要操作流程圖,如下面解釋的。
參見圖6,每個分組插入估算量算法,跟蹤兩個量往返延遲估計(RTT)以及突發(fā)間延遲抖動的方差(SVARΔ)。在步驟600,每個分組在客戶機系統(tǒng)接收。如果有丟失的分組,則在步驟610每個分組的NACK分組就發(fā)送到服務(wù)器系統(tǒng)。在這種情況下,記錄請求分組(i)重發(fā)的每個NACK分組的傳輸時間nacki,然后在步驟610設(shè)置發(fā)送后續(xù)NACK分組的定時器。同時,如果數(shù)據(jù)分組的重發(fā)從服務(wù)器到客戶機系統(tǒng)可靠地完成了,則在步驟620計算往返延遲(RTT)。
根據(jù)本發(fā)明的實施方案,在實時會話中的接收機必須周期性地測量往返延遲??蛻魴C系統(tǒng)通過利用分組丟失來測量往返延遲來獲得RTT測量值-每個成功恢復(fù)的分組提供一個RTT采樣。也就是,RTT是發(fā)送NACK和接收相應(yīng)重發(fā)之間的持續(xù)時間。替代地,在網(wǎng)絡(luò)分組丟失太慢的情況下由客戶機通過獲得往返延遲的額外采樣測量RTT。為這個目的,如果分組丟失落到低于某個閾值,則客戶機周期性地向服務(wù)器發(fā)送模擬重發(fā)請求。響應(yīng)這些模擬NACK,服務(wù)器向客戶機發(fā)送需要的分組。
在步驟630,確定接收的分組是否與前面接收的分組一樣屬于相同的突發(fā)。如果不同,則在步驟640,如等式4所述計算突發(fā)間延遲。在客戶機端在突發(fā)的第一個分組和前一個突發(fā)的最后一個分組的接收之間測量突發(fā)間延遲。為了在不同突發(fā)之間區(qū)分并且利用等式(4),在步驟650,系統(tǒng)記錄最后接收的分組的參數(shù)。
接著,突發(fā)間延遲采樣被平均進平滑突發(fā)間延遲(SΔ)估計值,然后其用于控制重發(fā)超時參數(shù)(RTO)。利用步驟660,對于每個突發(fā),在步驟670和680分別計算平滑的突發(fā)間延遲以及平滑的突發(fā)間延遲方差。執(zhí)行步驟670來更新平滑的突發(fā)間延遲值,其用于在后續(xù)計算過程中確定方差。這些步驟根據(jù)等式5和6執(zhí)行。因此,隨著加入每個新的分組,平均值和方差改變。
最后,在步驟690計算重發(fā)超時機制(RTO),其是一個提示未恢復(fù)的數(shù)據(jù)重發(fā)的超時。因在基于NACK的應(yīng)用中RTT采樣之間的大間隔,最后的RTT采樣與未來的往返延遲的值有最大的相關(guān)性。一旦分組(i)的定時器期滿,客戶機系統(tǒng)14就重發(fā)NACK分組,nacki,并且為分組(i)的另一個RTO時間單元設(shè)置定時器。n的建議值是在0和4之間,并且m的值設(shè)置為m=4.2792*n-2.6646。
總而言之,本發(fā)明提供了一種新的RTO估計機制,當(dāng)在基于NACK的協(xié)議中使用時,其在已有的RTO估計算法上獲得了顯著的性能提高(也就是,更少的重復(fù)分組以及更少的不必要的等待時間)。如所描述的用于管理數(shù)字通信鏈路上重發(fā)的優(yōu)選實施方案,對于本領(lǐng)域的技術(shù)人員顯然系統(tǒng)的某些優(yōu)點已經(jīng)獲得。前面的描述僅是要構(gòu)建作為本發(fā)明的一個說明性實施方案。因此,本領(lǐng)域的技術(shù)人員可以很容易地想象在不違背本發(fā)明的基本原則和范圍的情況下替代的方案可提供與本實施方案類似的功能。
權(quán)利要求
1.一種用于在通信系統(tǒng)中估計重發(fā)超時(RTOj)以便支持在服務(wù)器(12)和客戶機(14)之間相同分組的多個重發(fā)的方法,所述方法包括步驟(a)從所述服務(wù)器(12)向所述客戶機(14)發(fā)送多個數(shù)據(jù)分組;(b)如果所述數(shù)據(jù)分組的一個丟失,則由所述客戶機(14)發(fā)送否定確認(rèn)(NACK)分組用于重發(fā);(c)計算對應(yīng)于向所述服務(wù)器發(fā)送所述NACK分組和從所述服務(wù)器(12)接收所述丟失分組的相應(yīng)重發(fā)之間的等待時間的往返延遲(RTTi);(d)計算由所述客戶機(14)接收所述多個數(shù)據(jù)分組的相鄰分組之間延遲(Δj)的多個采樣;(e)基于所述計算的延遲采樣確定平滑分組間延遲方差(SVARΔj);以及(f)基于所述確定的RTTi以及所述確定的平滑分組間延遲方差計算所述RTOj。
2.如權(quán)利要求1的方法,還包括基于所述計算的RTOj來控制所述NACK重發(fā)的步驟,所述計算的RTOj是所述NACK分組從所述客戶機(14)到所述服務(wù)器(12)的后續(xù)傳輸之間的延遲。
3.如權(quán)利要求1的方法,其中根據(jù)SVARΔj=(1-β1)*SVARΔj-1+β1*D來確定所述SVARΔj,其中β1設(shè)置為0.25并且D是Δj-SVARΔj-1的絕對差值。
4.如權(quán)利要求1的方法,其中根據(jù)RTOJ=n*RTTi+m*SVARΔj來確定RTOj,其中n設(shè)置為0和4之間并且m設(shè)置為m=4.2792*n-2.6646。
5.如權(quán)利要求1的方法,其中數(shù)據(jù)分組是突發(fā)分組并且延遲是突發(fā)間延遲。
6.一種用于在通信系統(tǒng)中估計重發(fā)超時(RTO)以便支持在服務(wù)器(12)和客戶機(14)之間相同分組的多個重發(fā)的系統(tǒng),包括用于基于實際往返延遲(RTT)以及與所述客戶機(14)系統(tǒng)相關(guān)的平滑分組間延遲變化(SVARΔj)來控制在所述通信鏈路上所述服務(wù)器(12)系統(tǒng)和所述客戶機(14)系統(tǒng)之間數(shù)據(jù)分組的所述多個重發(fā)的裝置,所述RTT是響應(yīng)丟失分組向所述服務(wù)器(12)發(fā)送否定確認(rèn)(NACK)分組和從所述服務(wù)器(12)接收所述丟失分組的相應(yīng)重發(fā)之間的等待時間,所述平滑分組間延遲方差(SVARΔj)是在每個接收的分組或分組突發(fā)之前和之后的延遲變化,由此所述RTO的估計過高和估計不足相對最小化。
7.一種用于管理多個數(shù)據(jù)分組在服務(wù)器系統(tǒng)(12)和客戶機系統(tǒng)(14)之間的通信鏈路上傳輸?shù)南到y(tǒng),包括用于以由分組構(gòu)成的幀的形式接收所述數(shù)據(jù)分組的裝置;用于確定在傳輸期間是否有任何幀分組丟失的裝置;用于請求任何丟失的幀分組重發(fā)的裝置;用于確定對應(yīng)于向所述服務(wù)器(12)請求所述丟失幀重發(fā)和從所述服務(wù)器(12)接收所述丟失幀的相應(yīng)重發(fā)之間的等待時間的往返延遲(RTTi)的裝置;用于確定突發(fā)間分組延遲變化的裝置;以及用于基于所述確定的RTT以及所述確定的突發(fā)間延遲變化來確定重發(fā)超時(RTOj)的裝置。
8.如權(quán)利要求7的系統(tǒng),其中所述用于確定所述RTOj的裝置還包括用于確定所述丟失突發(fā)分組的第一個分組和前面突發(fā)分組的最后一個分組的接收之間的突發(fā)間延遲(Δj)的裝置;以及用于確定平滑突發(fā)間延遲方差(SVARΔj)的裝置。
9.如權(quán)利要求7的系統(tǒng),還包括用于基于所述計算的RTOj來控制所述NACK的多個重發(fā)的裝置,所述計算的RTOj是從所述客戶機(14)到所述服務(wù)器(12)的所述NACK分組的延遲傳輸。
10.如權(quán)利要求7的系統(tǒng),其中根據(jù)SVARΔj=(1-β1)*SVARΔj-1+β1*D來確定所述SVARΔj,其中β1設(shè)置為0.25并且D是Δj-SVARΔj-1的絕對差值。
11.如權(quán)利要求7的系統(tǒng),其中根據(jù)RTOj=n*RTTi+m*SVARΔj來確定RTOj,其中n設(shè)置為1和4之間并且m設(shè)置為m=4.2792*n-2.6646。
全文摘要
公開的是一種用于在服務(wù)器和客戶機之間的互聯(lián)網(wǎng)上估計實時流應(yīng)用中的重發(fā)超時(RTO)的系統(tǒng)和方法。因此,本發(fā)明利用基于NACK應(yīng)用中的重發(fā)超時(RTO)來支持每個丟失分組的多個重發(fā)努力,其中由實際往返延遲(RTT)和平滑分組間延遲方差來估計RTO。
文檔編號H04L12/56GK1430833SQ01806722
公開日2003年7月16日 申請日期2001年12月18日 優(yōu)先權(quán)日2001年1月18日
發(fā)明者D·洛圭諾夫, H·拉哈 申請人:皇家菲利浦電子有限公司