亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

對(duì)于傳輸控制協(xié)議流控制的透明優(yōu)化的制作方法

文檔序號(hào):7608720閱讀:164來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):對(duì)于傳輸控制協(xié)議流控制的透明優(yōu)化的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通過(guò)網(wǎng)絡(luò)進(jìn)行聯(lián)網(wǎng)和數(shù)據(jù)通信的領(lǐng)域,并且尤其涉及對(duì)于傳輸控制協(xié)議(TCP)流控制的透明優(yōu)化。
背景技術(shù)
傳輸控制協(xié)議(TCP)是在通信網(wǎng)絡(luò)上被最廣泛應(yīng)用和可靠的數(shù)據(jù)傳輸協(xié)議之一。傳輸控制協(xié)議的主要差別及其被被廣泛應(yīng)用的理由之一是用于共享當(dāng)前TCP會(huì)話之間的帶寬的魯棒算法。TCP內(nèi)的這種共享算法通常被稱(chēng)為″擁塞控制″,因?yàn)樗噲D通過(guò)自動(dòng)回縮(scalingback)數(shù)據(jù)傳輸以匹配可用的帶寬能力來(lái)避免網(wǎng)絡(luò)擁塞的問(wèn)題。如果每個(gè)數(shù)據(jù)傳輸會(huì)話都試圖完全利用鏈路容量,則通過(guò)共享網(wǎng)絡(luò)鏈路的多個(gè)并行和可靠的數(shù)據(jù)傳輸可能導(dǎo)致高度擁塞。這樣的高度擁塞可能導(dǎo)致高度的分組丟失,其接著可能導(dǎo)致大量的分組重發(fā),最終致使網(wǎng)絡(luò)崩潰。TCP的擁塞控制算法通過(guò)自動(dòng)確定有多少帶寬可用并且通過(guò)與其它并行的TCP會(huì)話同等地共享總可用帶寬來(lái)避免這個(gè)問(wèn)題。因此,TCP的動(dòng)態(tài)共享算法是通過(guò)分組交換互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)的數(shù)據(jù)通信的基礎(chǔ)結(jié)構(gòu)塊(fundamental building block),并且已經(jīng)使得TCP/IP被用作通用的通信標(biāo)準(zhǔn)。
TCP用各種各樣的內(nèi)部算法來(lái)提供其擁塞控制的能力。這些算法包括流控制、慢起動(dòng)、分組重排(reordering)、分組丟失檢測(cè)、重發(fā)計(jì)時(shí)器、以及大量的其它機(jī)理,用于基于網(wǎng)絡(luò)情況動(dòng)態(tài)地降低或提高數(shù)據(jù)傳輸速率。
網(wǎng)絡(luò)延遲(latency)是影響網(wǎng)絡(luò)以及應(yīng)用性能的一個(gè)普通問(wèn)題。網(wǎng)絡(luò)延遲可歸因于幾個(gè)因素,包括物理距離、;重復(fù)接收(hops)數(shù)量、交換機(jī)和路由器中繼以及網(wǎng)絡(luò)擁塞。因?yàn)檫@些因素不是一成不變的,所以網(wǎng)絡(luò)可能在一段時(shí)間內(nèi)具有不可預(yù)知的延遲。網(wǎng)絡(luò)延遲的變化取決于鏈接使用的網(wǎng)絡(luò)鏈路和傳輸介質(zhì)所跨越的距離。例如,地鐵區(qū)域內(nèi)兩個(gè)建筑物之間的局部高速專(zhuān)用線路可能經(jīng)歷5毫秒(ms)的單向延遲,而美國(guó)和歐洲之間的球形長(zhǎng)途異步傳輸模式(ATM)鏈路可能具有從50ms到250ms之間任何數(shù)值的單向延遲。類(lèi)似地,由于向軌道衛(wèi)星發(fā)射信號(hào)以及返回的時(shí)間,衛(wèi)星鏈路一般經(jīng)歷了大約240到300ms的單向延遲。
關(guān)于網(wǎng)絡(luò)應(yīng)用的延遲沖擊可以被直接回溯到TCP在網(wǎng)絡(luò)延遲條件下的低效率。大多數(shù)網(wǎng)絡(luò)應(yīng)用能夠被區(qū)分為基于“頻繁訪問(wèn)(chatty)”的短交易應(yīng)用或成批數(shù)據(jù)傳輸應(yīng)用。成批數(shù)據(jù)傳輸應(yīng)用一般發(fā)射數(shù)百千字節(jié)或兆字節(jié)的數(shù)據(jù)通過(guò)網(wǎng)絡(luò),其總傳輸時(shí)間在數(shù)秒、數(shù)分鐘、多數(shù)情況下是數(shù)小時(shí)中來(lái)測(cè)量。這類(lèi)應(yīng)用的例子包括網(wǎng)絡(luò)文件系統(tǒng)、存檔和存儲(chǔ)應(yīng)用、文件傳輸協(xié)議(FTP)傳輸、共享以及分發(fā)大工程或設(shè)計(jì)文檔等。在這些應(yīng)用中,普遍的性能瓶頸往往是網(wǎng)絡(luò)上的延遲,其導(dǎo)致經(jīng)由TCP的應(yīng)用吞吐量降低。特別是,TCP內(nèi)的流控制算法往往導(dǎo)致較低的應(yīng)用吞吐量和較高的應(yīng)用響應(yīng)時(shí)間。
TCP的流控制算法是防止接收機(jī)接收大于其處理或緩存能力的數(shù)據(jù)的一種機(jī)理。例如,如果接收TCP棧具有能存儲(chǔ)16千字節(jié)數(shù)據(jù)的緩存,則在任何時(shí)候都不允許發(fā)送機(jī)向接收機(jī)發(fā)射超過(guò)16千字節(jié)的數(shù)據(jù)。接收機(jī)在數(shù)據(jù)傳輸過(guò)程中連續(xù)地向發(fā)送機(jī)發(fā)送回確認(rèn),其表明接收機(jī)還能夠接受多少附加數(shù)據(jù)。接收機(jī)能夠接受的這些附加數(shù)據(jù)被稱(chēng)為″窗口指示″(或″窗口廣告″),并且被包括為T(mén)CP報(bào)頭中的字段。
流控制算法有效率地操作,并且當(dāng)接收機(jī)和發(fā)送機(jī)被短程低延遲鏈路分隔時(shí)不引入任何不必要的延遲。但是,隨著接收機(jī)和發(fā)送機(jī)之間的距離和延遲被增加,發(fā)送數(shù)據(jù)分組和接著從接收機(jī)接收確認(rèn)之間的往返時(shí)間(RTT)也增加了。因?yàn)榱骺刂扑惴ǚ乐拱l(fā)送機(jī)在接收機(jī)還未表明它準(zhǔn)備好接收這些附加數(shù)據(jù)的時(shí)候向接收機(jī)發(fā)射數(shù)據(jù),所以兩個(gè)端點(diǎn)(endpoint)之間的RTT可能導(dǎo)致發(fā)送機(jī)延遲發(fā)送附加的數(shù)據(jù)分組,以等待來(lái)自于接收機(jī)的下一個(gè)確認(rèn)。例如,如果接收機(jī)一次能夠接受16千字節(jié)的數(shù)據(jù),則發(fā)送機(jī)可以在數(shù)毫秒中發(fā)射全部的16千字節(jié),然后花費(fèi)等待確認(rèn)的幾個(gè)附加毫秒來(lái)開(kāi)始發(fā)射下一個(gè)16千字節(jié)塊。發(fā)送機(jī)正在等待確認(rèn)的這個(gè)時(shí)段取決于帶寬和鏈路延遲兩者?;谘舆t的TCP空閑時(shí)間可能導(dǎo)致單個(gè)TCP流與網(wǎng)絡(luò)鏈路上實(shí)際可用的情況相比較而言,獲得較低的吞吐量。因?yàn)門(mén)CP流不能利用全部的現(xiàn)有網(wǎng)絡(luò)帶寬,所以這些未利用的容量轉(zhuǎn)化為較高的傳輸時(shí)間。
流管線化被用于其數(shù)據(jù)傳輸速率受到限制的TCP連接,因?yàn)榻邮諜C(jī)上配置的最大TCP窗口的尺寸小于它傳輸數(shù)據(jù)所通過(guò)網(wǎng)絡(luò)的帶寬時(shí)延積,所以其能夠傳輸數(shù)據(jù)。對(duì)于這個(gè)問(wèn)題的傳統(tǒng)解決方案是接收機(jī)通告或表明大于網(wǎng)絡(luò)的帶寬時(shí)延積的窗口大小。然而,由于實(shí)際的原因,這個(gè)所指出的窗口大小可能受到接收機(jī)和發(fā)送機(jī)上可用存儲(chǔ)器的限制。從而,由操作系統(tǒng)開(kāi)發(fā)商選擇一個(gè)合理的值,并將其設(shè)置為窗口大小的缺省值。這個(gè)值適于局域網(wǎng)上的大多數(shù)TCP連接。但是當(dāng)TCP連接建立在高延遲網(wǎng)絡(luò)上的時(shí)候,這個(gè)值可能不夠大。參與數(shù)據(jù)傳輸?shù)挠?jì)算機(jī)無(wú)法動(dòng)態(tài)地發(fā)現(xiàn)并固定窗口尺寸小的問(wèn)題。這是因?yàn)檫@個(gè)問(wèn)題只能在發(fā)送機(jī)側(cè)上的網(wǎng)絡(luò)最長(zhǎng)延遲段之前被可靠地處理數(shù)據(jù)的裝置(其已知帶寬和長(zhǎng)延遲段當(dāng)前的利用率)注意到。然而,在這個(gè)裝置確定特殊的傳輸收到窗口限制之后,TCP不向該裝置提供方法,以通知接收機(jī)希望增大窗口的愿望。
一種讓這個(gè)裝置任意增加窗口大小的解決方案產(chǎn)生了不夠好結(jié)果,因?yàn)樗a(chǎn)生了大量窗口之外的數(shù)據(jù)。因此,當(dāng)存在諸如單個(gè)分組丟失之類(lèi)的小的網(wǎng)絡(luò)錯(cuò)誤時(shí),這個(gè)解決方案可能導(dǎo)致所接收窗口之外的大量數(shù)據(jù)。接收窗口之外的數(shù)據(jù)可能在它到達(dá)接收機(jī)的時(shí)候被接收機(jī)丟棄。除了讓發(fā)送機(jī)重發(fā)被丟棄數(shù)據(jù)之外,它還導(dǎo)致發(fā)送機(jī)把丟失誤讀為網(wǎng)絡(luò)擁塞事件,并從而降低了其傳輸。
所需要的是一種無(wú)需侵入TCP的核心算法而優(yōu)化TCP的流控制的系統(tǒng)和方法,用于改進(jìn)TCP會(huì)話的性能。

