專(zhuān)利名稱(chēng):數(shù)據(jù)發(fā)送器及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)單元發(fā)送器以及控制數(shù)據(jù)單元發(fā)送器的方法,所述數(shù)據(jù)單元發(fā)送器安排成根據(jù)支持反饋功能的通信協(xié)議操作,所述發(fā)送器根據(jù)該通信協(xié)議接收?qǐng)?bào)告數(shù)據(jù)單元通信接收器接收到數(shù)據(jù)單元的反饋消息。這種反饋消息的示例包括承載數(shù)據(jù)通信的網(wǎng)絡(luò)中始發(fā)的顯式擁塞通知(ECN)、數(shù)據(jù)通信接收器始發(fā)的確認(rèn)消息(確認(rèn)所發(fā)送的數(shù)據(jù)單元被正確接收)或非確認(rèn)消息(通知未收到發(fā)送的數(shù)據(jù)單元)。
背景技術(shù):
本發(fā)明一般涉及數(shù)據(jù)單元通信領(lǐng)域。數(shù)據(jù)單元通信意味著將待發(fā)送數(shù)據(jù)量劃分成各單元,然后通過(guò)通信路徑例如網(wǎng)絡(luò)將這些各單元發(fā)送到接收器。在本領(lǐng)域中,根據(jù)特定的上下文和技術(shù),此類(lèi)數(shù)據(jù)單元使用不同的名稱(chēng),例如分組、片段、幀、協(xié)議數(shù)據(jù)單元等,而術(shù)語(yǔ)“數(shù)據(jù)單元”在本申請(qǐng)中用于涵蓋對(duì)數(shù)據(jù)量的所有這類(lèi)進(jìn)一步劃分。
面向數(shù)據(jù)單元的通信的概念常常伴隨協(xié)議分層的概念。換言之,正在發(fā)送的數(shù)據(jù)單元將遵循給定通信協(xié)議(例如傳輸控制協(xié)議(TCP))的要求,并且該給定協(xié)議將是協(xié)議棧的一部分。在給定協(xié)議的給定數(shù)據(jù)單元通信中,還將數(shù)據(jù)單元發(fā)送器和數(shù)據(jù)單元接收器稱(chēng)為所述協(xié)議和所述通信的對(duì)等方。用于發(fā)送給定協(xié)議的數(shù)據(jù)單元的數(shù)據(jù)單元發(fā)送器一般從高層接收數(shù)據(jù),然后將此接收到的數(shù)據(jù)放入符合給定層的協(xié)議的數(shù)據(jù)單元中。一般來(lái)說(shuō),數(shù)據(jù)單元發(fā)送器將因此具有用于存儲(chǔ)待發(fā)送數(shù)據(jù)的緩沖器。通信協(xié)議和協(xié)議分層的概念在本領(lǐng)域是眾所周知的,不必作更詳細(xì)的解釋。
雖然原理上可能的是,數(shù)據(jù)單元發(fā)送器將簡(jiǎn)單地取其發(fā)送緩沖器中的所有數(shù)據(jù),準(zhǔn)備適當(dāng)?shù)臄?shù)據(jù)單元并且盡可能快地發(fā)送這些數(shù)據(jù)單元,但數(shù)據(jù)單元發(fā)送器通常執(zhí)行流控過(guò)程,以便控制數(shù)據(jù)單元發(fā)送器發(fā)送的數(shù)據(jù)流,其中所述流控過(guò)程經(jīng)過(guò)安排,使任何給定時(shí)刻發(fā)送器一次可以發(fā)送的先前未發(fā)送數(shù)據(jù)量受限于可用傳輸容量值。其原因是數(shù)據(jù)單元發(fā)送器通常沒(méi)有無(wú)限的帶寬可用于與數(shù)據(jù)單元接收器的通信。因此,需要對(duì)數(shù)據(jù)單元發(fā)送器一次可以發(fā)送的數(shù)據(jù)量實(shí)施某種限制。
此類(lèi)流控過(guò)程的一個(gè)示例是基于窗口的流控,其中,數(shù)據(jù)單元發(fā)送器維護(hù)稱(chēng)為發(fā)送窗口的控制參數(shù),所述數(shù)據(jù)單元發(fā)送器不得有超出發(fā)送窗口所示的未決數(shù)據(jù)單元。所述發(fā)送窗口按數(shù)據(jù)量(例如比特或字節(jié))來(lái)測(cè)量。如果數(shù)據(jù)單元已發(fā)送,但數(shù)據(jù)單元發(fā)送器尚未接收到確認(rèn)數(shù)據(jù)單元接收器正確接收到所述數(shù)據(jù)單元的反饋消息,則稱(chēng)為“未決”。在基于窗口的流控中,發(fā)送器一次可以發(fā)送的數(shù)據(jù)量被限制于發(fā)送窗口大小與未決數(shù)據(jù)單元中的數(shù)據(jù)量之差。此限量稱(chēng)為上文提到的“可用傳輸容量值”。應(yīng)注意,數(shù)據(jù)單元發(fā)送器可以維護(hù)多個(gè)窗口,例如由TCP知曉的擁塞窗口和通告窗口,其中在所述多個(gè)窗口中選擇發(fā)送窗口,例如選擇其中最小的作為發(fā)送窗口?;诖翱诘牧骺馗拍钤诒绢I(lǐng)域是眾所周知的,不必作更詳細(xì)的解釋。
發(fā)送器一次可以發(fā)送的先前未發(fā)送數(shù)據(jù)量受限于可用傳輸容量值的流控過(guò)程的另一個(gè)示例是基于速率的流控?;谒俾实牧骺厥纠此^的TCP友好速率控制(TFRC)協(xié)議,參見(jiàn)可從因特網(wǎng)工程任務(wù)小組(IETF)的網(wǎng)站www.ietf.org得到的因特網(wǎng)草案,例如可在http//www.ietf.org/Intemet-drafts/draft/ietf-tsvwg-tfrc-05.txt得到的2002年10月22日的草案。根據(jù)此概念,數(shù)據(jù)單元發(fā)送器根據(jù)預(yù)定吞吐量公式計(jì)算傳輸速率,使得發(fā)送器一次可以發(fā)送的數(shù)據(jù)量受限于所述吞吐量公式瞬時(shí)允許的傳輸速率。
在發(fā)送器與接收器之間的數(shù)據(jù)單元通信中,可能會(huì)發(fā)生發(fā)送的數(shù)據(jù)單元丟失而未到達(dá)接收器的情況。解決這種可能的數(shù)據(jù)丟失的一種機(jī)制是采用超時(shí)功能。超時(shí)功能經(jīng)過(guò)安排,以便數(shù)據(jù)單元發(fā)送器監(jiān)視超時(shí)周期,并且如果在超時(shí)周期到期之前沒(méi)有指定數(shù)據(jù)單元的反饋消息到達(dá),則重發(fā)所述指定的數(shù)據(jù)單元,因已假定該數(shù)據(jù)單元已丟失。這種超時(shí)概念在多種協(xié)議中被采用,例如在TCP中采用重發(fā)超時(shí)(RTO)功能的形式。
可以注意到,同樣已知的是,響應(yīng)超時(shí)周期到期而沒(méi)有接收到所述數(shù)據(jù)單元的反饋消息,不僅重發(fā)指定數(shù)據(jù)單元,而且附帶地修改流控過(guò)程的參數(shù),以便減少允許發(fā)送器一次發(fā)送的未發(fā)送數(shù)據(jù)量。其原因是,由于超時(shí)而假定該數(shù)據(jù)單元已丟失,并因此假定傳輸數(shù)據(jù)單元的網(wǎng)絡(luò)超載。因此,最好降低網(wǎng)絡(luò)上的負(fù)載,為此可以減少允許發(fā)送器一次發(fā)送到該網(wǎng)絡(luò)的數(shù)據(jù)量。例如,在基于窗口的流控中可以縮減發(fā)送窗口,或在基于速率的流控中,可以修改吞吐量公式中的參數(shù)以降低允許的傳輸速率。
發(fā)明目的本發(fā)明的目的在于提供一種控制數(shù)據(jù)單元發(fā)送器的改進(jìn)方法,和改進(jìn)的數(shù)據(jù)單元發(fā)送器。
發(fā)明概述本發(fā)明目的通過(guò)根據(jù)權(quán)利要求1所述的方法和權(quán)利要求13所述的數(shù)據(jù)單元發(fā)送器來(lái)實(shí)現(xiàn)。從屬權(quán)利要求中則描述了一些優(yōu)選實(shí)施例。
根據(jù)本發(fā)明,建議以這樣的方式控制數(shù)據(jù)單元發(fā)送器讓超時(shí)監(jiān)視過(guò)程利用第一超時(shí)周期和第二超時(shí)周期,其中第二超時(shí)周期短于第一超時(shí)周期。隨后,如果在所述第二(較短的)超時(shí)周期到期時(shí)未發(fā)送數(shù)據(jù)的可用傳輸容量值大于或等于要重發(fā)的指定數(shù)據(jù)單元的大小,則重發(fā)所述指定的數(shù)據(jù)單元。
這樣,本發(fā)明建議實(shí)施短超時(shí)周期和長(zhǎng)超時(shí)周期,其中在所述短超時(shí)周期到期之后如果未超過(guò)所述數(shù)據(jù)單元發(fā)送器一方的公平負(fù)載份額,即如果為上述的“可用傳輸容量值”所允許,則執(zhí)行重發(fā)。明顯不同的是,如果發(fā)送器未充分利用其傳輸容量來(lái)發(fā)送未發(fā)送數(shù)據(jù),則應(yīng)該允許它以任何期望的方式利用該可用容量,尤其是還允許重發(fā)指定的數(shù)據(jù)單元。由此,可以實(shí)施更快或更主動(dòng)的超時(shí)功能,而不致使數(shù)據(jù)單元發(fā)送到的網(wǎng)絡(luò)超載。
可能有許多原因?qū)е聰?shù)據(jù)單元發(fā)送器未充分利用其可用傳輸容量。例如,這可能因?yàn)閿?shù)據(jù)單元發(fā)送器未從高層,例如從產(chǎn)生供數(shù)據(jù)單元發(fā)送器發(fā)送的數(shù)據(jù)的應(yīng)用接收到更多數(shù)據(jù)。例如,此情況可能出現(xiàn)在交互應(yīng)用如Telnet、聊天或WWW交互中,在此類(lèi)應(yīng)用中,數(shù)據(jù)單元發(fā)送器(當(dāng)使用因特網(wǎng)時(shí)數(shù)據(jù)單元發(fā)送器可以是TCP發(fā)送器)在任何給定時(shí)間只有非常少的數(shù)據(jù)單元未決(未決數(shù)據(jù)單元有時(shí)也稱(chēng)為“在飛行中”的數(shù)據(jù)單元),因?yàn)榘l(fā)送應(yīng)用沒(méi)有更多數(shù)據(jù)要發(fā)送。另一方面,以TCP發(fā)送器為例,如果發(fā)送窗口很大,則發(fā)送窗口大小與未決分組中的數(shù)據(jù)量之差也很大,數(shù)據(jù)單元發(fā)送器一次可以發(fā)送更多數(shù)據(jù)(如果這種數(shù)據(jù)存在的話(huà))。根據(jù)本發(fā)明,數(shù)據(jù)單元發(fā)送器隨后可以實(shí)施更主動(dòng)的超時(shí)功能并更快地重發(fā)可能丟失的數(shù)據(jù)單元。這提高了數(shù)據(jù)吞吐量,而不會(huì)使傳輸網(wǎng)絡(luò)超載,因?yàn)榭捎糜跀?shù)據(jù)單元發(fā)送器的傳輸容量足夠用于重發(fā)。
如果較短(第二)超時(shí)周期到期時(shí),可用傳輸容量值不足以重發(fā)指定的數(shù)據(jù)單元,則超時(shí)機(jī)制使用較長(zhǎng)(第一)超時(shí)周期,如果沒(méi)有在所述較長(zhǎng)超時(shí)周期內(nèi)接收到反饋消息,則重發(fā)所述指定數(shù)據(jù)單元,而不考慮可用的傳輸容量,正如慣例從TCP的RTO機(jī)制所知的那樣。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,將本發(fā)明的概念應(yīng)用于TCP發(fā)送器,所述第一(較長(zhǎng))超時(shí)周期是常規(guī)的RTO值。
如上所述,本發(fā)明的基本方面之一是,在可用傳輸容量允許的情況下,允許所述數(shù)據(jù)單元發(fā)送器采用更主動(dòng)的超時(shí)周期。例如在基于窗口的流控系統(tǒng)中,為什么有傳輸容量可用以及為什么發(fā)送窗口未被充分利用都不重要。這可能是因?yàn)榘l(fā)送緩沖器中沒(méi)有或只有很少數(shù)據(jù)要發(fā)送,或可能由于其他原因使數(shù)據(jù)保留在發(fā)送緩沖器中,例如因數(shù)據(jù)單元發(fā)送器正在等待從高層接收數(shù)據(jù)以將其置入期望次序。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,如果發(fā)送緩沖器中未發(fā)送數(shù)據(jù)量小于或等于預(yù)定閾值,則僅在第二(較短的)超時(shí)周期到期時(shí)重發(fā)指定數(shù)據(jù)單元。根據(jù)此優(yōu)選實(shí)施例,賦予發(fā)送所述發(fā)送緩沖器中數(shù)據(jù)比所述更主動(dòng)重發(fā)數(shù)據(jù)單元高的優(yōu)先級(jí),使得在發(fā)送緩沖器中尚未發(fā)送數(shù)據(jù)量超過(guò)預(yù)定閾值的條件下,在較短超時(shí)周期到期時(shí)不進(jìn)行重發(fā),以便將可用傳輸容量保留用于發(fā)送(可能)的未發(fā)送數(shù)據(jù)。
附圖簡(jiǎn)介下文將參考附圖,結(jié)合特定實(shí)施例來(lái)解釋本發(fā)明的其他方面和優(yōu)點(diǎn),附圖中
圖1是說(shuō)明根據(jù)本發(fā)明的第一實(shí)施例的流程圖;圖2a是對(duì)圖1的實(shí)施例的修改;圖2b是對(duì)圖1的實(shí)施例的進(jìn)一步修改;圖3是對(duì)先前實(shí)施例的進(jìn)一步修改的流程圖;圖4是對(duì)圖3的實(shí)施例的修改的流程圖;以及圖5是表示根據(jù)本發(fā)明的數(shù)據(jù)單元發(fā)送器的實(shí)施例的示意框圖。
優(yōu)選實(shí)施例的詳細(xì)說(shuō)明下面將描述本發(fā)明的具體實(shí)施例。要注意的是,對(duì)具體實(shí)施例的描述旨在幫助本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,而不是限定本發(fā)明的范圍。本發(fā)明僅由所附權(quán)利要求書(shū)限定。而且,在描述實(shí)施例的過(guò)程中,有時(shí)參考基于窗口的流控,具體為以傳輸控制協(xié)議TCP為優(yōu)選示例。但是,應(yīng)注意,本發(fā)明絕對(duì)不局限于基于窗口的流控或TCP。更確切地說(shuō),本發(fā)明適用于具有有限可用傳輸容量值且實(shí)施超時(shí)監(jiān)視過(guò)程的任何數(shù)據(jù)單元發(fā)送器的上下文。這樣,本發(fā)明還可以應(yīng)用于例如基于速率的流控,如TFRC協(xié)議。
圖1顯示根據(jù)本發(fā)明的第一實(shí)施例的流程圖。圖1的處理開(kāi)始于發(fā)生觸發(fā)超時(shí)監(jiān)視過(guò)程的預(yù)定事件。可以任何適當(dāng)或期望的方式選擇超時(shí)監(jiān)視過(guò)程觸發(fā)事件。例如,觸發(fā)事件可以是第一次發(fā)送數(shù)據(jù)單元(即該數(shù)據(jù)單元尚未發(fā)送過(guò)),也稱(chēng)為數(shù)據(jù)單元的初始發(fā)送。然后,后續(xù)超時(shí)監(jiān)控過(guò)程可涉及是否重發(fā)所述數(shù)據(jù)單元的問(wèn)題。但是,超時(shí)監(jiān)視過(guò)程還可以由其他事件觸發(fā),例如每當(dāng)設(shè)計(jì)成對(duì)超時(shí)周期倒計(jì)時(shí)的定時(shí)器到期時(shí),在此情況下,判斷相應(yīng)反饋消息是否在超時(shí)周期內(nèi)到達(dá)的指定數(shù)據(jù)單元可以是尚未接收到相應(yīng)反饋消息的最舊的數(shù)據(jù)單元,例如在將正確接收確認(rèn)作為反饋消息的情況下的最舊未確認(rèn)數(shù)據(jù)單元。又如,如果采用確認(rèn),則觸發(fā)事件可以是收到確認(rèn)。在此情況下,指定的數(shù)據(jù)單元還可以是最舊的未決或未確認(rèn)數(shù)據(jù)單元。在第一步驟S1中,在相應(yīng)的定時(shí)器上設(shè)置短超時(shí)周期。該定時(shí)器也稱(chēng)為重發(fā)定時(shí)器REXMT,而該較短超時(shí)周期也稱(chēng)為快速重發(fā)超時(shí)值QRTO。由此,步驟S1包括將REXMT設(shè)為值QRTO。再者,使REXMT開(kāi)始對(duì)該值倒計(jì)時(shí)。
然后,在包括步驟S2和S3的超時(shí)監(jiān)視子過(guò)程中,判斷對(duì)指定數(shù)據(jù)單元的確認(rèn)是否已經(jīng)到達(dá)(例如初始發(fā)送觸發(fā)超時(shí)監(jiān)視的數(shù)據(jù)單元、或最舊未決數(shù)據(jù)單元、或任何其他適合的選定數(shù)據(jù)單元),并在步驟S3中判斷定時(shí)器REXMT是否已到期。要注意的是,圖1示例中,采用確認(rèn)消息作為反饋消息示例。但是,本發(fā)明絕對(duì)不局限于確認(rèn)(即指示數(shù)據(jù)單元是否被正確接收的消息),反饋消息還可以是非確認(rèn)消息(即具體指示未接收到給定數(shù)據(jù)單元的消息)或讓數(shù)據(jù)單元發(fā)送器知道發(fā)送的數(shù)據(jù)單元是否已被接收以及被如何接收的某種其他形式。
再參考圖1的示例,如果在步驟S2接收到確認(rèn)最舊未決片段的確認(rèn),則觸發(fā)的過(guò)程結(jié)束,因?yàn)闆](méi)有發(fā)生超時(shí)。如果未接收到此確認(rèn),則在步驟S3判斷REXMT是否已到期,如果沒(méi)有到期,則該過(guò)程循環(huán)到步驟S2,繼續(xù)執(zhí)行直到接收到確認(rèn)或定時(shí)器到期。如果定時(shí)器REXMT到期,則該過(guò)程從步驟S3轉(zhuǎn)到步驟S4。在步驟S4,判斷根據(jù)所實(shí)施的流控過(guò)程確定的可用傳輸容量值是否足夠用于重發(fā)指定的數(shù)據(jù)單元。例如,在基于窗口的流控中,這意味著判斷發(fā)送窗口大小與未決數(shù)據(jù)單元中的數(shù)據(jù)量之差是否等于或大于指定數(shù)據(jù)單元的大小。在基于速率的流控的情況中,這意味著計(jì)算允許的瞬時(shí)速率并判斷當(dāng)前所用的速率是否比允許的速率足夠低,以便重發(fā)指定的數(shù)據(jù)單元。如果步驟S4確定可用傳輸容量值是足夠的,則過(guò)程轉(zhuǎn)到步驟S8,在其中重發(fā)指定的數(shù)據(jù)單元。隨后過(guò)程結(jié)束。
另一方面,如果步驟S4確定傳輸容量不足,例如如果重發(fā)指定數(shù)據(jù)單元會(huì)超過(guò)該數(shù)據(jù)發(fā)送器的允許傳輸容量值,則操作過(guò)程執(zhí)行到步驟S5,在其中重發(fā)定時(shí)器REXMT復(fù)位,并以值(SRTO-QRTO)重新啟動(dòng)較,SRTO是比QRTO長(zhǎng)的超時(shí)周期。在步驟S5之后,超時(shí)監(jiān)視過(guò)程繼續(xù)執(zhí)行步驟S6和S7,其中,判斷是否接收到對(duì)指定數(shù)據(jù)單元的確認(rèn)(步驟S6),并判斷重發(fā)定時(shí)器REXMT是否已到期(步驟S7)。這基本上與先前結(jié)合步驟S2和S3的所述的過(guò)程相同。如果接收到確認(rèn),則該超時(shí)監(jiān)視過(guò)程結(jié)束,因?yàn)闆](méi)有發(fā)生超時(shí)。否則,如果在超時(shí)周期內(nèi)沒(méi)有接收到確認(rèn),則在步驟S9執(zhí)行重發(fā),并在此后結(jié)束監(jiān)視過(guò)程。
由于過(guò)程步驟S5至S9,這意味著使超時(shí)周期有效地延長(zhǎng)到SRTO。最好,當(dāng)將本發(fā)明應(yīng)用于已實(shí)施超時(shí)監(jiān)視過(guò)程的給定數(shù)據(jù)單元發(fā)送器時(shí),將值SRTO選為等于為該給定數(shù)據(jù)單元發(fā)送器定義的單個(gè)超時(shí)周期的標(biāo)準(zhǔn)值。例如,如果數(shù)據(jù)單元發(fā)送器是TCP發(fā)送器,則SRTO可以選為等于在TCP中定義的標(biāo)準(zhǔn)重發(fā)超時(shí)值RTO。
通過(guò)將SRTO定義為應(yīng)用本發(fā)明的數(shù)據(jù)發(fā)送器的標(biāo)準(zhǔn)超時(shí)周期,這意味著在步驟S4的判斷結(jié)果為否定,即QRTO到期時(shí)未進(jìn)行重發(fā)的條件下,數(shù)據(jù)單元發(fā)送器像在常規(guī)情況下簡(jiǎn)單地繼續(xù)監(jiān)視超時(shí)周期,即直到SRTO到期。
應(yīng)注意,數(shù)據(jù)單元發(fā)送器可以同時(shí)進(jìn)行圖1所示的多個(gè)過(guò)程,即它可以并行監(jiān)視多個(gè)指定數(shù)據(jù)單元的超時(shí)。自然,數(shù)據(jù)單元發(fā)送器每次只監(jiān)視一個(gè)超時(shí)也是可能的。
雖然圖1所示的實(shí)施例是基本的實(shí)施例,但也可以許多方式對(duì)其進(jìn)行修改。例如,可以更改這些步驟的次序,也可以不同的方式執(zhí)行這些步驟。例如,不一定非要在步驟1設(shè)定值并對(duì)其倒計(jì)時(shí),因?yàn)橥瑯涌梢栽诓襟ES1初始化定時(shí)器,讓該定時(shí)器正計(jì)時(shí),然后在步驟S3和S7判斷該定時(shí)器是否已達(dá)到預(yù)定值。還可以采用輸出絕對(duì)時(shí)間值的定時(shí)器,在此情況中不需要步驟S1,并且在步驟S3和S7,判斷該定時(shí)器是否已達(dá)到預(yù)定的絕對(duì)時(shí)間值。
如上所述,SRTO的值最好選為與標(biāo)準(zhǔn)超時(shí)周期對(duì)應(yīng)。根據(jù)本發(fā)明,所述第二超時(shí)周期QRTO比SRTO短。原理上,QRTO可以選為具有比SRTO小的任何期望值。最好,QRTO的值選為大于或等于較長(zhǎng)超時(shí)值SRTO的預(yù)定部分,該預(yù)定部分最好為該值的一半。
根據(jù)用于確定QRTO值的另一個(gè)實(shí)施例,最好基于一個(gè)或多個(gè)測(cè)量的反饋?lái)憫?yīng)時(shí)間值來(lái)確定QRTO。反饋?lái)憫?yīng)時(shí)間值是指示發(fā)送數(shù)據(jù)單元到接收到所述發(fā)送數(shù)據(jù)單元的反饋消息之間經(jīng)過(guò)的時(shí)間的值。在TCP(和其他協(xié)議)的情況中,所說(shuō)的往返時(shí)間RTT是此類(lèi)反饋?lái)憫?yīng)時(shí)間的一個(gè)示例。
該數(shù)據(jù)單元發(fā)送器可以安排為持續(xù)地測(cè)量所述反饋?lái)憫?yīng)時(shí)間的樣本。要注意的是,最好還根據(jù)一個(gè)或多個(gè)測(cè)量的反饋?lái)憫?yīng)時(shí)間值來(lái)確定較長(zhǎng)超時(shí)周期SRTO。例如在TCP中,基于測(cè)量的往返時(shí)間RTT來(lái)確定標(biāo)準(zhǔn)超時(shí)值RTO。
假定SRTO的確是基于多個(gè)測(cè)量的反饋?lái)憫?yīng)時(shí)間確定的并且設(shè)為大于這些反饋?lái)憫?yīng)時(shí)間,則QRTO可以選為例如等于上次測(cè)量的反饋?lái)憫?yīng)時(shí)間或等于上次測(cè)量的反饋?lái)憫?yīng)時(shí)間與SRTO/2中的最大者。最好將QRTO確定為上次測(cè)量的反饋?lái)憫?yīng)時(shí)間、SRTO/2和該反饋?lái)憫?yīng)時(shí)間的平滑平均值中的最大者。這種平滑平均值的示例為T(mén)CP上下文中定義的參數(shù)平滑往返時(shí)間SRTT。
還可以采用確定QRTO值的其他可能方案,例如QRTO=上次測(cè)量的反饋?lái)憫?yīng)時(shí)間+(1/n×(上次測(cè)量的反饋?lái)憫?yīng)時(shí)間)),n=1,2,3,...。
QRTO=MAX(上次測(cè)量的反饋?lái)憫?yīng)時(shí)間+(1/m×(上次測(cè)量的反饋?lái)憫?yīng)時(shí)間));平滑反饋?lái)憫?yīng)時(shí)間),其中m=1,2,3,...。
QRTO=最近k次測(cè)量的反饋?lái)憫?yīng)時(shí)間中的最大者,其中k是自然數(shù)。
如上所述,這些僅僅是示例,可以根據(jù)給定的具體應(yīng)用選擇合適或適當(dāng)?shù)腝RTO值。
現(xiàn)在參考圖2a。圖2a顯示了圖1的實(shí)施例的變化。即,圖2a所示方法包括附加步驟S20,其中所述步驟S20在圖1所示的步驟S1之前執(zhí)行。步驟S1之后的所有步驟與圖1相同。因此,圖2a未顯示后續(xù)處理步驟。步驟S20在檢測(cè)到超時(shí)監(jiān)視過(guò)程觸發(fā)事件之后執(zhí)行,它判斷發(fā)送緩沖器中的未發(fā)送數(shù)據(jù)量是否小于或等于預(yù)定閾值。如果否,例如未發(fā)送數(shù)據(jù)比閾值定義的量多,則過(guò)程轉(zhuǎn)到步驟S21,在步驟S21中,采用較長(zhǎng)超時(shí)周期SRTO(最好是標(biāo)準(zhǔn)超時(shí)周期)執(zhí)行標(biāo)準(zhǔn)超時(shí)監(jiān)視過(guò)程。這在附圖中未作詳細(xì)顯示,其可以利用如圖1中步驟S2、S3或S6、S7所示的監(jiān)視過(guò)程來(lái)實(shí)現(xiàn)。另一方面,如果未發(fā)送數(shù)據(jù)的數(shù)據(jù)量等于或小于所述閾值,則執(zhí)行結(jié)合圖1所述的本發(fā)明過(guò)程,即過(guò)程轉(zhuǎn)到步驟S1。
在根據(jù)圖2a的實(shí)施例中,僅當(dāng)最初發(fā)送緩沖器中未發(fā)送數(shù)據(jù)量未超過(guò)給定限量或閾值時(shí),才進(jìn)入使用較短且更主動(dòng)的值QRTO的控制過(guò)程。這意味著,如果有多于某個(gè)量的未發(fā)送數(shù)據(jù)要發(fā)送,則不可能采用較短超時(shí)周期。換言之,此實(shí)施例賦予發(fā)送未發(fā)送數(shù)據(jù)比實(shí)現(xiàn)更快重發(fā)可能丟失的數(shù)據(jù)單元高的優(yōu)先級(jí)。
可以任何適合或期望的方式選擇步驟S20中使用的閾值。例如,可以將其設(shè)為零,這意味著僅當(dāng)觸發(fā)超時(shí)周期時(shí)先前未發(fā)送數(shù)據(jù)的發(fā)送緩沖器為空,即沒(méi)有尚未發(fā)送數(shù)據(jù)要發(fā)送時(shí),才有可能啟用快速重發(fā)。自然,還可以選擇值較大的閾值,例如流控過(guò)程定義的最大數(shù)據(jù)單元大小的一倍或預(yù)定倍數(shù)。例如,在TCP上下文中,這種最大數(shù)據(jù)單元大小也稱(chēng)為最大段大小MSS。
圖2b顯示圖1的實(shí)施例的另一種修改,其中,圖2b的實(shí)施例可以與或可以不與圖2a組合。在圖2b中,設(shè)有附加步驟S22,它本身與結(jié)合圖2a討論的步驟S20完全相同。即,在步驟S4確定傳輸容量足夠允許重發(fā)指定數(shù)據(jù)單元之后,步驟S22判斷發(fā)送緩沖器中的未發(fā)送數(shù)據(jù)量是否低于預(yù)定閾值。如果不低于,則不執(zhí)行步驟S8的快速重發(fā),而是讓過(guò)程轉(zhuǎn)到步驟S5,步驟S5及后續(xù)步驟S6、S7和S9已結(jié)合圖1作了說(shuō)明,因此不必重復(fù)。
僅當(dāng)未發(fā)送數(shù)據(jù)量低于預(yù)定閾值(或者在圖2b的實(shí)施例與圖2a的實(shí)施例相組合的情況下仍低于預(yù)定閾值)時(shí),才在步驟S8執(zhí)行根據(jù)較短超時(shí)周期QRTO的快速重發(fā)。
還要注意的是,步驟S20和S22還可以一起執(zhí)行,但采用各自不同的閾值。
結(jié)合圖2b討論的附加步驟S22的效果類(lèi)似于結(jié)合圖2a討論的步驟S20的效果,即賦予發(fā)送未發(fā)送數(shù)據(jù)比快速重發(fā)高的優(yōu)先級(jí)。僅當(dāng)未發(fā)送數(shù)據(jù)量不太大,即未超過(guò)預(yù)定閾值時(shí),才執(zhí)行根據(jù)較短超時(shí)周期QRTO的快速重發(fā)。
根據(jù)本發(fā)明的其他實(shí)施例,在數(shù)據(jù)單元發(fā)送器中執(zhí)行的超時(shí)監(jiān)視過(guò)程還安排成在所述較短超時(shí)周期QRTO到期之后執(zhí)行擁塞控制過(guò)程。擁塞控制過(guò)程包括用于調(diào)整所述流控過(guò)程所用的一個(gè)或多個(gè)參數(shù)的調(diào)整過(guò)程,以便減少允許發(fā)送器一次發(fā)送的先前未發(fā)送數(shù)據(jù)量。例如,在基于窗口的流控的情況中,所述調(diào)整過(guò)程可包括縮減發(fā)送窗口,而在基于速率的流控的情況中,則包括降低允許的傳輸速率。這些措施的目的在于降低傳輸發(fā)送數(shù)據(jù)單元的網(wǎng)絡(luò)上的負(fù)載。以TCP為例,作為擁塞控制過(guò)程的一部分可以調(diào)整的一個(gè)參數(shù)是所謂的擁塞窗口cwnd,而另一個(gè)參數(shù)是所謂的慢啟動(dòng)閾值ssthresh。這兩個(gè)參數(shù)的描述和定義可參見(jiàn)書(shū)籍《TCP/IP解說(shuō)》的第21章(“TCP/IPIllustrated”,Volume 1,The Protocols by W.Richard Stevens,AddisonWesley Longman Corp.,1994),因此不必進(jìn)一步描述這些參數(shù)。
圖3顯示了除實(shí)施圖1、圖2a和圖2b所示基本超時(shí)監(jiān)視步驟,還實(shí)施實(shí)施擁塞控制的一個(gè)示例。
圖3所示的過(guò)程可以與圖1或圖2b所示過(guò)程相組合,且會(huì)在步驟S4(圖1所示示例)或步驟S22(圖2b所示示例)之后執(zhí)行,如圖3頂部所示。圖1和圖2b的步驟S5也在圖3中顯示,但其后的步驟(S6和S9)為簡(jiǎn)明起見(jiàn)不予顯示。
在圖3示例中,顯示了步驟S30,在步驟S30判斷是否應(yīng)該執(zhí)行延遲的擁塞控制。如果不執(zhí)行延遲的擁塞控制,則在短超時(shí)周期QRTO到期時(shí)在步驟S8重發(fā)指定的數(shù)據(jù)單元,并在步驟S31對(duì)流控參數(shù)進(jìn)行調(diào)整。要注意的是,并不一定要執(zhí)行步驟S30,如果希望始終將重發(fā)步驟S8與對(duì)一個(gè)或多個(gè)流控參數(shù)的調(diào)整相結(jié)合,以作為擁塞控制過(guò)程的一部分,則還可以簡(jiǎn)單地在圖1或圖2b的流程圖中于步驟S8前或后直接添加步驟31。
但是,最好將步驟S30實(shí)現(xiàn)為操作數(shù)據(jù)單元發(fā)送器的一個(gè)選項(xiàng)。換言之,在配置數(shù)據(jù)單元發(fā)送器時(shí),可以將其配置為執(zhí)行或不執(zhí)行延遲的擁塞控制。如果配置了延遲的擁塞控制,則步驟S30的判斷結(jié)果為“是”,于是過(guò)程轉(zhuǎn)到步驟S32,在其中執(zhí)行重發(fā),然后將重發(fā)定時(shí)器REXMT設(shè)為(SRTO-QRTO)。然后,在中間時(shí)間間隔(SRTO-QRTO)內(nèi)執(zhí)行中間監(jiān)視過(guò)程,以便判斷在所述中間時(shí)間隔SRTO-QRTO內(nèi)是否收到反饋消息(例如確認(rèn))。根據(jù)圖3的優(yōu)選實(shí)施例,調(diào)整過(guò)程是這樣的根據(jù)所述中間監(jiān)視過(guò)程的結(jié)果,對(duì)流控參數(shù)執(zhí)行不同類(lèi)型的調(diào)整。即,如果定時(shí)器到期(步驟S34的結(jié)果=是),則執(zhí)行第一種流控參數(shù)調(diào)整,如果在該時(shí)間間隔(SRTO-QRTO)內(nèi)接收到反饋消息,則執(zhí)行第一種流控參數(shù)調(diào)整。
如果過(guò)程轉(zhuǎn)到步驟S35,即執(zhí)行第一種調(diào)整,則意味著重發(fā)定時(shí)器REXMT已到期且沒(méi)有指定數(shù)據(jù)單元的確認(rèn)。換言之,在長(zhǎng)超時(shí)周期SRTO內(nèi)未收到確認(rèn)。因此,可以假定該數(shù)據(jù)單元已丟失。由此,步驟S35中對(duì)流控參數(shù)的第一種調(diào)整安排為對(duì)數(shù)據(jù)單元丟失作出適當(dāng)?shù)捻憫?yīng)。
另一方面,如果過(guò)程轉(zhuǎn)到步驟S36,則意味著雖然沒(méi)有在短超時(shí)周期QRTO內(nèi)接收到確認(rèn),但在長(zhǎng)超時(shí)周期SRTO內(nèi)接收到了確認(rèn)。因此,很可能所述指定數(shù)據(jù)單元未丟失。要注意的是,如果在步驟S32中接收到的確認(rèn)對(duì)應(yīng)于步驟S32中執(zhí)行的重發(fā),則說(shuō)明最初發(fā)送的數(shù)據(jù)丟失了,而如果在步驟S33中接收到的確認(rèn)與最初發(fā)送數(shù)據(jù)相關(guān),則顯然最初發(fā)送數(shù)據(jù)的確未丟失。但是,圖3的示例未區(qū)分確認(rèn)消息與哪次發(fā)送(即最初發(fā)送或重發(fā))相關(guān),這樣,到達(dá)步驟S36時(shí)的結(jié)論是指定數(shù)據(jù)單元未丟失概率無(wú)論如何大于到達(dá)步驟S35時(shí)的數(shù)據(jù)單元未丟失概率。因此,步驟S36中執(zhí)行的第二種流控參數(shù)調(diào)整將此結(jié)論納入考慮,并會(huì)以這樣的方式安排就一次可以發(fā)送的數(shù)據(jù)量而言,步驟36中的流程過(guò)程受到的限制不如步驟S35中所執(zhí)行的第一種調(diào)整強(qiáng)。
舉一個(gè)TCP上下文中的示例,步驟S35中執(zhí)行的第一種調(diào)整可以是將擁塞窗口縮減為所設(shè)計(jì)的抗數(shù)據(jù)丟失的預(yù)定大小,在本申請(qǐng)中,所述預(yù)定大小稱(chēng)為丟失窗口。在目前的TCP實(shí)施方案中,丟失窗口通常是一個(gè)MSS,但原則上可以是不同的值。再者,TCP上下文中的步驟S35可設(shè)為在縮減丟失窗口之前,將慢啟動(dòng)閾值ssthresh縮減為擁塞窗口值的一半。另一方面,步驟S36的第二種調(diào)整也可是再次將慢啟動(dòng)閾值ssthresh設(shè)為擁塞窗口大小的一半,但只將擁塞窗口縮減為其大小的一半,與步驟S35中較強(qiáng)的縮減相反。當(dāng)然,這些僅僅是示例,還可以合適的或期望的不同方式改變變更這些參數(shù)。
一般而言,可以說(shuō),步驟S36中第二種調(diào)整會(huì)這樣影響流控過(guò)程,即后續(xù)為降低通信網(wǎng)負(fù)載而對(duì)允許傳輸容量的縮減小于步驟S35中第一種調(diào)整對(duì)允許傳輸容量的縮減。由此,在步驟S36甚至可以不對(duì)流控參數(shù)作任何改動(dòng)。
要注意的是,對(duì)流控參數(shù)的調(diào)整過(guò)程還可以用作監(jiān)視超時(shí)周期的觸發(fā)器。步驟S35的第一種調(diào)整過(guò)程可以包括例如以(SRTO+QRTO)重啟REXMT,而步驟S31中的調(diào)整過(guò)程可以包括例如以2×SRTO重啟REXMT。
圖4顯示圖3的實(shí)施例的優(yōu)選變型,在圖4中,在步驟S33之后設(shè)有附加步驟S40。其余步驟與圖3所示的那些步驟完全相同,因此不必重新描述。在圖4的示例中,將數(shù)據(jù)單元發(fā)送器安排成可以區(qū)分接收到的反饋消息是與步驟S32中執(zhí)行的指定數(shù)據(jù)單元的重發(fā)相關(guān),還是與該指定數(shù)據(jù)單元的最初發(fā)送相關(guān)。然后,將步驟S40安排為區(qū)分反饋消息(例如確認(rèn))是否與步驟S32中執(zhí)行的指定數(shù)據(jù)單元重發(fā)相關(guān)。如果在步驟S33中接收到的確認(rèn)與步驟S32的重發(fā)數(shù)據(jù)無(wú)關(guān),則總的調(diào)整過(guò)程為使這些流控參數(shù)保持不變,因?yàn)椴襟ES40的結(jié)果指示指定數(shù)據(jù)單元實(shí)際未丟失。由于該指定數(shù)據(jù)單元未丟失,就不必執(zhí)行任何擁塞控制措施,因?yàn)閷?shí)際上并無(wú)網(wǎng)絡(luò)嚴(yán)重?fù)砣娜魏沃甘?。雖然未顯示,但可以設(shè)想,可以根據(jù)步驟S33中接收到的確認(rèn)與步驟S32的重發(fā)無(wú)關(guān)這一判斷,設(shè)置針對(duì)流控參數(shù)的任意第三種調(diào)整。
可以任何適合或期望的方式實(shí)現(xiàn)數(shù)據(jù)單元發(fā)送器或中間監(jiān)視過(guò)程區(qū)分反饋消息是與重發(fā)相反還是與在先發(fā)送相關(guān)的功能。例如,這可以借助時(shí)間戳功能來(lái)實(shí)現(xiàn),據(jù)此,數(shù)據(jù)單元發(fā)送器在每個(gè)發(fā)送數(shù)據(jù)單元中包含一個(gè)時(shí)間戳,而接收器在反饋消息中包含相同的時(shí)間戳,這樣,數(shù)據(jù)單元發(fā)送器就可以明確地識(shí)別出反饋消息與哪次發(fā)送相關(guān)。區(qū)分不同次發(fā)送的另一種可能方案是在發(fā)送數(shù)據(jù)單元中包含特定初試發(fā)送/重發(fā)標(biāo)識(shí)符,此標(biāo)識(shí)符可以簡(jiǎn)單得為一個(gè)區(qū)分初始發(fā)送和重發(fā)的比特。
圖5顯示根據(jù)本發(fā)明配置的數(shù)據(jù)單元的示意框圖。圖5顯示了發(fā)送緩沖器51和控制單元52。例如,發(fā)送緩沖器51可以是適合于緩存數(shù)據(jù)的任何類(lèi)型的存儲(chǔ)器,而控制單元52可以是微處理器。圖5中,數(shù)據(jù)單元發(fā)送器表示為協(xié)議層n上的一個(gè)通信對(duì)等方,其中與接收對(duì)等方的通信用雙箭頭53表示。緩沖器51從高層n+1接收數(shù)據(jù),并遵循據(jù)以實(shí)現(xiàn)該數(shù)據(jù)單元發(fā)送器的協(xié)議準(zhǔn)備數(shù)據(jù)單元,在控制單元52的控制下,緩沖器51將這些數(shù)據(jù)單元傳遞給下層n-1??刂茊卧?2示意性地顯示為包括根據(jù)結(jié)合圖1至圖4所述方法的如下組件流控控制器521,用于控制數(shù)據(jù)單元發(fā)送器發(fā)送的數(shù)據(jù)流;檢測(cè)器522,用于檢測(cè)超時(shí)監(jiān)視過(guò)程觸發(fā)事件;以及超時(shí)監(jiān)視器523,用于檢測(cè)超時(shí)發(fā)生在短超時(shí)周期QRTO內(nèi)還是長(zhǎng)超時(shí)周期SRTO內(nèi)。這樣,將控制單元52安排用于實(shí)施上述各種方法實(shí)施例。
本發(fā)明的數(shù)據(jù)單元發(fā)送器可以硬件、軟件、或硬件和軟件的任何適當(dāng)組合的形式來(lái)實(shí)現(xiàn)。因此,本發(fā)明還可以實(shí)施為計(jì)算機(jī)程序,該計(jì)算機(jī)程序安排為在加載到可連接到通信網(wǎng)并可用作數(shù)據(jù)單元發(fā)送器的設(shè)備上,如以適當(dāng)方式連接到因特網(wǎng)的個(gè)人計(jì)算機(jī)或用于數(shù)據(jù)單元通信的運(yùn)動(dòng)通信設(shè)備上,并由該設(shè)備運(yùn)行時(shí)執(zhí)行結(jié)合圖1至圖4所述方法之一,而且本發(fā)明可以通過(guò)承載這種計(jì)算機(jī)程序的數(shù)據(jù)載體來(lái)實(shí)施。
再次重申,本發(fā)明絕不局限于上述特定實(shí)施例,而是由所附權(quán)利要求書(shū)來(lái)限定。再者,各權(quán)利要求中的標(biāo)號(hào)僅用于方便閱讀這些權(quán)利要求,而不用于限制本發(fā)明。
權(quán)利要求
1.一種控制數(shù)據(jù)單元發(fā)送器的方法,所述數(shù)據(jù)單元發(fā)送器安排成根據(jù)提供反饋功能的通信協(xié)議操作,根據(jù)該通信協(xié)議,在進(jìn)行數(shù)據(jù)單元通信的發(fā)送器從接收器接收?qǐng)?bào)告接收到所述數(shù)據(jù)單元的反饋消息;所述數(shù)據(jù)單元發(fā)送器具有用于存儲(chǔ)待發(fā)送數(shù)據(jù)的發(fā)送緩沖器;所述方法包括如下步驟用于控制所述數(shù)據(jù)單元發(fā)送器發(fā)送的數(shù)據(jù)流的流控過(guò)程;所述流控過(guò)程經(jīng)過(guò)安排,使任何給定時(shí)刻所述發(fā)送器一次可以發(fā)送的先前未發(fā)送數(shù)據(jù)量受限于可用傳輸容量值;用于檢測(cè)超時(shí)監(jiān)視過(guò)程觸發(fā)事件的過(guò)程;超時(shí)監(jiān)視過(guò)程,用于監(jiān)視在預(yù)定超時(shí)周期(S-RTO)到期之前是否有指定數(shù)據(jù)單元的反饋消息到達(dá),所述預(yù)定超時(shí)周期(S-RTO)開(kāi)始于所述超時(shí)監(jiān)視過(guò)程觸發(fā)事件發(fā)生時(shí);以及用于在所述預(yù)定超時(shí)周期(S-RTO)到期而所述確認(rèn)消息仍未到達(dá)時(shí),重發(fā)所述指定的數(shù)據(jù)單元;其中所述預(yù)定超時(shí)周期(S-RTO)是第一超時(shí)周期(S-RTO);以及所述超時(shí)監(jiān)視過(guò)程安排成如果在短于所述第一超時(shí)周期(S-RTO)的第二超時(shí)周期(Q-RTO)到期時(shí),用于未發(fā)送數(shù)據(jù)的所述可用傳輸容量值大于或等于所述指定數(shù)據(jù)單元的大小,則在所述第二超時(shí)周期(Q-RTO)到期時(shí)執(zhí)行所述指定數(shù)據(jù)單元的重發(fā)。
2.如權(quán)利要求1所述的方法,其特征在于如果所述發(fā)送緩沖器中未發(fā)送數(shù)據(jù)量小于或等于預(yù)定閾值,則僅在所述第二超時(shí)周期(Q-RTO)到期時(shí)才重發(fā)所述指定數(shù)據(jù)單元。
3.如以上權(quán)利要求之一所述的方法,其特征在于所述超時(shí)監(jiān)視過(guò)程還安排成在所述第二超時(shí)周期(Q-RTO)到期之后執(zhí)行擁塞控制過(guò)程;所述擁塞控制過(guò)程包括調(diào)整過(guò)程,用于調(diào)整所述流控過(guò)程所用的一個(gè)或多個(gè)參數(shù),以便減少允許所述發(fā)送器一次發(fā)送的先前未發(fā)送數(shù)據(jù)量。
4.如權(quán)利要求3所述的方法,其特征在于所述擁塞控制過(guò)程安排成在所述第二超時(shí)周期(Q-RTO)到期時(shí)執(zhí)行所述調(diào)整過(guò)程。
5.如權(quán)利要求3所述的方法,其特征在于所述擁塞控制過(guò)程安排成延遲執(zhí)行所述調(diào)整過(guò)程,以及在所述第二超時(shí)周期(Q-RTO)與所述第一超時(shí)周期(S-RTO)的到期之間的中間時(shí)間間隔內(nèi)執(zhí)行中間監(jiān)視過(guò)程;所述中間監(jiān)視過(guò)程安排成檢測(cè)與所述指定數(shù)據(jù)單元相關(guān)的反饋消息是否在所述中間時(shí)間間隔內(nèi)到達(dá);并且所述調(diào)整過(guò)程安排成根據(jù)所述中間監(jiān)視過(guò)程結(jié)果,在所述中間時(shí)間間隔內(nèi)沒(méi)有與所述指定數(shù)據(jù)單元相關(guān)的反饋消息到達(dá)時(shí),執(zhí)行針對(duì)所述一個(gè)或多個(gè)參數(shù)的第一調(diào)整;而在與所述指定數(shù)據(jù)單元相關(guān)的反饋消息在所述中間時(shí)間間隔內(nèi)到達(dá)時(shí),對(duì)所述一個(gè)或多個(gè)參數(shù)執(zhí)行第二調(diào)整,所述第一調(diào)整不同于所述第二調(diào)整。
6.如權(quán)利要求5所述的方法,其特征在于所述中間監(jiān)視過(guò)程安排成能夠區(qū)分接收到的與所述指定數(shù)據(jù)單元相關(guān)的反饋消息是與所述第二超時(shí)值(Q-RTO)到期時(shí)執(zhí)行的所述指定數(shù)據(jù)單元重發(fā)相關(guān),還是與所述指定數(shù)據(jù)單元先前的發(fā)送相關(guān);并且所述調(diào)整過(guò)程安排成在所述接收到的反饋消息與所述指定數(shù)據(jù)單元先前的發(fā)送相關(guān)時(shí),使所述一個(gè)或多個(gè)參數(shù)保持不變。
7.如權(quán)利要求1至6之一所述的方法,其特征在于所述流控過(guò)程是基于窗口的,并且安排成基于發(fā)送窗口與未決數(shù)據(jù)量之差來(lái)確定所述可用傳輸容量值。
8.如權(quán)利要求1至6之一所述的方法,其特征在于所述流控過(guò)程是基于速率的,并且安排成基于允許的傳輸速率來(lái)確定所述可用傳輸容量值。
9.如以上權(quán)利要求之一所述的方法,其特征在于包括測(cè)量反饋?lái)憫?yīng)時(shí)間(RTT)的過(guò)程,所述反饋?lái)憫?yīng)時(shí)間指示發(fā)送數(shù)據(jù)單元到接收到與所述反饋消息相關(guān)的反饋消息之間經(jīng)過(guò)的時(shí)間;其中所述第二超時(shí)值(Q-RTO)是根據(jù)一個(gè)或多個(gè)測(cè)量的反饋?lái)憫?yīng)時(shí)間值來(lái)確定的。
10.如權(quán)利要求9所述的方法,其特征在于所述第一超時(shí)值(S-RTO)也根據(jù)一個(gè)或多個(gè)測(cè)量的反饋?lái)憫?yīng)時(shí)間值來(lái)確定。
11.如以上權(quán)利要求之一所述的方法,其特征在于所述第二超時(shí)值(Q-RTO)大于或等于所述第一超時(shí)值(S-RTO)的某個(gè)百分?jǐn)?shù)。
12.如以上權(quán)利要求之一所述的方法,其特征在于所述數(shù)據(jù)單元發(fā)送器安排成根據(jù)傳輸控制協(xié)議TCP來(lái)操作;以及所述第一超時(shí)值(S-RTO)是標(biāo)準(zhǔn)的TCP重發(fā)超時(shí)參數(shù)RTO。
13.一種根據(jù)提供反饋功能的通信協(xié)議操作的數(shù)據(jù)單元發(fā)送器,根據(jù)所述協(xié)議,在進(jìn)行數(shù)據(jù)單元通信的發(fā)送器接收?qǐng)?bào)告接收到數(shù)據(jù)單元的反饋消息;所述數(shù)據(jù)單元發(fā)送器包括用于存儲(chǔ)待發(fā)送數(shù)據(jù)的發(fā)送緩沖器;用于控制所述數(shù)據(jù)單元發(fā)送器發(fā)送的數(shù)據(jù)流的流控控制器;所述流控控制器實(shí)施流控過(guò)程,所述流控過(guò)程經(jīng)過(guò)安排,使任何給定時(shí)刻所述發(fā)送器一次可以發(fā)送的先前未發(fā)送數(shù)據(jù)量受限于可用傳輸容量值;用于檢測(cè)超時(shí)監(jiān)視過(guò)程觸發(fā)事件的檢測(cè)器;超時(shí)監(jiān)視器,用于監(jiān)視在預(yù)定超時(shí)周期(S-RTO)到期之前是否有指定數(shù)據(jù)單元的反饋消息到達(dá)的超時(shí)監(jiān)視過(guò)程,所述預(yù)定超時(shí)周期(S-RTO)開(kāi)始于所述超時(shí)監(jiān)視過(guò)程觸發(fā)事件發(fā)生時(shí);以及用于在所述預(yù)定超時(shí)周期(S-RTO)到期而所述確認(rèn)消息仍未到達(dá)時(shí),重發(fā)所述指定的數(shù)據(jù)單元,其中所述預(yù)定超時(shí)周期(S-RTO)是第一超時(shí)周期(S-RTO);以及所述超時(shí)監(jiān)視器安排成如果短于所述第一超時(shí)周期(S-RTO)的第二超時(shí)周期(Q-RTO)到期時(shí)用于未發(fā)送數(shù)據(jù)的所述可用傳輸容量值大于或等于所述指定數(shù)據(jù)單元的大小,則在所述第二超時(shí)周期(Q-RTO)到期時(shí)執(zhí)行所述指定數(shù)據(jù)單元的重發(fā)。
14.如權(quán)利要求13所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述超時(shí)監(jiān)視器經(jīng)過(guò)安排,使得在所述發(fā)送緩沖器中未發(fā)送數(shù)據(jù)量小于或等于預(yù)定閾值時(shí),僅在所述第二超時(shí)周期(Q-RTO)到期時(shí)才重發(fā)所述指定數(shù)據(jù)單元。
15.如權(quán)利要求13或14所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述超時(shí)監(jiān)視器還安排成在所述第二超時(shí)周期(Q-RTO)到期后執(zhí)行擁塞控制過(guò)程;所述擁塞控制過(guò)程包括調(diào)整過(guò)程,用于調(diào)整所述流控過(guò)程所用的一個(gè)或多個(gè)參數(shù),以便減少允許所述發(fā)送器一次發(fā)送的先前未發(fā)送數(shù)據(jù)量。
16.如權(quán)利要求15所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述擁塞控制過(guò)程安排成在所述第二超時(shí)周期(Q-RTO)到期時(shí)執(zhí)行所述調(diào)整過(guò)程。
17.如權(quán)利要求15所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述擁塞控制過(guò)程安排成延遲執(zhí)行所述調(diào)整過(guò)程,以及在所述第二超時(shí)值(Q-RTO)與所述第一超時(shí)值(S-RTO)到期之間的中間時(shí)間間隔內(nèi)執(zhí)行中間監(jiān)視過(guò)程;所述中間監(jiān)視過(guò)程安排成檢測(cè)與所述指定數(shù)據(jù)單元相關(guān)的反饋消息是否在所述中間時(shí)間間隔內(nèi)到達(dá);并且所述中間監(jiān)視過(guò)程安排成根據(jù)所述中間監(jiān)視過(guò)程的結(jié)果,在所述中間時(shí)間間隔內(nèi)沒(méi)有與所述指定數(shù)據(jù)單元相關(guān)的反饋消息到達(dá)時(shí),執(zhí)行針對(duì)所述一個(gè)或多個(gè)參數(shù)的第一調(diào)整;而在與所述指定數(shù)據(jù)單元相關(guān)的反饋消息在所述中間時(shí)間間隔內(nèi)到達(dá)時(shí),對(duì)所述一個(gè)或多個(gè)參數(shù)執(zhí)行第二調(diào)整;所述第一調(diào)整不同于所述第二調(diào)整。
18.如權(quán)利要求17所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述中間監(jiān)視過(guò)程安排成能夠區(qū)分接收到的與所述指定數(shù)據(jù)單元相關(guān)的反饋消息是與所述第二超時(shí)值(Q-RTO)到期時(shí)執(zhí)行的所述指定數(shù)據(jù)單元的重發(fā)相關(guān),還是與所述指定數(shù)據(jù)單元先前的發(fā)送相關(guān);并且所述調(diào)整過(guò)程安排成在所述接收到的反饋消息與所述指定數(shù)據(jù)單元先前的發(fā)送相關(guān)時(shí),使所述一個(gè)或多個(gè)參數(shù)保持不變。
19.如權(quán)利要求13至18之一所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述流控過(guò)程是基于窗口的,并且安排成基于發(fā)送窗口與未決數(shù)據(jù)量之差來(lái)確定所述可用超時(shí)容量值。
20.如權(quán)利要求13至18之一所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述流控過(guò)程是基于速率的,并且安排成基于允許的傳輸速率來(lái)確定所述可用傳輸容量值。
21.如權(quán)利要求13至20之一所述的數(shù)據(jù)單元發(fā)送器,其特征在于包括用于測(cè)量反饋?lái)憫?yīng)時(shí)間(RTT)的部件,所述反饋?lái)憫?yīng)時(shí)間指示發(fā)送數(shù)據(jù)單元到接收到與所述反饋消息相關(guān)的反饋消息之間經(jīng)過(guò)的時(shí)間;其中所述數(shù)據(jù)單元發(fā)送器安排成根據(jù)一個(gè)或多個(gè)測(cè)量的反饋?lái)憫?yīng)時(shí)間值來(lái)確定所述第二超時(shí)值(Q-RTO)。
22.如權(quán)利要求21所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述數(shù)據(jù)單元發(fā)送器還安排成根據(jù)一個(gè)或多個(gè)測(cè)量的反饋?lái)憫?yīng)時(shí)間值來(lái)確定所述第一超時(shí)值(S-RTO)。
23.如權(quán)利要求13至22之一所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述第二超時(shí)值(Q-RTO)大于或等于所述第一超時(shí)值(S-RTO)的一半。
24.如權(quán)利要求13至23之一所述的數(shù)據(jù)單元發(fā)送器,其特征在于所述數(shù)據(jù)單元發(fā)送器安排成根據(jù)傳輸控制協(xié)議TCP來(lái)操作;以及所述第一超時(shí)值(S-RTO)是標(biāo)準(zhǔn)的TCP重發(fā)超時(shí)參數(shù)RTO。
25.一種計(jì)算機(jī)程序,其在連接到通信網(wǎng)的數(shù)據(jù)處理設(shè)備上運(yùn)行時(shí)用于執(zhí)行如權(quán)利要求1至12之一所述的方法,以作為數(shù)據(jù)單元發(fā)送器工作。
26.一種含有如權(quán)利要求25所述計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì)。
全文摘要
提供了一種數(shù)據(jù)單元發(fā)送器和控制該數(shù)據(jù)單元發(fā)送器的方法,其中超時(shí)監(jiān)視過(guò)程實(shí)施較長(zhǎng)的第一超時(shí)周期(SRTO)和較短的第二超時(shí)周期(QRTO);其中,根據(jù)所述超時(shí)監(jiān)視過(guò)程,在所述較短超時(shí)周期到期時(shí),如果用于未發(fā)送數(shù)據(jù)的可用傳輸容量值大于或等于要重發(fā)的指定數(shù)據(jù)單元的大小,則執(zhí)行重發(fā)。
文檔編號(hào)H04L1/16GK1695337SQ02829904
公開(kāi)日2005年11月9日 申請(qǐng)日期2002年11月18日 優(yōu)先權(quán)日2002年11月18日
發(fā)明者M·梅耶, R·魯衛(wèi), H·埃斯特勞姆 申請(qǐng)人:艾利森電話(huà)股份有限公司