專利名稱:檢測方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在按照預(yù)定通信協(xié)議的發(fā)送方和接收方之間面向數(shù)據(jù)單元的通信中所使用的檢測方法和設(shè)備,其中所述通信協(xié)議規(guī)定通信中的發(fā)送方將要發(fā)送的數(shù)據(jù)量劃分成一個或者更多數(shù)據(jù)單元,以及所述通信中的接收方通過向發(fā)送方返回確認數(shù)據(jù)單元而確認數(shù)據(jù)單元的正確接收。
背景技術(shù):
面向數(shù)據(jù)單元的通信是眾所周知的。在面向數(shù)據(jù)單元的通信中,許多數(shù)據(jù)被劃分成一個或更多的數(shù)據(jù)單元,其中數(shù)據(jù)單元的結(jié)構(gòu)是由通信協(xié)議定義的,通信中的發(fā)送方和接收方遵守該協(xié)議。協(xié)議還定義了特定信息是如何編碼的以及發(fā)送方和/或接收方如何對特定信息作出反應(yīng)。面向數(shù)據(jù)單元的通信也被認為是分組交換通信。應(yīng)當指出連同特定協(xié)議被使用的數(shù)據(jù)單元有不同的名字,例如分組,幀,段等。出于本發(fā)明描述的目的,術(shù)語“數(shù)據(jù)單元”將一般地指在面向數(shù)據(jù)單元通信中使用的各種類型的單元。
許多通信協(xié)議使用來提高可靠性的一個特性是確認接收到的數(shù)據(jù)。更特別地,給定協(xié)議的發(fā)送方或發(fā)送對等體發(fā)送出數(shù)據(jù)單元,給定協(xié)議的接收方或接收對等體通過返回合適的確認數(shù)據(jù)單元確認正確接收。這樣,發(fā)送對等體被通知發(fā)送的數(shù)據(jù)單元也被正確接收到,以及可以因此調(diào)整后續(xù)更多將被發(fā)送的數(shù)據(jù)單元的流量控制。使用確認數(shù)據(jù)單元的協(xié)議的一個例子是所謂的傳輸控制協(xié)議(TCP),其是TCP/IP協(xié)議簇中的一部分。
傳輸控制協(xié)議和TCP/IP協(xié)議簇在由W.Richard Stevens,AddisonWesley編寫的“TCP/IP圖解說明,卷1-協(xié)議”中得到了很好的說明。
為了應(yīng)付數(shù)據(jù)單元或確認數(shù)據(jù)單元可能會丟失的情況,在許多協(xié)議中提供了超時特性,這樣的超時特性意味著在數(shù)據(jù)被發(fā)送時設(shè)置一個超時時段,如果在超時時段已到時特定數(shù)據(jù)還沒有被確認的話,則開始超時響應(yīng)程序。在TCP中,超時響應(yīng)包括重新傳輸沒有得到確認的數(shù)據(jù),以及重新設(shè)置一個或更多的流量控制參數(shù)。
舉一個例子,TCP使用基于窗口的流量控制。TCP是面向字節(jié)的協(xié)議,將要發(fā)送的給定數(shù)目的字節(jié)劃分為所謂的段,以及發(fā)送數(shù)據(jù)的記錄按照字節(jié)被保存,即數(shù)據(jù)已發(fā)送多達哪個字節(jié),以及接收數(shù)據(jù)的記錄同樣按照字節(jié)被保存,即數(shù)據(jù)接收到多達哪個字節(jié)??刂圃摱蔚牧鬟B同確認消息的最簡單的方法是發(fā)送一個段且直到前一次發(fā)送的段被確認后才發(fā)送下一個段。不過,這樣的流量控制的方式不會是非常高效的。已經(jīng)提到的是,TCP使用基于窗口的流量控制,這也被稱作為依據(jù)滑動窗的流量控制。這個概念同樣已經(jīng)在由W.Richard Stevens編寫的前面提及的書中得以很好的描述。
圖2說明滑動窗的概念。正如所看到的,在例子中共計8192字節(jié)的量將要被發(fā)送,其被劃分為8個段。依照發(fā)送窗口控制段的發(fā)送,其中發(fā)送窗口的左端由已經(jīng)被發(fā)送且已經(jīng)確認的段中的數(shù)據(jù)來定義。在圖2的例子中,是已達到2048字節(jié)的數(shù)據(jù),即段1和2。發(fā)送窗口長度的調(diào)整,以及由此窗口右端的調(diào)整是控制過程的事,在這兒不必解釋得太詳盡。
發(fā)送窗口定義了允許其對應(yīng)的確認未完成的數(shù)據(jù)的數(shù)量。在圖2的例子中,該數(shù)據(jù)達到4096字節(jié),即段3和4已經(jīng)被發(fā)送但還沒有被確認,這種已發(fā)送但未被確認的段和發(fā)送窗口右端間的差別定義了可用的窗口,即沒有收到進一步確認依然可以發(fā)送的數(shù)據(jù)。其結(jié)果是,在圖2的例子中,段5和6依然可以被發(fā)送,但段7和8只有在窗口向右移動時才能被發(fā)送,如果確認進一步的段使得左端向右移動以及/或發(fā)送窗口的長度增加的話,窗口右移的情況就會發(fā)生。
此外,應(yīng)當指出的是TCP提供連續(xù)的確認,即在段和段的確認之間不是一一對應(yīng)的,這是因為一個確認消息可以覆蓋多個段。舉個例子,用于接收圖2所示數(shù)據(jù)量的接收對等體可以發(fā)送對長達4096個字節(jié)的一個確認,使得這個確認消息將覆蓋段3和4。
由發(fā)送對等體使用的發(fā)送窗口典型地由所謂的提供窗口或通告窗口來確定,這是由接收對等體向發(fā)送對等體提供的一個數(shù)據(jù)長度。這樣,接收對等體可以影響發(fā)送對等體一次發(fā)送多少段,以及典型地基于接收對等體的接收緩沖區(qū)計算出通告窗口。同樣,通告窗口是一個動態(tài)參量,可以隨著由接收對等體發(fā)送的每一個確認而發(fā)生變化。
除了通告窗口之外,同樣知道定義了所謂的擁塞窗口,它結(jié)合幾個擁塞控制例程例如慢啟動,擁塞避免,快速重傳和快速恢復(fù)一起使用,又一次見由W.Richard Stevens編寫的前面提及的書。擁塞窗口是發(fā)送對等體保存的一個記錄,它是用來考慮沿著發(fā)送對等體與接收對等體之間連接的擁塞的。作為典型的控制機制,發(fā)送窗口將被定義為通告窗口和擁塞窗口中較小的那個。
通告窗口是受接收對等體影響的流量控制,而擁塞窗口是受發(fā)送對等體影響的流量控制,它作為考慮擁塞的一種機制。
在一般意義上,擁塞窗口是自適應(yīng)流量控制參數(shù)的一個實例。在TCP中,前面提及的超時響應(yīng)在于將擁塞窗口重新設(shè)置為一個段并且然后只發(fā)送一個段,即重傳沒有得到確認的段并且因此引起超時。于是發(fā)送對等體等待該重傳段的確認。
自適應(yīng)流量控制參數(shù)的另外一個實例是超時時段本身,例如在TCP中,這被稱作為RTO(重傳超時),RTO作為對一個超時的響應(yīng)而被加倍。
正如已經(jīng)提及的,超時特性是一種對數(shù)據(jù)丟失的檢測機制。也存在其他的數(shù)據(jù)丟失檢測機制。另外一個實例是在TCP中響應(yīng)接收到重復(fù)的確認而重傳數(shù)據(jù)單元。這種機制將在下面加以簡單解釋。
正如已經(jīng)提及的(見例如圖2),要被發(fā)送的數(shù)據(jù)量被劃分為一個序列。傳統(tǒng)的TCP實現(xiàn)中,如果接收對等體已經(jīng)接收并且確認直到給定字節(jié)數(shù)的一定數(shù)據(jù)量(一定數(shù)目連續(xù)的段),則期待序列中的下一個數(shù)據(jù)。例如,如果一直到段4為止的段已經(jīng)被接收到,那么段4被確認并且接收對等體期待接收段5。如果接收對等體然后接收到另外不同于段5的數(shù)據(jù)單元(例如段6,7和8),則接收對等體為接收的每一個數(shù)據(jù)單元繼續(xù)確認段4。其結(jié)果是,接收對等體接收了兩份重復(fù)確認。通常TCP以這樣一種模式實現(xiàn)接收對等體將計數(shù)重復(fù)確認的次數(shù),并且如果達到一定的閾值(例如3),則重傳序列中接收到重復(fù)確認的數(shù)據(jù)單元的下一個數(shù)據(jù)單元。
WO98/37670描述了一種用于在具有有損鏈路的網(wǎng)絡(luò)中改進傳輸協(xié)議性能的方法。據(jù)說通信中的常規(guī)發(fā)送方通過重復(fù)確認的到達或者通過在一個超時間隔內(nèi)無確認,來識別一個分組已經(jīng)由于擁塞而丟失。在發(fā)送方中進行對擁塞做出反應(yīng)的合適的控制方案,諸如慢啟動、快速恢復(fù)和快速重傳。WO98/37670進一步指出當被傳送的分組由于擁塞以外的原因而未被接收到時,擁塞補償措施可以是有害的。
WO98/37670建議使用選擇性確認來指示哪些分組被成功接收而哪些分組是帶有非擁塞比特錯誤被接收的,同時抑制重復(fù)確認以防止調(diào)用擁塞機制。
H.Balakrishnan等的文章“用于改進無線鏈路上的TCP性能的機制比較(A comparison of Mechanisms for Improving TCPPerformance over Wireless Links)”,IEEE/ACM Transactions onNetworking,Vol.5,No.6,1997年12月,XP-000734405,描述了一種與WO98/37670相似的方案。除了選擇性確認外,此文章還提及了顯式丟失通知(ELN)。
發(fā)明內(nèi)容
本發(fā)明的目的是使用一種通信協(xié)議來提高系統(tǒng)中的通信,該協(xié)議規(guī)定發(fā)送數(shù)據(jù)的確認和數(shù)據(jù)丟失檢測功能,例如超時功能或重復(fù)確認響應(yīng)功能。
這個目的通過權(quán)利要求1、5、9和11中描述的、適合用于檢測發(fā)送方接收的確認數(shù)據(jù)單元是對應(yīng)于初始傳輸還是對應(yīng)于重傳的檢測方法和設(shè)備而得以解決。
依照本發(fā)明的檢測方法的應(yīng)用,通信中發(fā)送方將執(zhí)行響應(yīng)程序來響應(yīng)觸發(fā)數(shù)據(jù)丟失檢測機制的事件,其中響應(yīng)程序包括至少兩個不同的模式用于調(diào)整流量控制中使用的自適應(yīng)參數(shù)。這樣本發(fā)明的方法和設(shè)備在管理觸發(fā)事件上具有很高的靈活性,以及特別是可以以依靠觸發(fā)事件的各種潛在的原因而選擇響應(yīng)程序的方式來實現(xiàn),以致于可以調(diào)用針對特定態(tài)勢的正確響應(yīng)策略并因此避免實際上有可能在觸發(fā)數(shù)據(jù)丟失檢測機制后造成惡化態(tài)勢的策略。
數(shù)據(jù)丟失檢測機制是一種能夠檢測到數(shù)據(jù)丟失的機制。實例是超時機制或重復(fù)確認機制。自然地,本發(fā)明適用于各種合適的數(shù)據(jù)丟失檢測機制。
響應(yīng)程序可包括至少兩種不同的模式用于調(diào)整流量控制中使用的自適應(yīng)參數(shù)。舉個例子,有兩種模式,各自與超時的不同原因或預(yù)定的重復(fù)確認次數(shù)(例如前面提及的3)有關(guān)。更特別地,第一種模式與數(shù)據(jù)單元的丟失有關(guān),以及第二種模式與沿著連接的過度延遲有關(guān)。由于使用了兩種不同的模式,所以可能調(diào)整參數(shù),使該參數(shù)對超時或重復(fù)確認的原因是適合的。因此,流量控制程序?qū)ㄒ粋€或更多的評估和判斷步驟,觸發(fā)事件將在其中得以鑒定,例如對關(guān)于引起事件的原因進行分類。然后,依賴這個特征的結(jié)果,會激活一個合適的響應(yīng)程序。在上述例子的情況下,如果確定超時或重復(fù)確認是由于數(shù)據(jù)單元丟失而引起的,那么已知的對數(shù)據(jù)單元丟失的響應(yīng)程序可能會運行,例如從傳統(tǒng)TCP就已知道,該協(xié)議假定任何超時或接收到幾個重復(fù)確認是由于數(shù)據(jù)單元丟失而引起的。然而還有第二種模式,以及如果確定超時或重復(fù)確認是由于沿著連接的過度延遲而引起,那么運行過度延遲響應(yīng)程序,這將典型地不同于針對數(shù)據(jù)單元丟失的響應(yīng)程序。
更特別地,將在下面更為詳細介紹的是,通過降低傳輸速率因而避免進一步擁塞來對數(shù)據(jù)單元已經(jīng)丟失的判定進行回答。另一方面,如果沿著連接發(fā)生過度延遲,那么為響應(yīng)假定的數(shù)據(jù)單元丟失而采取的策略將毫無作用,相反這些策略可能會實際上加劇過度延遲引起的問題。因此,過度延遲的響應(yīng)程序?qū)⒌湫偷牟煌?,以及例如包括將傳輸速率保持在早先的級別上,但另一方面增加超時時段,從而避免了更多的不必要的重傳。
自然地,本發(fā)明的檢測方法的應(yīng)用可以實現(xiàn)為提供任意數(shù)目的模式或針對各種觸發(fā)事件原因的響應(yīng)程序。模式的數(shù)目和各種模式所采取的特定的策略自然地依賴于特定的態(tài)勢,即所選擇的協(xié)議,給定的通信狀況等。
一個重要方面是雖然數(shù)據(jù)丟失檢測機制能夠檢測到數(shù)據(jù)丟失,對數(shù)據(jù)丟失檢測機制觸發(fā)的反應(yīng)不會假定數(shù)據(jù)丟失必然會發(fā)生,相反的是可能有靈活的響應(yīng),它可以考慮觸發(fā)事件的各種原因。
本發(fā)明的另外一個方面和優(yōu)點從下面的詳圖描述可以得到更好的理解,參照圖表,其中圖1說明了應(yīng)用本發(fā)明的檢測方法的一個總體控制程序的實施方案;圖2是用于描述基于窗口流量控制概念的說明圖;圖3是用于解釋本發(fā)明優(yōu)點的圖表;以及圖4是解釋可能在兩臺主機之間的連接中引起過度延遲的態(tài)勢的說明圖。
具體實施例方式
雖然下面的描述一般針對使用數(shù)據(jù)確認以及同時提供超時特性的任何通信協(xié)議,通常還將給出涉及來自TCP/IP協(xié)議簇的傳輸控制協(xié)議TCP的例子。針對該協(xié)議的本發(fā)明的應(yīng)用是優(yōu)選的實施方案。為了避免任何不必要的重復(fù),該應(yīng)用介紹中的公開內(nèi)容被引入到本發(fā)明的公開內(nèi)容。
圖1顯示的是一個部分流圖。正如可以看見的,步驟S1表明進入響應(yīng)程序。圖1沒有顯示作為此點先導(dǎo)的流量控制程序,因為對本說明來說,它并不重要。舉個例子,它或許是結(jié)合圖2加以解釋并且例如從TCP已知的基于窗口的流量控制程序。只有具有數(shù)據(jù)確認和數(shù)據(jù)丟失檢測特性對本發(fā)明來說是重要的,因此協(xié)議的發(fā)送對等體具有檢測可能的或潛在的數(shù)據(jù)丟失的能力,以及可以實施相應(yīng)的響應(yīng)程序。正如已經(jīng)提及的,數(shù)據(jù)丟失檢測特性或許例如是超時特性或重復(fù)確認檢測特性。
在圖1的例子中,在響應(yīng)程序被進入后,在步驟S2中存儲用于流量控制的所選自適應(yīng)參數(shù)以及重新設(shè)置到預(yù)定值。舉個例子,超時時段和/或前面所述的擁塞窗口都是這樣的自適應(yīng)流量控制參數(shù)。在傳統(tǒng)的TCP中,擁塞窗口典型地被重新設(shè)置為一個段的值以及同時RTO加倍。應(yīng)該指出不是所有在流量控制程序中使用的自適應(yīng)參數(shù)事實上都需要被改變,相反只是其中經(jīng)過選擇的數(shù)目需要。
同樣,顯然本發(fā)明自然并不局限于基于窗口的流量控制以及相關(guān)的自適應(yīng)參數(shù),相反本發(fā)明適用于任何流量控制原理以及相關(guān)的自適應(yīng)參數(shù)。
回到圖1,在步驟S3中觸發(fā)事件(例如引起超時)的數(shù)據(jù)單元被重傳。換句話說,當繼續(xù)超時的例子時,在超時時段過程中沒有接收到確認的數(shù)據(jù)單元被重傳。然后,在隨后時刻在步驟S4中確定和被重傳數(shù)據(jù)單元相關(guān)的確認是否已經(jīng)被接收到。這或許是累積確認或也可能是單個確認。應(yīng)該指出圖1中虛線顯示的是其他或許會插入的步驟,但這些對本發(fā)明來說并不重要。然后,依據(jù)按照本發(fā)明的圖1中的例子,步驟S5確定和被重傳的數(shù)據(jù)單元有關(guān)的確認事實上是否確認了數(shù)據(jù)單元的初始傳輸或重傳。應(yīng)該指出“初始傳輸”可能已經(jīng)是一個重傳,這樣重傳可能是重傳的重傳等。實現(xiàn)步驟S5有各種可能,這將再深入解釋。
如果步驟S5確定事實上確認消息確認了數(shù)據(jù)單元的重傳,那么程序繼續(xù)到步驟S7,在這一步驟中運行數(shù)據(jù)單元丟失響應(yīng)程序,這是因為判定步驟S5的輸出值為否表明丟失了數(shù)據(jù)單元的初始傳輸。在TCP的例子中,步驟S7將在于針對數(shù)據(jù)單元丟失的傳統(tǒng)策略中。
相反,如果判定步驟S5回答為肯定,那么程序繼續(xù)到步驟S6,在這一步驟中運行確認過度延遲的響應(yīng)程序。換句話說,因為步驟S5表明事實上數(shù)據(jù)單元的初始傳輸沒有丟失,但只是過度延遲了,必須采取相應(yīng)的策略。舉個例子,當把TCP作為協(xié)議實例時,在于將擁塞窗口返回到在步驟S2中存儲的值以及另一方面使超時時段適應(yīng)于延遲。換句話說,和初始傳輸有關(guān)的往返行程時間RTT以及對初始傳輸?shù)拇_認可以用作調(diào)整超時時段的基礎(chǔ)。因此,由于過度延遲引起的更多的不必要的重傳和超時或重復(fù)確認可以避免。
優(yōu)選地,擁塞窗口不是被簡單地重置成先前的值,而是相反如果響應(yīng)程序還沒有發(fā)生的話,即還沒有觸發(fā)數(shù)據(jù)丟失檢測機制,則該值被設(shè)置為已假定的值。
正如可以看到的,圖1的例子說明包括步驟S2,S3,S4,S5和S7的第一模式,以及包括步驟S2,S3,S4,S5和S6的第二模式。
為了更好地解釋所述實例,現(xiàn)在將參照圖3,該圖說明了一個流量控制過程的例子,該過程連同傳統(tǒng)的TCP一起實施。圖表說明了以字節(jié)為單位隨著時間過去而傳送的數(shù)據(jù)的數(shù)量。正如可以看到的,頭兩個段在時間t=4s時被發(fā)送。然后由于接收確認數(shù)據(jù)單元和沒有顯示的自適應(yīng)參數(shù)的調(diào)整的相互作用,段被發(fā)送。
出于解釋的目的,應(yīng)該指出菱形符號指段,以及方形符號指確認數(shù)據(jù)單元。菱形符號指出段的第一個字節(jié),而方形符號指出最小的沒有確認的字節(jié)。在某個段水平上指示的確認數(shù)據(jù)單元總是確認直到該段水平的已發(fā)送段。換句話說,在6400(t=12s)字節(jié)段水平的確認是對低于6400字節(jié)的段的確認,但不包括6400字節(jié)。恰恰相反,正如圖中明確指出的,位于字節(jié)6400的段(t=10s)是引起超時的數(shù)據(jù)單元或分組。其結(jié)果是,執(zhí)行了在6400字節(jié)水平的數(shù)據(jù)單元的重傳。
現(xiàn)在,如果假定圖3所示的超時是由過度延遲引起的而不是由所示丟失的第一分組所引起的,那么重傳具有以下負面的影響。
首先,它將導(dǎo)致降低的吞吐量性能,這是由于同樣的數(shù)據(jù)必須穿過連接或連接路徑兩次,這將浪費那些否則已經(jīng)用于有用數(shù)據(jù)的帶寬。這個負面的影響將在任何通過重傳數(shù)據(jù)單元而錯誤響應(yīng)超時的協(xié)議中產(chǎn)生。
如果,正如圖3所示,使用了TCP協(xié)議,則發(fā)送對等體對不是由于數(shù)據(jù)單元丟失引起的超時的反應(yīng)是特別不利的發(fā)送方將重傳所有未完成確認的分組,這會降低其傳輸速率。在圖3中已清楚地對其加以說明。
應(yīng)當指出上述不是由于數(shù)據(jù)單元丟失引起的超時也被稱作為假超時。
同樣正如圖3所示,在傳統(tǒng)的TCP中發(fā)送方將所有和重傳數(shù)據(jù)單元相關(guān)的確認誤釋為對重傳的確認,即便這些確認(ACK)實際上是延遲的初始傳輸確認。
圖3沒有說明的是,由發(fā)送對等體發(fā)送的重復(fù)數(shù)據(jù)單元附帶地將觸發(fā)接收對等體的重復(fù)確認,這將導(dǎo)致傳統(tǒng)TCP發(fā)送方傳輸速率的另一種降低,即擁塞窗口被設(shè)置為其先前值的一半。
超出TCP超時時段可以解決的范圍之外的過度延遲的出現(xiàn),或許特別地出現(xiàn)在無線網(wǎng)絡(luò)中或這種其至少一部分運行在無線鏈路上的協(xié)議連接中。本申請的發(fā)明人認識到假超時在這樣的網(wǎng)絡(luò)中通常會很經(jīng)常地發(fā)生,以致于產(chǎn)生性能嚴重降低的結(jié)果。現(xiàn)在將簡要地論及這樣的實例。
圖4說明了一種情況,在這種情況中兩臺主機計算機充當TCP(由在該圖底部和頂部的主機到主機的長箭頭來指出)的對等體。較低的協(xié)議層包括無線接入網(wǎng)絡(luò)到互聯(lián)網(wǎng)的無線鏈路。沒有顯示互聯(lián)網(wǎng)和右邊主機之間的連接。用于無線鏈路的協(xié)議的一個實例是所謂的無線鏈路控制協(xié)議RLC。正如圖4所表明的,傳輸層協(xié)議(例如TCP)和鏈路層協(xié)議(例如RLC)均具有ARQ(自動重傳請求)功能。這意味著這些協(xié)議都能實現(xiàn)超時和重傳功能。在圖4的情況中,由于ARQ正在鏈路層被使用,所以在鏈路層和傳輸層之間產(chǎn)生了競態(tài)情況當鏈路層重傳數(shù)據(jù)時,傳輸層重傳計時器或許會到時,從而導(dǎo)致假超時。在鏈路層上的重傳可以是由于例如傳輸錯誤或切換導(dǎo)致的數(shù)據(jù)丟失。
應(yīng)當指出無線網(wǎng)絡(luò)上的傳輸延遲通常是傳輸層協(xié)議中的發(fā)送和接收對等體之間端對端延遲中的相當大的一部分。如果在這種情形下,在無線網(wǎng)絡(luò)中傳輸層連接的可用帶寬在一段短時間上顯著降低,則所引起的傳輸層發(fā)送方和接收方之間端對端延遲的增加會導(dǎo)致假超時。帶寬降低的實例包括移動主機執(zhí)行切換到一個小區(qū),該小區(qū)提供的帶寬小于舊小區(qū)帶寬。
正如前面已經(jīng)指出的,當使用本發(fā)明時,可以避免結(jié)合圖3所描述的問題。更特別地是,將結(jié)合圖1所描述的方法應(yīng)用到圖3所描述的問題時,則發(fā)送對等體能夠區(qū)分對數(shù)據(jù)單元初始傳輸?shù)拇_認數(shù)據(jù)單元和對數(shù)據(jù)單元重傳的確認數(shù)據(jù)單元。從這一信息,發(fā)送方能夠確定是否發(fā)生了假超時,或是否真正地存在數(shù)據(jù)單元丟失。該發(fā)送方然后可以相應(yīng)作出反應(yīng)。
更特別地,在圖3的實例中,使用本發(fā)明的發(fā)送方將能夠把在已重傳所示的第一分組之后接收到的確認數(shù)據(jù)單元識別為初始傳輸(t=10s)的確認而不是重傳(t=15s)的確認。由于這個原因,發(fā)送方將對過度延遲執(zhí)行一個合適的響應(yīng)程序,即不重傳第一個重傳數(shù)據(jù)單元之后的那個數(shù)據(jù)單元,以及同樣不會降低傳輸速率,相反發(fā)送方將提高以數(shù)據(jù)單元初始發(fā)送和該初始發(fā)送的相應(yīng)確認數(shù)據(jù)單元接收之間測量的延遲為基礎(chǔ)的流量控制中所使用的超時時段。這樣,可以避免另外的假重傳和超時。
正如可以看到的,本發(fā)明能夠提供一種機制,在使用提供數(shù)據(jù)確認和超時功能或重復(fù)確認檢測功能的一種協(xié)議時允許更為靈活的通信系統(tǒng)。在剛剛描述的實例中,本發(fā)明的應(yīng)用能夠鑒定觸發(fā)事件,即區(qū)分至少兩種不同的原因,以及然后能夠調(diào)用合適的響應(yīng)程序。應(yīng)該指出在上述實例中,用于調(diào)整自適應(yīng)參數(shù)的模式一方面與數(shù)據(jù)單元丟失有關(guān),另一方面與過度延遲有關(guān),但自然本發(fā)明的應(yīng)用決不是局限在這上面。相反,用于調(diào)整自適應(yīng)參數(shù)的模式與任何可能引起超時事件或重復(fù)確認事件的原因有關(guān)。
在圖1所描述的實施方案中,在實施本發(fā)明的步驟S5中確定和給定數(shù)據(jù)單元有關(guān)的確認數(shù)據(jù)單元是否確認了初始傳輸或該給定數(shù)據(jù)單元的重傳。依據(jù)實現(xiàn)這一步驟的第一優(yōu)選實施方案,發(fā)送方保存了與發(fā)送和接收對等體之間的連接有關(guān)的往返行程時間RTT的記錄,以及特別地保存了在一直到考慮下的時間點的連接或會話過程中找到的最短RTT的記錄。然后,如果在小于該最小RTT預(yù)定部分的時段內(nèi)接收到對重傳數(shù)據(jù)單元的確認數(shù)據(jù)單元,那么發(fā)送方確定這個確認屬于初始傳輸而不是屬于重傳。這個部分可以被設(shè)置為固定值,或其本身是一個自適應(yīng)參數(shù)。自然,是與該部分相乘的比較值不必要是最短測試的RTT,相反發(fā)送方保持平均的RTT值也是有可能的。在這個意義上,與該部分相乘的比較值通常是在連接過程(在會話過程)中測量的一個或更多RTT值的一個函數(shù)。
依據(jù)實現(xiàn)步驟S5的另一個優(yōu)選實施方案,發(fā)送方將一個標志加入到它發(fā)送的數(shù)據(jù)單元中,在其中以允許區(qū)分初始傳輸和重傳的方式定義該標志。然后,接收方可以因此標記確認數(shù)據(jù)單元,以致于發(fā)送方能夠識別一個確認對應(yīng)的是初始傳輸還是重傳。
可以用任何希望的方式來完成這個數(shù)據(jù)單元的標志。舉個例子,在理論上簡單地指定數(shù)據(jù)單元中的一個單比特位是可能的,其中值0表明是初始傳輸而值1表明是重傳,或反之亦然。在一般意義上,可以選用同樣可以表達更多信息的一個位串。然而,結(jié)合提供這樣選項的協(xié)議,優(yōu)選的是使用時間戳選項。這一選項對例如TCP來說是熟知的,見前面提及的由W.Richard Stevens編寫的書。換句話說,優(yōu)選的是在發(fā)送的數(shù)據(jù)單元中包括時間戳,用于表明數(shù)據(jù)單元何時發(fā)送。然后接收方可以簡單地在確認數(shù)據(jù)單元中包括同一時間戳,因此發(fā)送方有獨一無二地方式來識別確認對應(yīng)的數(shù)據(jù)單元。
另外的總體方法和系統(tǒng)的實施例E1.用于在依照預(yù)定的通信協(xié)議工作的發(fā)送方和接收方之間控制面向數(shù)據(jù)單元通信的方法,其中該發(fā)送方將多個要被發(fā)送的數(shù)據(jù)劃分成一個或更多具有該協(xié)議確定結(jié)構(gòu)的數(shù)據(jù)單元,該接收方通過向該發(fā)送方返回確認數(shù)據(jù)單元來確認正確接收到數(shù)據(jù)單元,依照在一個或更多自適應(yīng)參數(shù)和該確認數(shù)據(jù)單元基礎(chǔ)上執(zhí)行的流量控制程序,由該發(fā)送方發(fā)送該數(shù)據(jù)單元,以及該流量控制程序包括能夠在該通信中檢測到數(shù)據(jù)丟失的數(shù)據(jù)丟失檢測機制,由一個或更多預(yù)定事件觸發(fā)該數(shù)據(jù)丟失檢測機制來表明潛在的數(shù)據(jù)丟失,其中響應(yīng)該數(shù)據(jù)丟失檢測機制的觸發(fā)來執(zhí)行相應(yīng)的響應(yīng)程序,該響應(yīng)程序包括至少兩種用于調(diào)整該一個或更多自適應(yīng)參數(shù)的不同模式。
E2.按照實施例E1的方法,其中該數(shù)據(jù)丟失檢測機制是一個超時機制,使得在一個給定數(shù)據(jù)單元被發(fā)送之后,該發(fā)送方監(jiān)視超時時段以及如果在超時時段到時之前還沒有接收到和該給定數(shù)據(jù)單元有關(guān)的確認數(shù)據(jù)單元,則觸發(fā)該超時機制。
E3.按照實施例E1的方法,其中該數(shù)據(jù)丟失檢測機制是重復(fù)確認檢測機制,使得該發(fā)送方監(jiān)視接收到的確認,以及如果一個數(shù)據(jù)單元被確認了預(yù)定次數(shù),則觸發(fā)該重復(fù)確認檢測機制。
E4.按照實施例E2或E3的方法,其中該響應(yīng)程序包括重傳給定的數(shù)據(jù)單元。
E5.按照實施例E4的方法,其中基于在重傳該給定數(shù)據(jù)單元之后由該發(fā)送方接收到的一個或更多確認數(shù)據(jù)單元,判定至少兩種模式中哪一種模式被選用來調(diào)整該自適應(yīng)參數(shù)。
E6.按照實施例E2的方法,其中超時時段是該自適應(yīng)參數(shù)中的一個。
E7.按照實施例E1到E6之一的方法,其中該流量控制程序是基于窗口的,以及一個或更多流量控制窗口是該自適應(yīng)參數(shù)之一。
E8.按照實施例E5的方法,其中該至少兩種模式包括第一種和第二種模式,該第一種模式與觸發(fā)事件是由于給定數(shù)據(jù)單元丟失引起的判定有關(guān),而第二種模式與給定數(shù)據(jù)單元或該給定數(shù)據(jù)單元的確認數(shù)據(jù)單元已經(jīng)過度延遲的判定有關(guān)。
E9.按照實施例E8的方法,其中該發(fā)送方標志被發(fā)送的數(shù)據(jù)單元使得可以將初始傳輸與重傳區(qū)分開來,以及該接收方相應(yīng)地標志確認數(shù)據(jù)單元,使得可以將初始發(fā)送數(shù)據(jù)單元的確認與數(shù)據(jù)單元重傳的確認區(qū)分開來。
E10.按照實施例E9的方法,其中發(fā)送方通過在每一個發(fā)送數(shù)據(jù)單元中包括一個時間戳來標志數(shù)據(jù)單元,該時間戳表明該數(shù)據(jù)單元被發(fā)送的時間,以及該接收方通過在該接收到的數(shù)據(jù)單元的確認數(shù)據(jù)單元中包括該接收到的數(shù)據(jù)單元中包含的時間戳來標志該接收到數(shù)據(jù)單元的確認數(shù)據(jù)單元。
E11.按照實施例E9的方法,其中發(fā)送方通過在每一個發(fā)送數(shù)據(jù)單元中包括一個位串來標志數(shù)據(jù)單元,該位串具有至少兩個不同的值來區(qū)分初始傳輸和重傳,以及接收方通過在該接收數(shù)據(jù)單元的確認數(shù)據(jù)單元中包括該接收數(shù)據(jù)單元中包含的位串來標志該接收到的數(shù)據(jù)單元的確認數(shù)據(jù)單元。
E12.按照實施例E11的方法,其中該位串由單個比特組成。
E13.按照實施例E11的方法,其中該位串由多個比特組成,因此該位串能夠區(qū)分不同的重傳。
E13.按照實施例E11或E12的方法,其中如果在重傳該給定數(shù)據(jù)單元之后接收到的、和該給定數(shù)據(jù)單元有關(guān)的第一確認數(shù)據(jù)單元確認了該給定數(shù)據(jù)單元的重傳,則選擇該第一種模式,以及如果在重傳該給定數(shù)據(jù)單元之后接收到的、和該給定數(shù)據(jù)單元有關(guān)的第一確認數(shù)據(jù)單元確認了該給定數(shù)據(jù)單元的初始傳輸,則選擇該第二種模式。
E14.按照實施例E9的方法,其中發(fā)送方測量與連接相關(guān)的用于發(fā)送該數(shù)據(jù)量的往返行程時間,確定該給定數(shù)據(jù)單元重傳與接收到和該給定數(shù)據(jù)單元相關(guān)的第一確認數(shù)據(jù)單元之間的時間,并且將該時間與來自對一個或更多該往返行程時間的測量所得值相比較,以及基于比較結(jié)果選擇該第一種或第二種模式。
E15.按照實施例E14的方法,其中從對該往返行程時間的測量所得值是用于連接的最小往返行程時間,以及如果該給定數(shù)據(jù)單元的重傳與接收到和該給定數(shù)據(jù)單元相關(guān)的第一確認數(shù)據(jù)單元之間的時間小于該最小往返行程時間預(yù)定部分,則選擇第二種模式。
E16.按照實施例E9-E15之一的方法,其中第二種模式包括基于在該給定數(shù)據(jù)單元初始傳輸與接收到和該給定數(shù)據(jù)單元相關(guān)的第一確認數(shù)據(jù)單元之間的時間來調(diào)整超時時段。
E17.按照實施例E9-E16之一的方法,其中流量控制程序是基于窗口的,以及使用了擁塞窗口,其中在該觸發(fā)事件發(fā)生后存儲在該觸發(fā)事件時擁塞窗口的值以及隨后將該擁塞窗口的值重新設(shè)置為預(yù)定的值,以及如果在接收到和該給定數(shù)據(jù)單元相關(guān)的第一確認數(shù)據(jù)單元之后選擇了第二種模式,則如果響應(yīng)程序尚未發(fā)生,就將該擁塞窗口的值設(shè)置為應(yīng)該已經(jīng)假定的值。
E18.依照預(yù)定通信協(xié)議用于面向數(shù)據(jù)單元通信的通信設(shè)備,其中該通信協(xié)議規(guī)定通信中的發(fā)送方將多個要被發(fā)送的數(shù)據(jù)劃分成一個或更多具有該協(xié)議確定結(jié)構(gòu)的數(shù)據(jù)單元以及在該通信中接收方通過向發(fā)送方返回確認數(shù)據(jù)單元來確認正確接收到數(shù)據(jù)單元,其中該通信設(shè)備在充當一個發(fā)送方時,被安排為依照在一個或更多自適應(yīng)參數(shù)和該確認數(shù)據(jù)單元基礎(chǔ)上執(zhí)行的流量控制程序發(fā)送數(shù)據(jù)單元,該流量控制程序包括能夠在該通信中檢測到數(shù)據(jù)丟失的數(shù)據(jù)丟失檢測機制,由一個或更多預(yù)定事件觸發(fā)該數(shù)據(jù)丟失檢測機制來表明潛在的數(shù)據(jù)丟失,其中響應(yīng)該數(shù)據(jù)丟失檢測機制的觸發(fā)來執(zhí)行相應(yīng)的響應(yīng)程序,該響應(yīng)程序包括至少兩種用于調(diào)整該一個或更多自適應(yīng)參數(shù)的不同模式。
E19.按照實施例E18的設(shè)備,其中該數(shù)據(jù)丟失檢測機制是一個超時機制,使得在一個給定數(shù)據(jù)單元被發(fā)送之后,該發(fā)送方監(jiān)視超時時段以及如果在超時時段到時之前還沒有接收到和該給定數(shù)據(jù)單元有關(guān)的確認數(shù)據(jù)單元,則觸發(fā)該超時機制。
E20.按照實施例E18的設(shè)備,其中該數(shù)據(jù)丟失檢測機制是重復(fù)確認檢測機制,使得該發(fā)送方監(jiān)視接收到的確認,以及如果一個數(shù)據(jù)單元被確認了預(yù)定次數(shù),則觸發(fā)該重復(fù)確認檢測機制。
E21.按照實施例E20的設(shè)備,其中所述設(shè)備在充當發(fā)送方時被安排成將所述數(shù)據(jù)量劃分成一個定義的序列,所述設(shè)備在充當接收方時被安排成監(jiān)視所述序列方面的接收的數(shù)據(jù)單元的順序,使得如果數(shù)據(jù)單元是被無序地正確接收的,則對于無序的數(shù)據(jù)單元的每個接收來確認按序正確接收的最后的數(shù)據(jù)單元,以及所述重復(fù)確認檢測機制使得在給定數(shù)據(jù)單元被發(fā)送后,所述發(fā)送方監(jiān)視所接收的確認,以及如果所述給定數(shù)據(jù)單元之前的數(shù)據(jù)單元被確認預(yù)定次數(shù),則觸發(fā)所述重復(fù)確認檢測機制。
E22.按照實施例E19或E21的設(shè)備,其中該響應(yīng)程序包括重傳所述給定的數(shù)據(jù)單元。
E23.按照實施例E22的設(shè)備,其中基于在重傳該給定數(shù)據(jù)單元之后由該發(fā)送方接收到的一個或更多確認數(shù)據(jù)單元,判定至少兩種模式中哪一種模式被選用來調(diào)整該自適應(yīng)參數(shù)。
E24.按照實施例E19的設(shè)備,其中超時時段是該自適應(yīng)參數(shù)中的一個。
E25.按照實施例E18到E24之一的設(shè)備,其中該流量控制程序是基于窗口的,以及一個或更多流量控制窗口是該自適應(yīng)參數(shù)之一。
E26.按照實施例E23的設(shè)備,其中該至少兩種模式包括第一種和第二種模式,該第一種模式與觸發(fā)事件是由于給定數(shù)據(jù)單元丟失引起的判定有關(guān),而第二種模式與給定數(shù)據(jù)單元或該給定數(shù)據(jù)單元的確認數(shù)據(jù)單元已經(jīng)過度延遲的判定有關(guān)。
E27.按照實施例E26的設(shè)備,其中該設(shè)備在充當發(fā)送方時會標志被發(fā)送的數(shù)據(jù)單元使得可以將初始傳輸與重傳區(qū)分開來,以及該設(shè)備在充當接收方時相應(yīng)地標志確認數(shù)據(jù)單元,使得可以將初始發(fā)送數(shù)據(jù)單元的確認與數(shù)據(jù)單元重傳的確認區(qū)分開來。
E28.按照實施例E27的設(shè)備,其中設(shè)備在充當發(fā)送方時通過在每一個發(fā)送數(shù)據(jù)單元中包括一個時間戳來標志數(shù)據(jù)單元,該時間戳表明該數(shù)據(jù)單元被發(fā)送的時間,以及設(shè)備在充當接收方時通過在該接收到的數(shù)據(jù)單元的確認數(shù)據(jù)單元中包括該接收到的數(shù)據(jù)單元中包含的時間戳來標志該接收到數(shù)據(jù)單元的確認數(shù)據(jù)單元。
E29.按照實施例E27的設(shè)備,其中設(shè)備在充當發(fā)送方時通過在每一個發(fā)送數(shù)據(jù)單元中包括一個位串來標志數(shù)據(jù)單元,該位串具有至少兩個不同的值來區(qū)分初始傳輸和重傳,以及設(shè)備在充當接收方時通過在該接收數(shù)據(jù)單元的確認數(shù)據(jù)單元中包括該接收數(shù)據(jù)單元中包含的位串來標志該接收到的數(shù)據(jù)單元的確認數(shù)據(jù)單元。
E30.按照實施例E28或E29的設(shè)備,其中如果在重傳該給定數(shù)據(jù)單元之后接收到的、和該給定數(shù)據(jù)單元有關(guān)的第一確認數(shù)據(jù)單元確認了該給定數(shù)據(jù)單元的重傳,則選擇該第一種模式,以及如果在重傳該給定數(shù)據(jù)單元之后接收到的、和該給定數(shù)據(jù)單元有關(guān)的第一確認數(shù)據(jù)單元確認了該給定數(shù)據(jù)單元的初始傳輸,則選擇該第二種模式。
E31.按照實施例E26的設(shè)備,其中設(shè)備在充當發(fā)送方時測量與連接相關(guān)的用于發(fā)送該數(shù)據(jù)量的往返行程時間,確定該給定數(shù)據(jù)單元重傳與接收到和該給定數(shù)據(jù)單元相關(guān)的第一確認數(shù)據(jù)單元之間的時間,并且將該時間與來自對一個或更多該往返行程時間的測量所得值相比較,以及基于比較結(jié)果選擇該第一種或第二種模式。
E32.按照實施例E31的設(shè)備,其中從對該往返行程時間的測量所得值是用于連接的最小往返行程時間,以及如果該給定數(shù)據(jù)單元的重傳與接收到和該給定數(shù)據(jù)單元相關(guān)的第一確認數(shù)據(jù)單元之間的時間小于該最小往返行程時間預(yù)定部分,則選擇第二種模式。
E33.按照實施例E26到E32之一的設(shè)備,其中第二種模式包括基于在該給定數(shù)據(jù)單元初始傳輸與接收到和該給定數(shù)據(jù)單元相關(guān)的第一確認數(shù)據(jù)單元之間的時間來調(diào)整超時時段。
E34.按照實施例E26到E33之一的設(shè)備,其中流量控制程序是基于窗口的,以及使用了擁塞窗口,其中在該觸發(fā)事件發(fā)生后存儲在該觸發(fā)事件時擁塞窗口的值以及隨后將該擁塞窗口的值重新設(shè)置為預(yù)定的值,以及如果在接收到和該給定數(shù)據(jù)單元相關(guān)的第一確認數(shù)據(jù)單元之后選擇了第二種模式,則如果響應(yīng)程序尚未發(fā)生,就將該擁塞窗口的值設(shè)置為應(yīng)該已經(jīng)假定的值。
權(quán)利要求
1.一種在按照預(yù)定通信協(xié)議的發(fā)送方和接收方之間的面向數(shù)據(jù)單元的通信中的方法,用于檢測由所述發(fā)送方接收的確認數(shù)據(jù)單元是對應(yīng)于一個初始傳輸還是對應(yīng)于一個重傳,其中所述通信協(xié)議規(guī)定通信中的發(fā)送方將要發(fā)送的數(shù)據(jù)量劃分到一個或者更多數(shù)據(jù)單元中,以及該通信中的接收方通過向該發(fā)送方返回確認數(shù)據(jù)單元來確認數(shù)據(jù)單元的正確接收,該方法包括所述發(fā)送方測量與所述發(fā)送方和接收方之間的連接相關(guān)聯(lián)的往返行程時間;確定數(shù)據(jù)單元的重傳和與所述數(shù)據(jù)單元相關(guān)聯(lián)的第一個確認數(shù)據(jù)單元的接收之間的時間,并將所述時間與從一個或者更多所述往返行程時間測量得到的值進行比較;以及基于所述比較來確定所接收的確認數(shù)據(jù)單元是與一個初始傳輸相關(guān)聯(lián)還是與一個重傳相關(guān)聯(lián)。
2.權(quán)利要求1的方法,其中從所述往返行程時間測量得到的值是該連接的最短往返行程時間,且如果所述數(shù)據(jù)單元的重傳和與所述數(shù)據(jù)單元相關(guān)聯(lián)的第一個確認數(shù)據(jù)單元的接收之間的時間不小于所述往返行程時間的一個預(yù)定部分,則所述接收的確認數(shù)據(jù)單元被確定為與重傳相關(guān)聯(lián)。
3.一種用于按照預(yù)定通信協(xié)議的發(fā)送方和接收方之間的面向數(shù)據(jù)單元的通信的通信設(shè)備,其中所述通信協(xié)議規(guī)定通信中的發(fā)送方將要發(fā)送的數(shù)據(jù)量劃分到一個或者更多數(shù)據(jù)單元中,以及該通信中的接收方通過向該發(fā)送方返回確認數(shù)據(jù)單元來確認數(shù)據(jù)單元的正確接收,其中所述通信設(shè)備被安排,使得在充當一個發(fā)送方時,它測量與所述發(fā)送方和接收方之間的連接相關(guān)聯(lián)的往返行程時間;確定數(shù)據(jù)單元的重傳和與所述數(shù)據(jù)單元相關(guān)聯(lián)的第一個確認數(shù)據(jù)單元的接收之間的時間,并將所述時間與從一個或者更多所述往返行程時間測量得到的值進行比較;以及基于所述比較來確定所接收的確認數(shù)據(jù)單元是與一個初始傳輸相關(guān)聯(lián)還是與一個重傳相關(guān)聯(lián)。
4.權(quán)利要求3的設(shè)備,其中所述通信設(shè)備還被安排,使得從所述往返行程時間測量得到的值是該連接的最短往返行程時間,且如果所述數(shù)據(jù)單元的重傳和與所述數(shù)據(jù)單元相關(guān)聯(lián)的第一個確認數(shù)據(jù)單元的接收之間的時間不小于所述往返行程時間的一個預(yù)定部分,則所述接收的確認數(shù)據(jù)單元被確定為與重傳相關(guān)聯(lián)。
全文摘要
描述了在按照一個預(yù)定通信協(xié)議的面向數(shù)據(jù)單元的通信中的方法和設(shè)備,用于檢測由所述發(fā)送方接收的確認數(shù)據(jù)單元是對應(yīng)于一個初始傳輸還是對應(yīng)于一個重傳,其中所述通信協(xié)議規(guī)定通信中的發(fā)送方將要發(fā)送的數(shù)據(jù)量劃分到一個或者多個數(shù)據(jù)單元中,以及所述通信中的接收方通過向該發(fā)送方返回確認數(shù)據(jù)單元來確認數(shù)據(jù)單元的正確接收。
文檔編號H04L1/18GK101039272SQ20071008810
公開日2007年9月19日 申請日期1999年12月31日 優(yōu)先權(quán)日1999年1月8日
發(fā)明者M·梅耶爾, R·盧德維格 申請人:艾利森電話股份有限公司