欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在具有高延時(shí)及封包遺失率的網(wǎng)絡(luò)中使用傳輸控制協(xié)議來(lái)最大化帶寬利用率的制作方法

文檔序號(hào):7738742閱讀:861來(lái)源:國(guó)知局
專利名稱:在具有高延時(shí)及封包遺失率的網(wǎng)絡(luò)中使用傳輸控制協(xié)議來(lái)最大化帶寬利用率的制作方法
技術(shù)領(lǐng)域
本發(fā)明主要涉及計(jì)算系統(tǒng)及網(wǎng)絡(luò),更具體地,涉及用于避免由數(shù)據(jù)傳輸量降低引起的網(wǎng)絡(luò)延時(shí)及丟失的系統(tǒng)及方法。
背景技術(shù)
TCP為最廣泛使用的網(wǎng)絡(luò)協(xié)議之一。TCP最重要的特征為可靠的有序傳遞。TCP被需要可靠數(shù)據(jù)連接的許多網(wǎng)絡(luò)應(yīng)用及服務(wù)使用。一組廣泛的應(yīng)用層協(xié)議(該組廣泛的應(yīng)用層協(xié)議總體上形成現(xiàn)今的WEB及網(wǎng)絡(luò)連接的基礎(chǔ))使用TCP作為傳送層協(xié)議。其中有HTTP、FTP、郵件協(xié)議、數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)協(xié)議。 基于SSL的VPN也使用TCP。TCP如此風(fēng)行且普遍以致多數(shù)現(xiàn)有計(jì)算機(jī)網(wǎng)絡(luò)以TCP為特征。 TCP已變得如此常見(jiàn)以致幾乎所有(若非所有)廣泛使用的操作系統(tǒng)具有內(nèi)建式TCP應(yīng)用。然而,TCP的主要缺點(diǎn)為不能利用網(wǎng)絡(luò)信道(TCP在該網(wǎng)絡(luò)信道上操作)的整個(gè)可用帶寬。此缺點(diǎn)源于已提及的TCP的主要優(yōu)點(diǎn)可靠有序的傳遞。更精確地,提供TCP可靠性的多種機(jī)制(如滑動(dòng)窗口及阻塞避免機(jī)制)也造成了 TCP的效率低下。TCP的可靠傳遞基于數(shù)據(jù)確認(rèn)機(jī)制,即,所發(fā)送的每一數(shù)據(jù)部分由接收器側(cè)在收到時(shí)加以確認(rèn)。為此目的,在TCP封包中所發(fā)送的每一數(shù)據(jù)部分提供有序號(hào),該序號(hào)存在于 TCP片段報(bào)頭中。一旦接收到數(shù)據(jù),接收器側(cè)通過(guò)設(shè)定反向TCP片段報(bào)頭的適當(dāng)確認(rèn)號(hào)而將確認(rèn)發(fā)送至數(shù)據(jù)傳輸側(cè)。因此,輸入的片段的確認(rèn)號(hào)字段表示已離開(kāi)網(wǎng)絡(luò)且由接收器側(cè)接受的數(shù)據(jù)字節(jié)的最大數(shù)量。顯而易見(jiàn),在發(fā)送另一數(shù)據(jù)部分之前等待每一單一數(shù)據(jù)部分的確認(rèn)將花費(fèi)過(guò)長(zhǎng)時(shí)間,此為使用滑動(dòng)窗口機(jī)制的原因。TCP規(guī)范使用術(shù)語(yǔ)發(fā)送窗口大小來(lái)表示可預(yù)先發(fā)送而無(wú)需等待確認(rèn)的數(shù)據(jù)量(以字節(jié)為單位)。換句話說(shuō),最近發(fā)送的數(shù)據(jù)字節(jié)的序號(hào)與最近接收的確認(rèn)號(hào)之間的差值不得超出發(fā)送窗口大小值。一旦接收到新的確認(rèn), 則移位該窗口,且允許傳輸新的數(shù)據(jù)部分。此滑動(dòng)窗口機(jī)制相當(dāng)簡(jiǎn)單且同時(shí)提供可靠傳遞及良好產(chǎn)出率的可能性。但明顯的傳輸量上限起因于此傳輸速率受限于發(fā)送窗口大小除以RTT[字節(jié)/秒]值,其中RTT為連接往返時(shí)間(自傳輸至確認(rèn)最近確認(rèn)的數(shù)據(jù)字節(jié)所經(jīng)過(guò)的時(shí)間)??扇菀椎乜吹?,RTT(網(wǎng)絡(luò)路徑延時(shí))越高,特定發(fā)送窗口大小可達(dá)到越低的傳輸速率。上述限制實(shí)際上非常嚴(yán)峻,以致TCP很少用作時(shí)間關(guān)鍵或性能關(guān)鍵傳輸?shù)膫魉汀?諸如需要高傳送率但可靠傳遞并非關(guān)鍵的V0IP服務(wù)反而替代地使用不可靠但快速的UDP 傳送,其它類似協(xié)議/服務(wù)也是如此。
10
TCP的性能問(wèn)題隨著網(wǎng)絡(luò)帶寬變得越高而越加糟糕。當(dāng)前使用的TCP發(fā)送窗口大小計(jì)算算法通常在100至200毫秒延時(shí)的情況下并不允許利用寬帶連接多于10%至30% 的可用帶寬。已進(jìn)行許多嘗試來(lái)克服所述限制。所有所述嘗試都基于增大發(fā)送窗口大小且將該發(fā)送窗口大小保持為高,因?yàn)闆](méi)有任何方法來(lái)通過(guò)操縱TCP協(xié)議而減少當(dāng)前網(wǎng)絡(luò)延時(shí)。熟知的TCP修改Tahoe、Reno、New Reno及Vegas都提議發(fā)送窗口大小計(jì)算及傳輸 /再傳輸控制的不同方法且描述用于TCP主要階段(緩慢啟動(dòng)、阻塞避免、快速再傳輸及快速恢復(fù))的固有TCP運(yùn)行算法。TCP Tahoe因此執(zhí)行緩慢啟動(dòng)及阻塞避免階段。在緩慢啟動(dòng)期間,阻塞窗口大小最初被設(shè)定至最大片段大小,接著以在每一到達(dá)確認(rèn)上所確認(rèn)的數(shù)據(jù)大小進(jìn)行增加,因此呈指數(shù)地增大。引入阻塞窗口臨限值。當(dāng)阻塞窗口大小達(dá)到阻塞窗口臨限值時(shí),TCP進(jìn)入阻塞避免階段,在此期間阻塞窗口大小線性地增大(以每一到達(dá)確認(rèn)上所確認(rèn)的數(shù)據(jù)大小除以阻塞窗口大小)。將臨限值最初設(shè)定為最大窗口大小。在封包丟失時(shí),將臨限值設(shè)定為阻塞窗口大小的一半且涉及緩慢啟動(dòng)算法。使傳輸量顯著降低的主要TCP Tahoe問(wèn)題為延后丟失檢測(cè)(Tahoe僅通過(guò)超時(shí)設(shè)定而檢測(cè)丟失)及周期性緩慢啟動(dòng)后饋(fallback)。TCP Reno保留了 TCP Tahoe的基本概念,然而引入了稱作“快速再傳輸”的技術(shù), 該技術(shù)允許早期封包丟失檢測(cè)。根據(jù)快速再傳輸技術(shù),封包丟失必須由遠(yuǎn)程接收器通過(guò)多個(gè)重復(fù)確認(rèn)來(lái)立即加以表示。在立即封包再傳輸之后,TCP Reno并不返回至緩慢啟動(dòng),而執(zhí)行快速恢復(fù)。將窗口臨限值及阻塞窗口大小設(shè)定為初始阻塞窗口大小的一半。接著,阻塞窗口大小增大每一到達(dá)的重復(fù)確認(rèn)上的MSS,且在阻塞窗口大小超出當(dāng)前未確認(rèn)的數(shù)據(jù)大小的情況下允許新數(shù)據(jù)傳輸。在執(zhí)行快速恢復(fù)(其在收到最近確認(rèn)時(shí)結(jié)束)之后,TCP Reno返回至阻塞避免。TCP New-Reno繼承TCP Reno機(jī)制,但實(shí)施經(jīng)修改的快速恢復(fù)階段。在封包丟失檢測(cè)的時(shí)刻之前發(fā)送至網(wǎng)絡(luò)的所有封包確認(rèn)之前,不退出快速恢復(fù)。部分確認(rèn)(未覆蓋到丟失檢測(cè)之前所傳輸?shù)娜繑?shù)據(jù)量)被視為連續(xù)丟失的證據(jù)且立即再傳輸更多封包。TCP Vegas為T(mén)CP Reno修改。TCP Vegas使用基于預(yù)期及真實(shí)的帶寬估計(jì)的額外阻塞避免機(jī)制,且根據(jù)該機(jī)制來(lái)調(diào)整阻塞窗口大小。TCP Vegas也在由通過(guò)無(wú)法預(yù)期的高 RTT檢測(cè)發(fā)起的重復(fù)確認(rèn)表示封包丟失之前,執(zhí)行早期再傳輸。本發(fā)明不遵從上述技術(shù),而是使用新技術(shù)來(lái)實(shí)現(xiàn)上述修改不能實(shí)現(xiàn)的最優(yōu)帶寬利用率。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例可包括兩個(gè)方面TCP協(xié)議修改,及將此修改引入現(xiàn)有OS的技術(shù)。 可組合或分開(kāi)地使用這些方面。TCP協(xié)議修改意味著修改現(xiàn)有TCP實(shí)施以引入在數(shù)據(jù)傳輸/再傳輸期間的新的 TCP協(xié)議運(yùn)行及發(fā)送窗口大小計(jì)算的新算法以改善TCP的性能。引入技術(shù)意味著使用在現(xiàn)有計(jì)算機(jī)系統(tǒng)中實(shí)施TCP修改的軟件,而無(wú)需移除或停用可能已作為現(xiàn)有計(jì)算機(jī)系統(tǒng)的主機(jī)OS的部分的現(xiàn)有TCP實(shí)施,而替代地修改現(xiàn)有TCP實(shí)施的運(yùn)行且以恰當(dāng)方式重新取得部分?jǐn)?shù)據(jù)傳輸控制以達(dá)到所要結(jié)果。
本發(fā)明中引入的TCP修改允許最大化可用帶寬利用率。根據(jù)本發(fā)明的實(shí)施例的 TCP修改方案的優(yōu)點(diǎn)為不存在在發(fā)送器側(cè)及接收器側(cè)的TCP實(shí)施處進(jìn)行相同修改的操作的要求(根據(jù)一些實(shí)施例,該修改僅需要存在于發(fā)送器側(cè))。這區(qū)分了本發(fā)明的實(shí)施例與 TCP修改的先前嘗試(其需要兼容的修改以在連接的兩側(cè)處操作,諸如SACK、窗口縮放及其它)。


