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

用于網(wǎng)絡(luò)傳輸丟失容限的客戶端應(yīng)用控制的方法和系統(tǒng)的制作方法

文檔序號:7594436閱讀:188來源:國知局
專利名稱:用于網(wǎng)絡(luò)傳輸丟失容限的客戶端應(yīng)用控制的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸,特別涉及互聯(lián)網(wǎng)或類似網(wǎng)絡(luò)上的數(shù)據(jù)塊傳輸。更具體地說,本發(fā)明涉及實現(xiàn)由應(yīng)用控制的、動態(tài)的、準(zhǔn)可靠(quasi-reliable)的數(shù)據(jù)傳輸功能性,以改善諸如互聯(lián)網(wǎng)的網(wǎng)絡(luò)上的數(shù)據(jù)傳輸性能。
背景技術(shù)
互聯(lián)網(wǎng)已成為一種用于傳輸和發(fā)布數(shù)據(jù)(文本、代碼、圖像、視頻、音頻或混合數(shù)據(jù))與軟件的重要渠道。用戶以范圍從14.4Kb/s到大于45Mb/s的廣泛不同性能級別連接到骨干網(wǎng)。此外,傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)已成為互聯(lián)網(wǎng)/內(nèi)部網(wǎng)技術(shù)中的一種廣泛實現(xiàn)的標(biāo)準(zhǔn)通信協(xié)議,它允許客戶端、服務(wù)器和耦合它們的通信系統(tǒng)之間的廣泛異構(gòu)性?;ヂ?lián)網(wǎng)協(xié)議(IP)是網(wǎng)絡(luò)層協(xié)議,而傳輸控制協(xié)議(TCP)是傳輸層協(xié)議。在網(wǎng)絡(luò)層,IP提供“數(shù)據(jù)報”傳送服務(wù)。相反,TCP在數(shù)據(jù)報服務(wù)之上構(gòu)建傳輸層服務(wù),用于在兩個IP主機(jī)之間提供有保證的、順序的字節(jié)流傳送。
TCP流控制機(jī)制只在終端站上運(yùn)行,以限制TCP端點(diǎn)發(fā)送數(shù)據(jù)的速率。但是,TCP缺乏顯式的數(shù)據(jù)速率控制?;玖骺刂茩C(jī)制是施加于最后顯式確認(rèn)的字節(jié)以外的一定范圍字節(jié)上的“滑動窗”。該滑動窗限制最近從服務(wù)器發(fā)送的字節(jié)到尚未從客戶端接收到接收確認(rèn)的最早字節(jié)之間的連續(xù)字節(jié)的最大數(shù)目。該滑動操作限制TCP端點(diǎn)可以發(fā)送的未確認(rèn)可傳輸數(shù)據(jù)的數(shù)目。多種算法自動重新發(fā)送分組,并在超過滑動窗限制時緩慢地重新啟動數(shù)據(jù)傳輸。由此,如果服務(wù)器和客戶端之間的鏈路在傳輸數(shù)據(jù)集合的中間被關(guān)斷,則服務(wù)器將在客戶端所確認(rèn)的最后分組的一個滑動窗內(nèi)停止發(fā)送分組。滑動窗的使用內(nèi)在地限制了通過網(wǎng)絡(luò)的數(shù)據(jù)傳輸帶寬。
TCP/IP是一種面向連接的可靠通信協(xié)議,它嚴(yán)格地強(qiáng)制執(zhí)行可靠的數(shù)據(jù)傳輸,使得一個TCP幀的丟失可能阻塞該TCP流中所有后繼數(shù)據(jù)的傳送,直到該丟失的TCP幀被傳送為止。然而,不是所有的客戶端應(yīng)用都需要TCP所提供的嚴(yán)格順序和可靠傳送,這尤其是因為該服務(wù)以一定的成本得到帶寬。例如,基于視頻或圖像的應(yīng)用不需要非常可靠的數(shù)據(jù)傳送。在這些應(yīng)用中,如果數(shù)據(jù)流的某些部分丟失,則視頻/圖像仍然可以有效地表現(xiàn)出來。因此,如果性能可以被總體改善,則該應(yīng)用在某些情況下愿意容忍一定的數(shù)據(jù)丟失。但是,TCP由于強(qiáng)制執(zhí)行其嚴(yán)格可靠性而將自動減小可用于該應(yīng)用的帶寬。
一種避免TCP嚴(yán)格可靠性要求的方法是采用不可靠的傳輸,例如用戶數(shù)據(jù)報協(xié)議(UDP)。UDP是一種定義無連接數(shù)據(jù)報服務(wù)的協(xié)議。實現(xiàn)UDP的傳輸層過程或系統(tǒng)可能產(chǎn)生自包含的數(shù)據(jù)分組,其包括目的地路由信息。為了使用該方法,客戶端應(yīng)用必須在UDP傳輸層上面的層中實現(xiàn)它們自己的部分可靠性。但是,應(yīng)用在UDP傳輸層上面的層中使用自己的部分可靠性往往使該應(yīng)用非常復(fù)雜,因為它必須將自己的報頭插入分組中以有序化(order)和順序化(sequence)這些分組。
另一種方法采用諸如流控制傳輸協(xié)議(SCTP)的協(xié)議,該協(xié)議在同一連接內(nèi)既提供可靠的數(shù)據(jù)流又提供部分可靠的數(shù)據(jù)流。但是,采用SCTP涉及更改服務(wù)器和客戶端應(yīng)用以適應(yīng)該獨(dú)特協(xié)議。這種對服務(wù)器和客戶端應(yīng)用的更改涉及重寫整個應(yīng)用,這不太經(jīng)濟(jì)或者不總是切實可行。
可以看到需要一種通信協(xié)議來提供準(zhǔn)可靠的數(shù)據(jù)傳輸,但同時減少上述解決方案中的成本和復(fù)雜度。最好,讓該協(xié)議能容易地加入到現(xiàn)有網(wǎng)絡(luò)中,并根據(jù)客戶端應(yīng)用對數(shù)據(jù)傳輸?shù)目煽啃砸髞韯討B(tài)地控制該協(xié)議。

發(fā)明內(nèi)容
根據(jù)本發(fā)明,公開了用于為數(shù)據(jù)處理系統(tǒng)的應(yīng)用管理通信鏈路上的數(shù)據(jù)流傳輸?shù)母倪M(jìn)型方法、系統(tǒng)和產(chǎn)品。在本發(fā)明的一種優(yōu)選方法中,為多個在通信鏈路上接收的數(shù)據(jù)分組中的數(shù)據(jù)分組指定丟失容限,其中丟失容限是對應(yīng)用來說允許未在通信鏈路上接收到的該多個數(shù)據(jù)分組的最大百分比;當(dāng)接收到一條指示,表明數(shù)據(jù)分組未在通信鏈路上接收到時,判定該多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)是否已超過為該數(shù)據(jù)分組指定的丟失容限。如果該多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)沒有超過為該數(shù)據(jù)分組指定的丟失容限,則發(fā)送表示該數(shù)據(jù)分組已被數(shù)據(jù)處理系統(tǒng)接收到的確認(rèn)。如果該多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)超過為該數(shù)據(jù)分組指定的丟失容限,則發(fā)送表示該數(shù)據(jù)分組未被數(shù)據(jù)處理系統(tǒng)接收到的確認(rèn)。
本發(fā)明的所有目的、特性和優(yōu)點(diǎn)在以下詳細(xì)描述中將會變得清楚。


