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

分組重新排序期間的改進(jìn)的傳輸控制協(xié)議性能的制作方法

文檔序號(hào):7607553閱讀:157來源:國(guó)知局
專利名稱:分組重新排序期間的改進(jìn)的傳輸控制協(xié)議性能的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的數(shù)據(jù)傳送,并且具體地,涉及因特網(wǎng)或類似網(wǎng)絡(luò)上的數(shù)據(jù)塊的傳送。更具體地,本發(fā)明涉及在分組重新排序期間改進(jìn)TCP網(wǎng)絡(luò)中的擁塞控制。
背景技術(shù)
因特網(wǎng)已成為用于數(shù)據(jù)(文本、代碼、圖像、視頻、音頻、或混合)和軟件的傳送和分配的重要渠道。用戶連接到主干網(wǎng),其具有從14.4Kb/s至高于45Mb/s的寬泛性能區(qū)分層。此外,在因特網(wǎng)和內(nèi)聯(lián)網(wǎng)技術(shù)中,傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)已成為廣泛實(shí)現(xiàn)的標(biāo)準(zhǔn)通信協(xié)議,其允許客戶機(jī)、服務(wù)器、以及與它們耦接的通信系統(tǒng)之間的寬泛的多相性。因特網(wǎng)協(xié)議(IP)是網(wǎng)絡(luò)層協(xié)議,而傳輸控制協(xié)議(TCP)是傳輸層協(xié)議。在網(wǎng)絡(luò)層上,IP提供“數(shù)據(jù)報(bào)”遞交服務(wù)。相反,TCP在數(shù)據(jù)報(bào)服務(wù)上構(gòu)建面向連接的傳輸層服務(wù),以提供兩個(gè)IP主機(jī)之間的字節(jié)流的確保的順序遞交。將發(fā)送到TCP的應(yīng)用數(shù)據(jù)分為被發(fā)送到IP的段(segment)。通過段號(hào)碼而對(duì)段排序。
數(shù)據(jù)傳送的可靠性可被三個(gè)事件損害數(shù)據(jù)惡化、數(shù)據(jù)丟失、以及數(shù)據(jù)的重新排序。通過超時(shí)機(jī)制來管理數(shù)據(jù)丟失。TCP維持定時(shí)器(重新傳送定時(shí)器),以針對(duì)所傳送的段,測(cè)定從接收方接收確認(rèn)(ACK)的延遲。當(dāng)ACK未在所估算的時(shí)間間隔內(nèi)到達(dá)時(shí),假定對(duì)應(yīng)的段丟失,并重新傳送對(duì)應(yīng)的段。TCP通過維持對(duì)進(jìn)入分組進(jìn)行排隊(duì)的重新組合隊(duì)列,而管理數(shù)據(jù)的重新排序、或作為IP數(shù)據(jù)報(bào)而傳送的數(shù)據(jù)的段的無序到達(dá),直到依次重新排列了它們?yōu)橹?。僅在此隊(duì)列中的數(shù)據(jù)依次到達(dá)時(shí),才將所述數(shù)據(jù)移動(dòng)到用戶的接收緩沖器,其中可由用戶查看所述數(shù)據(jù)。TCP通過在段到達(dá)接收方時(shí)對(duì)它們執(zhí)行校驗(yàn)和,來管理數(shù)據(jù)惡化。對(duì)于校驗(yàn)和,TCP發(fā)送方對(duì)分組數(shù)據(jù)計(jì)算校驗(yàn)和,并將此2字節(jié)值置于TCP報(bào)頭上。校驗(yàn)和算法是TCP報(bào)頭和數(shù)據(jù)中所有16位字的1的補(bǔ)碼和的16位1的補(bǔ)碼。接收方對(duì)所接收的數(shù)據(jù)(除了TCP報(bào)頭中的2字節(jié)校驗(yàn)和字段之外)計(jì)算校驗(yàn)和,并驗(yàn)證其與報(bào)頭中的校驗(yàn)和值匹配。校驗(yàn)和字段還包括12字節(jié)的偽報(bào)頭,其包含來自IP報(bào)頭的信息(包括4字節(jié)“src ip”地址、4字節(jié)“dest ip”地址、2字節(jié)有效負(fù)載長(zhǎng)度、1字節(jié)協(xié)議字段)。
最初,設(shè)計(jì)TCP協(xié)議用來在具有低鏈路誤碼率的網(wǎng)絡(luò)中工作,即,所有的段損失主要是由于網(wǎng)絡(luò)擁塞造成的。結(jié)果,發(fā)送方在每次檢測(cè)到段損失時(shí)減小其傳送速率。然而,當(dāng)將重新排序的分組錯(cuò)誤地確定為網(wǎng)絡(luò)擁塞中的分組丟失時(shí),來自擁塞控制的所關(guān)聯(lián)的傳送速率的減小引起了不必要的吞吐量的降低。
對(duì)于給定的并行鏈路的流行、以及分組重新排序的其它原因,在TCP網(wǎng)絡(luò)中分組重新排序是普通的現(xiàn)象。例如,在聚集了很多真實(shí)適配器以形成邏輯適配器的以太信道上,當(dāng)在這些多個(gè)適配器上并行發(fā)送分組時(shí),一般會(huì)引起分組重新排序。在TCP中,在接收方對(duì)跟隨在已丟失或被重新排序的數(shù)據(jù)分組之后的任何數(shù)據(jù)分組進(jìn)行排隊(duì),直到這個(gè)丟失的分組到達(dá)為止。隨后,接收方一起確認(rèn)所有分組。當(dāng)接收方等待要重新傳送的丟失的分組時(shí),不再發(fā)送數(shù)據(jù)。然而,由于分組的重新排序,TCP會(huì)話將自動(dòng)實(shí)現(xiàn)快速重新傳送和恢復(fù),因?yàn)門CP將錯(cuò)誤地推斷網(wǎng)絡(luò)擁塞已引起了分組丟失。當(dāng)重新排序無意地觸發(fā)了快速重新傳送和恢復(fù)、或通過選擇確認(rèn)選項(xiàng)(SACK)的通知時(shí),擁塞窗口被截成兩半;并且,當(dāng)出現(xiàn)超時(shí)時(shí),將擁塞窗口設(shè)為一個(gè)段大小,從而強(qiáng)制慢啟動(dòng)。因?yàn)檫@些機(jī)制自動(dòng)地減小擁塞窗口,所以,這樣的分組重新排序無意地引起了網(wǎng)絡(luò)性能的急劇惡化。期望避免由于分組重新排序而造成的這種不必要的吞吐量降低。