圖1為本發(fā)明的具體實(shí)施例的技術(shù)介紹,其針對(duì)執(zhí)行具有內(nèi)建TCP通信協(xié)議支持和通信數(shù)據(jù)流的操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)。圖2說(shuō)明本發(fā)明的具體實(shí)施例的處理子系統(tǒng)架構(gòu)及操作。圖3說(shuō)明本發(fā)明的具體實(shí)施例的封包關(guān)聯(lián)算法。圖4說(shuō)明本發(fā)明的具體實(shí)施例的連接實(shí)體建立算法。圖5說(shuō)明本發(fā)明的具體實(shí)施例的輸出封包處理算法。圖6說(shuō)明本發(fā)明的具體實(shí)施例的輸入封包處理算法。圖7說(shuō)明本發(fā)明的具體實(shí)施例的傳輸算法。圖8說(shuō)明本發(fā)明的具體實(shí)施例的具有超時(shí)檢查及PLC的再傳輸算法。圖9說(shuō)明根據(jù)本發(fā)明的一些實(shí)施例的SWND計(jì)算算法。圖10說(shuō)明典型計(jì)算系統(tǒng)1000,其可用于實(shí)施本發(fā)明的實(shí)施例中的處理功能性。
具體實(shí)施例方式本發(fā)明的實(shí)施例引入了 TCP協(xié)定的修改,該修改主要涉及其數(shù)據(jù)傳輸/再傳輸算法,特別地,涉及不同TCP運(yùn)行時(shí)間階段期間的發(fā)送窗口大小計(jì)算。不同TCP修改可通過(guò)其阻塞避免技術(shù)來(lái)加以區(qū)分。TCP Tahoe, Reno及New-Reno 使用所謂的“反應(yīng)性”阻塞避免,上述意味著該修改僅可在阻塞已發(fā)生之后檢測(cè)阻塞。“反應(yīng)性”阻塞避免假定發(fā)送窗口大小一直增大直至檢測(cè)到封包丟失為止。封包丟失被視為阻塞證據(jù),且基于特定修改來(lái)采取所需行動(dòng)。這樣的反應(yīng)可包括發(fā)送窗口大小及發(fā)送窗口臨限值大小調(diào)整、執(zhí)行再傳輸或快速再傳輸以及進(jìn)入緩慢啟動(dòng)或快速恢復(fù)階段。此“反應(yīng)性”阻塞避免的一個(gè)缺點(diǎn)為實(shí)際上并沒(méi)有避免阻塞。TCP繼續(xù)增大發(fā)送窗口大小直至信道阻塞為止,且未來(lái)測(cè)量?jī)H減小阻塞及防止某一時(shí)間段的封包丟失。以這樣的方式,TCP實(shí)施從一種阻塞轉(zhuǎn)至另一種阻塞,此舉引起傳輸速率細(xì)微改變且充分地減小總傳輸量。TCP Vegas使用稱作“前瞻性”阻塞避免的不同機(jī)制。其概念為在阻塞真實(shí)地發(fā)生之前避免阻塞。TCP Vegas使用不同估計(jì)以用于調(diào)整發(fā)送窗口大小及進(jìn)行再傳輸決策。這些不同的估計(jì)基于預(yù)期的與真實(shí)的傳輸量差值及基準(zhǔn)與當(dāng)前RTT差值。這些測(cè)量確實(shí)真實(shí)地允許避免多數(shù)阻塞、平滑化傳輸速率及最優(yōu)化帶寬使用。所有TCP修改對(duì)于每個(gè)連接階段使用類似的發(fā)送窗口大小計(jì)算算法。通常使用兩個(gè)估計(jì)量接收窗口大小及阻塞窗口大小。且將發(fā)送窗口大小設(shè)定為兩者中最小的。在緩慢啟動(dòng)階段期間,將阻塞窗口大小最初設(shè)定為最大片段大小且接著呈指數(shù)地增大。在接收到每一新確認(rèn)時(shí),阻塞窗口增大由遠(yuǎn)程側(cè)所確認(rèn)的數(shù)據(jù)字節(jié)的數(shù)量。執(zhí)行此
12指數(shù)增大直至阻塞窗口大小達(dá)到發(fā)送大小臨限值為止,此時(shí)進(jìn)入阻塞避免階段。阻塞避免階段假定阻塞窗口大小線性地增大。在每一新確認(rèn)到達(dá)時(shí),阻塞窗口大小增大由所確認(rèn)的字節(jié)數(shù)目除以阻塞窗口大小。本發(fā)明的實(shí)施例無(wú)需如其它TCP修改那樣清楚地區(qū)分緩慢啟動(dòng)階段與阻塞避免階段;緩慢啟動(dòng)階段與阻塞避免階段可使用新“阻塞避免下的傳輸”階段代替。在阻塞避免下的傳輸階段期間,當(dāng)前實(shí)施例可基于當(dāng)前RTT值按照指數(shù)規(guī)律或線性地增大發(fā)送窗口大小或減小發(fā)送窗口大小。本發(fā)明的實(shí)施例也可在“再傳輸”階段期間(當(dāng)其再傳輸丟失的封包時(shí))使用不同規(guī)則。當(dāng)發(fā)生以下情形之一時(shí)認(rèn)為發(fā)生封包丟失特定封包的再傳輸超時(shí)期滿、特定封包的第3個(gè)重復(fù)確認(rèn)已到達(dá)、或封包在由接收器所表示的選擇性確認(rèn)間隙外, 而稍后的封包已在該選擇性確認(rèn)間隙內(nèi)。根據(jù)本發(fā)明的實(shí)施例,發(fā)送窗口大小調(diào)整決策可基于以下記載。網(wǎng)絡(luò)路徑延時(shí)視中間路由器的隊(duì)列充滿度(fullness)而定。一旦隊(duì)列為空,則所有封包立即由路由器轉(zhuǎn)發(fā),且不存在因封包在路由器隊(duì)列中等待服務(wù)而引起的額外延時(shí)。此事實(shí)識(shí)別網(wǎng)絡(luò)路徑并不阻塞,且路由器應(yīng)對(duì)在當(dāng)前速率下的傳輸。在此狀況下,封包及該封包的確認(rèn)可在最短的可能時(shí)間內(nèi)通過(guò)網(wǎng)絡(luò)路由。一旦路由器的隊(duì)列開(kāi)始填滿封包,網(wǎng)絡(luò)延時(shí)即開(kāi)始增長(zhǎng),從而在封包穿越的每一路由器處獲得一小增量。此事實(shí)允許本發(fā)明的一些實(shí)施例隱含地追蹤網(wǎng)絡(luò)路徑路由器的隊(duì)列充滿度,且因此估計(jì)網(wǎng)絡(luò)路徑是否阻塞以便進(jìn)行發(fā)送窗口大小調(diào)整決策。即使網(wǎng)絡(luò)路徑最初部分地阻塞,在發(fā)送窗口大小調(diào)整(且因此額外封包注入)之后計(jì)算的RTT與最小RTT之間的差值為網(wǎng)絡(luò)狀態(tài)改變的證據(jù)。且該差值的大小用于進(jìn)行發(fā)送窗口大小調(diào)整決策。此技術(shù)稱作“基于延時(shí)的窗口調(diào)整”。此技術(shù)也考慮諸如RTT變化及RTT改變速度等參數(shù),RTT改變速度有助于進(jìn)行關(guān)于發(fā)送窗口調(diào)整的時(shí)間及大小的更精確決策。本發(fā)明的一些實(shí)施例可使用以下參數(shù)來(lái)執(zhí)行發(fā)送窗口大小調(diào)整過(guò)程1. RTT-往返時(shí)間或往返延遲時(shí)間,傳輸封包與收到該封包的確認(rèn)之間所消逝的時(shí)間。2. MIN_RTT-在連接操作的預(yù)定時(shí)段期間所注意到的最小RTT(在下文描述MIN_ RTT壽命)。3. NEff_RTT-最近確認(rèn)的片段的RTT。4. S_RTT-平滑化的 RTT 估計(jì)量,S_RTT = (S_RTT* (RTT_Sff-l) +NEff_RTT) /RTT_Sff, 其中RTT_SW為RTT平滑窗口大小,因此S_RTT為針對(duì)最近RTT_SW確認(rèn)所測(cè)量的NEW_RTT 值的一種平均值。S_RTT事實(shí)上類似于原始TCP的平滑化RTT估計(jì)量。5. RTT_AVAR-對(duì)每一確認(rèn)進(jìn)行測(cè)量且對(duì)于VAR_SW數(shù)量的確認(rèn)平滑化的RTT絕對(duì)變化,其中 VAR_Sff 為變化平滑窗口 大小。RTT_AVAR = (RTT_AVAR* (VAR_Sff-l) +NEff_AVAR) / VAR_SW,其中 NEW_AVAR 為近期測(cè)量的絕對(duì)變化,NEff_AVAR = NEW_RTT_S_RTT。6. RTT_RVAR-RTT 相對(duì)變化,RTT_RVAR = RTT_AVAR/S_RTT。7. RTT_AGRff-對(duì)每一確認(rèn)進(jìn)行測(cè)量且對(duì)于GRW_SW數(shù)量的確認(rèn)平滑化的RTT絕對(duì)增長(zhǎng),其中 GRW_SW 為增長(zhǎng)平滑窗口 大小。RTT_AGRW = (RTT_AGRW* (GRff_Sff-l) +NEff_AGRff) / GRW_SW,其中NEW_AGRW為近期測(cè)量的絕對(duì)增長(zhǎng),NEff_AGRff =新S_RTT-先前S_RTT。說(shuō)明書(shū)
5/16 頁(yè)8. RTT_RGRff-RTT 相對(duì)增長(zhǎng),RTT_RGRff = RTT_AGRW/S_RTT。9. RTO-再傳輸超時(shí),RTO = S_RTT*tot,其中tot為超時(shí)臨限值。10. ACK_DS-經(jīng)確認(rèn)的數(shù)據(jù)大小,由最近接收的確認(rèn)數(shù)量所確認(rèn)的字節(jié)數(shù)。11. MAX_RWND-接收側(cè)曾通告的最大接收窗口大小。12. NEW_RWND-近期通告的遠(yuǎn)程接收器窗口大小。13. SWND-發(fā)送窗口大小,允許在無(wú)確認(rèn)的情況下發(fā)送的字節(jié)數(shù)。14. AffND-實(shí)際窗口大小,已發(fā)送但仍未經(jīng)確認(rèn)的字節(jié)數(shù)。15. SWND_GRW-在每一 SWND增大時(shí)測(cè)量且平滑化的發(fā)送窗口大小增長(zhǎng)。此值為最近MIN_RTT時(shí)段期間經(jīng)平滑化之SWND±曾長(zhǎng)。SWND_GRW在每次SWND遞增時(shí)與SWND遞增相同值,且在此后根據(jù)以下公式立即平滑化:SWND_GRW = SWND_GRff-SWND_GRff* (dt/MIN_RTT), 其中dt為自最近平滑化所經(jīng)過(guò)的時(shí)間間隔。SWND_GRW不應(yīng)低于0。16. EIRT-指數(shù)增大RTT臨限值,NEW_RTT不得超過(guò)MIN_RTT之時(shí)間值(MIN_RTT的部分)(因?yàn)镾WND可能呈指數(shù)地增大)。17. EIGT-指數(shù)增大增長(zhǎng)臨限值,RTT_RGRW/RTT_RVAR (或 RTT_AGRW/RTT_AVAR)不應(yīng)超出的值(因?yàn)镾WND可能呈指數(shù)地增大)。18. EIID-指數(shù)增大增量除數(shù),SffND增量在指數(shù)增大期間所除以的值。19. LIRT-線性增大RTT臨限值,NEW_RTT不得超過(guò)MIN_RTT的時(shí)間值(MIN_RTT的部分)(因?yàn)镾WND可能呈指數(shù)地增大)。20. LIGT-線性增大增長(zhǎng)臨限值,如果RTT_RGRW/RTT_RVAR不超出此值,則SWND可線性地增大。21. LIID-線性增大增量除數(shù),SffND增量在線性增大期間所除以的值。22. CART-阻塞避免RTT臨限值(此時(shí)間值按MIN_RTT的部分測(cè)量);如果NEW_RTT 比MIN_RTT超出CART,則減小SWND以避免阻塞。23. CAGT-阻塞避免增長(zhǎng)臨限值,如果RTT_RGRW/RTT_RVAR超出此值,則減小SWND 以避免阻塞。24. CAffT-阻塞避免窗口增長(zhǎng)臨限值。如果SWND_GRW超出CAWT,則SWND線性地減小,否則SWND按比例地減小。25. OAWT-溢出避免窗口臨限值。如果RWND低于此值,則傳輸被暫停直至再次通告 RWND足夠高為止。26. CCRT-特性改變RTT臨限值。當(dāng)SRTT超出此臨限值時(shí),預(yù)期網(wǎng)絡(luò)狀態(tài)顯著改變且重設(shè)并刷新諸如MIN_RTT的基本連接參數(shù)。27. CADD-阻塞避免減量除數(shù),SffND減量在阻塞避免減小期間所除以的值。觀.PDDD-成比例減小減量除數(shù),SWND減量在阻塞避免或封包丟失時(shí)成比例減小期間所除以的值。根據(jù)一些實(shí)施例,阻塞避免下的傳輸階段開(kāi)始于連接操作的一開(kāi)始。最初將發(fā)送窗口大小設(shè)定為m*MSS,其中“m”為片段中的最小窗口大小,且“MSS”為此特定連接的最大片段大小。接著,針對(duì)每一輸入的非重復(fù)確認(rèn)調(diào)整發(fā)送窗口大小。根據(jù)如上文所提及表示通道狀態(tài)的RTT值及RTT增長(zhǎng)量值進(jìn)行SWND調(diào)整決策。在一些實(shí)施例中,存在4個(gè)通道狀態(tài)空閑、占用、幾乎阻塞、阻塞?!翱臻e”、“占用”及“幾乎阻塞”通道狀態(tài)分別由低、中間及高RTT值(相對(duì)于MIN_RTT)表示?!白枞睜顟B(tài)由封包丟失以及高RTT值表示。在判定網(wǎng)絡(luò)處于“空閑”狀態(tài)時(shí)SWND呈指數(shù)地增大,且在RTT變得較高且網(wǎng)絡(luò)變?yōu)椤罢加谩睍r(shí)SWND 線性地增大。高RTT很可能為接近阻塞的證據(jù),在路由器隊(duì)列幾乎填滿時(shí)RTT確實(shí)通常增長(zhǎng),且不管此特定連接正嘗試以過(guò)高速率傳輸還是某一其它連接已獲得相同瓶頸的帶寬的部分實(shí)際上并無(wú)差異。因此,當(dāng)檢測(cè)到網(wǎng)絡(luò)狀態(tài)為“幾乎阻塞”時(shí),減小SWND以避免可能的阻塞。已發(fā)生封包丟失且網(wǎng)絡(luò)狀態(tài)變?yōu)椤白枞钡臓顩r并不視為處于“阻塞避免下的傳輸” 階段且將稍后加以描述。應(yīng)用關(guān)于RTT增長(zhǎng)速度的額外條件以判定SWND調(diào)整的時(shí)亥Ij。RTT在網(wǎng)絡(luò)阻塞時(shí)通常并不即刻地增大,而是連續(xù)地增長(zhǎng)。當(dāng)網(wǎng)絡(luò)處于穩(wěn)定狀態(tài)時(shí),RTT通常圍繞5_1 17振蕩, RTT增長(zhǎng)因此圍繞0振蕩。但RTT增長(zhǎng)已變得引人注意的事實(shí)意味著RTT將很可能繼續(xù)增大。此舉允許本發(fā)明的實(shí)施例預(yù)先進(jìn)行SWND調(diào)整決策。一些網(wǎng)絡(luò)不穩(wěn)定性以及接近“幾乎阻塞”狀態(tài)的網(wǎng)絡(luò)可能引起較小的RTT增長(zhǎng)。在此狀況下,本發(fā)明的實(shí)施例可暫時(shí)停止增大 SffND直至情況穩(wěn)定為止。但當(dāng)RTT增長(zhǎng)變得足夠快時(shí),最可能的是此特定連接或某一其它連接已開(kāi)始阻塞網(wǎng)絡(luò),且沒(méi)有理由地等待直至(NEW_RTT-MIN_RTT)差值超出臨限值才開(kāi)始減小SWND。替代地,本發(fā)明的實(shí)施例可基于RTT增長(zhǎng)的速率而開(kāi)始減小SWND。此技術(shù)允許本發(fā)明的實(shí)施例比RTT差值技術(shù)提前某些若干封包檢測(cè)接近的阻塞。此舉至關(guān)重要,因?yàn)檫@些封包通常為在可能的阻塞期間可能已丟失的封包。當(dāng)RTT增長(zhǎng)在零以下過(guò)低時(shí),也停止增大SWND。此負(fù)增長(zhǎng)值表示由完成其傳輸?shù)哪骋贿B接或阻塞后信道清除引起之網(wǎng)絡(luò)不穩(wěn)定,SffND在這些狀況下不應(yīng)在小RTT上增大直至情況穩(wěn)定為止。如果SWND在不穩(wěn)定期間增大,則SWND可能超出其對(duì)于特定網(wǎng)絡(luò)路徑的實(shí)際最大可能值。然而,SffND在負(fù)RTT增長(zhǎng)值上并不減小,因?yàn)槠洳⒉槐硎窘咏枞R驗(yàn)椴煌W(wǎng)絡(luò)及網(wǎng)絡(luò)路徑以不同RTT變化大小為特征,因此RTT增長(zhǎng)可通過(guò)除以 RTT變化來(lái)加以調(diào)整,此舉可避免在高RTT變化(或振蕩)因持續(xù)的RTT增長(zhǎng)而混淆時(shí),進(jìn)行多數(shù)不合適的SWND調(diào)整決策。如果NEW_RTT < = MIN_RTT* (1+EIRT)且 | RTT_RGRW/RTT_RVAR | < = EIGT,則發(fā)送窗口大小呈指數(shù)地增大。此條件來(lái)自于以下結(jié)論如果RTT足夠低,則網(wǎng)絡(luò)處于“空閑”狀態(tài),且允許SWND快速增長(zhǎng)以便迅速達(dá)到最大帶寬利用率。指數(shù)增量通常并不為恒定值,且視NEW_RTT而定,指數(shù)增量越接近于MIN_RTT* (1+EIRT),增量越小。根據(jù)以下公式計(jì)算指數(shù)增量ACK_DS*{[1-(NEW_RTT-MIN_RTT)/(MIN_RTT*EIRT)]*(1-1/EIID)+1/EIID}。換句話說(shuō),指數(shù)增量處于 ACK_DS (當(dāng) NEW_RTT = MIN_RTT 時(shí))與 ACK_DS/EIID (當(dāng) NEWR_TT = MIN_ RTT*(1+EIRT)時(shí))值之間。此允許在RTT差值接近臨限值時(shí)逐漸地減小指數(shù)SWND增長(zhǎng)。當(dāng) MIN_RTT* (1+EIRT) < NEff_RTT < = MIN_RTT* (1+LIRT)且 EIGT < | RTT_RGRff/ RTT_RVAR| <= LIGT時(shí),發(fā)送窗口大小線性地增大。這是因?yàn)樵诖藯l件下,RTT仍足夠低,但網(wǎng)絡(luò)已在一定程度上被占用且因此SWND必須以更精確的方式增大。線性增量也不為恒定值而是視NEW_RTT而定。用于線性增量的公式為(ACK_DS/SWND)*{[ (1+LIRT)/ (LIRT-EIRT)-(NEW_RTT-MIN_RTT)/(MIN_RTT* (LIRT-EIRT)) ]* (1/LIID)}。換句話說(shuō),線性增量處于 ACK_DS/LIID(當(dāng) NEW_RTT = MIN_RTT*(1+EIRT)+1/ ①時(shí))與 0(當(dāng) NEW_RTT = MIN_RTT*(1+LIRT)時(shí))之間。當(dāng) NEW_RTT > MIN_RTT* (1+CART)或 | RTT_RGRW/RTT_RVAR | > CAGT (意味著網(wǎng)絡(luò)
15幾乎阻塞且應(yīng)改變傳輸速率)時(shí),減小發(fā)送窗口大小。使SWND減小SWND_GRW/CADD,即,使 SffND大致減小其在RTT毫秒之前的值,因?yàn)榇吮徽J(rèn)為是連續(xù)SWND (且因此AWND)增大已使網(wǎng)絡(luò)狀態(tài)惡化的時(shí)間。由于在等于當(dāng)前RTT的時(shí)間經(jīng)過(guò)之前系統(tǒng)無(wú)法注意到其測(cè)量是否已帶來(lái)任何結(jié)果,因此不允許SWND比每MIN_RTT —次更頻繁地遞減。如果NEW_RTT > MIN_RTT* (1+CART)或 | RTT_RGRW/RTT_RVAR | > CAGT 但 SWND_GRW <CAWT,則網(wǎng)絡(luò)由其它連接阻塞,因?yàn)楫?dāng)前連接正以恒定的穩(wěn)定速率傳輸。因此,SWND應(yīng)根據(jù)新出現(xiàn)的條件加以調(diào)整。根據(jù)熟知公式SWND/RTT來(lái)執(zhí)行可用帶寬的估計(jì),且因?yàn)镽TT已改變,因此SWND也可以相同速率改變。因此,SffN = SWND* (MIN_RTT/NEff_RTT)?;谏衔乃鲈?,SffND不應(yīng)比每MIN_RTT —次更頻繁地遞減。兩個(gè)上述SWND減量概念允許避免由臨時(shí)網(wǎng)絡(luò)不穩(wěn)定、特定連接過(guò)大傳送率或部分地暫時(shí)占用可用帶寬的小的偶然性傳輸引起的阻塞。但大傳送改變可用帶寬及其它網(wǎng)絡(luò)特性歷時(shí)相當(dāng)長(zhǎng)的時(shí)間段(這實(shí)際上意味著當(dāng)前連接不再于其先前用于的網(wǎng)絡(luò)中操作), 且連接運(yùn)行時(shí)間變量及估計(jì)也應(yīng)改變。所有運(yùn)行時(shí)間參數(shù)計(jì)算基于MIN_RTT值,該值為曾注意到的最小RTT且為基本網(wǎng)絡(luò)路徑特性之一。但如果網(wǎng)絡(luò)狀態(tài)已充分改變,則可認(rèn)為此特性不再有效。如果S_RTT達(dá)到MIN_RTT* (1+CCRT)值,則該值識(shí)別充分網(wǎng)絡(luò)狀態(tài)改變,該改變可觸發(fā)MIN_RTT重設(shè)。在此狀況下,可將MIN_RTT重設(shè)為S_RTT*f,其中“f ”為最小RTT 調(diào)整因子。因此,可將MIN_RTT壽命判定為由充分的S_RTT增大所識(shí)別的顯著網(wǎng)絡(luò)狀態(tài)改變之間的時(shí)段。用于將系統(tǒng)置于“阻塞避免下的傳輸”階段的主要傳輸條件為AWND < SffND ;然而, 可能施加更多的限制以避免遠(yuǎn)程接收器緩沖區(qū)溢出。原始TCP協(xié)議將SWND設(shè)定為CWND與 RWND中最小的。本發(fā)明的實(shí)施例并不直接使用RWND估計(jì)量,因?yàn)槠渫ǔ?duì)SWND施加相當(dāng)嚴(yán)格的限制,甚至對(duì)于所啟用的窗口縮放選項(xiàng)也是如此。RWND表示遠(yuǎn)程接收器此刻準(zhǔn)備好接受的字節(jié)數(shù),原始TCP實(shí)施在超出此限制的情況下將不發(fā)送更多數(shù)據(jù)。然而,本發(fā)明的實(shí)施例可忽略此限制以便使固有的SWND過(guò)度增長(zhǎng)且允許更快的傳輸速率。RWND仍可保持對(duì)本發(fā)明的實(shí)施例有用的參數(shù),因?yàn)樵搶?shí)施例中的一些在NEW_RWND < MAX_RWND*0AWT時(shí)不傳輸額外數(shù)據(jù),即使?jié)M足AWND < SWND的條件。此可確保遠(yuǎn)程接收器緩沖區(qū)不溢出。如果所通告的RWND開(kāi)始降得過(guò)低,則此識(shí)別在遠(yuǎn)程接收器緩沖區(qū)中存在許多錯(cuò)誤排序的封包且此刻正執(zhí)行重排序,或遠(yuǎn)程接收器不能夠以當(dāng)前傳送率接受封包。如果傳送率不立即減小, 則這些條件均導(dǎo)致緩沖區(qū)溢出及大量封包遺失率。由于這些原因,本發(fā)明的實(shí)施例提供暫停傳輸直至再次通告足夠大的RWND。根據(jù)本發(fā)明的一些實(shí)施例,可使用第二運(yùn)行時(shí)間階段,此為“再傳輸”階段。在再傳輸階段期間,再傳輸先前檢測(cè)為丟失的封包,且不管是否滿足所有條件,不允許任何正常傳輸。如上文所提及,封包丟失通過(guò)以下之一來(lái)識(shí)別特定片段的RTO已期滿,特定片段的第 3個(gè)重復(fù)確認(rèn)已到達(dá),或封包在由接收器所表示的選擇性確認(rèn)間隙外,而稍后的封包已在該選擇性確認(rèn)間隙內(nèi)。RTO值在每一 RTT測(cè)量時(shí)根據(jù)以下公式計(jì)算RT0 = S_RTT*a+RTT_AVAR*b。若在定期檢查期間發(fā)現(xiàn)RTO時(shí)段已自特定封包發(fā)送時(shí)間消逝,則認(rèn)為封包丟失,系統(tǒng)進(jìn)入“再傳輸”模式且再傳輸封包。RTO期滿通常表示歸因于阻塞或一些其它嚴(yán)重網(wǎng)絡(luò)(或遠(yuǎn)程接收器)問(wèn)題的大量封包丟失,因?yàn)橛尚∽枞鸬囊馔鈦G失或丟失最可能借助于第3個(gè)重復(fù)確認(rèn)或SACK而被盡早發(fā)現(xiàn)。一旦系統(tǒng)已在RTO期滿時(shí)進(jìn)入“再傳輸”模式,則將SWND調(diào)整至SWND = SWND* (MIN_RTT/RT0),且對(duì)于下一 MIN_RTT時(shí)段且直至退出“再傳輸”階段,不再允許SWND減小以避免過(guò)大的SWND速率減小。封包丟失也可由第3個(gè)重復(fù)確認(rèn)或SACK選項(xiàng)識(shí)別,其中報(bào)告未接收到特定封包而接收到隨后封包。此事件也將極端TCP推入“再傳輸”階段中且引起丟失封包的再傳輸。 然而,此封包丟失表示通常識(shí)別此刻網(wǎng)絡(luò)輕度阻塞或丟失是意外的,因此可使用較小SWND 減量。因此,可將SWND調(diào)整至SWND = SWND* (MIN_RTT/L_RTT),其中L_RTT為“封包丟失 RTT",即自發(fā)送丟失封包的時(shí)刻到表示該封包丟失的時(shí)刻所測(cè)量的往返時(shí)間。接著,對(duì)于下一 MIN_RTT時(shí)段且直至退出“再傳輸”階段,不允許SWND再減小。緊隨丟失封包確認(rèn)之后,系統(tǒng)退出“再傳輸”階段且重新進(jìn)入“阻塞避免下的傳輸” 階段。然而,封包丟失確實(shí)常常導(dǎo)致稍后在“再傳輸”退出時(shí)的大量確認(rèn),其視在認(rèn)為有丟失封包之后遠(yuǎn)程側(cè)接收到的封包數(shù)而定。甚至在“處于丟失狀態(tài)(on loss) ”SWND調(diào)整之后,AffND也由于大量確認(rèn)而顯得比在“再傳輸”階段退出時(shí)的SWND低得多,此為一常見(jiàn)情況。此情況導(dǎo)致幾乎立即以過(guò)大速率傳輸相當(dāng)大量的數(shù)據(jù),此舉導(dǎo)致甚至更顯著的網(wǎng)絡(luò)阻塞。可對(duì)“再傳輸”階段退出執(zhí)行額外SWND調(diào)整以便避免此情形。如果在“再傳輸”階段退出時(shí)SWND > AWND+MSS*m,則將SWND設(shè)定為AWND+MSS*m,其中MSS為對(duì)于連接的最大片段大小且“m”為最小窗口大小(以MSS計(jì))。本發(fā)明的實(shí)施例可僅涉及TCP傳輸及再傳輸機(jī)制。其不需要干涉TCP連接建立/ 關(guān)閉/重設(shè)技術(shù)中任一個(gè)。此外,本發(fā)明的實(shí)施例不需要知曉經(jīng)由TCP使用的上層協(xié)議或所傳送的數(shù)據(jù)。實(shí)施例可將經(jīng)由TCP傳送的數(shù)據(jù)處理為原始八字節(jié)流,且不進(jìn)行嘗試來(lái)干涉上層內(nèi)容/操作、修改、復(fù)制或?qū)⑵鋫鬟f至第三方。因此,根據(jù)本發(fā)明的實(shí)施例的TCP傳輸/再傳輸機(jī)制修改不需要打斷TCP的可靠有序傳遞特征或中斷TCP兼容性。在運(yùn)行具有內(nèi)建式TCP實(shí)施的OS的機(jī)器處布署技術(shù)的描述多數(shù)常用操作系統(tǒng)已具有TCP實(shí)施。內(nèi)建式OS TCP實(shí)施的替換可能相當(dāng)復(fù)雜。因此,本發(fā)明的一些實(shí)施例以下列技術(shù)為特征將上述慣常TCP實(shí)施的修改引入至具有內(nèi)建式TCP實(shí)施的操作系統(tǒng),而不完全替換現(xiàn)有TCP實(shí)施。此技術(shù)經(jīng)開(kāi)發(fā)為彈性的且與多數(shù)廣泛使用的OS兼容。一些實(shí)施例的一個(gè)特性在于并非替換現(xiàn)有內(nèi)建式TCP實(shí)施本身,而是實(shí)施例可修改其運(yùn)行且自原始實(shí)施部分地重新取得傳輸/再傳輸控制,以便根據(jù)上述TCP修改提供TCP運(yùn)行。能夠進(jìn)行網(wǎng)絡(luò)連接的所有當(dāng)前OS實(shí)施ISO的OSI概念的某一變化,根據(jù)該變化, 網(wǎng)絡(luò)協(xié)議實(shí)施為子系統(tǒng)的堆棧,每一子系統(tǒng)服務(wù)于相應(yīng)OSI層(或鄰近層的集合)。本發(fā)明的實(shí)施例可能需要在網(wǎng)絡(luò)與實(shí)體層之間的層處截取/產(chǎn)生封包以適當(dāng)?shù)夭僮鞯哪芰Α,F(xiàn)有 OS通常確實(shí)提供此能力。因此,本發(fā)明的實(shí)施例可由放置在網(wǎng)絡(luò)連接與實(shí)體層實(shí)施之間某處的軟件來(lái)執(zhí)行,且可變?yōu)轭~外中間子系統(tǒng),該額外中間子系統(tǒng)對(duì)于本地端發(fā)送器看似遠(yuǎn)程接收器且對(duì)于遠(yuǎn)程接收器看似發(fā)送器。執(zhí)行本發(fā)明的實(shí)施例的軟件可由封包捕獲子系統(tǒng)及連接處理子系統(tǒng)組成。封包捕獲子系統(tǒng)提供封包截取及產(chǎn)生能力。此子系統(tǒng)為軟件的外部通信接口,且可允許與本地端TCP實(shí)施的其余部分及遠(yuǎn)程接收器交換封包。連接處理子系統(tǒng)為應(yīng)用上述TCP流量控制修改的子系統(tǒng)。
封包捕獲子系統(tǒng)為外部子系統(tǒng)且可由第三方封包捕獲軟件以及經(jīng)特定設(shè)計(jì)以用于本發(fā)明的實(shí)施例的軟件來(lái)表示。在此軟件提供允許至少在數(shù)據(jù)鏈路或網(wǎng)絡(luò)層處捕獲(截取)并傳輸封包的最小API的情況下,本發(fā)明的實(shí)施例可能能夠被衰減以與任何封包捕獲軟件一起使用為封包捕獲子系統(tǒng)。連接處理子系統(tǒng)實(shí)施TCP修改自身。連接處理子系統(tǒng)依次包括若干子系統(tǒng)輸入子系統(tǒng)、篩選子系統(tǒng)、處理子系統(tǒng)、輸出子系統(tǒng)。輸入子系統(tǒng)與輸出子系統(tǒng)形成連接處理子系統(tǒng)數(shù)據(jù)接口。輸入子系統(tǒng)負(fù)責(zé)從封包捕獲子系統(tǒng)接收封包,以及經(jīng)由篩選子系統(tǒng)將接收的封包傳遞至處理子系統(tǒng)。輸出子系統(tǒng)負(fù)責(zé)自處理子系統(tǒng)接收封包,以及將接收的封包轉(zhuǎn)發(fā)至封包捕獲子系統(tǒng)。篩選子系統(tǒng)允許將封包自輸入透明地轉(zhuǎn)發(fā)至輸出,從而避免涉及處理子系統(tǒng)。可根據(jù)預(yù)定及使用者定義的準(zhǔn)則篩選出封包,該準(zhǔn)則允許將TCP修改僅應(yīng)用于所需連接,從而使其余連接的運(yùn)行保持不變。如果可用的封包捕獲子系統(tǒng)提供一些篩選能力,則此封包捕獲子系統(tǒng)可用以實(shí)施篩選子系統(tǒng)的至少一部分。在封包捕獲子系統(tǒng)處的早期封包篩選可避免跨子系統(tǒng)數(shù)據(jù)傳送的不必要的時(shí)間消耗,從而提高總體性能。處理子系統(tǒng)執(zhí)行上述TCP修改。處理子系統(tǒng)追蹤當(dāng)前處理的連接的狀態(tài)且執(zhí)行數(shù)據(jù)傳輸/再傳輸。每一連接可與TCP連接實(shí)體相關(guān)聯(lián),該TCP連接實(shí)體可表示為識(shí)別碼、數(shù)據(jù)及變量。連接的識(shí)別碼為一組網(wǎng)絡(luò)地址,該組網(wǎng)絡(luò)地址允許明確地區(qū)分特定連接與其它連接,且使所捕獲的封包與特定連接實(shí)體相關(guān)聯(lián)以用于進(jìn)一步處理。連接數(shù)據(jù)儲(chǔ)存由傳輸及再傳輸緩沖區(qū)表示,該緩沖區(qū)分別含有準(zhǔn)備好發(fā)送的封包及已發(fā)送且有待確認(rèn)的封包。 連接實(shí)體具有反映網(wǎng)絡(luò)及連接自身的當(dāng)前狀態(tài)的一組廣泛運(yùn)行時(shí)間變量,諸如SWND、AWND、 RTT、變化等。本發(fā)明的一些實(shí)施例用以修改原始內(nèi)建式TCP運(yùn)行的兩個(gè)主要技術(shù)為先占式欺騙數(shù)據(jù)確認(rèn)以及封包丟失隱藏。原始內(nèi)建式TCP實(shí)施不能以高于SWND/RTT的速率傳輸,且原始SWND通常不夠高以達(dá)成所需傳送率。本發(fā)明的實(shí)施例可能不知當(dāng)前原始SWND值,同時(shí)也不可改變?cè)摦?dāng)前原始SWND值。因此,可使用先占式欺騙數(shù)據(jù)確認(rèn)(PSDA)技術(shù)。PSDA包括發(fā)出早期確認(rèn)(在真實(shí)確認(rèn)到達(dá)前),并將其轉(zhuǎn)發(fā)至原始TCP實(shí)施,此舉迫使該原始TCP實(shí)施使發(fā)送窗口邊緣移位并傳輸新數(shù)據(jù)。因此,本發(fā)明的實(shí)施例可獲得足夠封包以填充SWND,且以所需速率執(zhí)行傳輸。PSDA也可能使原始TCP自其再傳輸緩沖區(qū)刪除早期確認(rèn)的封包,但本發(fā)明的實(shí)施例可通過(guò)實(shí)施其固有再傳輸機(jī)制來(lái)解決此問(wèn)題。PSDA以兩種方式執(zhí)行發(fā)出具有先占式欺騙確認(rèn)號(hào)的空封包,或?qū)⒄鎸?shí)的輸入封包的確認(rèn)號(hào)修改為先占式欺騙確認(rèn)號(hào)。先占式欺騙確認(rèn)號(hào)在考慮以下特征的情況下進(jìn)行計(jì)算當(dāng)前軟件連接實(shí)體傳輸緩沖區(qū)應(yīng)始終包含足夠的數(shù)據(jù)以在下一真實(shí)數(shù)據(jù)確認(rèn)之后填充SWND-AWND差值。將此差值估計(jì)為每一真實(shí)確認(rèn)所確認(rèn)的數(shù)據(jù)的平均大小。先占式欺騙確認(rèn)號(hào)也可能需要滿足以下限制其不應(yīng)覆蓋尚未由原始TCP實(shí)施發(fā)送且由當(dāng)前軟件緩沖的數(shù)據(jù),S卩,先占式欺騙確認(rèn)號(hào)永遠(yuǎn)不應(yīng)超出[最近緩沖的封包序號(hào)]+ [最近緩沖之封包數(shù)據(jù)大小]值,因?yàn)閷⑦@些確認(rèn)號(hào)傳遞至原始TCP可能導(dǎo)致其未定義的運(yùn)行且中斷連接操作。封包丟失隱藏(PLC)用于防止原始TCP實(shí)施注意到實(shí)際丟失的封包并再傳輸該封包。盡管原始TCP封包再傳輸對(duì)于本發(fā)明的實(shí)施例的操作并不關(guān)鍵(重復(fù)封包在處理時(shí)被丟棄),但再傳輸涉及額外耗時(shí)的數(shù)據(jù)傳送且使總體性能降低。此外,如果未自原始TCP隱藏已經(jīng)先占式欺騙確認(rèn)的數(shù)據(jù)(此數(shù)據(jù)已在欺騙確認(rèn)時(shí)自原始TCP再傳輸緩沖區(qū)被移除) 的丟失,則其可能不可預(yù)測(cè)地運(yùn)行。PLC利用PSDA實(shí)施且部分地由其超覆(overridden)。 可區(qū)分出兩種PLC =RTO期滿表示的丟失的隱藏及第3個(gè)重復(fù)確認(rèn)表示的丟失的隱藏。在收到第3個(gè)重復(fù)確認(rèn)時(shí),本發(fā)明的實(shí)施例進(jìn)入“再傳輸”階段且不傳輸新封包, 這意味著連接實(shí)體的傳輸緩沖區(qū)不清空且先占式欺騙確認(rèn)號(hào)不增大。在此狀況下,先占式欺騙確認(rèn)號(hào)對(duì)于每一輸入的重復(fù)確認(rèn)遞增1以避免欺騙原始TCP的重復(fù)確認(rèn)。若先占式欺騙確認(rèn)號(hào)達(dá)到[最近緩沖的封包序號(hào)]+[最近緩沖的封包數(shù)據(jù)大小]值,則其不再遞增,因此,在每一重復(fù)確認(rèn)到達(dá)時(shí)向原始TCP欺騙式地確認(rèn)最近緩沖的數(shù)據(jù)字節(jié)(其顯然也是由原始TCP最近傳輸?shù)?。RTO期滿隱藏由PSDA部分地超覆,因?yàn)槎鄶?shù)封包在其RTO期滿之前已經(jīng)預(yù)先確認(rèn)。 然而,如果RTO自未由先占式欺騙確認(rèn)覆蓋的封包的緩沖時(shí)刻起已期滿,則確認(rèn)此封包數(shù)據(jù)的特殊空欺騙封包被發(fā)出且轉(zhuǎn)發(fā)至原始TCP。接著,將先占式欺騙確認(rèn)號(hào)調(diào)整至最近欺騙確認(rèn)的封包的[序號(hào)]+ [數(shù)據(jù)大小]。然而,本發(fā)明的實(shí)施例的RTO計(jì)算無(wú)需與原始TCP RTO計(jì)算相關(guān)。因此,原始TCP實(shí)施可針對(duì)特定封包在當(dāng)前軟件發(fā)出對(duì)其的欺騙確認(rèn)之前檢測(cè)其內(nèi)部RTO期滿。此并非為重要問(wèn)題,因?yàn)镽TO表示的丟失并非操作關(guān)鍵的,在此狀況下, 表示為丟失的封包仍存在于原始TCP再傳輸緩沖區(qū)中且被再傳輸,其僅引起總體性能的不適當(dāng)降低,但并非引起連接操作崩潰??傮w處理子系統(tǒng)操作可通過(guò)以下算法集合來(lái)加以描述封包關(guān)聯(lián)、連接實(shí)體建立、 輸出封包處理、輸入封包處理、傳輸、具有超時(shí)檢查及PLC的再傳輸。處理子系統(tǒng)的操作始于等待新的封包接收。如果在此等待期間滿足一些停止條件,則處理子系統(tǒng)放棄此等待且終止其操作。否則,一旦接收到封包,則傳遞該封包以進(jìn)行處理。處理子系統(tǒng)假定其接收的封包已通過(guò)篩選或封包捕獲子系統(tǒng)篩選。其仍需要封包關(guān)聯(lián)機(jī)制,該機(jī)制判定所接收的封包與哪一特定連接相關(guān)。本發(fā)明的實(shí)施例可操作以下術(shù)語(yǔ)本地IP/端口及遠(yuǎn)程IP/端口,該本地IP/端口及該遠(yuǎn)程IP/端口分別表示本地端及遠(yuǎn)程主機(jī)的網(wǎng)絡(luò)/傳送地址。連接實(shí)體的識(shí)別碼由這兩對(duì)地址表示。如果封包地址集合匹配同一識(shí)別碼,則將所接收的封包判定為屬于當(dāng)前追蹤的連接之一。一旦判定封包的連接,則在特定連接實(shí)體內(nèi)容中處理該封包。如果封包的連接未判定,則在檢查預(yù)定新連接建立條件之后將該封包透明地轉(zhuǎn)發(fā)至輸出子系統(tǒng)。本發(fā)明的實(shí)施例可能需要在連接建立期間對(duì)于特定連接所協(xié)商的一些基本信息, 其可由本發(fā)明進(jìn)一步處理。因此,僅當(dāng)建立新連接時(shí)且本發(fā)明的軟件正監(jiān)視通信時(shí)可建立用于進(jìn)行進(jìn)一步處理的新連接實(shí)體。一些實(shí)施例在連接已處于其操作中的情況下并不建立用于進(jìn)一步處理的新連接實(shí)體(在此狀況下,該連接可由篩選子系統(tǒng)篩選出且由原始TCP 實(shí)施處理)。新實(shí)體建立的主要條件可為收到具有SYN標(biāo)識(shí)集合的網(wǎng)絡(luò)至TCP (遠(yuǎn)程至本地主機(jī))封包。自此連接建立封包獲得諸如最大窗口大小、窗口尺度及最大片段大小的重要運(yùn)行時(shí)間參數(shù)。若不滿足上述連接保存條件,則不建立新連接實(shí)體,且將封包轉(zhuǎn)發(fā)至輸出子系統(tǒng)而不進(jìn)行任何處理。在使封包與如上所述的當(dāng)前現(xiàn)有連接實(shí)體之一相關(guān)聯(lián)之后,根據(jù)封包方向而在其內(nèi)容中處理該封包。若以下方程序成立,則將輸出(本地至遠(yuǎn)程主機(jī))封包添加至連接傳輸緩沖區(qū) [新封包序號(hào)]=[最近封包序號(hào)]+ [最近封包數(shù)據(jù)大小]。此條件保證僅排序良好的封包由處理子系統(tǒng)緩沖以用于傳輸。同時(shí),丟棄重復(fù)或無(wú)序封包。在已緩沖新的輸出封包之后,涉及傳輸算法。輸入(遠(yuǎn)程至本地主機(jī))封包用于獲得基本連接狀態(tài)信息。輸入封包不經(jīng)儲(chǔ)存, 而是在將可選的較少修改應(yīng)用于其以滿足PSDA及PLC要求之后透明地向上轉(zhuǎn)發(fā)至TCP。在輸入封包接收時(shí)所采取的第一操作是連接再傳輸緩沖區(qū)檢查,該檢查出于檢測(cè)經(jīng)確認(rèn)的封包或再傳輸請(qǐng)求的目的而執(zhí)行。在確認(rèn)檢查期間也執(zhí)行RTT計(jì)算。若來(lái)自連接再傳輸緩沖區(qū)的封包通過(guò)輸入封包確認(rèn)([經(jīng)緩沖的封包序號(hào)]+ [經(jīng)緩沖的封包數(shù)據(jù)大小] <=[輸入封包確認(rèn)號(hào)]),則將NEW_RTT設(shè)定為等于從該經(jīng)緩沖的封包傳輸至收到其確認(rèn)所消逝的時(shí)間。若檢測(cè)到經(jīng)緩沖封包的第3個(gè)重復(fù)確認(rèn),則將L_RTT設(shè)定為等于從該經(jīng)緩沖的封包傳輸至收到第3個(gè)重復(fù)確認(rèn)所消逝的時(shí)間。接著將經(jīng)確認(rèn)及所請(qǐng)求的再傳輸封包分別自再傳輸緩沖區(qū)刪除,或加標(biāo)記以用于再傳輸。接著,刷新或重新計(jì)算運(yùn)行時(shí)間變量,諸如RWND、 AWND、S_RTT、RTT變化及增長(zhǎng)。在刷新這些變量之后,重新計(jì)算主要參數(shù)SWND。由于SWND、 AffND及RWND可能已改變且現(xiàn)在可能允許新封包都傳輸,因此調(diào)用傳輸算法。傳輸算法包括發(fā)送條件檢查,檢查成功之后的傳輸緩沖區(qū)封包提取及傳輸。傳輸算法始于初始封包選擇及發(fā)送條件檢查。自傳輸緩沖區(qū)選擇具有最小序號(hào)的封包,且檢查以下發(fā)送條件SffND > AWND+[選定的封包數(shù)據(jù)大小]及NEW_RWND > MAX_RWND*0AWT。若滿足以上條件,則將該封包自傳輸緩沖區(qū)提取、傳輸,且將該封包的副本保存至再傳輸緩沖區(qū)。AWND接著增加所傳輸封包的數(shù)據(jù)大小。在一循環(huán)中重復(fù)這些操作直至傳輸緩沖區(qū)被清空或不滿足傳輸條件。超時(shí)檢查及利用PLC的再傳輸算法可劃分為兩部分。在PLC階段期間,檢查來(lái)自傳輸緩沖區(qū)與再傳輸緩沖區(qū)的封包以判定RTO時(shí)段是否已從最初緩沖每一單獨(dú)封包的時(shí)刻(即,原始TCP實(shí)施傳輸該封包的時(shí)刻)消逝。若這些封包存在且尚未借助于PSDA方法加以確認(rèn),則發(fā)出特殊丟失隱藏欺騙確認(rèn)封包,并將其轉(zhuǎn)發(fā)至原始TCP以防止其注意到RTO 期滿及再傳輸。丟失隱藏欺騙確認(rèn)號(hào)必須通過(guò)自緩沖時(shí)刻起期滿的RT0,覆蓋最近緩沖的封包。接著,將先占式欺騙確認(rèn)號(hào)設(shè)定為丟失隱藏欺騙確認(rèn)號(hào)。超時(shí)檢查及再傳輸階段假定來(lái)自再傳輸緩沖區(qū)的封包將針對(duì)RTO期滿加以檢查,且加上標(biāo)記以用于再傳輸。接著,再傳輸在輸入封包處理或超時(shí)檢查期間被加上標(biāo)記以用于再傳輸?shù)乃蟹獍?,但施加以下限制以避免過(guò)大的再傳輸速率允許特定封包每MIN_RTT僅被再傳輸一次,且總體再傳輸速率不應(yīng)超出所估計(jì)的可用帶寬。圖1圖示了將本發(fā)明的實(shí)施例引入執(zhí)行OS的計(jì)算機(jī)系統(tǒng)的技術(shù),該OS具有內(nèi)建式TCP協(xié)議支持及通信數(shù)據(jù)流。實(shí)施本發(fā)明的實(shí)施例的軟件被引入至數(shù)據(jù)發(fā)送器系統(tǒng),且在物體與傳送ISO OSI模型層之間執(zhí)行其操作。此軟件在本發(fā)明中稱作“極端TCP”。數(shù)據(jù)發(fā)送器系統(tǒng)可為一般個(gè)人計(jì)算機(jī),或經(jīng)由TCP協(xié)議發(fā)送數(shù)據(jù)的任何計(jì)算機(jī)。該軟件截取網(wǎng)絡(luò)封包并借助于所截取的封包修改及新封包產(chǎn)生,來(lái)改變TCP操作的標(biāo)準(zhǔn)流程。將極端TCP 軟件106引入至數(shù)據(jù)發(fā)送器系統(tǒng)100,數(shù)據(jù)發(fā)送器系統(tǒng)100經(jīng)由在本地TCP 102與遠(yuǎn)程TCP 103之間建立的TCP連接,執(zhí)行至遠(yuǎn)程數(shù)據(jù)接收器系統(tǒng)的數(shù)據(jù)傳輸。極端TCP軟件106中
20斷本地TCP 102與遠(yuǎn)程TCP 103之間的直接連接流,且變?yōu)閳?zhí)行固有TCP修改的中間虛擬主機(jī)。極端TCP軟件由連接處理子系統(tǒng)107及封包捕獲子系統(tǒng)108組成。封包捕獲子系統(tǒng) 108截取輸入與輸出方向的網(wǎng)絡(luò)封包,且將其重定向至連接處理子系統(tǒng)107??蓪⒕W(wǎng)絡(luò)封包的正常流向描述為實(shí)體及數(shù)據(jù)流的以下序列[本地TCP 102-數(shù)據(jù)流133-本地網(wǎng)絡(luò)接口 104-數(shù)據(jù)流127-網(wǎng)絡(luò)105-數(shù)據(jù)流128-遠(yuǎn)程TCP 103]及反向方向的倒序。輸出封包的重定向的流向看似為[本地TCP 102-數(shù)據(jù)流120-封包捕獲子系統(tǒng)108-數(shù)據(jù)流121-連接處理子系統(tǒng)107-數(shù)據(jù)流125-封包捕獲子系統(tǒng)108-數(shù)據(jù)流126-本地網(wǎng)絡(luò)接口 104-數(shù)據(jù)流127-網(wǎng)絡(luò)105-數(shù)據(jù)流128-遠(yuǎn)程TCP 103],且輸入封包遵循此流向[遠(yuǎn)程TCP 103-數(shù)據(jù)流129-網(wǎng)絡(luò)105-數(shù)據(jù)流130-本地網(wǎng)絡(luò)接口 104-數(shù)據(jù)流131-封包捕獲子系統(tǒng)108-數(shù)據(jù)流121-連接處理子系統(tǒng)107-數(shù)據(jù)流125-封包捕獲子系統(tǒng)108-數(shù)據(jù)流132-本地TCP 102]。連接處理子系統(tǒng)107由輸入子系統(tǒng)109、篩選子系統(tǒng)110、處理子系統(tǒng)111及輸出子系統(tǒng)112組成。輸入子系統(tǒng)109及輸出子系統(tǒng)112負(fù)責(zé)連接處理子系統(tǒng)107與封包捕獲子系統(tǒng)108之間的通信。篩選子系統(tǒng)110篩選出不相關(guān)封包,且經(jīng)由數(shù)據(jù)流113將該不相關(guān)封包轉(zhuǎn)發(fā)至輸出子系統(tǒng)112,且接著立即且透明地轉(zhuǎn)發(fā)至封包捕獲子系統(tǒng)108。篩選子系統(tǒng)110可完全地或部分地借助于封包捕獲子系統(tǒng)108來(lái)實(shí)施(若可通過(guò)其提供適當(dāng)特征)。處理子系統(tǒng)111應(yīng)用本發(fā)明的實(shí)施例的協(xié)議修改的實(shí)施。其架構(gòu)及操作總體由圖 2表示且細(xì)節(jié)由圖3至圖9給出。在處理子系統(tǒng)111、本地TCP102與遠(yuǎn)程TCP103之間可存在若干不同的虛擬數(shù)據(jù)通信流。虛擬數(shù)據(jù)流114表示為[本地TCP 102-數(shù)據(jù)流120-封包捕獲子系統(tǒng)108-數(shù)據(jù)流121-輸入子系統(tǒng)109-數(shù)據(jù)流122-篩選子系統(tǒng)110-數(shù)據(jù)流123-處理子系統(tǒng)111]。處理子系統(tǒng)111經(jīng)由虛擬數(shù)據(jù)流114接收來(lái)自本地TCP 102的數(shù)據(jù)、緩沖該數(shù)據(jù)并根據(jù)極端 TCP協(xié)議修改概念來(lái)經(jīng)由虛擬數(shù)據(jù)流116將其傳輸/再傳輸至遠(yuǎn)程TCP 103。虛擬資料流 116表示為[處理子系統(tǒng)111-數(shù)據(jù)流124-輸出子系統(tǒng)112-數(shù)據(jù)流125-封包捕獲子系統(tǒng) 108-數(shù)據(jù)流126-本地網(wǎng)絡(luò)接口 104-數(shù)據(jù)流127-網(wǎng)絡(luò)105-數(shù)據(jù)流128-遠(yuǎn)程TCP 103]。 遠(yuǎn)程TCP 103經(jīng)由虛擬數(shù)據(jù)流117向處理子系統(tǒng)111確認(rèn)所接收的數(shù)據(jù),虛擬數(shù)據(jù)流117 表示為[遠(yuǎn)程TCP 103-數(shù)據(jù)流129-網(wǎng)絡(luò)105-數(shù)據(jù)流130-本地網(wǎng)絡(luò)接口 104-數(shù)據(jù)流 131-封包捕獲子系統(tǒng)108-數(shù)據(jù)流121-輸入子系統(tǒng)109-數(shù)據(jù)流122-篩選子系統(tǒng)110-數(shù)據(jù)流123-處理子系統(tǒng)111]。處理子系統(tǒng)借助于經(jīng)由虛擬數(shù)據(jù)流115傳達(dá)的PSDA及PLC來(lái)修改本地TCP 102的運(yùn)行,虛擬數(shù)據(jù)流115表示為[處理子系統(tǒng)111-數(shù)據(jù)流124-輸出子系統(tǒng)112-數(shù)據(jù)流125-封包捕獲子系統(tǒng)108-數(shù)據(jù)流132-本地TCP 102]。圖2圖示了處理子系統(tǒng)架構(gòu)及操作。實(shí)線表示處理子系統(tǒng)主循環(huán)的控制流。處理子系統(tǒng)無(wú)限地等待以下之一滿足停止條件、超時(shí)檢查時(shí)間已到,或經(jīng)由數(shù)據(jù)流207自篩選 /輸入子系統(tǒng)接收到新封包。處理子系統(tǒng)在滿足停止條件時(shí)立即停止。若超時(shí)檢查時(shí)間已到,則將控制傳遞至具有超時(shí)檢查及PLC的再傳輸算法206,在其完成時(shí)將處理子系統(tǒng)置于等待狀態(tài)。若自篩選/輸入子系統(tǒng)接收到新封包,則執(zhí)行封包關(guān)聯(lián)201。若成功地使最近接收的封包與當(dāng)前處理的連接實(shí)體之一相關(guān)聯(lián),則根據(jù)封包方向分別經(jīng)由控制流210及數(shù)據(jù)流211或控制流212及數(shù)據(jù)流213,將控制及數(shù)據(jù)傳遞至輸出封包處理203或輸入封包處理204之一。輸出封包處理算法203緩沖所接收的封包且執(zhí)行PSDA,PSDA發(fā)出先占式欺騙確認(rèn)封包,并經(jīng)由數(shù)據(jù)流208將其轉(zhuǎn)發(fā)至輸出子系統(tǒng)。輸入封包處理算法204刷新連接狀態(tài)及運(yùn)行時(shí)間變量、修改所接收的封包(出于PSDA及PLC的目的)及經(jīng)由數(shù)據(jù)流214 將其轉(zhuǎn)發(fā)至輸出子系統(tǒng)。接著將控制傳遞至傳輸算法205,該算法205通過(guò)經(jīng)由數(shù)據(jù)流209 將先前緩沖的封包轉(zhuǎn)發(fā)至輸出子系統(tǒng)而傳輸該先前緩沖的封包。具有超時(shí)檢查及PLC的再傳輸算法檢查RTO期滿表示的丟失及PLC必要性、發(fā)出丟失隱藏欺騙確認(rèn)封包及經(jīng)由數(shù)據(jù)流215將其轉(zhuǎn)發(fā)至輸出子系統(tǒng),且接著通過(guò)經(jīng)由數(shù)據(jù)流216將所需封包轉(zhuǎn)發(fā)至輸出系統(tǒng)而重新傳輸所需封包。接著,將處理子系統(tǒng)置于等待狀態(tài)。若新封包不與當(dāng)前處理的連接實(shí)體之一相關(guān)聯(lián),則傳遞該新封包以用于處理至連接實(shí)體建立算法202,該連接實(shí)體建立算法 202檢查建立表示此封包連接的新實(shí)體是否可能。經(jīng)由控制流217及數(shù)據(jù)流218,將控制及數(shù)據(jù)傳送至連接實(shí)體建立算法。連接實(shí)體建立接著經(jīng)由數(shù)據(jù)流220將封包轉(zhuǎn)發(fā)至輸出子系統(tǒng),并經(jīng)由流219將控制傳遞至再傳輸算法206。圖3圖示了封包關(guān)聯(lián)算法。其自處理子系統(tǒng)主循環(huán)接收控制(經(jīng)由控制流300) 及數(shù)據(jù)(經(jīng)由數(shù)據(jù)流30 。接著檢查封包以屬于當(dāng)前處理的連接實(shí)體。若對(duì)于所接收的封包未發(fā)現(xiàn)匹配的連接實(shí)體,則將控制(經(jīng)由控制流301)及數(shù)據(jù)(經(jīng)由數(shù)據(jù)流303的封包) 傳遞至連接實(shí)體建立算法。若發(fā)現(xiàn)了匹配的連接實(shí)體,則分別經(jīng)由控制流304及數(shù)據(jù)流306 或控制流307及數(shù)據(jù)流308,將控制及數(shù)據(jù)傳遞至輸出封包處理算法或輸入封包處理算法。圖4圖示了連接實(shí)體建立算法。其自封包關(guān)聯(lián)算法接收控制(經(jīng)由控制流400)及數(shù)據(jù)(經(jīng)由數(shù)據(jù)流402的封包)。若滿足新的連接實(shí)體建立條件,則建立新實(shí)體并經(jīng)由數(shù)據(jù)流403將新實(shí)體保存至連接實(shí)體緩沖區(qū)405。接著經(jīng)由數(shù)據(jù)流407將封包轉(zhuǎn)發(fā)至輸出子系統(tǒng),且經(jīng)由控制流406將控制傳回至處理子系統(tǒng)主循環(huán),而不管是否滿足新實(shí)體建立條件。圖5圖示了輸出封包處理算法。其自封包關(guān)聯(lián)算法接收控制(控制流504)及數(shù)據(jù)(經(jīng)由數(shù)據(jù)流506的封包)。檢查所接收的封包以匹配排序良好的連續(xù)數(shù)據(jù)傳輸?shù)臈l件。 若封包為重復(fù)或錯(cuò)誤排序的,則將其放棄并丟棄。若封包為良好排序的,則將其保存至連接實(shí)體傳輸緩沖區(qū)505 (經(jīng)由數(shù)據(jù)流508)。接著檢查PSDA必要性,且發(fā)出先占式欺騙確認(rèn)封包,并經(jīng)由數(shù)據(jù)流507將該封包轉(zhuǎn)發(fā)至輸出子系統(tǒng)。在完成時(shí)將控制傳遞至傳輸算法(控制流501)。圖6圖示了輸入封包處理算法。其自封包關(guān)聯(lián)算法接收控制(流60 及數(shù)據(jù)(經(jīng)由數(shù)據(jù)流611的封包)。檢查來(lái)自連接實(shí)體再傳輸緩沖區(qū)610的封包,以待由所接收的封包確認(rèn)或請(qǐng)求再傳輸。若封包經(jīng)確認(rèn),則刷新NEW_RTT且自再傳輸緩沖區(qū)610刪除經(jīng)確認(rèn)的封包。若刪除再傳輸請(qǐng)求,則標(biāo)記所需封包以用于進(jìn)一步再傳輸。當(dāng)檢查完所有經(jīng)緩沖的封包時(shí),刷新連接狀態(tài)及運(yùn)行時(shí)間變量。此處進(jìn)行明顯為極端TCP協(xié)議修改的本質(zhì)的SWND 的計(jì)算(算法607)。接著修改所接收的封包以使其匹配PSDA及PLC的要求,并經(jīng)由數(shù)據(jù)流 612將其轉(zhuǎn)發(fā)至輸出子系統(tǒng)。將控制傳遞至傳輸算法(流608)。圖7圖示了傳輸算法。其自輸出封包處理算法(經(jīng)由控制流608)或輸入封包處理算法(經(jīng)由控制流501)接收控制。因此,自傳輸緩沖區(qū)505選擇封包并檢查發(fā)送條件。 若允許傳輸特定封包,則將該特定封包自傳輸緩沖區(qū)505提取、傳輸(通過(guò)經(jīng)由數(shù)據(jù)流705 轉(zhuǎn)發(fā)至輸出子系統(tǒng)),并且接著將該特定封包的副本保存至再傳輸緩沖區(qū)610。一旦不滿足傳輸條件或傳輸緩沖區(qū)505已清空,則將控制傳遞至再傳輸算法(經(jīng)由控制流703)。圖8圖示了具有超時(shí)檢查及PLC的再傳輸算法。其自處理子系統(tǒng)主循環(huán)(流800)或傳輸算法(流70 或連接建立算法(流406)接收控制。針對(duì)丟失隱藏欺騙確認(rèn)必要性, 檢查來(lái)自傳輸緩沖區(qū)505及再傳輸緩沖區(qū)610的第一封包。若RTO自特定封包緩沖的時(shí)刻起已期滿,且封包尚未借助于PSDA而經(jīng)欺騙確認(rèn),則發(fā)出PLC確認(rèn)并經(jīng)由數(shù)據(jù)流813將該 PLC確認(rèn)轉(zhuǎn)發(fā)至輸出子系統(tǒng)。同時(shí)針對(duì)RTO表示的丟失,檢查來(lái)自再傳輸緩沖區(qū)610的封包。若RTO自封包傳輸時(shí)刻起已期滿,則懷疑其丟失且對(duì)其加標(biāo)記以用于再傳輸。接著,該算法再傳輸先前加標(biāo)記的封包,從而經(jīng)由數(shù)據(jù)流814將先前加標(biāo)記的封包傳遞至輸出子系統(tǒng)。在再傳輸完成時(shí)將控制傳回至處理子系統(tǒng)主循環(huán)(控制流802)。圖9圖示了根據(jù)本發(fā)明的一些實(shí)施例的SWND計(jì)算算法1.如果封包已經(jīng)確認(rèn)1. 1.如果 NEW_RTT <= MIN_RTT* (1+EIRT)且 | RTT_RGRW/RTT_RVAR | <= EIGT, 則 SWND = SWND+ACK_DS*{[1-(NEW_RTT-MIN_RTT)/(MIN_RTT*EIRT)]*(1-1/EIID)+1/EIID} (SffND呈指數(shù)地增大)。1. 2. MIN_RTT* (1+EIRT) < NEff_RTT < = MIN_RTT* (1+LIRT)且 EIGT < | RTT_RGRff/ RTT_RVAR < = LIGT,則 SWND = SffND+(ACK_DS/SWND)*{[(1+LIRT)/(LIRT-EIRT)-(NEff_ RTT-MIN_RTT) / (MIN_RTT* (LIRT-EIRT)) ] * (1/LIID)} (SWND 線性地增大)。1. 3.如果[NEW_RTT > MIN_RTT* (1+CART)或 | RTT_RGRW/RTT_RVAR | > CAGT]且 SWND_GRW > = CAWTJIJ SffND = SWND-SWND_GRW/CADD (SWND 線性地減小)。1. 4.如果 NEW_RTT > MIN_RTT* (1+CART)或 | RTT_RGRW/RTT_RVAR | > CAGT]且 SWND_GRW < CAWT,貝丨J SffND = SWND* (MIN_RTT/NEff_RTT) (SWND 按比例地減小)。2.若檢測(cè)到丟失2. 1.如果表示RTO期滿表示的丟失,則SWND = SWND* (MIN_RTT/RT0) (SWND按比例地減小)。2. 2.如果檢測(cè)到SACK表示的丟失的第3個(gè)重復(fù)確認(rèn),則SWND = SWND* (MIN_RTT/ L_RTT) (SWND按比例地減小)。圖10圖示了典型計(jì)算系統(tǒng)1000,其該系統(tǒng)1000可用以實(shí)施本發(fā)明的實(shí)施例中的處理功能性。此類型的計(jì)算系統(tǒng)可用于(例如)客戶端及服務(wù)器中。本領(lǐng)域的技術(shù)人員也將認(rèn)識(shí)到如何使用其它計(jì)算機(jī)系統(tǒng)或架構(gòu)來(lái)實(shí)施本發(fā)明。計(jì)算系統(tǒng)1000可表現(xiàn)為(例如)桌上型、膝上型或筆記型計(jì)算機(jī)、掌上型計(jì)算裝置(PDA、手機(jī)、掌上型計(jì)算機(jī)等)、大型機(jī)、服務(wù)器、客戶端,或?qū)τ诮o定應(yīng)用或環(huán)境可能所需或適當(dāng)?shù)娜魏纹渌愋偷膶S没蛲ㄓ糜?jì)算裝置。計(jì)算系統(tǒng)1000可包括一個(gè)或多個(gè)處理器,諸如處理器1004。處理器1004可使用通用或?qū)S锰幚硪娑鴮?shí)施,諸如微處理器、微控制器或其它控制邏輯。在此實(shí)例中,處理器1004連接至總線1002或其它通信媒體。計(jì)算系統(tǒng)1000也可包括主存儲(chǔ)器1008,諸如隨機(jī)存取存儲(chǔ)器(RAM)或其它動(dòng)態(tài)存儲(chǔ)器,以用于儲(chǔ)存信息及待由處理器1004執(zhí)行的指令。主存儲(chǔ)器1008也可用于在執(zhí)行待由處理器1004執(zhí)行的指令期間儲(chǔ)存臨時(shí)變量或其它中間信息。計(jì)算系統(tǒng)1000同樣可包括耦接至總線1002以用于儲(chǔ)存靜態(tài)信息及用于處理器1004的指令的只讀存儲(chǔ)器(“ROM”) 或其它靜態(tài)儲(chǔ)存器件。計(jì)算系統(tǒng)1000也可包括信息儲(chǔ)存系統(tǒng)1010,該信息儲(chǔ)存系統(tǒng)1010可包括(例如) 媒體驅(qū)動(dòng)器1012及可移除式儲(chǔ)存接口 1020。媒體驅(qū)動(dòng)器1012可包括驅(qū)動(dòng)器或其它機(jī)構(gòu)以
23支持固定的或可移除的儲(chǔ)存媒體,諸如硬盤(pán)驅(qū)動(dòng)器、軟盤(pán)驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器、 CD或DVD驅(qū)動(dòng)器(R或RW),或其它可移除的或固定的媒體驅(qū)動(dòng)器。儲(chǔ)存媒體1018可包括 (例如)硬盤(pán)、軟盤(pán)、磁帶、光盤(pán)、⑶或DVD,或可通過(guò)媒體驅(qū)動(dòng)器1012讀取及寫(xiě)入的其它固定的或可移除的媒體。如這些實(shí)例所圖示的,儲(chǔ)存媒體1018可包括其中儲(chǔ)存有特定計(jì)算機(jī)軟件或數(shù)據(jù)的計(jì)算機(jī)可讀儲(chǔ)存媒體。在替代實(shí)施例中,信息儲(chǔ)存系統(tǒng)1010可包括其它類似組件以用于允許將計(jì)算機(jī)程序或其它指令或數(shù)據(jù)加載至計(jì)算系統(tǒng)1000中。這樣的組件可包括(例如)可移除式儲(chǔ)存單元1022及接口 1020,諸如程序盒式儲(chǔ)存器(program cartridge)及盒式(cartridge) 接口、可移除式存儲(chǔ)器(例如,閃存或其它可移除式存儲(chǔ)器模塊)及存儲(chǔ)器槽,及允許將軟件及數(shù)據(jù)自可移除式儲(chǔ)存單元1022轉(zhuǎn)移至計(jì)算系統(tǒng)1000的其它可移除式儲(chǔ)存單元1022 及接口 1020。計(jì)算系統(tǒng)1000也可包括通信接口 10M。通信接口 IOM可用以允許在計(jì)算系統(tǒng) 1000與外部裝置之間轉(zhuǎn)移軟件及數(shù)據(jù)。通信接口 IOM的實(shí)例可包括調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(諸如以太網(wǎng)絡(luò)或其它NIC卡)、通信端口(諸如USB端口)、PCMCIA槽及卡,等等。經(jīng)由通信接口 IOM傳送的軟件及數(shù)據(jù)呈信號(hào)的形式,該信號(hào)可為能夠通過(guò)通信接口 IOM接收的電子、電磁、光學(xué)或其它信號(hào)。經(jīng)由信道10 將這些信號(hào)提供至通信接口 10M。此信道10 可載運(yùn)信號(hào)且可使用無(wú)線媒體、導(dǎo)線或電纜、光纖或其它通信媒體而實(shí)施。信道的一些實(shí)例包括電話線、蜂巢式電話鏈路、RF鏈路、網(wǎng)絡(luò)接口、區(qū)域或廣域網(wǎng)絡(luò),及其它通信信道。在此文獻(xiàn)中,術(shù)語(yǔ)“計(jì)算機(jī)程序產(chǎn)品,,、“計(jì)算機(jī)可讀媒體,,等等可大體上用以意指諸如存儲(chǔ)器1008、儲(chǔ)存器件1018或儲(chǔ)存單元1022等媒體。這些及其它形式的計(jì)算機(jī)可讀媒體可涉及儲(chǔ)存用于由處理器1004使用的一個(gè)或多個(gè)指令,以使該處理器執(zhí)行指定操作。 通常稱作“計(jì)算機(jī)程序代碼”(其可以計(jì)算機(jī)程序或其它分組的形式來(lái)進(jìn)行分組)的這些指令在執(zhí)行時(shí)使計(jì)算系統(tǒng)1000執(zhí)行本發(fā)明的實(shí)施例的特征或功能。應(yīng)注意,程序代碼可直接使處理器執(zhí)行指定操作、經(jīng)編譯以使處理器執(zhí)行指定操作,和/或與其它軟件、硬件和/或韌件(例如,用于執(zhí)行標(biāo)準(zhǔn)功能的鏈接庫(kù))組合以使處理器執(zhí)行指定操作。在使用軟件來(lái)實(shí)施組件的實(shí)施例中,軟件可儲(chǔ)存于計(jì)算機(jī)可讀媒體中且可使用 (例如)可移除式儲(chǔ)存驅(qū)動(dòng)器1014、驅(qū)動(dòng)器1012或通信接口 IOM加載至計(jì)算系統(tǒng)1000中。 控制邏輯(在此實(shí)例中為軟件指令或計(jì)算機(jī)程序代碼)在由處理器1004執(zhí)行時(shí)使處理器 1004執(zhí)行本文中所描述的本發(fā)明的功能。應(yīng)了解,為達(dá)成清楚目的,以上描述已參考不同功能單元及處理器來(lái)描述本發(fā)明的實(shí)施例。然而,顯而易見(jiàn)的是,可使用功能性于不同功能單元、處理器或域之間的任何適合分配,而不有損于本發(fā)明。例如,圖示的由單獨(dú)處理器或控制器執(zhí)行的功能性可由同一處理器或控制器執(zhí)行。因此,對(duì)特定功能單元的提及僅應(yīng)視為對(duì)用于提供所述功能性的適合構(gòu)件的提及,而非表示嚴(yán)格的邏輯或物體結(jié)構(gòu)或組織。上文結(jié)合TCP協(xié)議論述了本發(fā)明的一些示范性實(shí)施例。本發(fā)明不限于此,且可經(jīng)調(diào)適以用于利用滑動(dòng)窗口概念的其它協(xié)議。盡管本發(fā)明已結(jié)合一些實(shí)施例加以描述,但其并不意欲限于本文中所陳述的特定形式。而是,本發(fā)明的范疇僅受權(quán)利要求限制。此外,盡管一特征可能結(jié)合特定實(shí)施例加以描述,但本領(lǐng)域的普通技術(shù)人員將認(rèn)識(shí)到,所述實(shí)施例的各種特征可根據(jù)本發(fā)明加以組合。
此外,盡管個(gè)別地列出,但多個(gè)構(gòu)件、組件或方法步驟可通過(guò)(例如)單一單元或處理器來(lái)實(shí)施。此外,盡管個(gè)別特征可包括在不同權(quán)利要求中,但這些特征可能有利地加以組合,且包括在不同權(quán)利要求中并不意味著特征的組合不可行和/或不利。同樣,將特征包括在權(quán)利要求的一個(gè)范疇中并不意味著限于此范疇,而是該特征可在適當(dāng)情況下同樣適用于其它權(quán)利要求的范疇。也必須注意的是,當(dāng)用于本說(shuō)明書(shū)及所附的權(quán)利要求中時(shí),除非本文另有清楚表示,否則單數(shù)形式“一”及“該”包括多個(gè)表示物。此外,應(yīng)了解,在不偏離本發(fā)明的精神及范圍的情況下,本領(lǐng)域的普通技術(shù)人員可進(jìn)行各種修改及變更。本發(fā)明不受上述說(shuō)明性細(xì)節(jié)的限制,而是根據(jù)權(quán)利要求的范圍加以界定。盡管上文僅詳細(xì)描述特定示范性實(shí)施例,但本領(lǐng)域的普通技術(shù)人員將易了解,許多修改在示范性實(shí)施例中是可能的,而不實(shí)質(zhì)上偏離本發(fā)明的新穎教導(dǎo)及優(yōu)勢(shì)。因此,所有這些修改意欲包括在本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種經(jīng)由網(wǎng)絡(luò)通過(guò)計(jì)算機(jī)傳輸數(shù)據(jù)而同時(shí)避免阻塞的方法,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述方法包含以下步驟計(jì)算所傳輸片段的往返時(shí)間(RTT);以及基于所計(jì)算的RTT修改發(fā)送窗口的大小,其中所述修改不根據(jù)傳輸速率。
2.根據(jù)權(quán)利要求1所述的方法,其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
3.—種經(jīng)由網(wǎng)絡(luò)通過(guò)計(jì)算機(jī)傳輸數(shù)據(jù)而同時(shí)避免阻塞的方法,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述方法包含以下步驟當(dāng)?shù)谝淮蝹鬏敂?shù)據(jù)時(shí),根據(jù)第一模式控制發(fā)送窗口的大小;以及當(dāng)在判定已傳輸?shù)臄?shù)據(jù)可能已被所述網(wǎng)絡(luò)遺失而再傳輸所述已傳輸?shù)臄?shù)據(jù)時(shí),根據(jù)第二模式控制所述發(fā)送窗口的大小,其中控制所述發(fā)送窗口的大小的第一模式和第二模式不相同。
4.根據(jù)權(quán)利要求3所述的方法,其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
5.一種經(jīng)由網(wǎng)絡(luò)通過(guò)計(jì)算機(jī)傳輸數(shù)據(jù)而同時(shí)避免阻塞的方法,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述方法包含以下步驟計(jì)算所傳輸片段的往返時(shí)間(RTT);以及基于所計(jì)算的RTT和所計(jì)算的RTT的改變速率,修改發(fā)送窗口的大小。
6.根據(jù)權(quán)利要求5所述的方法,其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
7.根據(jù)權(quán)利要求5所述的方法,其中所述發(fā)送窗口的大小的修改進(jìn)一步基于所計(jì)算的 RTT在一時(shí)間段內(nèi)的變化。
8.—種經(jīng)由網(wǎng)絡(luò)通過(guò)計(jì)算機(jī)傳輸數(shù)據(jù)而同時(shí)避免阻塞的方法,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述方法包含以下步驟計(jì)算所傳輸片段的往返時(shí)間(RTT); 判定所傳輸?shù)钠问欠窨赡芤驯凰鼍W(wǎng)絡(luò)遺失;基于所計(jì)算的RTT及對(duì)片段是否可能已被遺失的判定,決定在至少四個(gè)狀態(tài)的一種狀態(tài)中進(jìn)行操作,這些狀態(tài)表示在所述網(wǎng)絡(luò)中逐漸變大的阻塞程度,其中所述至少四個(gè)狀態(tài)中的第一、第二及第三狀態(tài)與逐漸變大的RTT相關(guān)聯(lián),且與遺失片段的不存在相關(guān)聯(lián),以及所述至少四個(gè)狀態(tài)中的第四狀態(tài)與片段可能已被遺失的判定相關(guān)聯(lián); 在所述第一狀態(tài)中進(jìn)行操作期間,呈指數(shù)地增大發(fā)送窗口的大??; 在所述第二狀態(tài)中進(jìn)行操作期間,線性地增大發(fā)送窗口的大??; 在所述第三狀態(tài)中進(jìn)行操作期間,線性地減小所述發(fā)送窗口的大?。灰约霸谒龅谒臓顟B(tài)中進(jìn)行操作期間,根據(jù)不同于在所述第三狀態(tài)期間所使用的公式的公式來(lái)減小所述發(fā)送窗口的大小。
9.根據(jù)權(quán)利要求8所述的方法,其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
10.根據(jù)權(quán)利要求8所述的方法,其中在所述第四狀態(tài)中進(jìn)行操作期間,再傳輸先前已傳輸且判定為已被遺失的片段。
11.根據(jù)權(quán)利要求10所述的方法,其中已判定為已被遺失的片段的所有再傳輸在所述第四狀態(tài)中進(jìn)行操作期間執(zhí)行。
12.根據(jù)權(quán)利要求10所述的方法,其中一旦進(jìn)入所述第四狀態(tài),所述發(fā)送窗口大小就減小,并且在從所述第四狀態(tài)退出之前,所述發(fā)送窗口大小不再次減小。
13.根據(jù)權(quán)利要求8所述的方法,其中在哪種狀態(tài)中進(jìn)行操作的判定基于最后計(jì)算的 RTT (NEff_RTT)與表示最近計(jì)算的最小RTT的預(yù)定MIN_RTT值之間的差值。
14.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括以下步驟計(jì)算RTT的當(dāng)前增長(zhǎng),且其中在哪種狀態(tài)中進(jìn)行操作的判定至少部分地基于所述RTT的當(dāng)前增長(zhǎng)。
15.根據(jù)權(quán)利要求14所述的方法,其中所述RTT的當(dāng)前增長(zhǎng)是基于針對(duì)預(yù)定數(shù)目的確認(rèn),連續(xù)RTT之間的改變的平滑化運(yùn)行平均值。
16.根據(jù)權(quán)利要求14所述的方法,其中所述至少四個(gè)狀態(tài)包括第五狀態(tài),所述第五狀態(tài)表示在未判定片段可能已被遺失時(shí)RTT的負(fù)當(dāng)前增長(zhǎng),且所述方法進(jìn)一步包括以下步驟在所述第五狀態(tài)中進(jìn)行操作期間,保持所述發(fā)送窗口恒定。
17.根據(jù)權(quán)利要求8所述的方法,其進(jìn)一步包括以下步驟在所述第三狀態(tài)中進(jìn)行操作期間,判定阻塞是否主要由根據(jù)權(quán)利要求8的方法的操作或由所述網(wǎng)絡(luò)上的其它計(jì)算機(jī)或?qū)嶓w發(fā)送的數(shù)據(jù)引起,且基于所述判定使用兩個(gè)不同公式以減小所述發(fā)送窗口。
18.—種經(jīng)由網(wǎng)絡(luò)通過(guò)連接至所述網(wǎng)絡(luò)的計(jì)算機(jī)傳輸數(shù)據(jù)的方法,所述計(jì)算機(jī)包括且執(zhí)行TCP堆棧軟件,所述TCP堆棧軟件配置成經(jīng)由所述網(wǎng)絡(luò)從連接至所述網(wǎng)絡(luò)的其它計(jì)算機(jī)接收輸入數(shù)據(jù),且根據(jù)所述傳輸控制協(xié)議(TCP)的有效且接受的版本來(lái)運(yùn)行,該方法包括通過(guò)以下步驟修改所述TCP堆棧軟件的運(yùn)行,而不顯著修改所述TCP堆棧軟件利用所述計(jì)算機(jī)執(zhí)行TCP修改軟件;在所述輸入數(shù)據(jù)到達(dá)所述TCP堆棧軟件之前,利用所述TCP修改軟件存取所述輸入數(shù)據(jù);在所述輸入數(shù)據(jù)到達(dá)所述TCP堆棧軟件之前,利用所述TCP修改軟件修改所述輸入數(shù)據(jù),所述輸入數(shù)據(jù)的修改配置成使所述TCP堆棧軟件的運(yùn)行發(fā)生改變;以及將經(jīng)修改的輸入數(shù)據(jù)發(fā)送至所述TCP堆棧軟件。
19.根據(jù)權(quán)利要求18所述的方法,其中所述方法在根本不修改所述TCP堆棧軟件的情況下執(zhí)行。
20.根據(jù)權(quán)利要求18所述的方法,其中所述輸入數(shù)據(jù)的修改在所述輸入數(shù)據(jù)到達(dá)所述計(jì)算機(jī)之后執(zhí)行。
21.根據(jù)權(quán)利要求18所述的方法,其中所述輸入數(shù)據(jù)的修改包括將網(wǎng)絡(luò)片段添加至所述輸入數(shù)據(jù),所述網(wǎng)絡(luò)片段由所述TCP堆棧軟件處理為已由連接至所述網(wǎng)絡(luò)的其它計(jì)算機(jī)接收的片段。
22.根據(jù)權(quán)利要求18所述的方法,其中所述輸入數(shù)據(jù)的所述修改包括修改在所述輸入數(shù)據(jù)中儲(chǔ)存為現(xiàn)有輸入網(wǎng)絡(luò)片段的數(shù)據(jù)。
23.根據(jù)權(quán)利要求18所述的方法,其中所述TCP堆棧軟件的運(yùn)行的改變使所述TCP堆棧軟件與所述TCP修改軟件一起基于比所述TCP協(xié)議所允許的發(fā)送窗口大小大的有效發(fā)送窗口(SWND)大小來(lái)通信。
24.根據(jù)權(quán)利要求23所述的方法,其中所述輸入數(shù)據(jù)的所述修改包括將一個(gè)或多個(gè)先占式確認(rèn)放置在所述輸入數(shù)據(jù)中。
25.根據(jù)權(quán)利要求M所述的方法,其中所述先占式確認(rèn)放置在由所述TCP修改軟件建立及添加的新網(wǎng)絡(luò)片段內(nèi)。
26.根據(jù)權(quán)利要求M所述的方法,其中所述先占式確認(rèn)放置在所述輸入數(shù)據(jù)的現(xiàn)有網(wǎng)絡(luò)片段內(nèi),從連接至所述網(wǎng)絡(luò)的遠(yuǎn)程計(jì)算機(jī)接收所述現(xiàn)有網(wǎng)絡(luò)片段,且由所述TCP修改軟件存取所述現(xiàn)有網(wǎng)絡(luò)片段,并且放置所述先占式確認(rèn)的步驟包括修改所述現(xiàn)有網(wǎng)絡(luò)片段內(nèi)的現(xiàn)有確認(rèn)。
27.根據(jù)權(quán)利要求23所述的方法,進(jìn)一步包括以下步驟利用所述TCP堆棧軟件將數(shù)據(jù)傳輸?shù)竭B接至所述網(wǎng)絡(luò)的遠(yuǎn)程計(jì)算機(jī);利用所述TCP修改軟件截取所述TCP堆棧軟件傳輸?shù)臄?shù)據(jù);及利用所述TCP修改軟件選擇性地緩沖、傳輸以及再傳輸所述數(shù)據(jù)。
28.根據(jù)權(quán)利要求27所述的方法,其中所述通過(guò)所述TCP修改軟件選擇性地緩沖、傳輸以及再傳輸所述數(shù)據(jù)應(yīng)使得允許所述TCP修改軟件與所述TCP堆棧軟件一起根據(jù)比所述傳輸控制協(xié)議所允許的發(fā)送窗口大小大的發(fā)送窗口(SWND)大小來(lái)傳輸數(shù)據(jù),否則所述數(shù)據(jù)傳輸遵照所述傳輸控制協(xié)議。
29.根據(jù)權(quán)利要求18所述的方法,其中所述利用所述TCP修改軟件修改所述輸入數(shù)據(jù)的步驟包括以對(duì)所述TCP堆棧軟件隱藏任何封包丟失條件的方式修改所述輸入數(shù)據(jù)。
30.根據(jù)權(quán)利要求四所述的方法,進(jìn)一步包括利用所述TCP修改軟件檢測(cè)封包丟失條件;以及利用所述TCP修改軟件執(zhí)行所述封包丟失條件所必需的任何再傳輸。
31.一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述指令配置成由處理器執(zhí)行,且配置成使所述處理器經(jīng)由網(wǎng)絡(luò)傳輸數(shù)據(jù)而同時(shí)避免阻塞,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議進(jìn)行執(zhí)行,所述指令進(jìn)一步配置成使所述處理器進(jìn)行以下步驟計(jì)算所傳輸?shù)钠蔚耐禃r(shí)間(RTT);以及基于所計(jì)算的RTT修改發(fā)送窗口的大小,其中所述修改不根據(jù)傳輸速率。
32.根據(jù)權(quán)利要求31所述的計(jì)算機(jī)可讀媒體,其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
33.一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述指令配置成由處理器執(zhí)行,且配置成使所述處理器經(jīng)由網(wǎng)絡(luò)傳輸數(shù)據(jù)而同時(shí)避免阻塞,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述指令進(jìn)一步配置成使所述處理器執(zhí)行以下步驟當(dāng)?shù)谝淮蝹鬏敂?shù)據(jù)時(shí),根據(jù)第一模式控制發(fā)送窗口的大?。灰约霸谂卸ㄒ褌鬏?shù)臄?shù)據(jù)可能已被所述網(wǎng)絡(luò)遺失上,在再傳輸所述已傳輸?shù)臄?shù)據(jù)時(shí),根據(jù)第二模式控制發(fā)送窗口的所述大小,其中控制所述發(fā)送窗口的大小的第一模式和第二模式不相同。
34.根據(jù)權(quán)利要求33所述的計(jì)算機(jī)可讀媒體,其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
35.一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述指令配置成由處理器執(zhí)行,且配置成使所述處理器經(jīng)由網(wǎng)絡(luò)傳輸數(shù)據(jù)而同時(shí)避免阻塞,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述指令進(jìn)一步配置成使所述處理器進(jìn)行以下步驟計(jì)算所傳輸片段的往返時(shí)間(RTT);以及基于所計(jì)算的RTT以及所計(jì)算的RTT的改變速率修改發(fā)送窗口的大小。
36.根據(jù)權(quán)利要求35所述的計(jì)算機(jī)可讀媒體,其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
37.根據(jù)權(quán)利要求35所述的計(jì)算機(jī)可讀媒體,其中所述發(fā)送窗口的大小的修改進(jìn)一步基于所計(jì)算的RTT在一時(shí)間段內(nèi)的變化。
38.一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述指令配置成由處理器執(zhí)行,且配置成使所述處理器經(jīng)由網(wǎng)絡(luò)傳輸數(shù)據(jù)而同時(shí)避免阻塞,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述指令進(jìn)一步配置成使所述處理器進(jìn)行以下步驟計(jì)算所傳輸片段的往返時(shí)間(RTT); 判定所傳輸?shù)钠问欠窨赡芤驯凰鼍W(wǎng)絡(luò)遺失;基于所計(jì)算的RTT及片段是否可能已被遺失的判定,決定在至少四個(gè)狀態(tài)的一種狀態(tài)中進(jìn)行操作,這些狀態(tài)表示所述網(wǎng)絡(luò)中逐漸變大的阻塞程度,其中所述至少四個(gè)狀態(tài)中的第一、第二及第三狀態(tài)與逐漸變大的RTT相關(guān)聯(lián),且與遺失片段的不存在相關(guān)聯(lián),以及所述至少四個(gè)狀態(tài)中的第四狀態(tài)與片段可能已被遺失的判定相關(guān)聯(lián); 在所述第一狀態(tài)中進(jìn)行操作期間,呈指數(shù)地增大發(fā)送窗口的大??; 在所述第二狀態(tài)中進(jìn)行操作期間,線性地增大發(fā)送窗口的大小。 在所述第三狀態(tài)中進(jìn)行操作期間,線性地減小所述發(fā)送窗口的大??;及在所述第四狀態(tài)中進(jìn)行操作期間,根據(jù)不同于在所述第三狀態(tài)期間所使用的公式的公式來(lái)減小所述發(fā)送窗口的大小。
39.根據(jù)權(quán)利要求38所述的計(jì)算機(jī)可讀媒體,其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
40.根據(jù)權(quán)利要求38所述的計(jì)算機(jī)可讀媒體,其中在所述第四狀態(tài)中進(jìn)行操作期間, 再傳輸先前已傳輸且判定為已被遺失的片段。
41.根據(jù)權(quán)利要求40所述的計(jì)算機(jī)可讀媒體,其中已判定為已被遺失的片段的所有再傳輸在所述第四狀態(tài)中進(jìn)行操作期間執(zhí)行。
42.根據(jù)權(quán)利要求40所述的計(jì)算機(jī)可讀媒體,其中一旦進(jìn)入所述第四狀態(tài),所述發(fā)送窗口大小就減小,且在從所述第四狀態(tài)退出之前,所述發(fā)送窗口大小不再次減小。
43.根據(jù)權(quán)利要求38所述的計(jì)算機(jī)可讀媒體,其中在哪種狀態(tài)中進(jìn)行操作的判定基于最后計(jì)算的RTT(NEW_RTT)與表示最近計(jì)算的最小RTT的預(yù)定MIN_RTT值之間的差值。
44.根據(jù)權(quán)利要求43所述的計(jì)算機(jī)可讀媒體,進(jìn)一步包括計(jì)算RTT的當(dāng)前增長(zhǎng),且其中在哪種狀態(tài)中進(jìn)行操作的判定至少部分地基于所述RTT的當(dāng)前增長(zhǎng)。
45.根據(jù)權(quán)利要求44所述的計(jì)算機(jī)可讀媒體,其中所述RTT的當(dāng)前增長(zhǎng)是基于針對(duì)預(yù)定數(shù)目的確認(rèn),連續(xù)RTT之間的改變的平滑化運(yùn)行平均值。
46.根據(jù)權(quán)利要求44所述的計(jì)算機(jī)可讀媒體,其中所述至少四個(gè)狀態(tài)包括第五狀態(tài), 所述第五狀態(tài)表示在未判定片段可能已被遺失時(shí)的RTT的負(fù)當(dāng)前增長(zhǎng),且所述指令進(jìn)一步配置成使所述處理器進(jìn)行以下步驟在所述第五狀態(tài)中進(jìn)行操作期間,保持所述發(fā)送窗口恒定。
47.根據(jù)權(quán)利要求38所述的計(jì)算機(jī)可讀媒體,其中所述指令進(jìn)一步配置成使所述處理器進(jìn)行以下步驟在所述第三狀態(tài)中進(jìn)行操作期間,判定阻塞是否主要由所述處理器所發(fā)送的數(shù)據(jù)或由所述網(wǎng)絡(luò)上的其它計(jì)算機(jī)或?qū)嶓w所發(fā)送的數(shù)據(jù)引起,且基于所述判定使用兩個(gè)不同公式以減小所述發(fā)送窗口。
48.一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可執(zhí)行指令包含TCP 修改軟件,所述計(jì)算機(jī)可執(zhí)行指令配置成由處理器執(zhí)行,所述處理器為連接至網(wǎng)絡(luò)的計(jì)算機(jī)的一部分,所述計(jì)算機(jī)包含且執(zhí)行TCP堆棧軟件,所述TCP堆棧軟件配置成使所述計(jì)算機(jī)經(jīng)由所述網(wǎng)絡(luò)從連接至所述網(wǎng)絡(luò)的其它計(jì)算機(jī)接收輸入數(shù)據(jù),且根據(jù)所述傳輸控制協(xié)議 (TCP)的有效且接受的版本來(lái)運(yùn)行,所述指令通過(guò)使所述處理器執(zhí)行以下步驟來(lái)修改所述 TCP堆棧軟件的運(yùn)行,而不顯著修改所述TCP堆棧軟件在所述輸入數(shù)據(jù)到達(dá)所述TCP堆棧軟件之前,存取所述輸入數(shù)據(jù);在所述輸入數(shù)據(jù)到達(dá)所述TCP堆棧軟件之前,修改所述輸入數(shù)據(jù),所述輸入數(shù)據(jù)的修改使所述TCP堆棧軟件的運(yùn)行發(fā)生改變;以及將經(jīng)修改的輸入數(shù)據(jù)發(fā)送至所述TCP堆棧軟件。
49.根據(jù)權(quán)利要求48所述的計(jì)算機(jī)可讀媒體,其中所述指令根本不修改所述TCP堆棧軟件。
50.根據(jù)權(quán)利要求48所述的計(jì)算機(jī)可讀媒體,其中所述輸入數(shù)據(jù)的修改在所述輸入數(shù)據(jù)到達(dá)所述計(jì)算機(jī)之后執(zhí)行。
51.根據(jù)權(quán)利要求48所述的計(jì)算機(jī)可讀媒體,其中所述輸入數(shù)據(jù)的修改包括將網(wǎng)絡(luò)片段添加至所述輸入數(shù)據(jù),所述網(wǎng)絡(luò)片段由所述TCP堆棧軟件處理為已由連接至所述網(wǎng)絡(luò)的其它計(jì)算機(jī)接收的片段。
52.根據(jù)權(quán)利要求48所述的計(jì)算機(jī)可讀媒體,其中所述輸入數(shù)據(jù)的修改包括修改所述輸入數(shù)據(jù)中儲(chǔ)存為現(xiàn)有輸入網(wǎng)絡(luò)片段的數(shù)據(jù)。
53.根據(jù)權(quán)利要求48所述的計(jì)算機(jī)可讀媒體,其中所述TCP堆棧軟件的運(yùn)行的改變使所述TCP堆棧軟件與所述TCP修改軟件一起根據(jù)比所述TCP協(xié)議所允許的發(fā)送窗口大小大的有效發(fā)送窗口(SWND)大小來(lái)通信。
54.根據(jù)權(quán)利要求53所述的計(jì)算機(jī)可讀媒體,其中所述輸入數(shù)據(jù)的修改包括將一個(gè)或多個(gè)先占式確認(rèn)放置在所述輸入數(shù)據(jù)中。
55.根據(jù)權(quán)利要求M所述的計(jì)算機(jī)可讀媒體,其中所述先占式確認(rèn)放置在由所述TCP 修改軟件建立及添加的新網(wǎng)絡(luò)片段內(nèi)。
56.根據(jù)權(quán)利要求M所述的計(jì)算機(jī)可讀媒體,其中所述先占式確認(rèn)放置在所述輸入數(shù)據(jù)的現(xiàn)有網(wǎng)絡(luò)片段內(nèi),從連接至所述網(wǎng)絡(luò)的遠(yuǎn)程計(jì)算機(jī)接收所述現(xiàn)有網(wǎng)絡(luò)片段,且由所述 TCP修改軟件存取所述現(xiàn)有網(wǎng)絡(luò)片段,且放置所述先占式確認(rèn)的步驟包括修改所述現(xiàn)有網(wǎng)絡(luò)片段內(nèi)的現(xiàn)有確認(rèn)。
57.根據(jù)權(quán)利要求53所述的計(jì)算機(jī)可讀媒體,其中所述TCP堆棧軟件進(jìn)一步配置成將數(shù)據(jù)傳輸?shù)竭B接至所述網(wǎng)絡(luò)的遠(yuǎn)程計(jì)算機(jī),且所述指令進(jìn)一步使所述處理器進(jìn)行以下步驟截取所述TCP堆棧軟件傳輸?shù)臄?shù)據(jù);以及選擇性地緩沖、傳輸以及再傳輸所述數(shù)據(jù)。
58.根據(jù)權(quán)利要求57所述的計(jì)算機(jī)可讀媒體,其中所述通過(guò)所述TCP修改軟件選擇性地緩沖、傳輸以及再傳輸所述數(shù)據(jù)應(yīng)使得允許所述TCP修改軟件與所述TCP堆棧軟件一起根據(jù)比所述傳輸控制協(xié)議所允許的發(fā)送窗口大小大的發(fā)送窗口(SWND)大小來(lái)傳輸數(shù)據(jù), 否則所述數(shù)據(jù)傳輸遵照所述傳輸控制協(xié)議。
59.根據(jù)權(quán)利要求48所述的計(jì)算機(jī)可讀媒體,其中所述修改輸入數(shù)據(jù)的步驟包括以對(duì)所述TCP堆棧軟件隱藏任何封包丟失條件的方式修改所述輸入數(shù)據(jù)。
60.根據(jù)權(quán)利要求59所述的計(jì)算機(jī)可讀媒體,其中所述指令配置成進(jìn)一步使所述處理器執(zhí)行以下步驟利用所述TCP修改軟件檢測(cè)封包丟失條件;以及利用所述TCP修改軟件執(zhí)行所述封包丟失條件所必需的任何再傳輸。
61.一種連接至網(wǎng)絡(luò)的計(jì)算系統(tǒng),所述計(jì)算系統(tǒng)包括處理器及存儲(chǔ)器,所述存儲(chǔ)器包括多個(gè)指令,所述指令配置成使所述處理器經(jīng)由網(wǎng)絡(luò)傳輸數(shù)據(jù)而同時(shí)避免阻塞,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述指令進(jìn)一步使所述處理器執(zhí)行以下步驟計(jì)算所傳輸片段的往返時(shí)間(RTT);以及基于所計(jì)算的RTT修改發(fā)送窗口的大小,其中所述修改不根據(jù)傳輸速率。
62.根據(jù)權(quán)利要求61所述的計(jì)算系統(tǒng),其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
63.一種連接至網(wǎng)絡(luò)的計(jì)算系統(tǒng),所述計(jì)算系統(tǒng)包括處理器及存儲(chǔ)器,所述存儲(chǔ)器包括多個(gè)指令,所述指令配置成使所述處理器經(jīng)由網(wǎng)絡(luò)傳輸數(shù)據(jù)而同時(shí)避免阻塞,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述指令進(jìn)一步使所述處理器執(zhí)行以下步驟當(dāng)?shù)谝淮蝹鬏敂?shù)據(jù)時(shí),根據(jù)第一模式控制發(fā)送窗口的大??;以及在判定已傳輸?shù)臄?shù)據(jù)可能已被所述網(wǎng)絡(luò)遺失而再傳輸所述已傳輸?shù)臄?shù)據(jù)時(shí),根據(jù)第二模式控制發(fā)送窗口的大小,其中控制所述發(fā)送窗口的大小的第一模式和第二模式不相同。
64.根據(jù)權(quán)利要求63所述的計(jì)算系統(tǒng),其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
65.一種連接至網(wǎng)絡(luò)的計(jì)算系統(tǒng),所述計(jì)算系統(tǒng)包括處理器及存儲(chǔ)器,所述存儲(chǔ)器包括多個(gè)指令,所述指令配置成使所述處理器經(jīng)由網(wǎng)絡(luò)傳輸數(shù)據(jù)而同時(shí)避免阻塞,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述指令進(jìn)一步使所述處理器執(zhí)行以下步驟計(jì)算所傳輸片段的往返時(shí)間(RTT);以及基于所計(jì)算的RTT及所計(jì)算的RTT的改變速率修改發(fā)送窗口的大小。
66.根據(jù)權(quán)利要求65所述的計(jì)算系統(tǒng),其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
67.根據(jù)權(quán)利要求65所述的計(jì)算系統(tǒng),其中所述發(fā)送窗口的大小的修改進(jìn)一步基于所計(jì)算的RTT在一時(shí)間段內(nèi)的變化。
68.一種連接至網(wǎng)絡(luò)的計(jì)算系統(tǒng),所述計(jì)算系統(tǒng)包括處理器及存儲(chǔ)器,所述存儲(chǔ)器包括多個(gè)指令,所述指令配置成使所述處理器經(jīng)由網(wǎng)絡(luò)傳輸數(shù)據(jù)而同時(shí)避免阻塞,所述傳輸根據(jù)利用滑動(dòng)窗口的協(xié)議來(lái)執(zhí)行,所述指令進(jìn)一步使所述處理器執(zhí)行以下步驟計(jì)算所傳輸片段的往返時(shí)間(RTT); 判定所傳輸?shù)钠问欠窨赡芤驯凰鼍W(wǎng)絡(luò)遺失;基于所計(jì)算的RTT及片段是否可能已被遺失的判定,決定在至少四個(gè)狀態(tài)的一種狀態(tài)中進(jìn)行操作,這些狀態(tài)表示所述網(wǎng)絡(luò)中逐漸變大的阻塞程度,其中所述至少四個(gè)狀態(tài)中的第一、第二及第三狀態(tài)與逐漸變大的RTT相關(guān)聯(lián),且與遺失片段的不存在相關(guān)聯(lián),以及所述至少四個(gè)狀態(tài)中的第四狀態(tài)與片段可能已被遺失的所述判定相關(guān)聯(lián); 在所述第一狀態(tài)中進(jìn)行操作期間,呈指數(shù)地增大發(fā)送窗口的大??;在所述第二狀態(tài)中進(jìn)行操作期間,線性地增大發(fā)送窗口的大??;在所述第三狀態(tài)中進(jìn)行操作期間,線性地減小所述發(fā)送窗口的大??;以及在所述第四狀態(tài)中進(jìn)行操作期間,根據(jù)不同于在所述第三狀態(tài)期間所使用的公式的公式來(lái)減小所述發(fā)送窗口的大小。
69.根據(jù)權(quán)利要求68所述的計(jì)算系統(tǒng),其中所述協(xié)議為傳輸控制協(xié)議(TCP)。
70.根據(jù)權(quán)利要求68所述的計(jì)算系統(tǒng),其中在所述第四狀態(tài)中進(jìn)行操作期間,再傳輸先前已傳輸且判定為已被遺失的片段。
71.根據(jù)權(quán)利要求70所述的計(jì)算系統(tǒng),其中已判定為已被遺失的片段的所有再傳輸在所述第四狀態(tài)中進(jìn)行操作期間執(zhí)行。
72.根據(jù)權(quán)利要求70所述的計(jì)算系統(tǒng),其中一旦進(jìn)入所述第四狀態(tài),所述發(fā)送窗口大小就減小,且在從所述第四狀態(tài)退出之前,所述發(fā)送窗口大小不再次減小。
73.根據(jù)權(quán)利要求68所述的計(jì)算系統(tǒng),其中在哪種狀態(tài)中進(jìn)行操作的判定基于最后計(jì)算的RTT(NEW_RTT)與表示最近計(jì)算的最小RTT的預(yù)定MIN_RTT值之間的差值。
74.根據(jù)權(quán)利要求73所述的計(jì)算系統(tǒng),其中所述指令進(jìn)一步使所述處理器執(zhí)行計(jì)算 RTT的當(dāng)前增長(zhǎng)的步驟,且其中在哪種狀態(tài)中進(jìn)行操作的判定至少部分地基于所述RTT的當(dāng)前增長(zhǎng)。
75.根據(jù)權(quán)利要求74所述的計(jì)算系統(tǒng),其中所述RTT的當(dāng)前增長(zhǎng)是基于針對(duì)預(yù)定數(shù)目的確認(rèn),連續(xù)RTT之間的改變的平滑化運(yùn)行平均值。
76.根據(jù)權(quán)利要求74所述的計(jì)算系統(tǒng),其中所述至少四個(gè)狀態(tài)包括第五狀態(tài),所述第五狀態(tài)表示在未判定片段可能已被遺失時(shí)RTT的負(fù)當(dāng)前增長(zhǎng),且所述指令進(jìn)一步配置成使所述處理器執(zhí)行以下步驟在所述第五狀態(tài)中進(jìn)行操作期間,保持所述發(fā)送窗口恒定。
77.根據(jù)權(quán)利要求78所述的計(jì)算系統(tǒng),其中所述指令進(jìn)一步配置成使所述處理器執(zhí)行以下步驟在所述第三狀態(tài)中進(jìn)行操作期間,判定阻塞是否主要由所述處理器的所述操作,或由所述網(wǎng)絡(luò)上的其它計(jì)算機(jī)或?qū)嶓w所發(fā)送的數(shù)據(jù)引起,且基于所述判定使用兩個(gè)不同公式以減小所述發(fā)送窗口。
78.一種連接至網(wǎng)絡(luò)的計(jì)算系統(tǒng),所述計(jì)算系統(tǒng)包括處理器及存儲(chǔ)器,所述存儲(chǔ)器包括多個(gè)指令,所述多個(gè)指令包含TCP堆棧軟件及TCP修改軟件,所述TCP堆棧軟件配置成經(jīng)由所述網(wǎng)絡(luò)從連接至所述網(wǎng)絡(luò)的其它計(jì)算機(jī)接收輸入數(shù)據(jù),且根據(jù)所述傳輸控制協(xié)議 (TCP)的有效且接受的版本來(lái)運(yùn)行,所述TCP修改軟件配置成通過(guò)使所述處理器執(zhí)行以下步驟,使所述處理器修改所述TCP堆棧軟件的所述運(yùn)行,而不顯著修改所述TCP堆棧軟件在所述輸入數(shù)據(jù)到達(dá)所述TCP堆棧軟件之前,存取所述輸入數(shù)據(jù);在所述輸入數(shù)據(jù)到達(dá)所述TCP堆棧軟件之前,修改所述輸入數(shù)據(jù),所述輸入數(shù)據(jù)的所述修改配置成引起所述TCP堆棧軟件的所述運(yùn)行的改變;以及將所述經(jīng)修改的輸入數(shù)據(jù)發(fā)送至所述TCP堆棧軟件。
79.根據(jù)權(quán)利要求78所述的計(jì)算系統(tǒng),其中所述處理器由于執(zhí)行所述TCP修改軟件而根本不修改所述TCP堆棧軟件。
80.根據(jù)權(quán)利要求78所述的計(jì)算系統(tǒng),其中所述輸入數(shù)據(jù)的所述修改在所述輸入數(shù)據(jù)到達(dá)所述計(jì)算機(jī)之后執(zhí)行。
81.根據(jù)權(quán)利要求78所述的計(jì)算系統(tǒng),其中所述輸入數(shù)據(jù)的所述修改包括將網(wǎng)絡(luò)片段添加至所述輸入數(shù)據(jù),所述網(wǎng)絡(luò)片段由所述TCP堆棧軟件處理為已由連接至所述網(wǎng)絡(luò)的其它計(jì)算機(jī)接收的片段。
82.根據(jù)權(quán)利要求78所述的計(jì)算系統(tǒng),其中所述輸入數(shù)據(jù)的所述修改包括修改所述輸入數(shù)據(jù)中儲(chǔ)存為現(xiàn)有輸入網(wǎng)絡(luò)片段的所述數(shù)據(jù)。
83.根據(jù)權(quán)利要求78所述的計(jì)算系統(tǒng),其中所述TCP堆棧軟件的運(yùn)行的改變使所述 TCP堆棧軟件與所述TCP修改軟件一起根據(jù)比TCP協(xié)議所允許的發(fā)送窗口大小大的有效發(fā)送窗口大小(SWND)來(lái)通信。
84.根據(jù)權(quán)利要求83所述的計(jì)算系統(tǒng),其中所述輸入數(shù)據(jù)的所述修改包括將一個(gè)或多個(gè)先占式確認(rèn)放置在所述輸入數(shù)據(jù)中。
85.根據(jù)權(quán)利要求84所述的計(jì)算系統(tǒng),其中所述先占式確認(rèn)放置在由所述TCP修改軟件建立及添加的新網(wǎng)絡(luò)片段內(nèi)。
86.根據(jù)權(quán)利要求84所述的計(jì)算系統(tǒng),其中所述先占式確認(rèn)放置在所述輸入數(shù)據(jù)的現(xiàn)有網(wǎng)絡(luò)片段內(nèi),從連接至所述網(wǎng)絡(luò)的遠(yuǎn)程計(jì)算機(jī)接收所述現(xiàn)有網(wǎng)絡(luò)片段,且由所述TCP修改軟件存取所述現(xiàn)有網(wǎng)絡(luò)片段,且放置所述先占式確認(rèn)之步驟包括修改所述現(xiàn)有網(wǎng)絡(luò)片段內(nèi)的現(xiàn)有確認(rèn)。
87.根據(jù)權(quán)利要求83所述的計(jì)算系統(tǒng),其中所述TCP堆棧軟件進(jìn)一步將數(shù)據(jù)傳輸?shù)竭B接至所述網(wǎng)絡(luò)的遠(yuǎn)程計(jì)算機(jī),且所述TCP修改軟件進(jìn)一步使所述處理器執(zhí)行以下步驟截取所述TCP堆棧軟件傳輸?shù)乃鰯?shù)據(jù);以及選擇性地緩沖、傳輸以及再傳輸所述數(shù)據(jù)。
88.根據(jù)權(quán)利要求87所述的計(jì)算系統(tǒng),其中在執(zhí)行所述TCP修改軟件時(shí),通過(guò)所述處理器選擇性地緩沖、傳輸以及再傳輸所述數(shù)據(jù)使得允許所述TCP修改軟件與所述TCP堆棧軟件一起根據(jù)比所述傳輸控制協(xié)議所允許的發(fā)送窗口大小大的發(fā)送窗(SWND)大小來(lái)傳輸數(shù)據(jù),否則所述數(shù)據(jù)傳輸遵照所述傳輸控制協(xié)議。
89.根據(jù)權(quán)利要求78所述的計(jì)算系統(tǒng),其中在執(zhí)行所述TCP修改軟件時(shí)通過(guò)所述處理器修改所述輸入數(shù)據(jù)的步驟包括以對(duì)所述TCP堆棧軟件隱藏任何封包丟失條件的方式修改所述輸入數(shù)據(jù)。
90.根據(jù)權(quán)利要求89所述的計(jì)算系統(tǒng),其中所述TCP修改軟件進(jìn)一步配置成使所述處理器執(zhí)行以下步驟利用所述TCP修改軟件檢測(cè)封包丟失條件;以及執(zhí)行所述封包丟失條件所必需的任何再傳輸。
全文摘要
本發(fā)明公開(kāi)了一種通過(guò)TCP傳輸來(lái)最大化當(dāng)前可用網(wǎng)絡(luò)路徑帶寬的利用率的方法。本發(fā)明的實(shí)施例允許自動(dòng)地檢測(cè)及利用所述當(dāng)前可用帶寬的較大部分(或甚至整個(gè)帶寬)以用于利用本發(fā)明的每一特定連接及網(wǎng)絡(luò)路徑。此外,本發(fā)明的一些實(shí)施例提供應(yīng)用所述技術(shù)的軟件可僅在數(shù)據(jù)發(fā)送器側(cè)執(zhí)行,且可與標(biāo)準(zhǔn)接收器通信。根據(jù)本發(fā)明的實(shí)施例,實(shí)施本發(fā)明的所述軟件可放置在TCP/IP協(xié)議驅(qū)動(dòng)器與網(wǎng)絡(luò)接口驅(qū)動(dòng)器之間。此中間軟件可自TCP/IP驅(qū)動(dòng)器隱藏真實(shí)網(wǎng)絡(luò)狀態(tài),且利用先占式欺騙數(shù)據(jù)確認(rèn)及封包丟失隱藏而使TCP連接SWND邊緣移位。
文檔編號(hào)H04L12/56GK102484609SQ200980158117
公開(kāi)日2012年5月30日 申請(qǐng)日期2009年10月21日 優(yōu)先權(quán)日2009年1月16日
發(fā)明者瓦迪姆·斯米爾諾夫 申請(qǐng)人:主線網(wǎng)絡(luò)控股有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
肇东市| 大新县| 灵武市| 鹰潭市| 扎兰屯市| 常宁市| 建宁县| 冷水江市| 甘南县| 韩城市| 昆明市| 苍南县| 新蔡县| 沈丘县| 磐安县| 台东市| 阿拉尔市| 镇赉县| 铁岭市| 定远县| 前郭尔| 井陉县| 柏乡县| 扬州市| 芮城县| 枣强县| 堆龙德庆县| 喀喇沁旗| 木兰县| 班戈县| 黄冈市| 大兴区| 都兰县| 泗水县| 凌云县| 花莲市| 精河县| 武胜县| 吴旗县| 深水埗区| 通辽市|