發(fā)明內(nèi)容
本發(fā)明是一種不侵入TCP的核心算法而優(yōu)化TCP的流控制的系統(tǒng)和方法。本發(fā)明雙向地監(jiān)視網(wǎng)絡(luò)管道兩側(cè)的TCP流的狀態(tài)。相對(duì)靠近發(fā)送機(jī)局域網(wǎng)(LAN)的控制模塊基于TCP報(bào)頭信息自動(dòng)識(shí)別已經(jīng)變成延遲限制(或″窗口限制″)的分組流。在分組流由于網(wǎng)絡(luò)延遲已經(jīng)被識(shí)別為窗口控制的之后,相對(duì)靠近發(fā)送機(jī)局域網(wǎng)的控制模塊和相對(duì)靠近接收機(jī)局域網(wǎng)的另一個(gè)控制模塊通過(guò)增加在接收機(jī)的確認(rèn)分組中指出的窗口大小來(lái)優(yōu)化該分組流。兩個(gè)控制模塊同步操作,以便透明地管理發(fā)送機(jī)和接收機(jī)之間的分組流。這個(gè)透明優(yōu)化過(guò)程允許發(fā)送機(jī)最大化傳輸中的數(shù)據(jù)量,由此基本上最小化發(fā)送機(jī)等待來(lái)自接收機(jī)的附加確認(rèn)的空閑時(shí)間。
說(shuō)明書(shū)中描述的特征和優(yōu)點(diǎn)不是總括的,特別是,就附圖、說(shuō)明書(shū)和權(quán)利要求而言,許多附加的特征和優(yōu)點(diǎn)對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)是顯而易見(jiàn)的。而且應(yīng)當(dāng)注意,說(shuō)明書(shū)中的使用的語(yǔ)言主要被選擇用于易讀和指導(dǎo)的目的,并且可能沒(méi)有被選擇用于敘述或限制本發(fā)明的主題。