發(fā)明內(nèi)容
因而,本發(fā)明提供了用于在網(wǎng)絡(luò)中的分組重新排序之后改進(jìn)傳輸層性能的改進(jìn)方法、系統(tǒng)和產(chǎn)品。在本發(fā)明的一個(gè)優(yōu)選方法中,發(fā)送方和接收方之間的網(wǎng)絡(luò)連接在擁塞狀態(tài)下操作,該方法包括接收預(yù)定閾值數(shù)目的第一確認(rèn),該第一確認(rèn)請(qǐng)求在操作于第一擁塞狀態(tài)下的網(wǎng)絡(luò)連接上傳送數(shù)據(jù)分組;響應(yīng)于接收預(yù)定閾值數(shù)目的第一確認(rèn),在網(wǎng)絡(luò)連接上將所請(qǐng)求的數(shù)據(jù)分組從發(fā)送方傳送到接收方;接收指示所請(qǐng)求的數(shù)據(jù)分組已被接收方接收的第二確認(rèn);計(jì)算接收第二確認(rèn)的時(shí)刻和傳送所請(qǐng)求的數(shù)據(jù)分組的時(shí)刻之間的差;如果該差小于閾值往返時(shí)間(round-trip-time),則將網(wǎng)絡(luò)連接的擁塞狀態(tài)設(shè)為第一擁塞狀態(tài),其中閾值往返時(shí)間是用于發(fā)送方和接收方之間的網(wǎng)絡(luò)連接上的數(shù)據(jù)分組的最小往返時(shí)間;以及如果該差大于閾值往返時(shí)間,則將網(wǎng)絡(luò)連接的擁塞狀態(tài)設(shè)為第二擁塞狀態(tài),其中第二擁塞狀態(tài)小于第一擁塞狀態(tài)。