圖1示出了其中可以實現(xiàn)本發(fā)明優(yōu)選實施例的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)。
圖2是可以用于本發(fā)明的優(yōu)選實施例中的萬維網(wǎng)服務(wù)器-客戶端系統(tǒng)的典型軟件架構(gòu)的圖示。
圖3示出采用TCP/IP的4層通信架構(gòu)的例子。
圖4示出包括通過路由器連接到令牌環(huán)網(wǎng)絡(luò)的以太網(wǎng)網(wǎng)絡(luò)的互聯(lián)網(wǎng)的例子。
圖5示出數(shù)據(jù)穿過TCP/IP協(xié)議棧時的數(shù)據(jù)結(jié)構(gòu)。
圖6示出TCP發(fā)送或重試幀和TCP確認(rèn)幀的數(shù)據(jù)結(jié)構(gòu)。
圖7示出根據(jù)本發(fā)明一個優(yōu)選實施例的用于為客戶端應(yīng)用設(shè)置數(shù)據(jù)傳輸丟失容限的過程的流程圖。
圖8示出根據(jù)本發(fā)明一個優(yōu)選實施例的用于實現(xiàn)由應(yīng)用控制的、動態(tài)的、準(zhǔn)可靠的TCP功能性的過程的流程圖。
圖9示出客戶端的存儲器中的寄存器,其中存儲過程變量LOSS_T和強(qiáng)行確認(rèn)F_ACK。
圖10示出將圖7和圖8所示的過程應(yīng)用于數(shù)據(jù)流的例子。
具體實施例方式
在下面的描述中,參考其中相似的附圖標(biāo)記代表相同或相似單元的附圖,以優(yōu)選實施例描述本發(fā)明。雖然本發(fā)明以實現(xiàn)本發(fā)明目的的最佳模式描述,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,在本文的啟迪下,可以在不脫離本發(fā)明的精神或范圍的情況下作出各種修改。
現(xiàn)在參考附圖,并且特別參考圖1,示出了一種其中可以實現(xiàn)本發(fā)明優(yōu)選實施例的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)。數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)102包括至少一個服務(wù)器系統(tǒng)104,其通過至少一個諸如互聯(lián)網(wǎng)108的網(wǎng)絡(luò)連接到至少一個客戶端系統(tǒng)106。服務(wù)器系統(tǒng)104和客戶端系統(tǒng)106之間的數(shù)據(jù)傳輸遵循TCP/IP規(guī)范,以及文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)或某類似通信協(xié)議。大型數(shù)據(jù)傳輸采用并行幀執(zhí)行,下面將對此作進(jìn)一步詳細(xì)描述。應(yīng)當(dāng)理解,盡管只示出了單個服務(wù)器系統(tǒng)104和單個客戶端系統(tǒng)106,但數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)102可以包括任意數(shù)目的服務(wù)器和客戶端系統(tǒng)(未示出),它們通過包括互聯(lián)網(wǎng)108在內(nèi)的一個或多個連接和網(wǎng)絡(luò)互連。
圖2示出可以用于本發(fā)明優(yōu)選實施例中的萬維網(wǎng)服務(wù)器-客戶端系統(tǒng)的典型軟件架構(gòu)。服務(wù)器104和客戶端106均采用軟件架構(gòu)200構(gòu)造。在最低層,操作系統(tǒng)205用于向用戶和其它軟件提供高層功能性。該操作系統(tǒng)通常包括BIOS(基本輸入輸出系統(tǒng))。通信軟件210通過外部端口提供經(jīng)由物理通信鏈路與諸如互聯(lián)網(wǎng)的網(wǎng)絡(luò)的通信,其方式是直接調(diào)用操作系統(tǒng)功能性,或間接地繞過操作系統(tǒng)來訪問用于在網(wǎng)絡(luò)上通信的硬件。應(yīng)用編程接口215允許系統(tǒng)用戶,不管是個人還是軟件例程,利用標(biāo)準(zhǔn)相容接口調(diào)用系統(tǒng)功能,而無需關(guān)心特定功能性是如何實現(xiàn)的。萬維網(wǎng)軟件220代表若干可用于向計算機(jī)配備萬維網(wǎng)功能性的標(biāo)準(zhǔn)商業(yè)包中的任何一個。應(yīng)用軟件225代表任意數(shù)目的、設(shè)計為對通過通信端口的數(shù)據(jù)作出反應(yīng)以提供用戶尋求的期望功能性的軟件應(yīng)用。這一層的應(yīng)用可以包括處理可以由萬維網(wǎng)的用戶訪問的數(shù)據(jù)、視頻、圖形、照片或文本所需的應(yīng)用。在優(yōu)選實施例中,(在此所定義的)數(shù)據(jù)傳輸“丟失容限”由運(yùn)行在客戶端系統(tǒng)中的應(yīng)用軟件225控制。但是,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明可以在客戶端106中實施為固件、軟件或任何硬件電路。
為了在網(wǎng)絡(luò)上傳輸數(shù)據(jù),需要具有一組規(guī)則以便正確執(zhí)行傳輸序列的每一個部分。這些規(guī)則中的每一個稱作協(xié)議,并且一組規(guī)則稱作協(xié)議集。在互聯(lián)網(wǎng)和諸如LAN(局域網(wǎng))和WAN(廣域網(wǎng))的各種其他網(wǎng)絡(luò)上傳輸數(shù)據(jù)時所用的最常用協(xié)議集由TCP/IP(傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)協(xié)議集提供。TCP/IP協(xié)議集允許各種不同類型的、運(yùn)行不同操作系統(tǒng)的計算機(jī)相互通信。TCP/IP形成全球互聯(lián)網(wǎng)即真正跨越全球的超過一百萬臺計算機(jī)的廣域網(wǎng)的基礎(chǔ)。除了TCP/IP協(xié)議集之外,還存在很多其他網(wǎng)絡(luò)協(xié)議集,包括IPX/SPX(互聯(lián)網(wǎng)分組交換/順序分組交換)和NetBios。雖然最初是由獨(dú)立研究組開發(fā)的,但是大部分網(wǎng)絡(luò)協(xié)議是公開(非私有)標(biāo)準(zhǔn),其中許多是作為一系列按照數(shù)字順序的RFC(請求注解)論文來公布的。例如,IP協(xié)議是RFC791。RFC論文可在互聯(lián)網(wǎng)上或者各圖書館內(nèi)容易地獲得。
盡管存在區(qū)別,但這些網(wǎng)絡(luò)協(xié)議集的每一個在結(jié)構(gòu)上是類似的,它們都包括一組層,其中每層負(fù)責(zé)通信任務(wù)的不同方面。為簡單起見,下面討論將主要關(guān)于采用TCP/IP協(xié)議時的本發(fā)明使用。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)認(rèn)識到,雖然本發(fā)明的原理是參照TCP/IP協(xié)議描述的,但是本發(fā)明也可以應(yīng)用于各種其他網(wǎng)絡(luò)。
如圖3所示,TCP/IP和類似協(xié)議由4層通信架構(gòu)300采用,該通信架構(gòu)覆蓋服務(wù)器104和客戶端106內(nèi)的軟件架構(gòu)200,并且包括應(yīng)用層310、傳輸層312、網(wǎng)絡(luò)層314和鏈路層316。每層如下負(fù)責(zé)處理不同通信任務(wù)。鏈路層316(也稱作數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層)通常包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機(jī)中的相應(yīng)網(wǎng)絡(luò)接口卡。它們一起處理在物理上與正在使用的網(wǎng)絡(luò)介質(zhì)例如以太網(wǎng)電纜等進(jìn)行接口交互的所有硬件細(xì)節(jié)。網(wǎng)絡(luò)層314(也稱作互聯(lián)網(wǎng)層)處理數(shù)據(jù)分組在網(wǎng)絡(luò)內(nèi)的移動。例如,網(wǎng)絡(luò)層處理在網(wǎng)絡(luò)上傳輸?shù)母鱾€數(shù)據(jù)分組的路由選擇。TCP/IP協(xié)議集中的網(wǎng)絡(luò)層由若干協(xié)議構(gòu)成,包括IP(互聯(lián)網(wǎng)協(xié)議)、ICMP(互聯(lián)網(wǎng)控制消息協(xié)議)和IGMP(互聯(lián)網(wǎng)組管理協(xié)議)。
傳輸層312提供網(wǎng)絡(luò)層314和應(yīng)用層310之間的接口,其幫助兩個主機(jī)之間的數(shù)據(jù)傳輸。在TCP/IP協(xié)議集中存在兩個明顯不同的傳輸協(xié)議TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。它與如下事情有關(guān)將從應(yīng)用傳給它的數(shù)據(jù)劃分為合適大小的用于下面網(wǎng)絡(luò)層的塊、確認(rèn)所接收的分組、設(shè)置超時以確定另一端確認(rèn)被發(fā)送的分組等等。根據(jù)本發(fā)明,當(dāng)采用TCP時,客戶端中的應(yīng)用層設(shè)置由傳輸層來滿足可靠性要求。相反,UDP向應(yīng)用層提供簡單得多的服務(wù)。UDP僅僅從一個主機(jī)向另一個主機(jī)發(fā)送稱為數(shù)據(jù)報的分組,而不提供任何用于保證數(shù)據(jù)被正確傳輸?shù)臋C(jī)制。當(dāng)采用UDP時,可靠性功能性必須由應(yīng)用層執(zhí)行。
應(yīng)用層310處理特定應(yīng)用的細(xì)節(jié)。幾乎每一個實現(xiàn)都提供有很多常用TCP/IP應(yīng)用,包括(1)用于遠(yuǎn)程登錄的Telnet;(2)FTP,文件傳輸協(xié)議;(3)SMTP,用于電子郵件的簡單郵件傳輸協(xié)議;以及(4)SNMP,簡單網(wǎng)絡(luò)管理協(xié)議。
計算機(jī)網(wǎng)絡(luò)已經(jīng)從包括少量計算機(jī)的簡單LAN發(fā)展到包括聯(lián)網(wǎng)計算機(jī)網(wǎng)絡(luò)的WAN。最初的計算機(jī)網(wǎng)絡(luò)是由在獨(dú)立計算機(jī)之間提供通信鏈路是有利的這一認(rèn)識來促成的。在這些原始網(wǎng)絡(luò)中使用的概念推動了今天互聯(lián)網(wǎng)的發(fā)展,該互聯(lián)網(wǎng)包括采用同一協(xié)議集的多個網(wǎng)絡(luò)的網(wǎng)絡(luò)。該互聯(lián)網(wǎng)允許一個網(wǎng)絡(luò)上的計算機(jī)與其它網(wǎng)絡(luò)上的任意一個或多個計算機(jī)通信,從而允許跨越組成所有網(wǎng)絡(luò)的所有計算機(jī)來共享數(shù)據(jù)構(gòu)建互聯(lián)網(wǎng)的最簡單方法是用路由器連接兩個或更多網(wǎng)絡(luò)。典型的路由器包括具有輸入和輸出連接以及專用硬件的專用硬件盒,和/或允許連接很多不同類型的物理網(wǎng)絡(luò)的嵌入式軟件,這些網(wǎng)絡(luò)例如是以太網(wǎng)、令牌環(huán)、點(diǎn)對點(diǎn)鏈路等等。圖4示出包括通過路由器36連接到令牌環(huán)網(wǎng)絡(luò)34的以太網(wǎng)網(wǎng)絡(luò)32的互聯(lián)網(wǎng)。盡管圖4只示出兩個通信中的主機(jī),但在以太網(wǎng)網(wǎng)絡(luò)上的任何主機(jī)都可以與令牌環(huán)網(wǎng)絡(luò)上的任何主機(jī)通信。路由器36包括網(wǎng)絡(luò)層模塊38(在本例中為IP模塊),和用于連接到主機(jī)網(wǎng)絡(luò)的適當(dāng)網(wǎng)絡(luò)驅(qū)動器,即以太網(wǎng)驅(qū)動器40和令牌環(huán)驅(qū)動器42。
如圖4所示,在應(yīng)用層,該網(wǎng)絡(luò)包括FTP客戶端420和FTP服務(wù)器422。大多數(shù)網(wǎng)絡(luò)應(yīng)用設(shè)計為一端是客戶端,而另一端是服務(wù)器。該服務(wù)器向各客戶端提供某種類型的服務(wù),在本例中為訪問服務(wù)器主機(jī)上的文件。每一層都具有一個或多個用于與其同一層的對等體進(jìn)行通信的協(xié)議。這些通信協(xié)議包括應(yīng)用層的FTP協(xié)議444、傳輸層的TCP協(xié)議446、網(wǎng)絡(luò)層的IP協(xié)議448以及鏈路層的以太網(wǎng)協(xié)議450和令牌環(huán)協(xié)議454。常見的是,應(yīng)用層處理用戶進(jìn)程,而較低三層(傳輸層、網(wǎng)絡(luò)層和鏈路層)則在諸如UNIX或Windows的操作系統(tǒng)的內(nèi)核中實現(xiàn)。例如,網(wǎng)絡(luò)接口層的目的是處理通信介質(zhì)(以太網(wǎng)、令牌環(huán)等等)的細(xì)節(jié),而應(yīng)用層的目的是處理一個特定的用戶應(yīng)用(FTP、Telnet等等)。
應(yīng)用層和傳輸層采用端到端協(xié)議(FTP協(xié)議444、TCP協(xié)議446)。網(wǎng)絡(luò)層提供在兩端系統(tǒng)和其間的每一個中間系統(tǒng)上使用的中繼段到中繼段(hop-to-hop)協(xié)議(為簡潔起見這里只示出了一個中間系統(tǒng))。例如,路由器436的IP模塊438采用IP協(xié)議448連接到兩個主機(jī)。還存在特定于連接到路由器的不同類型主機(jī)網(wǎng)絡(luò)的鏈路層協(xié)議,以在鏈路層處理網(wǎng)絡(luò)和路由器之間的通信。因此,以太網(wǎng)協(xié)議450用于處理路由器436中的以太網(wǎng)驅(qū)動器440和以太網(wǎng)網(wǎng)絡(luò)432上的主機(jī)的以太網(wǎng)驅(qū)動器452之間的通信,而令牌環(huán)協(xié)議454用于處理路由器436的令牌環(huán)驅(qū)動器442和令牌環(huán)網(wǎng)絡(luò)434上的主機(jī)的令牌環(huán)驅(qū)動器456之間的通信。
在TCP/IP協(xié)議集中,網(wǎng)絡(luò)層即IP提供不可靠的服務(wù)。網(wǎng)絡(luò)層將數(shù)據(jù)分組從源處移動到目的地,但是它沒有提供用于保證傳送的機(jī)制,或者甚至沒有提供用于能夠判定是否已發(fā)生正確傳輸?shù)臋C(jī)制。TCP提供可靠性服務(wù),以確保數(shù)據(jù)在兩個主機(jī)之間被正確傳輸,該服務(wù)包括丟失檢測和重新傳輸服務(wù)。
路由器具有兩個或更多個網(wǎng)絡(luò)接口層(因為它連接兩個或更多個網(wǎng)絡(luò))。任何具有多接口的系統(tǒng)都稱為是連接多個網(wǎng)絡(luò)的(multi-homed)。主機(jī)也可以是連接多個網(wǎng)絡(luò)的,但除非它特定地將分組從一個接口轉(zhuǎn)發(fā)到另一個接口,否則就不稱為路由器。同樣,路由器無需是只在互聯(lián)網(wǎng)內(nèi)移動分組的專用硬件盒。大多數(shù)TCP/IP實現(xiàn)都允許連接多個網(wǎng)絡(luò)的主機(jī)充當(dāng)路由器的角色,但該主機(jī)需要特定地配置為支持該用途。在這樣的情況下,系統(tǒng)是主機(jī)(當(dāng)正在使用諸如FTP或Telnet的應(yīng)用時)或者路由器(當(dāng)它正在將分組從一個網(wǎng)絡(luò)轉(zhuǎn)發(fā)到另一個網(wǎng)絡(luò)時)。另一種連接網(wǎng)絡(luò)的方式是利用橋接器。橋接器在鏈路層連接網(wǎng)絡(luò),而路由器在網(wǎng)絡(luò)層連接網(wǎng)絡(luò)。橋接器使得多個LAN對高層來說顯得好像是單個LAN一樣。
互聯(lián)網(wǎng)的最強(qiáng)大特性之一是能夠向應(yīng)用隱藏互聯(lián)網(wǎng)物理布局的所有細(xì)節(jié)。這允許應(yīng)用層不在意網(wǎng)絡(luò)的底層結(jié)構(gòu);事實上,應(yīng)用層不能也不會關(guān)心一對網(wǎng)絡(luò)是由單個路由器連接的,還是由連接多個物理上不同網(wǎng)絡(luò)的多個路由器和橋接器連接的。
當(dāng)應(yīng)用利用TCP/IP發(fā)送數(shù)據(jù)時,該數(shù)據(jù)沿著協(xié)議棧逐層向下發(fā)送,直到它作為比特流跨越網(wǎng)絡(luò)發(fā)送為止。如圖5所示,每層都通過將報頭前置于其接收的數(shù)據(jù)中(有時也添加報尾信息)將信息添加到該數(shù)據(jù)中。例如,在應(yīng)用層,將應(yīng)用報頭580前置于用戶數(shù)據(jù)582中以形成應(yīng)用數(shù)據(jù)584。在傳輸層,將傳輸協(xié)議報頭前置于應(yīng)用數(shù)據(jù)中。在圖5的情況下,傳輸層是TCP,因此將TCP報頭586前置于應(yīng)用數(shù)據(jù)584中,由此形成發(fā)送到網(wǎng)絡(luò)層IP的TCP幀588。TCP報頭586包括20個字節(jié)。類似地,在網(wǎng)絡(luò)層,將網(wǎng)絡(luò)層報頭前置于傳輸層數(shù)據(jù)中。在TCP/IP的情況下,將IP報頭590前置于TCP幀588中以形成IP數(shù)據(jù)報592。IP報頭590也包括20個字節(jié)。最后,在鏈路層,將諸如以太網(wǎng)報頭594的介質(zhì)報頭添加到從網(wǎng)絡(luò)層接收的數(shù)據(jù)中以形成數(shù)據(jù)幀。在某些情況下,例如當(dāng)介質(zhì)是以太網(wǎng)時,還將介質(zhì)報尾附加于數(shù)據(jù)的末尾。例如,在圖5中,將以太網(wǎng)報尾96附加于以太網(wǎng)報頭594和IP數(shù)據(jù)報592中以形成以太網(wǎng)幀598。該以太網(wǎng)幀包括對應(yīng)于原始應(yīng)用消息數(shù)據(jù)的跨越網(wǎng)絡(luò)流動的比特流。報頭底部的數(shù)字(14、20、20、4)是以字節(jié)為單位的報頭典型大小,例如,以太網(wǎng)報頭94包括14個字節(jié)等。幀的大小將由用來傳輸數(shù)據(jù)分組的網(wǎng)絡(luò)類型的最大傳輸單元(MTU)限定。例如,以太網(wǎng)網(wǎng)絡(luò)的MTU是1500個字節(jié)。網(wǎng)絡(luò)層自動執(zhí)行片段化(將數(shù)據(jù)報分裂為更小的片段),使得每個片段都小于網(wǎng)絡(luò)的MTU。
當(dāng)客戶端檢測到某些數(shù)據(jù)幀從數(shù)據(jù)傳輸流中丟失時,客戶端將通過在確認(rèn)幀中發(fā)送丟失幀的第一字節(jié)的順序號來請求服務(wù)器重新傳輸丟失幀。如圖6所示,TCP發(fā)送或重試消息610一般包括介質(zhì)報頭612、協(xié)議報頭614、接收順序號字段616、發(fā)送順序號字段618和消息主體620。介質(zhì)報頭612將特定于網(wǎng)絡(luò)類型,例如,以太網(wǎng)報頭用于以太網(wǎng)網(wǎng)絡(luò)等。協(xié)議報頭614將取決于所采用的傳輸和網(wǎng)絡(luò)層協(xié)議,例如TCP/IP、IPX/SPX、Netbios等。接收順序號字段616提供由計算機(jī)可靠接收的最后一個順序號的標(biāo)識符。發(fā)送順序號618對應(yīng)于該消息的相對順序號。消息主體620包含正在源計算機(jī)和目的計算機(jī)之間發(fā)送的應(yīng)用數(shù)據(jù)。TCP確認(rèn)幀622包括介質(zhì)報頭624、協(xié)議報頭626、接收順序號字段628和發(fā)送順序號字段630。這些字段與上述共享相同名稱的字段類似。確認(rèn)幀622由接收計算機(jī)發(fā)送,以確認(rèn)發(fā)送或重試消息的接收。根據(jù)TCP,一接收到表示丟失幀的3個連續(xù)確認(rèn)幀時,服務(wù)器通常就將“快速重新傳輸”從丟失的順序號開始的丟失幀。這種重新傳輸負(fù)面影響了性能,因為服務(wù)器縮小其滑動窗,并減少了其發(fā)送的數(shù)據(jù)量。
根據(jù)本發(fā)明,一種可動態(tài)實施的、由應(yīng)用控制的、準(zhǔn)可靠的TCP擴(kuò)展允許客戶端應(yīng)用動態(tài)設(shè)置TCP內(nèi)的數(shù)據(jù)傳輸可靠性級別,從而將傳輸層編程為樂觀地確認(rèn)不重要的丟失幀。該可靠性要求可以動態(tài)設(shè)置為數(shù)據(jù)傳輸期間數(shù)據(jù)流內(nèi)的特定數(shù)據(jù)幀所需的可靠性級別。該過程避免了不必要的重新傳輸,并允許TCP數(shù)據(jù)流和滑動窗不中斷地前進(jìn),從而相當(dāng)大地提高了網(wǎng)絡(luò)吞吐量。
參考圖7,示出了根據(jù)本發(fā)明優(yōu)選實施例為客戶端應(yīng)用設(shè)置數(shù)據(jù)傳輸丟失容限的過程700的流程圖。過程700從步驟705開始,其中客戶端106中的應(yīng)用310通過調(diào)用協(xié)議棧300發(fā)起與互聯(lián)網(wǎng)108的網(wǎng)絡(luò)連接。在步驟710,客戶端應(yīng)用310為待裝載到接收緩沖區(qū)中的特定數(shù)據(jù)確定數(shù)據(jù)傳輸可靠性要求(即由接收緩沖區(qū)長度(“l(fā)en”)度量的接收者字節(jié)范圍(RBR))。過程轉(zhuǎn)到步驟715,其中能夠利用本發(fā)明的TCP擴(kuò)展的客戶端應(yīng)用310通過對TCP層312的網(wǎng)絡(luò)輸入/輸出系統(tǒng)調(diào)用進(jìn)行系統(tǒng)調(diào)用,從而為當(dāng)前連接或待接收的數(shù)據(jù)幀設(shè)置百分比丟失容限。這在客戶端106中實現(xiàn),其中應(yīng)用310通過應(yīng)用程序員接口(API)215內(nèi)的“接收”(“recv”)命令進(jìn)行系統(tǒng)調(diào)用。根據(jù)本優(yōu)選實施例,UNIX套接字API系統(tǒng)調(diào)用的BSD(Berkeley)版本中使用的“接收”系統(tǒng)調(diào)用的新選項(“l(fā)oss_t”)被設(shè)置為當(dāng)前應(yīng)用310可接受的百分比丟失容限。在此所用的“丟失容限”定義為給定數(shù)據(jù)集中允許丟失但對將使用該給定數(shù)據(jù)集的應(yīng)用來說仍然滿足數(shù)據(jù)需要的最大數(shù)據(jù)百分比或最大數(shù)據(jù)量。百分比丟失容限的取值范圍在0-100內(nèi)。丟失容限值“0”相當(dāng)于使用丟失數(shù)據(jù)容限為0的標(biāo)準(zhǔn)、可靠TCP,而百分比丟失容限100由于從不需要重新傳輸丟失分組而給予TCP類似于UDP的性能。該應(yīng)用想要以給定丟失容限接收的接收緩沖區(qū)長度(“l(fā)en”)或字節(jié)總長度也在“recv”調(diào)用中指定。“l(fā)en”等于接收者字節(jié)范圍(RBR),其是當(dāng)前應(yīng)用愿意以指定丟失容限(系統(tǒng)調(diào)用中的“l(fā)oss_t”)接收的字節(jié)數(shù)。
在本優(yōu)選實施例中提供的“recv”系統(tǒng)調(diào)用的代表性格式如下所示int recv(s,buf,len,flags,loss_t)int s;void *buf;int len,flags,loss_t;其中,s是套接字描述符buf是指向用戶(應(yīng)用)接收緩沖區(qū)的指針len是該接收緩沖區(qū)的長度flags是特殊標(biāo)志,如MSG-00B(發(fā)送或接收帶外(out-of-band)數(shù)據(jù))MSG-PEEK等loss_t是將要用于指定應(yīng)用在接收緩沖區(qū)范圍內(nèi)的百分比丟失容限的新參數(shù)丟失容限也以當(dāng)前應(yīng)用310可以容許在RBR內(nèi)丟失的數(shù)據(jù)的絕對數(shù)量(LOSS_T)表示。在本優(yōu)選實施例中,LOSS_T以千字節(jié)表示,并存儲在可由傳輸層312訪問的客戶端106的存儲器中。LOSS_T直接由應(yīng)用310設(shè)置,或者由TCP層312按照下式計算LOSS_T=loss_t100*(len)]]>[字節(jié)]
在一個優(yōu)選實施例中,該過程將LOSS_T計算為在15千字節(jié)RBR內(nèi)等于loss_t百分比的數(shù)據(jù)字節(jié)數(shù)。
回到圖7,過程700從步驟715進(jìn)入確定塊720,其中將LOSS_T設(shè)置為存儲在如圖9所示的寄存器905中的值,并在如圖9所示的寄存器910中將強(qiáng)行確認(rèn)(F_ACK)(下面描述)設(shè)置為0。然后,該過程轉(zhuǎn)到判定塊725,以判定自從進(jìn)行“recv”系統(tǒng)調(diào)用以來是否已接收RBR內(nèi)的所有字節(jié)。如果判定結(jié)果是肯定的,則該過程轉(zhuǎn)到步驟730,其中傳輸層將其操作切換為常規(guī)TCP,并請求重新傳輸所有丟失分組,直到該應(yīng)用發(fā)出新的接收系統(tǒng)調(diào)用為止。如果判定結(jié)果是否定的,則該過程轉(zhuǎn)到步驟735,其中客戶端繼續(xù)以本優(yōu)選實施例的丟失容限功能性運(yùn)行其傳輸層。此后,該過程返回到步驟725,以判定自從進(jìn)行“recv”系統(tǒng)調(diào)用以來是否已接收RBR內(nèi)的所有字節(jié)。
現(xiàn)在參考圖8,示出了根據(jù)本發(fā)明優(yōu)選實施例的用于實現(xiàn)由應(yīng)用控制的丟失容限TCP功能性的過程的流程圖。根據(jù)過程700中指定的丟失容限,TCP層312在過程800中,根據(jù)在接收字節(jié)范圍內(nèi)是否已超過為應(yīng)用310指定的丟失容限來判定是否觸發(fā)重新傳輸或繼續(xù)向應(yīng)用310傳送失序幀。當(dāng)在服務(wù)器和客戶端之間發(fā)起網(wǎng)絡(luò)連接時,過程800從步驟805開始。
圖9表示客戶端106的存儲器中的寄存器900,其可由傳輸層312訪問,并存儲過程變量LOSS_T和強(qiáng)行確認(rèn)(F_ACK)(下面描述)。在步驟805,過程變量LOSS_T和F_ACK在寄存器900中設(shè)為0。此后,該過程轉(zhuǎn)到步驟810,其中客戶端106在網(wǎng)絡(luò)連接上接收數(shù)據(jù)分組。然后,該過程轉(zhuǎn)到判定塊815,其中判定所接收的數(shù)據(jù)分組是否失序。如果該數(shù)據(jù)分組的順序號為期望的次序,則該過程轉(zhuǎn)到步驟820,其中如果需要,將確認(rèn)幀622往回發(fā)送到服務(wù)器104以確認(rèn)該數(shù)據(jù)分組的接收。此后,過程返回到步驟810,以等待在網(wǎng)絡(luò)連接上接收下一個數(shù)據(jù)分組。
回到判定塊815,如果判定所接收的數(shù)據(jù)分組失序,則數(shù)據(jù)流中的一個或多個進(jìn)行中數(shù)據(jù)幀丟失。在這種情況下,該過程轉(zhuǎn)到判定塊825,其中判定在接收字節(jié)范圍內(nèi)導(dǎo)致強(qiáng)行確認(rèn)(F_ACK)的丟失分組的數(shù)目是否已超過由客戶端應(yīng)用310為RBR設(shè)置的LOSS_T。這通過判定存儲在寄存器910中的F_ACK是否大于或等于存儲在寄存器905中的當(dāng)前RBR的LOSS_T來實現(xiàn)。如前所述,LOSS_T是為了保持當(dāng)前應(yīng)用310的可靠性要求而可以接受的數(shù)據(jù)丟失量。如果該過程具有RBR中數(shù)千字節(jié)的強(qiáng)行確認(rèn)而超過當(dāng)前LOSS_T數(shù),或者如果接收的分組超過RBR,則該過程轉(zhuǎn)到步驟830,其中客戶端106發(fā)送確認(rèn)請求610,以重新傳輸丟失的數(shù)據(jù)分組,確認(rèn)請求610包括客戶端期望重新傳輸?shù)膩G失幀的第一字節(jié)的順序號。通過阻塞TCP流中所有隨后數(shù)據(jù)的傳送,直到丟失的TCP幀被傳輸了為止,客戶端106以常規(guī)TCP方式繼續(xù)運(yùn)行。此后,該過程返回到步驟810,以等待在網(wǎng)絡(luò)連接上接收下一個期待數(shù)據(jù)分組。
回到判定塊825,如果判定在RBR內(nèi)導(dǎo)致強(qiáng)行確認(rèn)的丟失分組的數(shù)目沒有超過LOSS_T,則該過程轉(zhuǎn)到步驟835,其中將寄存器910中的F_ACK增加丟失分組中的丟失字節(jié)數(shù),然后該過程轉(zhuǎn)到步驟840,其中客戶端106強(qiáng)行將表示丟失分組已被客戶端106接收的確認(rèn)幀622(“強(qiáng)行確認(rèn)”)發(fā)送到服務(wù)器。由此,即使客戶端應(yīng)用310沒有接收到丟失的數(shù)據(jù)幀,數(shù)據(jù)流也可以繼續(xù)不中斷地流動,因為應(yīng)用310已接收了RBR中的足夠數(shù)據(jù)來滿足當(dāng)前應(yīng)用的可靠性要求。從步驟835出發(fā),該過程返回到步驟810,其中客戶端106等待在網(wǎng)絡(luò)連接上接收其順序號在導(dǎo)致強(qiáng)行確認(rèn)的丟失分組之后的數(shù)據(jù)分組。
現(xiàn)在可以理解,對于可以容許一定數(shù)量丟失數(shù)據(jù)的應(yīng)用,網(wǎng)絡(luò)客戶端可以指定在當(dāng)前應(yīng)用中可以接受的數(shù)據(jù)丟失容限,以提供準(zhǔn)可靠的TCP功能性。例如,如果應(yīng)用310將loss_t設(shè)置為百分之十,則TCP層312將確認(rèn)(即強(qiáng)行確認(rèn))給定15千字節(jié)(Kbyte)RBR中最大可達(dá)1500字節(jié),即使沒有接收到這些字節(jié)。超過該RBR內(nèi)的指定loss_t百分比的任何丟失字節(jié)將不被樂觀地確認(rèn)為已接收,并且將需要服務(wù)器重新傳輸這些丟失幀。百分之百的loss_t將從不觸發(fā)從服務(wù)器重新傳輸,由此使TCP容許在網(wǎng)絡(luò)上丟失任意數(shù)量的分組。百分之零的loss_t將要求TCP以其嚴(yán)格可靠的操作模式運(yùn)行,從而提供嚴(yán)格可靠的數(shù)據(jù)傳輸,其中每個連續(xù)TCP幀都必須被連續(xù)傳送。
圖10是將過程700和800應(yīng)用于數(shù)據(jù)流的例子。圖10示出11個分組的數(shù)據(jù)流,這些分組具有識別它們的順序號1到13。如點(diǎn)1005所示,應(yīng)用發(fā)出系統(tǒng)調(diào)用“recv(6,buf,15000,flag,10)”。由此,loss_t設(shè)置為10%,并且len設(shè)置為15千字節(jié)。如圖所示,滑動窗1010等于6個分組。分組1、2和3已經(jīng)被TCP層確認(rèn)。由于RBR是15千字節(jié),而每個數(shù)據(jù)分組是1500字節(jié),因此該系統(tǒng)調(diào)用所設(shè)置的10%丟失容限將在數(shù)據(jù)分組1-10的字節(jié)范圍內(nèi)保持有效。對于數(shù)據(jù)分組11及后面的分組,系統(tǒng)將以正常、可靠的TCP運(yùn)行,直到該應(yīng)用通過新的接收系統(tǒng)調(diào)用來指定新的丟失容限為止??梢岳斫猓绻鸕BR內(nèi)10個分組中的一個分組(即10%丟失容限)在發(fā)送者和接收者之間的傳輸中丟失,則接收者將強(qiáng)行確認(rèn)對該數(shù)據(jù)分組的接收。在圖10的例子中,如果接收窗1010(即分組4-9)內(nèi)的分組之一沒有按順序到達(dá),則客戶端還是將強(qiáng)行確認(rèn)對該分組的接收。然后,寄存器910增加1500,這將等于設(shè)置在寄存器905中的1500字節(jié)的丟失容限(根據(jù)系統(tǒng)調(diào)用的10%丟失容限)。此后,如果在第一次強(qiáng)行確認(rèn)之后段4-10中的另一個沒有到達(dá)客戶端,則TCP層將不強(qiáng)行確認(rèn)丟失分組,而是將發(fā)送請求重新傳輸該丟失分組的確認(rèn)。
本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明提供了改善數(shù)據(jù)發(fā)送的顯著優(yōu)點(diǎn)。該過程成功地防止了由于為給定應(yīng)用強(qiáng)制執(zhí)行的不必要可靠性要求而導(dǎo)致的通信延遲。此外,該過程防止了網(wǎng)絡(luò)中的擁塞并避免重新傳輸,從而當(dāng)應(yīng)用可以容忍給定百分比的不可靠數(shù)據(jù)或丟失已發(fā)送數(shù)據(jù)時,允許數(shù)據(jù)流繼續(xù)。此外,可以看到該過程是在客戶端實現(xiàn)的,從而防止了對服務(wù)器端系統(tǒng)進(jìn)行重大和高成本的更改。相反,對客戶端端應(yīng)用的最小修改都可以程序化,以動態(tài)確定給定客戶端應(yīng)用何時將簡單地通過在接收系統(tǒng)調(diào)用中設(shè)置選項來利用丟失容限特性。利用標(biāo)準(zhǔn)TCP,不知道本發(fā)明的丟失容限特性的服務(wù)器端系統(tǒng)和客戶端應(yīng)用可以無縫地與應(yīng)用本發(fā)明的客戶端系統(tǒng)一起運(yùn)行。此外,優(yōu)選實施例的丟失容限特性可以由應(yīng)用動態(tài)控制,從而特定應(yīng)用、或特定數(shù)據(jù)傳輸?shù)倪x擇部分可以利用本發(fā)明的丟失容限特性。
盡管本發(fā)明是參照其優(yōu)選實施例來具體描述的,但本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,在不脫離本發(fā)明的精神和范圍的情況下,可以對其進(jìn)行形式和細(xì)節(jié)的各種修改。例如,本發(fā)明可以利用計算機(jī)程序軟件、固件或硬件的任意組合來實現(xiàn)。作為實施本發(fā)明或構(gòu)造根據(jù)本發(fā)明的設(shè)備的預(yù)備步驟,根據(jù)本發(fā)明的計算機(jī)程序代碼(無論是軟件或固件)一般將存儲在一個或多個機(jī)器可讀存儲介質(zhì)例如固定(硬盤)驅(qū)動器、軟盤、光盤、磁帶、諸如ROM、PROM的半導(dǎo)體存儲器等等中,從而產(chǎn)生根據(jù)本發(fā)明的產(chǎn)品。該包含計算機(jī)程序代碼的產(chǎn)品通過直接從存儲裝置執(zhí)行代碼,通過將代碼從存儲裝置復(fù)制到諸如硬盤、RAM等的另一個存儲裝置中,或者通過傳輸該代碼以進(jìn)行遠(yuǎn)程執(zhí)行來使用。本發(fā)明的方法形式可以通過組合一個或多個包含本發(fā)明代碼的機(jī)器可讀存儲裝置與用來執(zhí)行包含在其中的代碼的適當(dāng)標(biāo)準(zhǔn)計算機(jī)硬件來實施。用于實施本發(fā)明的設(shè)備可以是一個或多個包含或具有對根據(jù)本發(fā)明編碼的計算機(jī)程序的網(wǎng)絡(luò)訪問的計算機(jī)和存儲系統(tǒng)。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng)中用于為該數(shù)據(jù)處理系統(tǒng)的應(yīng)用管理通信鏈路上的數(shù)據(jù)流傳輸?shù)姆椒?,所述方法包括以下步驟為多個在該通信鏈路上接收的數(shù)據(jù)分組中的數(shù)據(jù)分組指定丟失容限,其中丟失容限是對應(yīng)用來說允許未在通信鏈路上接收到的所述多個數(shù)據(jù)分組的最大百分比;接收表示未在通信鏈路上接收到數(shù)據(jù)分組的指示;判定所述多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)是否已超過為該數(shù)據(jù)分組指定的丟失容限;以及如果所述多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)沒有超過為該數(shù)據(jù)分組指定的丟失容限,則發(fā)送表示該數(shù)據(jù)分組已被數(shù)據(jù)處理系統(tǒng)接收到的確認(rèn)。
2.如權(quán)利要求1所述的方法,還包括以下步驟,如果所述多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)超過為該數(shù)據(jù)分組指定的丟失容限,則發(fā)送表示該數(shù)據(jù)分組未被數(shù)據(jù)處理系統(tǒng)接收到的確認(rèn)。
3.如權(quán)利要求1所述的方法,其中,所述多個數(shù)據(jù)分組包括接收緩沖區(qū)的長度。
4.如權(quán)利要求1所述的方法,其中,所述指示是所接收的數(shù)據(jù)分組沒有在順序上接著前面已接收的數(shù)據(jù)分組。
5.如權(quán)利要求1所述的方法,其中,所述指定步驟包括向數(shù)據(jù)處理系統(tǒng)的傳輸層進(jìn)行系統(tǒng)調(diào)用。
6.如權(quán)利要求1所述的方法,其中,接收數(shù)據(jù)分組和發(fā)送確認(rèn)都遵循TCP。
7.如權(quán)利要求1所述的方法,其中,所述數(shù)據(jù)流由服務(wù)器發(fā)送,并且所述確認(rèn)從客戶端發(fā)送到該服務(wù)器。
8.一種為其應(yīng)用管理通信鏈路上的數(shù)據(jù)流傳輸?shù)臄?shù)據(jù)處理系統(tǒng),所述系統(tǒng)包括用于為多個在該通信鏈路上接收的數(shù)據(jù)分組中的數(shù)據(jù)分組指定丟失容限的裝置,其中丟失容限是對應(yīng)用來說允許未在通信鏈路上接收到的所述多個數(shù)據(jù)分組的最大百分比;用于接收表示未在通信鏈路上接收到數(shù)據(jù)分組的指示的裝置;用于判定所述多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)是否已超過為該數(shù)據(jù)分組指定的丟失容限的裝置;以及用于如果所述多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)沒有超過為該數(shù)據(jù)分組指定的丟失容限,則發(fā)送表示該數(shù)據(jù)分組已被數(shù)據(jù)處理系統(tǒng)接收到的確認(rèn)的裝置。
9.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),還包括用于如果所述多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)超過為該數(shù)據(jù)分組指定的丟失容限,則發(fā)送表示該數(shù)據(jù)分組未被數(shù)據(jù)處理系統(tǒng)接收到的確認(rèn)的裝置。
10.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,所述多個數(shù)據(jù)分組包括數(shù)據(jù)流接收緩沖區(qū)的長度。
11.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,所述指示是所接收的數(shù)據(jù)分組沒有在順序上接著前面已接收的數(shù)據(jù)分組。
12.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,所述指定步驟包括向數(shù)據(jù)處理系統(tǒng)的傳輸層進(jìn)行系統(tǒng)調(diào)用。
13.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,接收數(shù)據(jù)分組和發(fā)送確認(rèn)都遵循TCP。
14.如權(quán)利要求8所述的數(shù)據(jù)處理系統(tǒng),其中,所述數(shù)據(jù)流由服務(wù)器發(fā)送,并且所述確認(rèn)從容戶端發(fā)送到該服務(wù)器。
15.一種包括機(jī)器可讀介質(zhì)的產(chǎn)品,該介質(zhì)包含嵌入在其中的程序邏輯,該程序邏輯使得用于為其應(yīng)用管理通信鏈路上的數(shù)據(jù)流傳輸?shù)臄?shù)據(jù)處理系統(tǒng)中的控制電路執(zhí)行以下步驟為多個在該通信鏈路上接收的數(shù)據(jù)分組中的數(shù)據(jù)分組指定丟失容限,其中丟失容限是對應(yīng)用來說允許未在通信鏈路上接收到的所述多個數(shù)據(jù)分組的最大百分比;接收表示未在通信鏈路上接收到數(shù)據(jù)分組的指示;判定所述多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)是否已超過為該數(shù)據(jù)分組指定的丟失容限;以及如果所述多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)沒有超過為該數(shù)據(jù)分組指定的丟失容限,則發(fā)送表示該數(shù)據(jù)分組已被數(shù)據(jù)處理系統(tǒng)接收到的確認(rèn)。
16.如權(quán)利要求15所述的產(chǎn)品,還包括以下步驟,如果所述多個數(shù)據(jù)分組中未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)超過為該數(shù)據(jù)分組指定的丟失容限,則發(fā)送表示該數(shù)據(jù)分組未被數(shù)據(jù)處理系統(tǒng)接收到的確認(rèn)。
17.如權(quán)利要求15所述的產(chǎn)品,其中,所述多個數(shù)據(jù)分組包括接收緩沖區(qū)的長度。
18.如權(quán)利要求15所述的產(chǎn)品,其中,所述指示是所接收的數(shù)據(jù)分組沒有在順序上接著前面已接收的數(shù)據(jù)分組。
19.如權(quán)利要求15所述的產(chǎn)品,其中,所述指定步驟包括向數(shù)據(jù)處理系統(tǒng)的傳輸層進(jìn)行系統(tǒng)調(diào)用。
20.如權(quán)利要求15所述的產(chǎn)品,其中,接收數(shù)據(jù)分組和發(fā)送確認(rèn)都遵循TCP。
21.如權(quán)利要求15所述的產(chǎn)品,其中,所述數(shù)據(jù)流由服務(wù)器發(fā)送,并且所述確認(rèn)從容戶端發(fā)送到該服務(wù)器。
22.一種為其應(yīng)用管理從服務(wù)器在通信鏈路上的數(shù)據(jù)流傳輸?shù)目蛻舳藬?shù)據(jù)處理系統(tǒng),所述系統(tǒng)包括傳輸層,允許該應(yīng)用為在該通信鏈路上接收的數(shù)據(jù)流的數(shù)據(jù)分組指定丟失容限,其中丟失容限是對應(yīng)用來說允許未在通信鏈路上接收到的接收緩沖區(qū)長度的最大百分比,其中如果未在通信鏈路上接收到該數(shù)據(jù)分組,并且如果該接收緩沖區(qū)長度內(nèi)未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)沒有超過為該數(shù)據(jù)分組指定的丟失容限,則該傳輸層向服務(wù)器發(fā)送表示該數(shù)據(jù)分組已被客戶端數(shù)據(jù)處理系統(tǒng)接收到的確認(rèn)。
23.如權(quán)利要求22所述的數(shù)據(jù)處理系統(tǒng),其中,如果該接收緩沖區(qū)長度內(nèi)未在通信鏈路上接收到的數(shù)據(jù)分組數(shù)超過為該數(shù)據(jù)分組指定的丟失容限,則該傳輸層向服務(wù)器發(fā)送請求向所述客戶端數(shù)據(jù)處理系統(tǒng)重新傳輸該數(shù)據(jù)分組的確認(rèn)。
24.如權(quán)利要求22所述的數(shù)據(jù)處理系統(tǒng),其中,所述應(yīng)用通過向傳輸層進(jìn)行系統(tǒng)調(diào)用來向傳輸層指定所述丟失容限。
25.如權(quán)利要求22所述的數(shù)據(jù)處理系統(tǒng),其中,所述傳輸層遵循TCP。
全文摘要
一種可動態(tài)實施的、由應(yīng)用控制的、準(zhǔn)可靠的TCP擴(kuò)展允許客戶端應(yīng)用通過對TCP的網(wǎng)絡(luò)輸入/輸出系統(tǒng)調(diào)用來為數(shù)據(jù)傳輸可靠性動態(tài)設(shè)置百分比丟失容限,從而將傳輸層編程為樂觀地確認(rèn)不重要的丟失幀。該可靠性要求可以在TCP內(nèi)動態(tài)設(shè)置為數(shù)據(jù)傳輸期間數(shù)據(jù)流內(nèi)的特定數(shù)據(jù)幀所需的可靠性級別。根據(jù)該指定的丟失容限,TCP層判定是觸發(fā)重新傳輸還是繼續(xù)傳送失序幀到應(yīng)用。為每個丟失分組發(fā)送強(qiáng)行確認(rèn)幀,直到在當(dāng)前接收緩沖幀內(nèi)導(dǎo)致強(qiáng)行確認(rèn)的丟失分組的數(shù)目超過該丟失容限為止。該過程避免了不必要的重新傳輸,并允許TCP數(shù)據(jù)流和滑動窗不中斷地前進(jìn),從而相當(dāng)大地提高了網(wǎng)絡(luò)吞吐量。
文檔編號H04L29/06GK1581761SQ20041005663
公開日2005年2月16日 申請日期2004年8月13日 優(yōu)先權(quán)日2003年8月14日
發(fā)明者德威普·N·巴納爾吉, 卡維薩·V·M·巴拉塔克, 凱坦·P·潘喬利, 文卡特·文卡特薩布拉 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
莱西市| 瑞丽市| 磴口县| 碌曲县| 定州市| 哈密市| 淮南市| 贡觉县| 布尔津县| 乐都县| 会宁县| 娄烦县| 政和县| 鱼台县| 阳信县| 宁德市| 湟源县| 上虞市| 安阳县| 钟祥市| 永福县| 呈贡县| 深州市| 柘荣县| 哈巴河县| 平南县| 宜良县| 呼图壁县| 高尔夫| 哈巴河县| 百色市| 新源县| 瓮安县| 临澧县| 萨嘎县| 灌云县| 阳山县| 米脂县| 敦化市| 金沙县| 澄江县|