圖1是本發(fā)明能在其中運(yùn)行的一個(gè)網(wǎng)絡(luò)環(huán)境示例的圖示。
圖2A和圖2B是TCP的流控制算法示例的圖示。
圖3是通過(guò)本發(fā)明的一個(gè)實(shí)施例實(shí)施的、用于優(yōu)化TCP的流控制的方法的流程圖。
圖4是由本發(fā)明的一個(gè)實(shí)施例實(shí)施、并且由相對(duì)靠近發(fā)送機(jī)的控制模塊執(zhí)行、以優(yōu)化TCP的流控制的方法的流程圖。
圖5是由本發(fā)明的一個(gè)實(shí)施例實(shí)施、并且由相對(duì)靠近接收機(jī)的控制模塊執(zhí)行、以優(yōu)化TCP的流控制的方法的流程圖。
圖6是說(shuō)明沒(méi)有通過(guò)本發(fā)明實(shí)施例優(yōu)化的窗口限制的TCP交易示例的時(shí)序圖。
圖7是說(shuō)明通過(guò)本發(fā)明實(shí)施例優(yōu)化的窗口限制的TCP交易示例的時(shí)序圖。
具體實(shí)施例方式現(xiàn)在將參考附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行描述,其中,類(lèi)似的附圖標(biāo)記指示相同或功能類(lèi)似的部件。此外,附圖中每個(gè)附圖標(biāo)記最左邊的數(shù)字對(duì)應(yīng)于首先使用該附圖標(biāo)記的附圖。
說(shuō)明書(shū)中參考的“一個(gè)實(shí)施例”或“實(shí)施例”意味著特殊的特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。說(shuō)明書(shū)中不同處所出現(xiàn)的短語(yǔ)“在一個(gè)實(shí)施例中”不一定全都指的是相同的實(shí)施例。
隨后的詳細(xì)說(shuō)明的某些部分按照計(jì)算機(jī)存儲(chǔ)器中按數(shù)據(jù)位操作的算法和符號(hào)表示給出。這些算法說(shuō)明和表示被那些數(shù)據(jù)處理領(lǐng)域內(nèi)的技術(shù)人員用于更有效地向本領(lǐng)域的其它技術(shù)人員傳達(dá)其工作實(shí)質(zhì)。在此,算法通常被設(shè)想為產(chǎn)生期望結(jié)果的自相容步驟(指令)序列。這些步驟是需要物理量的物理操作。盡管不一定,但這些量通常采用能夠被存儲(chǔ)、傳輸、結(jié)合、比較及其它操作的電、磁或光信號(hào)的形式。有時(shí)候,主要是由于公共用途的原因,把這些信號(hào)稱(chēng)為比特、值、元素、符號(hào)、特性、術(shù)語(yǔ)、數(shù)量等等是方便的。而且不失一般性地,有時(shí)把需要物理量的物理操作的步驟的某些布置稱(chēng)為模塊或編碼裝置也是方便的。
然而應(yīng)該考慮到,這些項(xiàng)以及類(lèi)似項(xiàng)將與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)、并且僅僅是被應(yīng)用于這些量的方便的標(biāo)簽。除非特別指出,否則從以下論述可以明顯看出,應(yīng)當(dāng)理解,在說(shuō)明書(shū)和論述中使用的諸如″處理″或″計(jì)算″或″確定″或″顯示″或″確定″之類(lèi)的術(shù)語(yǔ)指的是計(jì)算機(jī)系統(tǒng)或類(lèi)似的電子計(jì)算裝置的動(dòng)作和處理,這類(lèi)計(jì)算機(jī)系統(tǒng)或電子計(jì)算裝置操作并轉(zhuǎn)換在計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或其它這類(lèi)信息存儲(chǔ)、傳輸或顯示裝置內(nèi)被表示為物理(電子)量的數(shù)據(jù)。
本發(fā)明的某些方面包括在此以算法形式描述的處理步驟和指令。應(yīng)當(dāng)注意,本發(fā)明的處理步驟和指令能夠被具體實(shí)現(xiàn)為軟件、固件或硬件,而且在其被具體實(shí)現(xiàn)為軟件時(shí),可以被下載保存,并可以從各種操作系統(tǒng)使用的不同平臺(tái)來(lái)操作。
本發(fā)明還涉及一種用于執(zhí)行這里所描述的操作的裝置。這個(gè)裝置可以被特別地構(gòu)造成用于所需要的目的,或者它可能包括由存儲(chǔ)在計(jì)算機(jī)中的計(jì)算機(jī)程序來(lái)有選擇地激活或重新配置的通用計(jì)算機(jī)。這類(lèi)計(jì)算機(jī)程序可以被存儲(chǔ)在計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)中,例如、但不限于任何類(lèi)型的磁盤(pán),包括軟盤(pán)、光盤(pán)、CD-ROM、磁光盤(pán)、只讀存儲(chǔ)器(ROMs)、隨機(jī)存取存儲(chǔ)器(RAM)、EPROM、EEPROM、磁或光卡片、專(zhuān)用集成電路(ASIC)、或者適于存儲(chǔ)電子指令的任何媒介類(lèi)型,并且每一個(gè)都與計(jì)算機(jī)系統(tǒng)總線相連。而且,說(shuō)明書(shū)中涉及的計(jì)算機(jī)可以包括單個(gè)處理器,或者可以是采用多個(gè)處理器設(shè)計(jì)的結(jié)構(gòu),以便增加計(jì)算能力。
這里示出的算法和顯示不是固有地與任何特殊的計(jì)算機(jī)或其它設(shè)備相關(guān)。各種各樣的通用系統(tǒng)也可以用于根據(jù)此處所給出的程序,或者它可以被證明為方便構(gòu)造更專(zhuān)用的設(shè)備,以執(zhí)行所要求的方法步驟。被要求用于這些各式各樣的系統(tǒng)的結(jié)構(gòu)將由下面的說(shuō)明而變得明顯。另外,本發(fā)明沒(méi)有參考任何特殊的程序語(yǔ)言來(lái)描述。應(yīng)當(dāng)理解,各種各樣的編程語(yǔ)言可以被用來(lái)實(shí)現(xiàn)在此所描述的本發(fā)明的目的,并且下面對(duì)專(zhuān)用語(yǔ)言的任何參考都被提供用于公開(kāi)本發(fā)明的實(shí)現(xiàn)和最佳模式。
另外,說(shuō)明書(shū)中的使用的語(yǔ)言主要被選擇用于易讀和指導(dǎo)的目的,并且可不被選擇用于敘述或限制本發(fā)明的主題。因此,本發(fā)明的公開(kāi)內(nèi)容意在說(shuō)明而不是限制在隨后的權(quán)利要求中所闡明的本發(fā)明的范圍。
圖1是本發(fā)明能在其中運(yùn)行的一個(gè)網(wǎng)絡(luò)環(huán)境示例的圖示。接收機(jī)102可以是用TCP向一個(gè)或多個(gè)端點(diǎn)發(fā)送數(shù)據(jù)或從一個(gè)或多個(gè)端點(diǎn)接收數(shù)據(jù)的任何裝置。接收機(jī)102經(jīng)由諸如LAN 106之類(lèi)的通信網(wǎng)絡(luò)被連接到與控制模塊104(例如,在控制裝置中)相連??蛇x地,控制模塊104沒(méi)有經(jīng)由LAN 106而直接與接收機(jī)102相連,或者在接收機(jī)102內(nèi)被實(shí)現(xiàn)為程序模塊??刂颇K104經(jīng)由諸如廣域網(wǎng)(WAN)108之類(lèi)的另一個(gè)通信網(wǎng)絡(luò)與一個(gè)或多個(gè)其它控制模塊相連。即使圖1示出了控制模塊104被連接到一個(gè)其它的控制模塊(即,控制模塊110),控制模塊104也可能被連接到超過(guò)一個(gè)的控制模塊。每個(gè)其它的控制模塊還經(jīng)由另一個(gè)通信網(wǎng)絡(luò)被連接到發(fā)送機(jī)。例如,圖1示出(例如在控制裝置中的)了控制模塊110經(jīng)由LAN 114被連接到發(fā)送機(jī)112。發(fā)送機(jī)112可以是用TCP向一個(gè)或多個(gè)端點(diǎn)發(fā)送數(shù)據(jù)或者從一個(gè)或多個(gè)端點(diǎn)接收數(shù)據(jù)的任何裝置。而且,控制模塊110能夠不經(jīng)由LAN 114而直接連接到發(fā)送機(jī)112,或者可能在發(fā)送機(jī)112內(nèi)被實(shí)現(xiàn)為程序模塊。
在本發(fā)明的一個(gè)實(shí)施例中,控制模塊104與發(fā)送機(jī)112的相對(duì)位置比與接收機(jī)102的相對(duì)位置靠近,而控制模塊110與發(fā)送機(jī)112的相對(duì)位置比與接收機(jī)102的相對(duì)位置靠近。因此,控制模塊104物理上和邏輯上與接收機(jī)102相關(guān)聯(lián),而控制模塊110物理上和邏輯上與發(fā)送機(jī)112相關(guān)聯(lián)。
已經(jīng)在接收機(jī)102和發(fā)送機(jī)112之間建立TCP會(huì)話之后,TCP開(kāi)始提供流控制服務(wù),以防止發(fā)送機(jī)112溢出接收機(jī)102的緩存。TCP流控制使發(fā)送機(jī)112發(fā)送應(yīng)用層數(shù)據(jù)的速率與接收機(jī)102讀取該數(shù)據(jù)的速率相匹配。TCP通過(guò)使發(fā)送機(jī)112保持被稱(chēng)為接收窗口的變量來(lái)提供流控制。接收窗口被用來(lái)給予發(fā)送機(jī)112在接收機(jī)102處有多少空閑的緩沖區(qū)的顯式信息。接收窗口是動(dòng)態(tài)的;即,它在TCP會(huì)話的存在期間會(huì)變化。通過(guò)在它發(fā)送到發(fā)送機(jī)112的TCP分組的窗口中通告其接收窗口的當(dāng)前值,接收機(jī)102告知發(fā)送機(jī)112它在連接緩存中有多少備用空間。通過(guò)將未確認(rèn)數(shù)據(jù)的量保持成小于接收窗口的值,發(fā)送機(jī)112能夠防止自身在接收機(jī)102處溢出接收機(jī)緩存。
圖2A和2B說(shuō)明TCP的流控制算法的示例。圖2A說(shuō)明了插入分組的字節(jié)流的一部分和每個(gè)分組的序列號(hào)。該字節(jié)流部分的序列號(hào)開(kāi)始于0。圖2B說(shuō)明了接收機(jī)102怎樣建立字節(jié)流的副本。虛線方框表示接收窗口,其為了說(shuō)明目的而被假定具有1600的恒定值。
在A處,分組1到達(dá)接收機(jī)102,接收機(jī)102通過(guò)向發(fā)送機(jī)112發(fā)送具有確認(rèn)號(hào)(ACK)1000和窗口大小(RevWindow)1600的確認(rèn)分組來(lái)確認(rèn)它。因?yàn)锳CK+RevWindow=2600,所以發(fā)送機(jī)112能夠向接收機(jī)102發(fā)送分組2、3和4。然后,發(fā)送機(jī)112向接收機(jī)102發(fā)送分組2和3。
在B處,分組3到達(dá)接收機(jī)102,而分組2已經(jīng)在網(wǎng)絡(luò)鏈路上被延遲。接收機(jī)102向發(fā)送機(jī)112發(fā)送具有ACK=1000和RevWindow=1600的另一個(gè)確認(rèn)分組。發(fā)送機(jī)112在此時(shí)向接收機(jī)102發(fā)送分組4。
在C處,分組4到達(dá)接收機(jī)102,而分組2仍然停留(outstand)。接收機(jī)102再次向發(fā)送機(jī)112發(fā)送ACK=1000和RevWindow=1600的確認(rèn)分組。然而,發(fā)送機(jī)112在此時(shí)不能向接收機(jī)102發(fā)送分組5,因?yàn)樗鼘研蛄刑?hào)帶到大于ACK+RcvWindow的2800。從而,直到接收機(jī)102向發(fā)送機(jī)112發(fā)送新的確認(rèn)分組為止,發(fā)送機(jī)112都不能向接收機(jī)102發(fā)送別的分組。
在D處,被延遲的分組2現(xiàn)在到達(dá)接收機(jī)102。接收機(jī)102向發(fā)送機(jī)112發(fā)送ACK=2400和RcvWindow=1600的確認(rèn)分組。換言之,接收機(jī)102滑動(dòng)或前進(jìn)接收窗口,以便允許發(fā)送機(jī)112發(fā)送更多的數(shù)據(jù)。這個(gè)窗口前進(jìn)允許發(fā)送機(jī)112發(fā)送直到序列號(hào)4000的數(shù)據(jù)(即,ACK+RcvWindow=4000)。因此,發(fā)送機(jī)112能夠向接收機(jī)102發(fā)送分組5、6和7。
可以看出,TCP的流控制算法防止發(fā)送機(jī)112在接收機(jī)102還沒(méi)有指出它準(zhǔn)備好接收這些附加數(shù)據(jù)的時(shí)候向接收機(jī)102發(fā)送數(shù)據(jù)。隨著接收機(jī)102和發(fā)送機(jī)112之間的距離和延遲的增加,發(fā)送分組與從接收機(jī)102接收確認(rèn)之間的RTT也增加。接收機(jī)102和發(fā)送機(jī)112之間的長(zhǎng)RTT可能導(dǎo)致發(fā)送機(jī)112延遲發(fā)送附加分組,以等待下一個(gè)來(lái)自于接收機(jī)102的確認(rèn)。
從而在本發(fā)明的一個(gè)實(shí)施例中,控制模塊104和控制模塊110進(jìn)行合作,以同步管理接收機(jī)102和發(fā)送機(jī)112之間的分組流。根據(jù)本發(fā)明的實(shí)施例,控制模塊104和110進(jìn)行合作,以增加被指示的窗口并且保持管線被增加到大于或等于網(wǎng)絡(luò)帶寬與接收機(jī)102和發(fā)送機(jī)112之間的往返延遲之積。從而,本發(fā)明的實(shí)施例通過(guò)為發(fā)送機(jī)112向接收機(jī)102發(fā)送數(shù)據(jù)提供一個(gè)更大的指示窗口來(lái)優(yōu)化TCP的流控制。
圖3是根據(jù)本發(fā)明實(shí)施例、由控制模塊104和110來(lái)優(yōu)化的TCP的流控制的操作流程圖。與發(fā)送機(jī)112相關(guān)聯(lián)的控制模塊110雙向監(jiān)視302在接收機(jī)102和發(fā)送機(jī)112之間的一個(gè)或多個(gè)分組流。特別是,控制模塊110檢查由發(fā)送機(jī)112發(fā)送的數(shù)據(jù)分組的序列號(hào)、確認(rèn)號(hào),以及由接收機(jī)102發(fā)送的確認(rèn)分組的指示窗口。發(fā)送機(jī)112向接收機(jī)102發(fā)送數(shù)據(jù)分組。在該數(shù)據(jù)分組到達(dá)接收機(jī)102之前,控制模塊110攔截(intercept)302數(shù)據(jù)分組?;谙惹暗姆纸M流檢查,控制模塊110確定具有序列號(hào)的數(shù)據(jù)分組位于或接近由接收機(jī)102指示的窗口頂端??刂颇K110認(rèn)為這種數(shù)據(jù)分組將被″窗口限制″。當(dāng)控制模塊110檢測(cè)窗口限制分組時(shí),它把與這個(gè)分組流相關(guān)聯(lián)的當(dāng)前指示窗口存儲(chǔ)在存儲(chǔ)區(qū)中。其后,控制模塊110能夠用所存儲(chǔ)的窗口值來(lái)確定由發(fā)送機(jī)112發(fā)送的后續(xù)數(shù)據(jù)分組是否被窗口限制。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,控制模塊110還把數(shù)據(jù)分組表征為窗口限制的(例如,通過(guò)使用在TCP報(bào)頭中可用的一個(gè)或多個(gè)字段或者向數(shù)據(jù)分組添加數(shù)據(jù))??刂颇K110還可以通過(guò)使用該窗口指示的最低比特位來(lái)表征數(shù)據(jù)分組,以指示當(dāng)前的數(shù)據(jù)分組是否被窗口限制。在控制模塊110表征窗口限制的數(shù)據(jù)分組之后,它把被表征的數(shù)據(jù)分組發(fā)送到接收機(jī)102。
在被表征的數(shù)據(jù)分組到達(dá)接收機(jī)102之前,與接收機(jī)102相關(guān)聯(lián)的控制模塊104攔截被表征的數(shù)據(jù)分組,并且通過(guò)查看這個(gè)分組流被窗口限制的特征而獲知。然后,控制模塊104從數(shù)據(jù)分組中除去表征,并且把數(shù)據(jù)分組發(fā)送到接收機(jī)102。對(duì)于窗口限制的分組流,如果控制模塊104具有充足的緩存資源,則控制模塊104還增加由接收機(jī)102指示的窗口。特別是,當(dāng)接收機(jī)102向發(fā)送機(jī)112發(fā)送一個(gè)或多個(gè)確認(rèn)分組時(shí),控制模塊104攔截這些確認(rèn)分組,并且增加306,在這些確認(rèn)分組中指示的指示窗口。例如,窗口指示的改變值可能是64千字節(jié)。根據(jù)本發(fā)明的示例性實(shí)施例,通過(guò)在連接建立期間把窗口比例協(xié)調(diào)到足夠高的值,控制模塊104能夠?qū)⒋翱谥甘局翟O(shè)置成高達(dá)1,073,725,440字節(jié)。控制模塊104還設(shè)置一個(gè)標(biāo)記,使得對(duì)于來(lái)自于接收機(jī)的后續(xù)確認(rèn)分組,它也增加窗口指示。
控制模塊104向發(fā)送機(jī)112發(fā)送調(diào)整后的確認(rèn)分組。發(fā)送機(jī)112接收調(diào)整后的確認(rèn)分組,并且查看確認(rèn)分組中指示的被調(diào)整窗口。由于較大的指示窗口,發(fā)送機(jī)112向接收機(jī)102發(fā)送附加的數(shù)據(jù)分組,直到被調(diào)整窗口所允許的量。在這些數(shù)據(jù)分組到達(dá)接收機(jī)102之前,控制模塊104在這些數(shù)據(jù)分組到達(dá)控制模塊104的時(shí)候攔截308它們。然后,控制模塊104確定310接收機(jī)102是否已經(jīng)將其窗口前進(jìn)了足夠遠(yuǎn),使得從發(fā)送機(jī)112到達(dá)的特殊數(shù)據(jù)分組處于接收機(jī)102當(dāng)前窗口的范圍之內(nèi)。在本發(fā)明的一個(gè)實(shí)施例中,控制模塊104能夠通過(guò)監(jiān)視從接收機(jī)102到發(fā)送機(jī)112的分組流來(lái)做出這個(gè)確定。特別是,控制模塊104攔截由接收機(jī)102發(fā)送到發(fā)送機(jī)112的一個(gè)或多個(gè)分組,并且確定接收機(jī)102是否已經(jīng)將其窗口前進(jìn)足夠遠(yuǎn),以便容納來(lái)自發(fā)送機(jī)112的數(shù)據(jù)分組(例如,通過(guò)檢查確認(rèn)號(hào)和窗口大小)。如果接收機(jī)102已經(jīng)將窗口前進(jìn)足夠遠(yuǎn)以便容納數(shù)據(jù)分組,則控制模塊104直接向接收機(jī)102發(fā)送312數(shù)據(jù)分組,而不將數(shù)據(jù)分組存儲(chǔ)在其緩存中。
另一方面,如果接收機(jī)102還未將窗口前進(jìn)足夠遠(yuǎn)以容納數(shù)據(jù)分組,則控制模塊104把數(shù)據(jù)分組存儲(chǔ)314在其緩存中。當(dāng)數(shù)據(jù)分組被存儲(chǔ)在緩存中時(shí),控制模塊104繼續(xù)監(jiān)視來(lái)自于接收機(jī)102的確認(rèn)分組,以便確定接收機(jī)102后來(lái)是否前進(jìn)了窗口。如果控制模塊104確定接收機(jī)102隨后已經(jīng)將窗口前進(jìn)了足夠遠(yuǎn),則它把被存儲(chǔ)的數(shù)據(jù)分組發(fā)送316到接收機(jī)102。在本發(fā)明的一個(gè)實(shí)施例中,如果在數(shù)據(jù)分組中使用了TCP時(shí)間戳,則在向接收機(jī)102發(fā)送數(shù)據(jù)分組之前,控制模塊104把數(shù)據(jù)分組的時(shí)間戳調(diào)整到如最接近從發(fā)送機(jī)112到接收機(jī)102的最新時(shí)間(recent)。
在TCP會(huì)話的過(guò)程中,分組流可能不再被窗口限制。例如,在接收機(jī)102前進(jìn)其窗口之后,它向發(fā)送機(jī)112發(fā)送一個(gè)或多個(gè)確認(rèn)分組?;诖_認(rèn)分組中指示的確認(rèn)號(hào)和窗口大小,控制模塊110確定從發(fā)送機(jī)112到接收機(jī)102的數(shù)據(jù)分組不再具有位于或接近指示窗口頂端的序列號(hào),并由此不被窗口限制。因此,控制模塊110把從發(fā)送機(jī)112到接收機(jī)102的一個(gè)或多個(gè)數(shù)據(jù)分組表征為不被窗口限制??刂颇K104在被表征的數(shù)據(jù)分組到接收機(jī)102的路上攔截它們,并且察出分組流不再被窗口限制。因此,對(duì)于接收機(jī)102隨后發(fā)送到發(fā)送機(jī)112的確認(rèn)分組,控制模塊104攔截確認(rèn)分組,通過(guò)減小指示窗口來(lái)調(diào)整確認(rèn)分組,然后向發(fā)送機(jī)112轉(zhuǎn)發(fā)確認(rèn)分組。在本發(fā)明的一個(gè)實(shí)施例中,每個(gè)減少的數(shù)量是這樣的,即,使得指示窗口的頂端保持不變??刂颇K104繼續(xù)減小指示窗口,直到它達(dá)到接收窗口的大小為止。而且,控制模塊104可能繼續(xù)減小指示窗口,直到分組流變得窗口限制為止,在這種情況下,控制模塊104然后110開(kāi)始增加指示窗口。
根據(jù)本發(fā)明的實(shí)施例,每個(gè)時(shí)間控制模塊104或110改變TCP報(bào)頭的任意字段,它還調(diào)整TCP報(bào)頭的校驗(yàn)和,使得如果校驗(yàn)和在改變之前是正確的則它就是正確的,如果校驗(yàn)和在改變之前是不正確的則它就是不正確的。
此外,本發(fā)明的實(shí)施例還允許報(bào)告控制模塊的性能。特別是,與當(dāng)前的序列號(hào)和確認(rèn)號(hào)一起存儲(chǔ)在控制模塊110中的窗口指示被用來(lái)估計(jì)窗口指示中的增加正在提高數(shù)據(jù)傳輸速率(從而不用通過(guò)控制模塊104和110的優(yōu)化就計(jì)算數(shù)據(jù)傳輸率的估計(jì))的程度。這些估計(jì)可用于連續(xù)地估算優(yōu)化功效。然而,這個(gè)優(yōu)化的窗口指示越大,則每秒經(jīng)過(guò)網(wǎng)絡(luò)的分組更多,而且很難精確地估計(jì)相同的分組在沒(méi)有優(yōu)化的情況下經(jīng)過(guò)網(wǎng)絡(luò)的時(shí)間。因此,本發(fā)明的實(shí)施例找出在未使用優(yōu)化的時(shí)候每個(gè)分組不得不更小的程度,以便使分組符合原始的窗口大小,并且讓分組到達(dá)時(shí)的速率與經(jīng)過(guò)優(yōu)化的分組到達(dá)的速率相同。從而,如果分組與經(jīng)過(guò)優(yōu)化之后的以相同的速率到達(dá),則本發(fā)明的實(shí)施例估計(jì)每個(gè)分組將更小的程度。因此對(duì)于每個(gè)分組來(lái)說(shuō)計(jì)算如下未優(yōu)化的分組大?。椒纸M的真實(shí)大小*(原始窗口大小/(分組中最高位的序列號(hào)-當(dāng)前的確認(rèn)號(hào))) 然而,未優(yōu)化分組的大小不能夠大于分組的當(dāng)前真實(shí)大小。因此,如果上述的計(jì)算產(chǎn)生大于分組的當(dāng)前的真實(shí)大小的值,則未優(yōu)化分組大小的值被設(shè)置成分組的當(dāng)前的真實(shí)大小。
這個(gè)計(jì)算得出的數(shù)隨時(shí)間被累積,以估計(jì)沒(méi)有優(yōu)化的數(shù)據(jù)傳輸率。特別是,在(例如1秒)周期中未優(yōu)化的分組的總大小提供了未經(jīng)優(yōu)化的數(shù)據(jù)傳輸率。并且,該周期中真實(shí)分組大小的合計(jì)(total)提供了經(jīng)過(guò)優(yōu)化的數(shù)據(jù)傳輸率。
圖4是由本發(fā)明的一個(gè)實(shí)施例實(shí)現(xiàn)、并由與發(fā)送機(jī)112相關(guān)聯(lián)的控制模塊110執(zhí)行的TCP優(yōu)化程序的流程圖。控制模塊110監(jiān)視402發(fā)送機(jī)112和接收機(jī)102之間的一個(gè)或多個(gè)分組流。特別是,控制模塊110檢查由發(fā)送機(jī)112發(fā)送的數(shù)據(jù)分組的序列號(hào)、以及由接收機(jī)102發(fā)送的確認(rèn)分組的確認(rèn)號(hào)和窗口指示??刂颇K110接收404來(lái)自于發(fā)送機(jī)112的數(shù)據(jù)分組。然后,控制模塊110確定406從發(fā)送機(jī)112接收機(jī)102的數(shù)據(jù)分組是否被窗口限制。例如,如果數(shù)據(jù)分組攜帶具有位于或接近接收機(jī)102指示的窗口頂端的序列號(hào),則它被窗口限制。如果數(shù)據(jù)分組不被窗口限制,則控制模塊110在402繼續(xù)監(jiān)視發(fā)送機(jī)112和接收機(jī)102之間的分組流。如果數(shù)據(jù)分組被窗口限制,則控制模塊110把窗口指示存儲(chǔ)408在存儲(chǔ)區(qū)中,用作日后參考。
控制模塊110還把數(shù)據(jù)分組表征410為窗口限制,并把被表征的數(shù)據(jù)分組發(fā)送到接收機(jī)102。例如,控制模塊110可以通過(guò)使用TCP報(bào)頭中可用的一個(gè)或多個(gè)字段、向數(shù)據(jù)分組添加數(shù)據(jù)、或使用窗口指示的最低位來(lái)表征數(shù)據(jù)分組??刂颇K110監(jiān)視412發(fā)送機(jī)112和接收機(jī)102之間的后續(xù)分組流。然后,控制模塊110確定414分組流是否仍然被窗口限制。倘若如此,控制模塊110在412繼續(xù)監(jiān)視分組流。否則,控制模塊110把從發(fā)送機(jī)112到接收機(jī)102的數(shù)據(jù)分組表征416為沒(méi)有窗口限制。然后,流程回到402。
圖5是說(shuō)明由本發(fā)明的一個(gè)實(shí)施例實(shí)現(xiàn)、并由與接收機(jī)102相關(guān)聯(lián)的控制模塊104執(zhí)行的TCP優(yōu)化程序的流程圖??刂颇K104接收502來(lái)自于發(fā)送機(jī)112的被表征的數(shù)據(jù)分組。然后,控制模塊104確定504這個(gè)表征是否指示數(shù)據(jù)分組被窗口限制還是不被窗口限制。如果該表征指示不被窗口限制,則控制模塊104減小506從接收機(jī)102發(fā)送到發(fā)送機(jī)112的確認(rèn)分組中的窗口指示。根據(jù)本發(fā)明的實(shí)施例,窗口指示的最小尺寸是接收窗口的大小。在控制模塊104減小窗口指示之后,流程回到502。如果該表征指示被窗口限制,則控制模塊104確定508它是否具有充足的緩存資源。如果控制模塊104沒(méi)有充足的緩存資源,則它不改變窗口指示,流程然后回到502。如果控制模塊104具有充足的緩存資源,則它增加510由接收機(jī)102發(fā)送到發(fā)送機(jī)112的確認(rèn)分組中的窗口指示??刂颇K104還設(shè)置一個(gè)標(biāo)記,使得對(duì)于來(lái)自于接收機(jī)的后續(xù)確認(rèn)分組而言,它也增加窗口指示。
控制模塊104還確定512接收機(jī)102是否已經(jīng)將窗口前進(jìn)了足夠遠(yuǎn)、以便容納來(lái)自于發(fā)送機(jī)112的數(shù)據(jù)分組。如果接收機(jī)102已經(jīng)將窗口前進(jìn)了足夠遠(yuǎn),則控制模塊104直接向接收機(jī)102發(fā)送514沒(méi)有表征的數(shù)據(jù)分組。然后,流程回到502。如果接收機(jī)102還沒(méi)有將窗口前進(jìn)足夠遠(yuǎn),則控制模塊把數(shù)據(jù)分組存儲(chǔ)516在其緩存中。當(dāng)窗口被前進(jìn)足夠遠(yuǎn)時(shí),如由接收機(jī)102發(fā)送的一個(gè)或多個(gè)確認(rèn)分組中所指示的,則控制模塊104向接收機(jī)102發(fā)送518沒(méi)有表征的數(shù)據(jù)分組。然后,流程回到502。在本發(fā)明的實(shí)施例中,如果在數(shù)據(jù)分組中使用了TCP時(shí)間戳,則在向接收機(jī)102發(fā)送數(shù)據(jù)分組之前,控制模塊104把數(shù)據(jù)分組的時(shí)間戳調(diào)整到最接近從發(fā)送機(jī)112到接收機(jī)102的最新時(shí)間。
圖6示出了被窗口限制并且通過(guò)控制模塊104和110進(jìn)行優(yōu)化的示例TCP事務(wù)(transaction)的時(shí)序圖。在圖6中,數(shù)據(jù)傳輸是從發(fā)送機(jī)112到接收機(jī)102。從接收機(jī)102到發(fā)送機(jī)112的分組是確認(rèn)分組。此外,一個(gè)確認(rèn)分組被假定為被產(chǎn)生用于每隔一個(gè)的(every second)數(shù)據(jù)分組,并且確認(rèn)分組中指示的窗口大小被假定為四個(gè)相等的分組。從圖6可以看出,當(dāng)窗口被限制并且發(fā)送機(jī)112和接收機(jī)102之間的延遲較大時(shí),由發(fā)送機(jī)112發(fā)送的數(shù)據(jù)分組的連續(xù)組之間經(jīng)過(guò)了相當(dāng)長(zhǎng)的時(shí)間,其原因是由于接收機(jī)102發(fā)射確認(rèn)分組中的延遲。基于延遲的TCP空閑時(shí)間導(dǎo)致單個(gè)TCP流與網(wǎng)絡(luò)鏈路上實(shí)際可用的情況相比較來(lái)說(shuō)獲得較低的吞吐量。因?yàn)門(mén)CP流不能利用全部的現(xiàn)有網(wǎng)絡(luò)帶寬,所以這些未利用的容量轉(zhuǎn)化為較高的傳輸時(shí)間。
圖7示出了被窗口限制但是未通過(guò)控制模塊104和110優(yōu)化的示例TCP事務(wù)的時(shí)序圖。在圖7中,數(shù)據(jù)傳輸是從發(fā)送機(jī)112到接收機(jī)102。從接收機(jī)102到發(fā)送機(jī)112的分組是確認(rèn)分組。此外,一個(gè)確認(rèn)分組被假定為產(chǎn)生用于每隔一個(gè)的數(shù)據(jù)分組,并且確認(rèn)分組中指示的窗口大小被假定為四個(gè)相等的分組,但是基于從控制模塊110接收的逐一分組(packet-by-packet)信號(hào)由控制模塊104增加到16個(gè)分組。在圖7中可以看出,由于較大的指示窗口尺寸的緣故,發(fā)送機(jī)112能夠把大量數(shù)據(jù)發(fā)射到網(wǎng)絡(luò)中。因此如從圖6可以區(qū)別的那樣,數(shù)據(jù)分組和確認(rèn)分組的連續(xù)組的發(fā)送之間沒(méi)有大量的時(shí)間延遲。從而,根據(jù)本發(fā)明實(shí)施例的優(yōu)化獲得了與未使用優(yōu)化相比較的較高的吞吐量和較短的傳輸時(shí)間。
雖然本發(fā)明的特殊的實(shí)施例和應(yīng)用已經(jīng)在此被說(shuō)明和描述,但是應(yīng)當(dāng)理解,本發(fā)明不局限于此處所公開(kāi)的精確的構(gòu)造和部件,并且在不背離所附的權(quán)利要求中定義的本發(fā)明的精神和范圍的前提下,可以在本發(fā)明的方法和設(shè)備的布置、操作和細(xì)節(jié)中進(jìn)行多種更改、改變和變動(dòng)。
權(quán)利要求
1.一種用于優(yōu)化發(fā)送機(jī)和接收機(jī)之間的傳輸控制協(xié)議TCP流控制的方法,包括下列步驟接收來(lái)自于所述發(fā)送機(jī)的數(shù)據(jù)分組;確定所述數(shù)據(jù)分組被窗口限制;接收來(lái)自于所述接收機(jī)的確認(rèn)分組;響應(yīng)于確定所述數(shù)據(jù)分組被窗口限制,增大所接收的確認(rèn)分組中指示的窗口;和向所述發(fā)送機(jī)發(fā)送具有所述被增大的窗口指示的所述確認(rèn)分組。
2.根據(jù)權(quán)利要求1所述的方法,還包括下列步驟響應(yīng)于確定所述數(shù)據(jù)分組被窗口限制,把所述數(shù)據(jù)分組表征為被窗口限制;和向所述接收機(jī)發(fā)送所述被表征的數(shù)據(jù)分組。
3.根據(jù)權(quán)利要求1所述的方法,還包括下列步驟響應(yīng)于向所述發(fā)送機(jī)發(fā)送所述確認(rèn)分組,接收來(lái)自于所述發(fā)送機(jī)的另一個(gè)數(shù)據(jù)分組;確定所述接收機(jī)的窗口是否已經(jīng)被前進(jìn),以便容納來(lái)自于所述發(fā)送機(jī)的所述其它數(shù)據(jù)分組;如果所述接收機(jī)的窗口已經(jīng)被前進(jìn)、以便容納所述其它的數(shù)據(jù)分組,則向所述接收機(jī)發(fā)送所述其它的數(shù)據(jù)分組;和如果所述接收機(jī)的窗口沒(méi)有被前進(jìn)、以便容納所述其它的數(shù)據(jù)分組,則存儲(chǔ)所述其它的數(shù)據(jù)分組。
4.根據(jù)權(quán)利要求3所述的方法,還包括下列步驟當(dāng)來(lái)自于所述接收機(jī)的后續(xù)確認(rèn)分組指示所述接收機(jī)的窗口已經(jīng)被前進(jìn)、以便容納所述被存儲(chǔ)的數(shù)據(jù)分組時(shí),向所述接收機(jī)發(fā)送所述被存儲(chǔ)的數(shù)據(jù)分組。
5.根據(jù)權(quán)利要求4所述的方法,還包括下列步驟在向所述接收機(jī)發(fā)送所述被存儲(chǔ)的數(shù)據(jù)分組之前,調(diào)整包括在所述被存儲(chǔ)的數(shù)據(jù)分組中的時(shí)間戳。
6.根據(jù)權(quán)利要求1所述的方法,還包括下列步驟接收來(lái)自于所述發(fā)送機(jī)的另一個(gè)數(shù)據(jù)分組;確定所述其它的數(shù)據(jù)分組不被窗口限制;接收來(lái)自于所述接收機(jī)的另一個(gè)確認(rèn)分組;響應(yīng)于確定所述其它的數(shù)據(jù)分組不被窗口限制,減小在所述其它的確認(rèn)分組中指示的窗口;并且向所述發(fā)送機(jī)發(fā)送具有所述被減小的窗口指示的所述其它確認(rèn)分組。
7.根據(jù)權(quán)利要求6所述的方法,還包括下列步驟把所述其它的數(shù)據(jù)分組表征為不被窗口限制;和向所述接收機(jī)發(fā)送所述被表征的數(shù)據(jù)分組。
8.根據(jù)權(quán)利要求6所述的方法,其中,減小在所述其它確認(rèn)分組中指示的窗口的步驟包括下列步驟把在所述其它確認(rèn)分組中指示的窗口減小一個(gè)量,使得所述被指示窗口的頂端保持不變。
9.根據(jù)權(quán)利要求1所述的方法,還包括下列步驟存儲(chǔ)由所述接收機(jī)發(fā)送的一個(gè)或多個(gè)確認(rèn)分組中指示的一個(gè)或多個(gè)窗口;和基于所存儲(chǔ)一個(gè)或多個(gè)窗口來(lái)確定數(shù)據(jù)傳輸速率。
10.根據(jù)權(quán)利要求1所述的方法,其中,確定所述數(shù)據(jù)分組被窗口限制的步驟包括下列步驟確定所述數(shù)據(jù)分組的序列號(hào)基本上接近于所述被指示窗口的頂端。
11.根據(jù)權(quán)利要求1所述的方法,其中,接收來(lái)自于所述發(fā)送機(jī)的所述數(shù)據(jù)分組的步驟包括下列步驟在相對(duì)接近所述發(fā)送機(jī)的位置處接收來(lái)自于所述發(fā)送機(jī)的數(shù)據(jù)分組;和其中,接收來(lái)自于所述接收機(jī)的所述確認(rèn)分組步驟包括的步驟為在相對(duì)接近所述接收機(jī)的位置處接收來(lái)自于所述接收機(jī)的確認(rèn)分組。
12.一種用于優(yōu)化發(fā)送機(jī)和接收機(jī)之間的傳輸控制協(xié)議TCP流控制的系統(tǒng),其包括一個(gè)或多個(gè)控制模塊,用于接收來(lái)自于所述發(fā)送機(jī)的數(shù)據(jù)分組;確定所述數(shù)據(jù)分組被窗口限制;接收來(lái)自于所述接收機(jī)的確認(rèn)分組;響應(yīng)于確定所述數(shù)據(jù)分組被窗口限制,增大所接收的確認(rèn)分組中指示的窗口;和向所述發(fā)送機(jī)發(fā)送具有所述被增大的窗口指示的所述確認(rèn)分組。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述一個(gè)或多個(gè)控制模塊響應(yīng)于確定所述數(shù)據(jù)分組被窗口限制,把所述數(shù)據(jù)分組表征為被窗口限制;和向所述接收機(jī)發(fā)送所述被表征的數(shù)據(jù)分組。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述一個(gè)或多個(gè)控制模塊響應(yīng)于向所述發(fā)送機(jī)發(fā)送所述確認(rèn)分組,接收來(lái)自于所述發(fā)送機(jī)的另一個(gè)數(shù)據(jù)分組;確定所述接收機(jī)的窗口是否已經(jīng)被前進(jìn)、以便容納來(lái)自于所述發(fā)送機(jī)的所述其它數(shù)據(jù)分組;如果所述接收機(jī)的窗口已經(jīng)被前進(jìn)、以便容納所述其它的數(shù)據(jù)分組,則向所述接收機(jī)發(fā)送所述其它的數(shù)據(jù)分組;和如果所述接收機(jī)的窗口還沒(méi)有被前進(jìn)、以便容納所述其它數(shù)據(jù)分組,則把所述其它數(shù)據(jù)分組存儲(chǔ)在存儲(chǔ)區(qū)中。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,當(dāng)來(lái)自于所述接收機(jī)的后續(xù)確認(rèn)分組指示所述接收機(jī)的窗口已經(jīng)被前進(jìn)、以便容納所述被存儲(chǔ)的數(shù)據(jù)分組時(shí),所述一個(gè)或多個(gè)控制模塊把所述被存儲(chǔ)的數(shù)據(jù)分組發(fā)送到所述接收機(jī)。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述一個(gè)或多個(gè)控制模塊在向所述接收機(jī)發(fā)送所述被存儲(chǔ)的數(shù)據(jù)分組之前,調(diào)整包括在所述被存儲(chǔ)的數(shù)據(jù)分組中的時(shí)間戳。
17.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述一個(gè)或多個(gè)控制模塊接收來(lái)自于所述發(fā)送機(jī)的另一個(gè)數(shù)據(jù)分組;確定所述其它的數(shù)據(jù)分組不被窗口限制;接收來(lái)自于所述接收機(jī)的另一個(gè)確認(rèn)分組;響應(yīng)于確定所述其它的數(shù)據(jù)分組不被窗口限制,減小在所述其它的確認(rèn)分組中指示的窗口;和向所述發(fā)送機(jī)發(fā)送具有所述被減小的窗口指示的所述其它確認(rèn)分組。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述一個(gè)或多個(gè)控制模塊把所述其它的數(shù)據(jù)分組表征為不被窗口限制;和向所述接收機(jī)發(fā)送所述被表征的數(shù)據(jù)分組。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述一個(gè)或多個(gè)控制模塊把在所述其它確認(rèn)分組中指示的窗口減小一個(gè)量,使得所述被指示窗口的頂端保持不變。
20.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述一個(gè)或多個(gè)控制模塊把由所述接收機(jī)發(fā)送的一個(gè)或多個(gè)確認(rèn)分組中指示的一個(gè)或多個(gè)窗口存儲(chǔ)在存儲(chǔ)區(qū)中;和基于所存儲(chǔ)一個(gè)或多個(gè)窗口來(lái)確定數(shù)據(jù)傳輸速率。
21.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,通過(guò)確定所述數(shù)據(jù)分組的序列號(hào)基本上接近于所述被指示窗口的頂端,所述一個(gè)或多個(gè)控制模塊確定所述數(shù)據(jù)分組被窗口限制。
22.一種用于優(yōu)化發(fā)送機(jī)和接收機(jī)之間的傳輸控制協(xié)議(TCP)流控制的系統(tǒng),其包括與所述發(fā)送機(jī)相關(guān)聯(lián)的第一控制模塊,用于接收來(lái)自于所述發(fā)送機(jī)的數(shù)據(jù)分組,和確定所述數(shù)據(jù)分組被窗口限制;和與所述接收機(jī)相關(guān)聯(lián)的第二控制模塊,用于接收來(lái)自于所述接收機(jī)的確認(rèn)分組;響應(yīng)于所述第一控制模塊確定所述數(shù)據(jù)分組被窗口限制,增大所接收的確認(rèn)分組中指示的窗口,和向所述發(fā)送機(jī)發(fā)送具有所述被增大的窗口指示的所述確認(rèn)分組。
23.一種用于確定網(wǎng)絡(luò)優(yōu)化的性能的方法,包括下列步驟識(shí)別經(jīng)過(guò)所述網(wǎng)絡(luò)優(yōu)化的分組的大小;和基于經(jīng)過(guò)所述網(wǎng)絡(luò)優(yōu)化的分組被識(shí)別的大小,確定分組大小調(diào)整,用于所述分組在所述接收機(jī)窗口的原始大小內(nèi)、以與所述網(wǎng)絡(luò)優(yōu)化一致的傳輸率而到達(dá)所述接收機(jī)。
24.根據(jù)權(quán)利要求23所述的方法,其中,確定所述分組大小調(diào)整的步驟包括下列步驟把所述分組大小調(diào)整確定為所述接收機(jī)窗口的原始大小、在所述分組中最高位的序列號(hào)以及所述分組的當(dāng)前確認(rèn)號(hào)的函數(shù)。
25.根據(jù)權(quán)利要求24所述的方法,其中,確定所述分組大小調(diào)整的步驟包括下列步驟確定所述序列號(hào)和所述當(dāng)前的確認(rèn)號(hào)之差;通過(guò)將所述接收機(jī)窗口的原始大小除以所述被確定的差,而確定數(shù)值;和將所述被確定的數(shù)值與所述被識(shí)別的分組大小相乘。
26.根據(jù)權(quán)利要求23所述的方法,還包括下列步驟使用所述分組大小調(diào)整來(lái)估計(jì)未經(jīng)所述網(wǎng)絡(luò)優(yōu)化的數(shù)據(jù)傳輸率。
27.一種用于確定網(wǎng)絡(luò)優(yōu)化性能的系統(tǒng),包括一個(gè)模塊,用于識(shí)別經(jīng)過(guò)所述網(wǎng)絡(luò)優(yōu)化的分組的大??;和基于經(jīng)過(guò)所述網(wǎng)絡(luò)優(yōu)化的所述分組被識(shí)別的大小,確定分組大小調(diào)整,用于所述分組在所述接收機(jī)窗口的原始大小內(nèi)、以與所述網(wǎng)絡(luò)優(yōu)化一致的傳輸率到達(dá)接收機(jī)。
28.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,所述模塊把所述分組大小調(diào)整確定為所述接收機(jī)窗口的原始大小、所述分組中最高位序列號(hào)以及所述分組的當(dāng)前確認(rèn)號(hào)的函數(shù)。
29.根據(jù)權(quán)利要求28所述的系統(tǒng),其中,所述模塊通過(guò)以下步驟來(lái)確定所述分組大小調(diào)整確定所述序列號(hào)和所述當(dāng)前的確認(rèn)號(hào)之差;通過(guò)將所述接收機(jī)窗口的原始大小除以所述被確定差,而確定數(shù)值;和將所述被確定的數(shù)值與所述被識(shí)別的分組大小相乘。
30.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,所述模塊使用所述分組大小調(diào)整來(lái)估計(jì)未經(jīng)所述網(wǎng)絡(luò)優(yōu)化的數(shù)據(jù)傳輸率。
全文摘要
一種不用侵入TCP的核心算法而優(yōu)化傳輸控制協(xié)議(TCP)流控制的系統(tǒng)和方法。相對(duì)靠近發(fā)送機(jī)局域網(wǎng)(LAN)的控制模塊自動(dòng)識(shí)別已經(jīng)變成窗口限制的分組流。在該分組流已被識(shí)別為窗口控制的之后,相對(duì)靠近該發(fā)送機(jī)局域網(wǎng)的控制模塊和相對(duì)靠近接收機(jī)局域網(wǎng)的另一個(gè)控制模塊通過(guò)增大接收機(jī)的確認(rèn)分組中指出的窗口大小來(lái)優(yōu)化該分組流。這兩個(gè)控制模塊同步操作,以便透明地管理該發(fā)送機(jī)和該接收機(jī)之間的該分組流。
文檔編號(hào)H04L12/26GK1894894SQ200480031653
公開(kāi)日2007年1月10日 申請(qǐng)日期2004年11月5日 優(yōu)先權(quán)日2003年11月5日
發(fā)明者B·辛格, A·P·辛格, V·帕克森 申請(qǐng)人:瞻博網(wǎng)絡(luò)公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1