現(xiàn)在將通過參照附圖、僅以例子的方式描述本發(fā)明,其中圖1示出了其中可實(shí)現(xiàn)本發(fā)明的優(yōu)選實(shí)施例的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò);圖2是可在本發(fā)明的優(yōu)選實(shí)施例中利用的服務(wù)器-客戶機(jī)系統(tǒng)的典型的軟件架構(gòu)的繪圖;圖3示出了利用TCP/IP的4層通信架構(gòu)的例子;圖4示出了包括通過路由器連接到令牌環(huán)網(wǎng)的以太網(wǎng)的因特網(wǎng)的例子;圖5示出了遍歷TCP/IP協(xié)議堆棧時(shí)的數(shù)據(jù)格式;圖6示出了TCP發(fā)送或重試幀、以及TCP確認(rèn)幀的數(shù)據(jù)結(jié)構(gòu);圖7示出了由本發(fā)明的優(yōu)選實(shí)施例提供的改進(jìn)的TCP性能的例子的時(shí)序圖;以及圖8示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例、用于在分組重新排序之后的改進(jìn)的TCP性能的過程的流程圖。
具體實(shí)施例方式
現(xiàn)在參照附圖、并且具體參照?qǐng)D1,描述其中可實(shí)現(xiàn)本發(fā)明的優(yōu)選實(shí)施例的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)。數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)100包括至少一個(gè)服務(wù)器系統(tǒng)104,其經(jīng)由例如因特網(wǎng)108的至少一個(gè)網(wǎng)絡(luò)而耦接到至少一個(gè)客戶機(jī)系統(tǒng)106。服務(wù)器系統(tǒng)104和客戶機(jī)系統(tǒng)106之間的數(shù)據(jù)傳送遵循TCP/IP規(guī)范、以及文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)、或某些類似的通信協(xié)議。如將理解的,盡管僅示出了單個(gè)服務(wù)器系統(tǒng)104和單個(gè)客戶機(jī)系統(tǒng)106,但數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)100可包括通過包括因特網(wǎng)108的一個(gè)或多個(gè)連接和網(wǎng)絡(luò)而互連的任意數(shù)目的服務(wù)器和客戶機(jī)系統(tǒng)(未示出)。
為了在網(wǎng)絡(luò)上傳送數(shù)據(jù),有必要具有一組規(guī)則,以便適當(dāng)?shù)貓?zhí)行傳送序列的每一個(gè)部分。這些規(guī)則中的每一個(gè)被稱為協(xié)議,并且,一組規(guī)則被稱為協(xié)議組。通過TCP/IP(傳輸控制協(xié)議/因特網(wǎng)協(xié)議)協(xié)議組提供在因特網(wǎng)和諸如LAN(局域網(wǎng))和WAN(廣域網(wǎng))的各種其它網(wǎng)絡(luò)上傳送數(shù)據(jù)時(shí)使用的最常用的協(xié)議組。TCP/IP協(xié)議組允許運(yùn)行不同操作系統(tǒng)的多種不同類型的計(jì)算機(jī)彼此通信。TCP/IP形成全球因特網(wǎng)(即幾乎跨越全球的多于一百萬臺(tái)計(jì)算機(jī)的廣域網(wǎng))的基礎(chǔ)。除了TCP/IP組之外還存在很多其它網(wǎng)絡(luò)協(xié)議組,其包括IPX/SPX(因特網(wǎng)分組交換/順序分組交換)、以及NetBios。盡管最初由獨(dú)立研究組開發(fā),但多數(shù)網(wǎng)絡(luò)協(xié)議是開放(非私有)的標(biāo)準(zhǔn),它們中的很多作為一系列用數(shù)字排序的RFC(請(qǐng)求注解)文件而出版。例如,IP協(xié)議是RFC791??稍谝蛱鼐W(wǎng)上或各種圖書館中容易地得到RFC文件。盡管有所不同,但這些網(wǎng)絡(luò)協(xié)議組中的每個(gè)在結(jié)構(gòu)上是類似的,其包括一組層,每層負(fù)責(zé)通信任務(wù)的不同方面。為了簡(jiǎn)化起見,下面的討論將主要關(guān)于在使用TCP/IP協(xié)議時(shí)的本發(fā)明的使用。然而,本領(lǐng)域的技術(shù)人員應(yīng)認(rèn)識(shí)到,盡管關(guān)于TCP/IP協(xié)議而描述本發(fā)明的原理,但也可將本發(fā)明應(yīng)用于各種其它的網(wǎng)絡(luò)協(xié)議。
流程控制是處理在接收方和發(fā)送方之間的處理和緩沖容量中的失配的過程,以最佳地利用由傳送介質(zhì)提供的帶寬。TCP流程控制機(jī)制在終端站處排它地操作,以限制TCP端點(diǎn)發(fā)出數(shù)據(jù)的速率。然而,TCP缺少顯式數(shù)據(jù)速率控制?;玖鞒炭刂茩C(jī)制為被疊加在超越最后被顯式確認(rèn)的字節(jié)之外的字節(jié)的范圍上的“滑動(dòng)窗口”?;瑒?dòng)窗口限制最近從服務(wù)器發(fā)送的字節(jié)和尚未從客戶機(jī)接收到接收確認(rèn)的最早字節(jié)之間的連續(xù)字節(jié)的最大數(shù)目。此滑動(dòng)操作限制TCP端點(diǎn)可發(fā)出的未確認(rèn)的可發(fā)送數(shù)據(jù)的量。接收主機(jī)在連接建立階段期間向發(fā)送主機(jī)通知與分組的“最大”數(shù)目有關(guān)的其緩沖器容量,其中,所述“最大”數(shù)目可為未定(未確認(rèn)的)任意給定時(shí)間。這是接收方或滑動(dòng)窗口大小,rwnd。發(fā)送方維持傳送窗口,其當(dāng)前大小wnd是對(duì)可將多少分組送入網(wǎng)絡(luò)而用不等待確認(rèn)(ACK)的估算。wnd的上界是rwnd。
在超過滑動(dòng)窗口限制時(shí),各種算法自動(dòng)重新發(fā)送分組,并較慢地重新啟動(dòng)數(shù)據(jù)傳送。由此,如果服務(wù)器和客戶機(jī)之間的鏈路在數(shù)據(jù)集合的傳送的中間關(guān)閉,則服務(wù)器將在客戶機(jī)確認(rèn)的上一個(gè)分組的一個(gè)滑動(dòng)窗口內(nèi)停止發(fā)送分組。滑動(dòng)窗口的這種使用在本質(zhì)上限制了通過網(wǎng)絡(luò)的數(shù)據(jù)傳送的帶寬。
TCP中的慢啟動(dòng)(SS)算法將窗口大小設(shè)為0,并在啟動(dòng)或重新啟動(dòng)連接時(shí)測(cè)定傳送路由的未知容量。數(shù)據(jù)路徑的帶寬延遲積(product)是傳送路由的容量的粗略近似。在SS算法的每一次迭代中,將窗口大小加倍,從而到達(dá)延遲帶寬積的估算值。
TCP擁塞避免算法通過以受控方式減小傳送速率,而對(duì)付網(wǎng)絡(luò)中的擁塞。擁塞是由在切換點(diǎn)(例如,在網(wǎng)關(guān)或路由器)處的數(shù)據(jù)報(bào)過載而引起的嚴(yán)重延遲的情形,其導(dǎo)致分組的丟棄。發(fā)送方通過重新傳送受影響的分組而對(duì)付延遲和分組丟失。這增加了隨后可能快速加劇的擁塞,從而導(dǎo)致現(xiàn)在所謂的擁塞崩潰。“擁塞避免”在如通過超時(shí)檢測(cè)的原始ACK丟失時(shí)、或在接收方響應(yīng)于接收無序分組而傳送重復(fù)的確認(rèn)(DACK)時(shí)開始。在其出現(xiàn)時(shí),將在擁塞避免算法的先前迭代中計(jì)算的傳送路由容量估算值存儲(chǔ)在變量ssthresh中。由此,使用此估算值作為閾值,直到執(zhí)行了慢啟動(dòng)、并在之后重新測(cè)定傳送路由容量為止。在ssthresh的窗口大小之外,還采用窗口大小的線性增加。使用另一個(gè)變量cwnd來存儲(chǔ)如通過擁塞而控制的窗口大小的運(yùn)行估算值??梢钥闯?,將傳送窗口限制為擁塞窗口和滑動(dòng)窗口中的較小者(即,wnd=min(cwnd,rwnd))。另外,如果通過超時(shí)指示擁塞,則將cwnd設(shè)為一個(gè)段大小——強(qiáng)制慢啟動(dòng)。
用于增強(qiáng)的TCP性能的另一個(gè)機(jī)制是快速重新傳送和恢復(fù)(FRR)算法。當(dāng)為特定傳送而接收的DACK的數(shù)目到達(dá)了閾值(typ3)時(shí),TCP重新傳送丟失的分組,并且,窗口減小到二分之一,而不是接近1。一旦通過超時(shí)(擁塞的強(qiáng)指示)或DACK(擁塞的弱指示)而檢測(cè)到擁塞,便將當(dāng)前擁塞窗口(cwnd)的一半存儲(chǔ)在ssthresh中,以強(qiáng)制擁塞避免。這是擁塞控制算法的乘法減小部分。此外,為了防止在最終確認(rèn)重新傳送時(shí)傳送分組的突發(fā)組(burst),在執(zhí)行擁塞避免時(shí),利用每個(gè)DACK傳送新分組。在丟失了超過傳送窗口(wnd)的連續(xù)數(shù)目分組或傳送中的上一個(gè)分組時(shí),F(xiàn)RR失敗。
圖2是可在本發(fā)明的優(yōu)選實(shí)施例中利用的服務(wù)器-客戶機(jī)系統(tǒng)的典型軟件架構(gòu)的繪圖。服務(wù)器104和客戶機(jī)106分別利用軟件架構(gòu)200來構(gòu)建。在最低層,利用操作系統(tǒng)205來將高層功能提供給用戶和其它軟件。典型地,這樣的操作系統(tǒng)包括BIOS(基本輸入輸出系統(tǒng))。通信軟件210通過直接調(diào)用操作系統(tǒng)功能、或間接繞過操作系統(tǒng)來訪問用于在網(wǎng)絡(luò)上通信的硬件,經(jīng)由物理通信鏈路,通過到例如因特網(wǎng)的網(wǎng)絡(luò)的外部端口而提供通信。應(yīng)用編程接口215允許作為單機(jī)或軟件例程的系統(tǒng)的用戶使用標(biāo)準(zhǔn)相容接口調(diào)用系統(tǒng)功能,而不用關(guān)心如何實(shí)現(xiàn)特定功能。因特網(wǎng)軟件220表示可用于給計(jì)算機(jī)配備因特網(wǎng)功能的幾種標(biāo)準(zhǔn)商用軟件包中的任一種。應(yīng)用軟件225表示任意數(shù)目的軟件應(yīng)用,其被設(shè)計(jì)用來通過通信端口對(duì)數(shù)據(jù)起作用,以提供用戶搜尋的期望功能。此層上的應(yīng)用可包括處理數(shù)據(jù)、視頻、圖形、圖片或文本所需的那些應(yīng)用,它們可被因特網(wǎng)的用戶訪問。
如圖3所示,通過包括應(yīng)用層310、傳輸層312、網(wǎng)絡(luò)層314、以及鏈路層316的用于網(wǎng)絡(luò)的4層通信架構(gòu)300,來利用TCP/IP和類似協(xié)議。每層負(fù)責(zé)處理如下的各種通信任務(wù)。鏈路層316(也被稱為數(shù)據(jù)鏈路層、或網(wǎng)絡(luò)接口層)通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)器、以及計(jì)算機(jī)中對(duì)應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與正在使用的網(wǎng)絡(luò)介質(zhì)(例如,以太網(wǎng)線纜等)物理對(duì)接的所有硬件細(xì)節(jié)。
網(wǎng)絡(luò)層314(也被稱為因特網(wǎng)層)處理網(wǎng)絡(luò)各處的數(shù)據(jù)分組的移動(dòng)。例如,網(wǎng)絡(luò)層處理在網(wǎng)絡(luò)上傳送的各種數(shù)據(jù)分組的路由。TCP組中的網(wǎng)絡(luò)層由幾種協(xié)議組成,包括IP(因特網(wǎng)協(xié)議)、ICMP(因特網(wǎng)控制消息協(xié)議)、以及IGMP(因特網(wǎng)組管理協(xié)議)。
傳輸層312提供網(wǎng)絡(luò)層314和應(yīng)用層310之間的接口,其幫助數(shù)據(jù)在兩個(gè)主計(jì)算機(jī)之間的傳送。傳輸層關(guān)心這樣的事情,如將從應(yīng)用傳遞給它的數(shù)據(jù)劃分為用于下面的網(wǎng)絡(luò)層的適當(dāng)大小的數(shù)據(jù)塊(chunk)、確認(rèn)所接收的分組、設(shè)置超時(shí)以確定被發(fā)送的其它結(jié)束確認(rèn)分組,等等。在TCP/IP協(xié)議組中,存在兩種明顯不同的傳輸協(xié)議TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。TCP提供可靠性服務(wù),以確保在兩個(gè)主機(jī)之間正確地傳送數(shù)據(jù),該服務(wù)包括丟失檢測(cè)和重新傳送服務(wù)。相反,UDP僅通過將稱為數(shù)據(jù)報(bào)的數(shù)據(jù)分組從一個(gè)主機(jī)發(fā)送到另一個(gè),而向應(yīng)用層提供簡(jiǎn)單得多的服務(wù),而不提供用于確保正確地傳送數(shù)據(jù)的任何機(jī)制。在使用UDP時(shí),應(yīng)用層必須執(zhí)行可靠性功能。
應(yīng)用層310處理特定應(yīng)用的細(xì)節(jié)。存在幾乎每一個(gè)實(shí)現(xiàn)所提供的很多常見TCP/IP應(yīng)用,其包括(1)用于遠(yuǎn)程登錄的Telnet;(2)FTP,即文件傳輸協(xié)議;(3)SMTP,即用于電子郵件的簡(jiǎn)單郵件傳輸協(xié)議;以及(4)SNMP,即簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議。
通過各自將兩個(gè)或更多網(wǎng)絡(luò)連接在一起的路由器,互連例如因特網(wǎng)的網(wǎng)絡(luò)。典型的路由器包括具有輸入和輸出連接、以及專用硬件的特定用途硬件盒,和/或允許連接很多不同類型的物理網(wǎng)絡(luò)(如以太網(wǎng)、令牌環(huán)、點(diǎn)對(duì)點(diǎn)鏈接等)的嵌入軟件。圖4示出了因特網(wǎng)400,其包括通過路由器436連接到令牌環(huán)網(wǎng)絡(luò)434的以太網(wǎng)432。盡管圖4僅示出了通信中的兩個(gè)主機(jī),但以太網(wǎng)上的任意主機(jī)可與其上的任意主機(jī)、或與令牌環(huán)網(wǎng)絡(luò)上的任意主機(jī)通信,并且,反之亦然。
如圖4所示,路由器436包括網(wǎng)絡(luò)層模塊438(在此情況下是IP模塊)、以及用于連接到主機(jī)網(wǎng)絡(luò)的適當(dāng)?shù)木W(wǎng)絡(luò)驅(qū)動(dòng)器,即以太網(wǎng)驅(qū)動(dòng)器440和令牌環(huán)驅(qū)動(dòng)器442。在應(yīng)用層,網(wǎng)絡(luò)包括FTP客戶機(jī)420和FTP服務(wù)器422。將大多數(shù)網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)為使得一端是客戶機(jī),而另一端是服務(wù)器。服務(wù)器向各種客戶機(jī)提供某些類型的服務(wù),在此情況下為訪問服務(wù)器主機(jī)上的文件。每層具有用于與其在相同層上的同位體(peer)通信的一個(gè)或多個(gè)協(xié)議。這些通信協(xié)議包括應(yīng)用層上的FTP協(xié)議444、傳輸層上的TCP協(xié)議446、網(wǎng)絡(luò)層上的IP協(xié)議448、以及鏈路層上的以太網(wǎng)協(xié)以450和令牌環(huán)協(xié)議454。對(duì)于應(yīng)用層來說常見的是處理用戶過程,同時(shí)在諸如UNIX或Windows操作系統(tǒng)的操作系統(tǒng)的內(nèi)核中實(shí)現(xiàn)較低的三個(gè)層(傳輸、網(wǎng)絡(luò)和鏈路)。例如,網(wǎng)絡(luò)接口層的目的在于處理通信介質(zhì)(以太網(wǎng)、令牌環(huán)等)的細(xì)節(jié),而應(yīng)用層的目的在于處理一個(gè)特定的用戶應(yīng)用(FTP、Telnet等)。
應(yīng)用層和傳輸層使用端到端協(xié)議(FTP協(xié)議444、TCP協(xié)議446)。網(wǎng)絡(luò)層提供路程段到路程段(hop-to-hop)協(xié)議,其在兩個(gè)端系統(tǒng)以及之間的每個(gè)中間系統(tǒng)上使用(為了清楚起見,這里僅示出了一個(gè)中間系統(tǒng))。例如,通過IP協(xié)議448而將路由器436的IP模塊438連接到兩個(gè)主機(jī)。還存在專用于連接到路由器的各種類型的主機(jī)網(wǎng)絡(luò)的鏈路層協(xié)議,以在鏈路層上處理網(wǎng)絡(luò)和路由器之間的通信。由此,使用以太網(wǎng)協(xié)議450來處理以太網(wǎng)432上的路由器436中的以太網(wǎng)驅(qū)動(dòng)器440和主機(jī)的以太網(wǎng)驅(qū)動(dòng)器452之間的通信,而使用令牌環(huán)協(xié)議454來處理令牌環(huán)網(wǎng)絡(luò)434上的路由器436的令牌環(huán)驅(qū)動(dòng)器442和主機(jī)的令牌環(huán)驅(qū)動(dòng)器456之間的通信。
在TCP/IP協(xié)議組中,網(wǎng)絡(luò)層(即IP)提供不可靠的服務(wù)。它將數(shù)據(jù)分組從源移動(dòng)到目的地,但它不提供用于確保遞交、或者甚至能夠確定是否已發(fā)生了正確傳送的機(jī)制。TCP提供可靠服務(wù),以保證在兩個(gè)主機(jī)之間正確地傳送了數(shù)據(jù),該服務(wù)包括丟失檢測(cè)和重新傳送服務(wù)。
路由器具有兩個(gè)或更多網(wǎng)絡(luò)接口層(由于其連接兩個(gè)或更多網(wǎng)絡(luò))。具有多個(gè)接口的任意系統(tǒng)被稱為多重初始地址(multi-homed)。主機(jī)也可以是多重初始地址,但是,除非它具體地將分組從一個(gè)接口轉(zhuǎn)發(fā)到另一個(gè),否則它不能被稱為路由器。并且,路由器不需要僅在因特網(wǎng)各處移動(dòng)分組的特定硬件盒。大多數(shù)TCP/IP實(shí)現(xiàn)允許多重初始地址主機(jī)用作路由器,但是主機(jī)需要被具體地配置為支持此用途。在這樣的實(shí)例中,系統(tǒng)為主機(jī)(在使用諸如FTP或Telnet的應(yīng)用時(shí))或路由器(在它將分組從一個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)到另一個(gè)時(shí))。連接網(wǎng)絡(luò)的另一種方式是通過網(wǎng)橋。網(wǎng)橋在鏈路層上連接網(wǎng)絡(luò),而路由器在網(wǎng)絡(luò)層上連接網(wǎng)絡(luò)。網(wǎng)橋使多個(gè)LAN對(duì)上層呈現(xiàn)為單個(gè)LAN。
當(dāng)應(yīng)用使用TCP/IP來發(fā)送數(shù)據(jù)時(shí),將數(shù)據(jù)通過每個(gè)層而向下發(fā)送到協(xié)議堆棧,直到通過網(wǎng)絡(luò)將其作為比特流而發(fā)送了為止。如圖5所示,每層通過將報(bào)頭預(yù)先附加(prepend)到其接收的數(shù)據(jù)上而將信息添加到數(shù)據(jù)上。例如,在應(yīng)用層,將應(yīng)用報(bào)頭580預(yù)先附加到用戶數(shù)據(jù)582上,以形成應(yīng)用數(shù)據(jù)584。在傳輸層,將傳輸協(xié)議報(bào)頭預(yù)先附加到應(yīng)用數(shù)據(jù)上。在圖5的情況中,傳輸層是TCP,并且因此,將TCP報(bào)頭586預(yù)先附加到應(yīng)用數(shù)據(jù)584上,由此形成TCP幀588,其被發(fā)送到網(wǎng)絡(luò)層IP。TCP報(bào)頭586包括20個(gè)字節(jié)。類似地,在網(wǎng)絡(luò)層,將網(wǎng)絡(luò)層報(bào)頭預(yù)先附加到傳輸層數(shù)據(jù)上。在TCP/IP的情況下,將IP報(bào)頭590預(yù)先附加到TCP幀588,以形成IP數(shù)據(jù)報(bào)592。IP報(bào)頭590也包括20個(gè)字節(jié)。最后,在鏈路層,將例如以太網(wǎng)報(bào)頭594的介質(zhì)報(bào)頭添加到從網(wǎng)絡(luò)層接收的數(shù)據(jù)上,以形成數(shù)據(jù)幀。在例如當(dāng)介質(zhì)是以太網(wǎng)的某些實(shí)例中,還將介質(zhì)尾部(trailer)附加到數(shù)據(jù)的末尾。例如,在圖5中,將介質(zhì)尾部596附加到以太網(wǎng)報(bào)頭594和IP數(shù)據(jù)報(bào)592上,以形成以太網(wǎng)幀598。以太網(wǎng)幀包括與原始應(yīng)用消息數(shù)據(jù)相對(duì)應(yīng)的流過網(wǎng)絡(luò)的比特流。報(bào)頭底部的數(shù)(14、20、20、4)是字節(jié)形式的報(bào)頭的典型大小,例如,以太網(wǎng)報(bào)頭94包括14個(gè)字節(jié),等等。幀的大小將受正在用于傳送數(shù)據(jù)分組的網(wǎng)絡(luò)類型的最大傳送單位(MTU)限制。例如,以太網(wǎng)的MTU是1500字節(jié)。網(wǎng)絡(luò)層自動(dòng)執(zhí)行分段(fragmentation)(將數(shù)據(jù)報(bào)分割為較小的塊),使得每個(gè)段小于網(wǎng)絡(luò)的MTU。
當(dāng)客戶機(jī)檢測(cè)到某些數(shù)據(jù)幀從數(shù)據(jù)傳送流丟失時(shí),客戶機(jī)將通過在確認(rèn)幀中發(fā)送所丟失的幀的第一字節(jié)的序列號(hào),而請(qǐng)求服務(wù)器重新傳送丟失的幀。如在圖6中看到的,典型地,TCP發(fā)送或重試消息610包括介質(zhì)報(bào)頭612、協(xié)議報(bào)頭614、所接收的序列號(hào)字段616、發(fā)送序列號(hào)字段618、以及消息體620。介質(zhì)報(bào)頭612對(duì)網(wǎng)絡(luò)的類型(例如用于以太網(wǎng)的以太網(wǎng)報(bào)頭等)將是具體的。協(xié)議報(bào)頭614將取決于所使用的傳輸和網(wǎng)絡(luò)層協(xié)議,如TCP/IP、IPX/SPX、Netbios等。所接收的序列號(hào)字段616向由計(jì)算機(jī)可靠地接收的上一個(gè)序列號(hào)提供標(biāo)識(shí)符。發(fā)送序列號(hào)字段618對(duì)應(yīng)于消息的相對(duì)序列號(hào)。消息體620包含應(yīng)用數(shù)據(jù),其在源和目的計(jì)算機(jī)之間被發(fā)送。TCP確認(rèn)幀622包括介質(zhì)報(bào)頭624、協(xié)議報(bào)頭626、所接收的序列號(hào)字段628、以及第發(fā)送列號(hào)字段630。這些字段類似于共享相同名稱的上述字段。通過接收計(jì)算機(jī)而發(fā)送確認(rèn)幀622,以確認(rèn)發(fā)送或重試消息的接收。根據(jù)TCP,一旦接收到指示丟失幀的三個(gè)連續(xù)的確認(rèn)幀,服務(wù)器便會(huì)正常地“快速重新傳送”從丟失的序列號(hào)開始的丟失幀。由于服務(wù)器縮減其滑動(dòng)窗口并減小其發(fā)送的數(shù)據(jù)量,所以這樣的重新傳送對(duì)性能帶來負(fù)面影響。
現(xiàn)在參照?qǐng)D7,其中示出了由本發(fā)明的優(yōu)選實(shí)施例提供的改進(jìn)的TCP性能的例子的時(shí)序圖。圖7中圖解的例子示出了在網(wǎng)絡(luò)715上將5個(gè)數(shù)據(jù)分組傳送到接收方710的發(fā)送方705的時(shí)序圖700。在時(shí)刻A,將分組1發(fā)送到網(wǎng)絡(luò)715。在時(shí)刻B,將分組1從網(wǎng)絡(luò)715傳送到接收方710。在時(shí)刻C,接收方710確認(rèn)分組1的接收,并請(qǐng)求分組2(ACK 2)。在時(shí)刻D,將ACK 2從網(wǎng)絡(luò)715傳送到發(fā)送方705。
在時(shí)刻E、F、G和H,發(fā)送方705分別將分組2、3、4和5傳送到網(wǎng)絡(luò)715。然而,網(wǎng)絡(luò)715對(duì)從發(fā)送方705接收的分組重新排序,并且,如在時(shí)刻I所看到的,首先將分組3傳送到接收方710。響應(yīng)于接收分組3,接收方710在時(shí)刻J傳送重復(fù)的ACK 2(DACK 2),其指示接收方710尚未接收到分組2,并且無序地接收了分組3。在時(shí)刻K,將DACK 2從網(wǎng)絡(luò)715傳送到發(fā)送方705。并且,在時(shí)刻K,網(wǎng)絡(luò)715將分組4傳送到接收方710。作為響應(yīng),接收方710在時(shí)刻L傳送第二DACK 2,其指示已無序地接收了分組4并請(qǐng)求分組2。在時(shí)刻M,將此第二DACK 2從網(wǎng)絡(luò)715傳遞到發(fā)送方705,并且,將分組5從網(wǎng)絡(luò)715傳遞到接收方710。在時(shí)刻N(yùn),接收方710再次響應(yīng)分組5的接收,重新傳送第三DACK 2,確認(rèn)分組5的接收,并再次請(qǐng)求分組2。在時(shí)刻O,在發(fā)送方705處從網(wǎng)絡(luò)715接收此第三DACK 2。并且,在時(shí)刻O,接收方710最終從網(wǎng)絡(luò)715接收分組2。在時(shí)刻P,如由TCP協(xié)議所規(guī)定的,一旦接收到第三DACK 2,發(fā)送方705便“快速重新傳送”分組2。因?yàn)門CP將第三DACK的接收視為網(wǎng)絡(luò)715上的擁塞的結(jié)果,所以,一旦重新傳送分組2,發(fā)送方705便將擁塞窗口減小50%。并且,在時(shí)刻P,接收方710現(xiàn)在已接收了分組2、3、4和5,并通過請(qǐng)求分組6的ACK而做出響應(yīng)。作為網(wǎng)絡(luò)715中分組重新排序的結(jié)果,在網(wǎng)絡(luò)715中同時(shí)存在ACK6和重新傳送的分組2兩者。(將會(huì)理解,此定時(shí)僅代表例子,而在此過程中可出現(xiàn)其它定時(shí)。用于本發(fā)明的方法的適當(dāng)操作的僅有的定時(shí)需求是針對(duì)在接收方710接收重新傳送的分組2之前要從接收方710傳送的ACK 6。)在時(shí)刻Q,接收方710從網(wǎng)絡(luò)715接收重新傳送的分組2。在時(shí)刻R,發(fā)送方705從網(wǎng)絡(luò)715接收ACK 6。
在這一點(diǎn)上,在重新傳送分組之后的時(shí)刻R接收的ACK 6是響應(yīng)于分組2的原始傳送還是重新傳送是不確定的。在現(xiàn)有技術(shù)中,假定ACK是接收方710接收重新傳送的分組2的結(jié)果,于是,根據(jù)TCP,發(fā)送方705繼續(xù)通過減小的擁塞窗口而操作。然而,本發(fā)明的優(yōu)選實(shí)施例向發(fā)送方705提供用于在作為實(shí)際分組丟失事件的結(jié)果而接收的ACK和作為分組重新排序的結(jié)果而接收的ACK之間進(jìn)行區(qū)分的方法。如果發(fā)送方705根據(jù)優(yōu)選實(shí)施例而確定作為重新排序的結(jié)果而出現(xiàn)了快速重新傳送,那么,不執(zhí)行擁塞控制和避免,由此消除了對(duì)TCP帶寬的不需要的約束。
本發(fā)明的優(yōu)選實(shí)施例是在通過“快速重新傳送”而重新傳送分組并減小擁塞窗口之前、發(fā)送方750將當(dāng)前擁塞狀態(tài)保存為變量CCS時(shí)開始的過程,該變量CCS表示SSThresh和cwnd。一旦接收到確認(rèn)所傳送的分組的后續(xù)ACK(在圖7的例子中是ACK 6),TCP發(fā)送方705便基于ACK在發(fā)送方705的到達(dá)時(shí)刻,而確定ACK是源自原始重新排序的分組還是重新傳送的分組的接收。如果ACK在所計(jì)算的用于重新傳送的分組的往返時(shí)間的時(shí)間閾值(THRESH-RTT)的期滿之前到達(dá),則發(fā)送方705假定已出現(xiàn)了網(wǎng)絡(luò)715中的重新排序,而不是分組丟失。在此情況下,使用CCS來將擁塞狀態(tài)恢復(fù)到所保存的值,由此,因?yàn)椴⑽醋鳛榫W(wǎng)絡(luò)擁塞的結(jié)果而出現(xiàn)重新傳送,所以允許系統(tǒng)在其原始的增加的吞吐量下繼續(xù)操作。
為計(jì)算閾值重新傳送RTT(THRESH-RTT),TCP發(fā)送方705存儲(chǔ)重新傳送分組的時(shí)刻(Tretransmitted)。在重新傳送確認(rèn)到達(dá)時(shí),發(fā)送方705通過存儲(chǔ)確認(rèn)到達(dá)的時(shí)刻(Tcurrent)、并隨后計(jì)算重新傳送和到達(dá)時(shí)刻之間的差(即Tcurrent-Tretransmitted)來計(jì)算RTT。如果該差遠(yuǎn)低于用于發(fā)送方和接收方之間的鏈路的平均或當(dāng)前計(jì)算的往返時(shí)間(RTT),那么,存在作為重新排序事件的結(jié)果而出現(xiàn)的重新傳送的強(qiáng)指示。下面的等式描述了優(yōu)選實(shí)施例中的此計(jì)算(Tcurrent-Tretransmitted)<alpha*RTT其中,“alpha”為0和1之間的數(shù),且為用于估算發(fā)送方和接收方之間的最小可能RTT的因子,并且,其補(bǔ)償網(wǎng)絡(luò)中的RTT和無關(guān)的急劇下降的RTT中的變化。在優(yōu)選實(shí)施例中,在0.5和0.75(即50-75%)的范圍內(nèi)設(shè)置alpha,并且,優(yōu)選為0.6。一旦基于被確認(rèn)的以上計(jì)算而檢測(cè)到重新排序事件,發(fā)送方將把擁塞狀態(tài)恢復(fù)回到執(zhí)行快速重新傳送之前的系統(tǒng)值(即,回到所存儲(chǔ)的用于CCS的值)。如將理解的,優(yōu)選實(shí)施例的機(jī)制在發(fā)送方一側(cè)實(shí)現(xiàn),并且不需要對(duì)接收方一側(cè)邏輯的改變。這確保了此技術(shù)將與不實(shí)現(xiàn)此性能增強(qiáng)的所有現(xiàn)有和未來的TCP實(shí)現(xiàn)來兼容工作。
如將理解的,在一個(gè)優(yōu)選實(shí)施例中,一旦重新傳送分組,便實(shí)現(xiàn)擁塞避免,并且,一旦接收到指示分組重新排序的較早的ACK,擁塞避免便回復(fù)到原始的CCS。在另一個(gè)優(yōu)選實(shí)施例中,擁塞避免的實(shí)現(xiàn)在快速重新傳送之后被延遲,直到在接收了對(duì)重新傳送的及時(shí)響應(yīng)ACK之后、確認(rèn)網(wǎng)絡(luò)擁塞引起了分組丟失為止。
現(xiàn)在參照?qǐng)D8,其中示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例、用于在分組重新排序之后的改進(jìn)的TCP性能的過程的流程圖。當(dāng)在發(fā)送方705接收的重復(fù)確認(rèn)的數(shù)目超過了傳輸協(xié)議中的閾值數(shù)目、而觸發(fā)所指示的分組的快速重新傳送和恢復(fù)(FRR)時(shí),過程800在步驟805開始。在TCP協(xié)議中,典型地,F(xiàn)RR在發(fā)送方705接收到3個(gè)DACK時(shí)出現(xiàn)。之后,過程轉(zhuǎn)到步驟810,其中,發(fā)送方705存儲(chǔ)當(dāng)前擁塞狀態(tài)(CCS),其包括擁塞窗口和慢啟動(dòng)閾值,并且,通過將慢啟動(dòng)閾值(SSTHRESH)減小到其當(dāng)前值的一半而實(shí)現(xiàn)擁塞避免。隨后,過程轉(zhuǎn)到步驟815,其中,發(fā)送方705重新傳送所指示的丟失的分組,并將出現(xiàn)重新傳送的時(shí)刻存儲(chǔ)在變量Tretransmission下。隨后,過程轉(zhuǎn)到步驟820,在該點(diǎn)處,發(fā)送方705接收已被重新傳送的分組的確認(rèn),并將此確認(rèn)的到達(dá)時(shí)刻存儲(chǔ)為變量Tcurrent。之后,過程轉(zhuǎn)到步驟825,其中,通過確定重新傳送的時(shí)刻和分組的確認(rèn)到達(dá)時(shí)刻之間的差,而計(jì)算用于重新傳送的分組的往返時(shí)間(rrt)。隨后,過程轉(zhuǎn)到判定塊830,其中,確定重新傳送的分組的往返時(shí)間是否比發(fā)送方705和接收方710之間的路由的最小預(yù)計(jì)往返時(shí)間小預(yù)定量,其中,預(yù)定量是網(wǎng)絡(luò)715中的鏈路特性和RTT中的理論上可能急劇下降的函數(shù)。通過用“alpha”表示的比例因子而實(shí)現(xiàn)此預(yù)定量,并將其設(shè)為0和1之間,優(yōu)選是在0.5-0.75的范圍中。由此,可通過等式rrt<alpha*RTT來表示步驟830的確定。如果步驟830的確定為否,則過程轉(zhuǎn)到步驟840,其中,因?yàn)橐汛_定響應(yīng)于丟失的分組而正確地實(shí)現(xiàn)了擁塞避免,過程結(jié)束。如果步驟830的確定為是,則過程轉(zhuǎn)到步驟835,其中,將發(fā)送方705中的擁塞狀態(tài)恢復(fù)到在步驟810存儲(chǔ)的CCS,并且之后,過程在步驟840結(jié)束。
將理解,因?yàn)樵诓襟E825計(jì)算的往返時(shí)間指示響應(yīng)于到達(dá)接收方710的重新路由的原始分組、而不是響應(yīng)于重新傳送的分組的接收而接收了確認(rèn),所以,擁塞狀態(tài)返回到在發(fā)送方705啟動(dòng)快速傳送之前存在的CCS。因此,根據(jù)優(yōu)選實(shí)施例,通過將擁塞狀態(tài)重新置為CCS,取消從重新傳送的分組的重新排序而導(dǎo)致的擁塞避免的錯(cuò)誤觸發(fā),由此通過增加吞吐量而提升性能,否則,吞吐量會(huì)通過TCP擁塞避免的實(shí)現(xiàn)而被扼制。
盡管已通過參照優(yōu)選實(shí)施例而具體地示出并描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員將理解,可在其中做出各種形式和細(xì)節(jié)上的改變,而不背離本發(fā)明的精神和范圍。例如,可使用計(jì)算機(jī)編程軟件、固件或硬件的任意組合來實(shí)現(xiàn)本發(fā)明。作為實(shí)踐本發(fā)明或構(gòu)造根據(jù)本發(fā)明的設(shè)備的預(yù)備步驟,典型地,根據(jù)本發(fā)明的計(jì)算機(jī)編程代碼(軟件或固件)將被存儲(chǔ)在一個(gè)或多個(gè)機(jī)器可讀存儲(chǔ)介質(zhì)中,如固定(硬)驅(qū)動(dòng)器、磁盤、光盤、磁帶、諸如ROM和PROM的半導(dǎo)體存儲(chǔ)器等,由此產(chǎn)生根據(jù)本發(fā)明的產(chǎn)品。通過直接從諸如硬盤、RAM等的存儲(chǔ)裝置執(zhí)行代碼、通過將代碼從存儲(chǔ)裝置復(fù)制到另一個(gè)存儲(chǔ)裝置、或通過傳送用于遠(yuǎn)程執(zhí)行的代碼,而使用包含計(jì)算機(jī)編程代碼的產(chǎn)品??赏ㄟ^組合具有用來運(yùn)行代碼的適當(dāng)?shù)臉?biāo)準(zhǔn)計(jì)算機(jī)硬件的、包含代碼的一個(gè)或多個(gè)機(jī)器可讀存儲(chǔ)裝置,而產(chǎn)生用于實(shí)踐本發(fā)明的方法。用于實(shí)踐本發(fā)明的設(shè)備可為一個(gè)或多個(gè)計(jì)算機(jī)和存儲(chǔ)系統(tǒng),其包含或具有對(duì)根據(jù)本發(fā)明而編碼的計(jì)算機(jī)程序(多個(gè))的網(wǎng)絡(luò)訪問。
權(quán)利要求
1.一種用于在網(wǎng)絡(luò)(715)中的分組重新排序之后改進(jìn)傳輸層(312)性能的方法,其中,網(wǎng)絡(luò)包括發(fā)送方(705)和接收方(710)之間的網(wǎng)絡(luò)連接,并且其中,網(wǎng)絡(luò)連接在擁塞狀態(tài)下操作,所述方法包括以下步驟接收預(yù)定閾值數(shù)目的第一確認(rèn),第一確認(rèn)請(qǐng)求在操作于第一擁塞狀態(tài)的網(wǎng)絡(luò)連接上傳送數(shù)據(jù)分組;響應(yīng)(805)于接收預(yù)定閾值數(shù)目的第一確認(rèn),在網(wǎng)絡(luò)連接上將所請(qǐng)求的數(shù)據(jù)分組從發(fā)送方傳送(815)到接收方;接收(820)指示所請(qǐng)求的數(shù)據(jù)分組已被接收方接收的第二確認(rèn);計(jì)算(825)接收第二確認(rèn)的時(shí)刻和傳送所請(qǐng)求的數(shù)據(jù)分組的時(shí)刻之間的差;如果該差小于閾值往返時(shí)間,則將網(wǎng)絡(luò)連接的擁塞狀態(tài)設(shè)為(835)第一擁塞狀態(tài),其中閾值往返時(shí)間是用于發(fā)送方和接收方之間的網(wǎng)絡(luò)連接上的數(shù)據(jù)分組的最小往返時(shí)間;以及如果該差大于閾值往返時(shí)間,則將網(wǎng)絡(luò)連接的擁塞狀態(tài)設(shè)為第二擁塞狀態(tài),其中第二擁塞狀態(tài)小于第一擁塞狀態(tài)。
2.如權(quán)利要求1所述的方法,還包括以下步驟一旦發(fā)送所請(qǐng)求的數(shù)據(jù)分組,便將擁塞狀態(tài)設(shè)為第三擁塞狀態(tài)。
3.如權(quán)利要求2所述的方法,還包括以下步驟在傳送所請(qǐng)求的數(shù)據(jù)分組之前,存儲(chǔ)(810)第一擁塞狀態(tài)。
4.如權(quán)利要求2所述的方法,其中,第三擁塞狀態(tài)小于第一擁塞狀態(tài)。
5.如權(quán)利要求1所述的方法,其中,預(yù)定閾值數(shù)目為3。
6.如權(quán)利要求1所述的方法,其中,擁塞狀態(tài)包括擁塞窗口。
7.如權(quán)利要求1所述的方法,其中,擁塞狀態(tài)包括慢啟動(dòng)閾值。
8.如權(quán)利要求1所述的方法,還包括以下步驟(815)存儲(chǔ)傳送所請(qǐng)求的數(shù)據(jù)分組的時(shí)刻。
9.如權(quán)利要求1所述的方法,其中,網(wǎng)絡(luò)連接遵循TCP協(xié)議而操作。
10.如權(quán)利要求1所述的方法,其中,閾值往返時(shí)間介于網(wǎng)絡(luò)連接的平均往返時(shí)間的50%和75%之間。
11.一種數(shù)據(jù)處理系統(tǒng),其提供在網(wǎng)絡(luò)(715)中的分組重新排序之后改進(jìn)的傳輸層(312)性能,所述系統(tǒng)包括其中,網(wǎng)絡(luò)包括發(fā)送方(710)和接收方(705)之間的網(wǎng)絡(luò)連接,并且其中,網(wǎng)絡(luò)連接包括用于從接收方接收(805)請(qǐng)求傳送數(shù)據(jù)分組的預(yù)定閾值數(shù)目的第一確認(rèn)、同時(shí)在第一擁塞狀態(tài)下操作數(shù)據(jù)處理系統(tǒng)和接收方之間的網(wǎng)絡(luò)連接的裝置;用于響應(yīng)于接收預(yù)定閾值數(shù)目的第一確認(rèn)、將所請(qǐng)求的數(shù)據(jù)分組傳送(815)到接收方的裝置;用于接收(820)指示所請(qǐng)求的數(shù)據(jù)分組已被接收方接收的第二確認(rèn)的裝置;用于計(jì)算(825)接收第二確認(rèn)的時(shí)刻和傳送所請(qǐng)求的數(shù)據(jù)分組的時(shí)刻之間的差的裝置;如果該差小于閾值往返時(shí)間、則在第一擁塞狀態(tài)下操作(835)網(wǎng)絡(luò)連接的裝置,其中閾值往返時(shí)間是用于發(fā)送方和接收方之間的網(wǎng)絡(luò)連接上的數(shù)據(jù)分組的最小往返時(shí)間;以及如果該差大于閾值往返時(shí)間、則在第二擁塞狀態(tài)下操作網(wǎng)絡(luò)連接的裝置,其中第二擁塞狀態(tài)小于第一擁塞狀態(tài)。
12.如權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),還包括一旦發(fā)送所請(qǐng)求的數(shù)據(jù)分組、便在第三擁塞狀態(tài)下操作網(wǎng)絡(luò)連接的裝置。
13.如權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),還包括在傳送所請(qǐng)求的數(shù)據(jù)分組之前存儲(chǔ)(810)第一擁塞狀態(tài)的裝置。
14.如權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),其中,第三擁塞狀態(tài)小于第一擁塞狀態(tài)。
15.如權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),其中,預(yù)定閾值數(shù)目為3。
16.如權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),其中,擁塞狀態(tài)包括擁塞窗口。
17.如權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),其中,擁塞狀態(tài)包括慢啟動(dòng)閾值。
18.如權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),還包括存儲(chǔ)傳送所請(qǐng)求的數(shù)據(jù)分組的時(shí)刻的裝置。
19.如權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),其中,網(wǎng)絡(luò)連接遵循TCP協(xié)議而操作。
20.如權(quán)利要求11所述的數(shù)據(jù)處理系統(tǒng),其中,由數(shù)據(jù)處理系統(tǒng)發(fā)送所請(qǐng)求的數(shù)據(jù)分組,并且在因特網(wǎng)上從客戶機(jī)發(fā)送確認(rèn)。
21.一種計(jì)算機(jī)程序,包括用于執(zhí)行權(quán)利要求1至10中的任一個(gè)的步驟的計(jì)算機(jī)程序代碼組件。
全文摘要
一旦重新傳送分組,便實(shí)現(xiàn)TCP擁塞避免,并且一旦接收到指示分組重新排序的較早確認(rèn)(ACK),擁塞避免便回復(fù)到原始的擁塞狀態(tài),由此消除了不需要的TCP帶寬約束。一旦接收到對(duì)重新傳送的分組的ACK,便基于ACK在發(fā)送方的到達(dá)時(shí)刻,確定ACK是源自原始重新排序的分組還是重新傳送的分組的接收。如果用于重新傳送的分組的往返時(shí)間(RTT)遠(yuǎn)低于發(fā)送方和接收方之間的網(wǎng)絡(luò)鏈路的平均或當(dāng)前計(jì)算的往返時(shí)間(RTT),則作為重新排序事件的結(jié)果而出現(xiàn)重新傳送,并將擁塞窗口恢復(fù)回為在重新傳送之前的值,由此允許網(wǎng)絡(luò)鏈路繼續(xù)以其原始增加的吞吐量操作。
文檔編號(hào)H04L29/06GK1836418SQ200480023367
公開日2006年9月20日 申請(qǐng)日期2004年7月13日 優(yōu)先權(quán)日2003年8月14日
發(fā)明者卡維薩·V·M·巴拉塔克, 維尼特·賈恩, 瓦薩·瓦拉巴內(nèi)尼, 文卡特·文卡特蘇布拉 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
东海县| 金秀| 沙坪坝区| 舟曲县| 南昌县| 新沂市| 芷江| 临邑县| 昌黎县| 如东县| 宜丰县| 南华县| 阿合奇县| 景德镇市| 三门峡市| 汤阴县| 阿合奇县| 汉源县| 阜新| 岳阳县| 虹口区| 乐清市| 嫩江县| 普宁市| 忻州市| 北流市| 清涧县| 包头市| 黄骅市| 泸溪县| 玉树县| 紫云| 凤翔县| 阳泉市| 德化县| 方山县| 万州区| 普格县| 正镶白旗| 三亚市| 文山县|