專利名稱:響應(yīng)選擇確認重發(fā)時改進傳輸控制協(xié)議性能的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總的來說涉及數(shù)據(jù)處理網(wǎng)絡(luò)系統(tǒng)中的數(shù)據(jù)傳送,尤其涉及因特網(wǎng)和類似網(wǎng)絡(luò)上數(shù)據(jù)塊的傳送。更具體地說,本發(fā)明涉及重發(fā)期間的改進TCP網(wǎng)絡(luò)通信。
背景技術(shù):
因特網(wǎng)已經(jīng)成為發(fā)送和分發(fā)數(shù)據(jù)(文本、代碼、圖像、音頻、或它們的混合物)和軟件的重要渠道。用戶連接到范圍從14.4Kb/s到大于45Kb/s的性能極其參差不齊的主干網(wǎng)。此外,在因特網(wǎng)和因特網(wǎng)技術(shù)中,傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)已經(jīng)變成普遍實現(xiàn)的標(biāo)準(zhǔn)通信協(xié)議,使客戶機、服務(wù)器和與它們耦合的通信系統(tǒng)之間的廣泛異構(gòu)成為可能。傳輸控制協(xié)議(TCP)是傳輸層協(xié)議,而因特網(wǎng)協(xié)議(IP)是網(wǎng)絡(luò)層協(xié)議。TCP構(gòu)建面向連接的傳輸級服務(wù),以便在兩個IP主機之間提供有保證的、字節(jié)流的順序傳送。應(yīng)用數(shù)據(jù)被發(fā)送到TCP,打碎成按段號定序的段,并且在發(fā)送到IP之前被分組成TCP分組。IP在網(wǎng)絡(luò)級上提供“數(shù)據(jù)報”傳送服務(wù)。數(shù)據(jù)發(fā)送中的可靠性可以受三種事件損害數(shù)據(jù)丟失、數(shù)據(jù)惡化和數(shù)據(jù)的重新排序。
在TCP/IP中數(shù)據(jù)丟失是通過超時機制管理的。TCP維持計時器(重發(fā)計時器)來測量從接收器接收所發(fā)送的段的確認(ACK)時的延遲。當(dāng)ACK在估計時間間隔(重發(fā)超時(RTO))內(nèi)沒有到達時,認為相應(yīng)段丟失,并重發(fā)它。并且,由于TCP傳統(tǒng)上基于分組丟失是網(wǎng)絡(luò)擁塞的指示的假設(shè),因此TCP將通過輸入“緩慢啟動(slow-start)”降低它的發(fā)送速率,從而使它的擁塞窗顯著地縮小到一個段。
TCP通過在段到達接收器的時候?qū)λ鼈冞M行檢驗和來管理數(shù)據(jù)惡化。根據(jù)檢驗和,TCP發(fā)送器對分組數(shù)據(jù)計算檢驗和,并且將這個2-字節(jié)值放在TCP首標(biāo)上。檢驗和算法是TCP首標(biāo)和數(shù)據(jù)中的所有16-位字的二進制反碼和的16-位二進制反碼。接收器對接收數(shù)據(jù)(不包括TCP首標(biāo)中的2-字節(jié)檢驗和字段)計算檢驗和,并且,核實它是否與首標(biāo)中的檢驗和值匹配。檢驗和字段還包括12-字節(jié)偽首標(biāo),該12-字節(jié)偽首標(biāo)包含來自IP首標(biāo)的信息(包括4-字節(jié)“src ip”地址、4-字節(jié)“dest ip”地址、2-字節(jié)有效負載長度和1-字節(jié)協(xié)議字段)。
TCP通過維持排隊輸入分組,直到它們重新按順序排列的重新組裝隊列,管理數(shù)據(jù)的重新排序或段的無序到達。只有當(dāng)這個隊列中的數(shù)據(jù)變得有序時,才將其移入用戶可以看到的用戶接收緩沖器中。當(dāng)接收器在接收到的分組的序號中看到一個“洞”時,接收器為它接收到的每個“無序”分組生成重復(fù)確認(DACK)。在接收到丟失分組之前,序號較高的每個接收數(shù)據(jù)分組被認為是“無序”的,將生成DACK。
考慮到并行鏈路盛行和分組重新排序的其它原因,在TCP網(wǎng)絡(luò)中,分組重新排序是經(jīng)常發(fā)生的事情。例如,在Cisco系統(tǒng)公司提供的Ether-channel上,大量真正適配器匯集在一起形成一個邏輯適配器,從而,當(dāng)在這許多適配器上并行發(fā)送分組時,通常引起分組重新排序。在TCP中,在丟失分組到達之前,在接收器上排隊接在已經(jīng)丟失或重新排序的那一個之后的任何數(shù)據(jù)分組。然后,接收器一起確認所有排隊分組。
由于在發(fā)送器接收到幾個DACK之后,TCP將錯誤地推測網(wǎng)絡(luò)擁塞引起分組丟失,一些TCP實現(xiàn)方案在發(fā)生分組重新排序的情況下采用“快速重發(fā)和恢復(fù)”算法來改進網(wǎng)絡(luò)性能?!翱焖僦匕l(fā)和恢復(fù)”算法一般用于通過避免超時來改進吞吐量,這導(dǎo)致?lián)砣帮@著地縮小到一個段。取代超時,快速重發(fā)也可以響應(yīng)重新排序,將擁塞窗切掉一半。
盡管快速重發(fā)的確對擁塞控制機制引起的吞吐量減少提供一些保護,但許多分組丟失可以對TCP吞吐量產(chǎn)生災(zāi)難性影響。TCP一般是不明確確認不在接收窗邊緣的接收段的累積確認方案。這迫使發(fā)送器等待往返時間去找出每一個丟失分組,或者不必要地重發(fā)已經(jīng)正確接收的段。選擇確認(SACK)是設(shè)計成克服這個問題的TCP機制。SACK允許數(shù)據(jù)接收器將已經(jīng)成功到達的所有段通知發(fā)送器,因此,發(fā)送器只需重發(fā)實際丟失的段。此外,單個SACK讓數(shù)據(jù)發(fā)送器向發(fā)送器報告多個丟失數(shù)據(jù)塊。
雖然SACK在減少不必要重發(fā)方面不有效的,但它的使用造成它自身的效率低下。例如,當(dāng)丟失的最初發(fā)送的分組的尺寸比TCP連接的最大段尺寸(MSS)小得多時(例如,當(dāng)在傳輸層上用于數(shù)據(jù)接合的TCP Nagle算法被應(yīng)用程序關(guān)閉時),并且當(dāng)丟失分組造成的空洞小(即,拉下的分組不相鄰)時,由于TCP段只能包含相鄰數(shù)據(jù),因此將重發(fā)比MSS小的數(shù)據(jù)。因此,在響應(yīng)SACK重發(fā)多個不相鄰分組的例子中,盡管發(fā)送器存在超過MSS的數(shù)據(jù)要重發(fā),但重發(fā)的TCP有效負載將包含小的分組,使MSS的其余部分得不到使用。這迫使發(fā)送器響應(yīng)SACK發(fā)送欠利用有效負載空間的多個IP分組。應(yīng)該認識到,在發(fā)送器和接收器兩者上增加網(wǎng)絡(luò)業(yè)務(wù)和IP/TCP處理將對性能產(chǎn)生負面影響。
這個問題例示在如圖9A和9B所示的例子中。圖9A示出了從發(fā)送器發(fā)送到接收器的一系列相鄰分組A1-A4。在這個示范性系統(tǒng)中,最初發(fā)送的每個分組是4096個字節(jié),但TCP連接的MSS是60K個字節(jié),因此,接收器在單個IP分組中接收到所有4個分組。現(xiàn)在假設(shè),由于該連接中的數(shù)據(jù)丟失,接收器沒有接收到分組A2和A4,并由此而選擇確認了分組A1和A3。發(fā)送器將發(fā)送包含有效負載B1的第1IP分組,有效負載B1是A2的重發(fā)。盡管IP有效負載的MSS是60K個字節(jié),但該分組只包括包含在A2中的4096個字節(jié)相鄰數(shù)據(jù)。然后,發(fā)送器發(fā)送包含4096個字節(jié)的有效負載B2的第2IP分組,有效負載B2是A4的重發(fā)。可以看出,盡管對于每個IP分組,MSS是60K個字節(jié),但響應(yīng)SACK,要求發(fā)送兩個IP分組,重發(fā)8192個字節(jié)。可以看出,當(dāng)響應(yīng)SACK進行重發(fā)時,最好降低這個對吞吐量的負面影響。
發(fā)明內(nèi)容
按照本發(fā)明,公開了重發(fā)數(shù)據(jù)通信中所丟失的分組的改進方法、系統(tǒng)和物品。本發(fā)明的一種優(yōu)選方法包括如下步驟從接收器接收指示未接收到數(shù)據(jù)通信內(nèi)的兩個或更多個分組的確認消息;以及生成重發(fā)消息,以便重發(fā)在該消息所指示的未接收到的數(shù)據(jù)通信內(nèi)的兩個或更多個分組,其中,重發(fā)消息包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo),而兩個或更多個協(xié)議首標(biāo)的每一個與兩個或更多個分組的相應(yīng)一個相聯(lián)系,并且兩個或更多個協(xié)議首標(biāo)是同一協(xié)議。
本發(fā)明接收數(shù)據(jù)通信中所丟失的分組的另一種優(yōu)選方法包括如下步驟從發(fā)送器接收包含以前指示成未接收到的數(shù)據(jù)通信內(nèi)的兩個或更多個分組的重發(fā)消息;確定重發(fā)消息是否包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo),其中,兩個或更多個協(xié)議首標(biāo)的每一個與兩個或更多個分組的相應(yīng)一個相聯(lián)系,并且兩個或更多個協(xié)議首標(biāo)是同一協(xié)議;按照其相應(yīng)協(xié)議首標(biāo)提取兩個或更多個分組的第1分組;并按照其相應(yīng)協(xié)議首標(biāo)提取兩個或更多個分組的第2分組。
本發(fā)明的所有目的、特征和優(yōu)點都可以從如下詳細書面描述中明顯看出。
在如下參照附圖的描述中以優(yōu)選實施例的形式對本發(fā)明加以描述,在附圖中,相同的標(biāo)號代表相同或相似的單元,其中圖1示出了可以實現(xiàn)本發(fā)明優(yōu)選實施例的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò);圖2描繪了像可以用在本發(fā)明的優(yōu)選實施例中那樣的服務(wù)器-客戶機系統(tǒng)的典型軟件結(jié)構(gòu);圖3示出了利用TCP/IP的4-層通信結(jié)構(gòu)的例子;圖4示出了包括通過路由器與令牌環(huán)網(wǎng)絡(luò)連接的以太網(wǎng)的因特網(wǎng)的例子;圖5示出了遍歷TCP/IP協(xié)議棧時數(shù)據(jù)的格式;圖6示出了基于本發(fā)明優(yōu)選實施例的TCP首標(biāo)的格式;圖7A示出了基于本發(fā)明優(yōu)選實施例的TCP選擇確認幀的數(shù)據(jù)結(jié)構(gòu);圖7B示出了基于本發(fā)明優(yōu)選實施例的TCP重發(fā)幀的數(shù)據(jù)結(jié)構(gòu);圖8A示出了按照本發(fā)明優(yōu)選實施例生成重發(fā)幀的過程的流程圖;圖8B示出了按照本發(fā)明優(yōu)選實施例從TCP重發(fā)幀中提取數(shù)據(jù)的過程的流程圖;圖9A示出了從發(fā)送器發(fā)送到接收器的一系列相鄰分組A1-A4;和圖9B示出了發(fā)送器和接收器之間響應(yīng)接收器SACK的現(xiàn)有技術(shù)重發(fā)數(shù)據(jù)流。
優(yōu)選實施例詳述現(xiàn)在參照附圖,尤其參照圖1,描繪可以實現(xiàn)本發(fā)明優(yōu)選實施例的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)。數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)100包括通過諸如因特網(wǎng)108之類的至少一個網(wǎng)絡(luò)與至少一個客戶機系統(tǒng)106耦合的至少一個服務(wù)器系統(tǒng)104。服務(wù)器系統(tǒng)104和客戶機系統(tǒng)106之間的數(shù)據(jù)傳送遵從TCP/IP規(guī)范、以及文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)、或一些類似通信協(xié)議。應(yīng)該認識到,雖然只示出單個服務(wù)器系統(tǒng)104和單個客戶機系統(tǒng)106,但數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)100可以包括通過一條或多條連線和包括因特網(wǎng)在內(nèi)的一個或多個網(wǎng)絡(luò)互聯(lián)的任意個服務(wù)器和客戶機系統(tǒng)(未示出)。為了舉例說明,服務(wù)器系統(tǒng)104和客戶機系統(tǒng)106利用TCP/IP進行通信,但本發(fā)明不局限于此,在可替代的實施例中,也可以應(yīng)用其它適用協(xié)議。
為了在網(wǎng)絡(luò)上傳送數(shù)據(jù),有必要擁有一組規(guī)則,以便使傳送序列的每個部分都得到適當(dāng)執(zhí)行。這些規(guī)則的每一個被稱為協(xié)議,一組規(guī)則被稱為協(xié)議套件。在因特網(wǎng)和諸如LAN(局域網(wǎng))和WAN(廣域網(wǎng))之類的其它各種網(wǎng)絡(luò)上傳送數(shù)據(jù)時使用的一組最常用協(xié)議由TCP/IP(傳輸控制協(xié)議/因特網(wǎng)協(xié)議)協(xié)議套件提供。TCP/IP協(xié)議套件使運行不同操作系統(tǒng)的各種不同類型計算機可以相互通信。TCP/IP形成萬維網(wǎng)的基礎(chǔ),萬維網(wǎng)從字面上解釋就是遍布全球的無數(shù)計算機的廣域網(wǎng)。在TCP/IP協(xié)議套件中,網(wǎng)絡(luò)層(即IP)提供不可靠服務(wù)。它將數(shù)據(jù)分組從源移動到目的地,但是它沒有提供保證傳送的機制,或者甚至不能確定是否進行了適當(dāng)傳送。TCP提供了包括遺失檢測和重發(fā)服務(wù)在內(nèi)、保證在兩個主機之間適當(dāng)發(fā)送數(shù)據(jù)的可靠服務(wù)。
除了TCP/IP協(xié)議套件之外,還有許多其它網(wǎng)絡(luò)協(xié)議套件,包括IPX/SPX(因特網(wǎng)分組交換/順序分組交換)和NetBios。盡管最初由獨立研究組開發(fā)出來,但大多數(shù)網(wǎng)絡(luò)協(xié)議是開放性(非專用)標(biāo)準(zhǔn),其中的許多是作為一系列按數(shù)字排序RFC(征求意見)草案公布的。例如,IP協(xié)議是RFC 791。在因特網(wǎng)上或在各種圖書館中可容易獲得RFC草案。盡管不同,但這些網(wǎng)絡(luò)協(xié)議套件的每一個在結(jié)構(gòu)上是相似的,包括一組層,每一層負責(zé)通信任務(wù)的不同方面。為了簡單起見,下面的討論主要與使用TCP/IP協(xié)議時本發(fā)明的應(yīng)用有關(guān)。但是本領(lǐng)域的普通技術(shù)人員應(yīng)該認識到,盡管主要參照TCP/IP協(xié)議描述本發(fā)明的原理,但本發(fā)明也可應(yīng)用于其它各種網(wǎng)絡(luò)協(xié)議。
流量控制是在接收器和發(fā)送器之間管理處理失配和緩沖容量,以便最佳地利用傳輸媒體提供的寬帶的過程。TCP流量控制機構(gòu)在端站上唯一地起限制TCP端點發(fā)送數(shù)據(jù)的速率的作用。但是,TCP缺乏明確的數(shù)據(jù)速率控制?;玖髁靠刂茩C構(gòu)是疊加在最后明確確認字節(jié)之外的字節(jié)范圍上的“滑動窗”。滑動窗限制最近從服務(wù)器發(fā)送的字節(jié)與還沒有從客戶機接收到接收確認的最早字節(jié)之間的順序字節(jié)的最大個數(shù)。這個滑動操作限制TCP端點可以發(fā)出的未確認可發(fā)送數(shù)據(jù)的數(shù)量。接收主機在連接建立階段,將它與在任何給定時刻可能未完成(未確認)的“最大”分組數(shù)有關(guān)的緩沖容量通知發(fā)送主機。這就是接收或滑動窗尺寸rwnd。發(fā)送器維持其當(dāng)前尺寸wnd是可以不等待確認(ACK)地將多少分組注入網(wǎng)絡(luò)中的估計的發(fā)送窗。wnd的上限是rwnd。
當(dāng)超過滑動窗極限時,各種算法自動地重發(fā)分組和緩慢地重新啟動數(shù)據(jù)發(fā)送。因此,如果服務(wù)器和客戶機之間的鏈路在發(fā)送數(shù)據(jù)集合的中途斷開,服務(wù)器將在客戶機確認的最后分組的一個滑動窗內(nèi)停止發(fā)送分組。這種滑動窗的使用固有地限制了通過網(wǎng)絡(luò)傳送數(shù)據(jù)的帶寬。
圖2描繪了像可以用在本發(fā)明的優(yōu)選實施例中那樣的服務(wù)器-客戶機系統(tǒng)的典型軟件結(jié)構(gòu)。服務(wù)器104和客戶機106每一個都由軟件結(jié)構(gòu)200構(gòu)成。在最低級上,操作系統(tǒng)205用于將高級功能提供給用戶和其它軟件。這樣的操作系統(tǒng)通常包括BIOS(基本輸入輸出系統(tǒng))。通信軟件210通過直接調(diào)用操作系統(tǒng)功能或間接地,繞過操作系統(tǒng)訪問在網(wǎng)絡(luò)上通信的硬件,通過物理通信鏈路提供通過外部端口到諸如因特網(wǎng)之類的網(wǎng)絡(luò)的通信。應(yīng)用編程接口215使系統(tǒng)(無論是單獨的還是軟件例程)的用戶無需關(guān)心特定功能是如何實現(xiàn)的,利用符合標(biāo)準(zhǔn)接口就可以調(diào)用系統(tǒng)能力。因特網(wǎng)軟件220代表適合給計算機裝上因特網(wǎng)功能的幾種標(biāo)準(zhǔn)商業(yè)軟件包225的任何一種。應(yīng)用軟件225代表設(shè)計成通過通信端口影響數(shù)據(jù)以提供用戶尋找的所需功能的任何數(shù)量的軟件應(yīng)用程序。在這個級上的應(yīng)用程序可以包括管理可以供因特網(wǎng)的用戶訪問的數(shù)據(jù)、視頻、圖形、照片或文本的那些應(yīng)用程序。
如圖3所示,TCP/IP和類似協(xié)議通過4-層通信結(jié)構(gòu)用于包括應(yīng)用層310、傳輸層312、網(wǎng)絡(luò)層314、鏈路層316和物理層318的網(wǎng)絡(luò)。每層按如下負責(zé)管理各種通信任務(wù)。
物理層318一般將數(shù)據(jù)變換成在網(wǎng)絡(luò)中的各種物理設(shè)備之間傳送的位。在物理層中采用的協(xié)議的例子可以包括(但不局限于這些)來自網(wǎng)絡(luò)接口卡(譬如,以太網(wǎng)卡、令牌環(huán)卡、無線網(wǎng)絡(luò)卡等)的協(xié)議。電氣和電子工程師學(xué)會(IEEE)已經(jīng)公布了可以應(yīng)用在物理層中的各種協(xié)議,像IEEE 802.3標(biāo)準(zhǔn)(以太網(wǎng))、IEEE 802.5標(biāo)準(zhǔn)(令牌環(huán))和IEEE 802.11標(biāo)準(zhǔn)(無線以太網(wǎng))那樣的協(xié)議。
鏈路層316一般管理在網(wǎng)絡(luò)上傳送的數(shù)據(jù)。鏈路層316(也稱為數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層)通常包括設(shè)備驅(qū)動器和可以包括像例如媒體訪問控制(MAC)那樣的協(xié)議。物理層和鏈路層一起管理與正在使用的網(wǎng)絡(luò)媒體物理交接的硬件細節(jié)。
網(wǎng)絡(luò)層314(也稱為因特網(wǎng)層)管理數(shù)據(jù)分組在網(wǎng)絡(luò)周圍的移動。例如,網(wǎng)絡(luò)層管理在網(wǎng)絡(luò)上傳送的各種數(shù)據(jù)分組的路由。TCP/IP套件中的網(wǎng)絡(luò)層由包括IP(因特網(wǎng)協(xié)議)、ICMP(因特網(wǎng)控制消息協(xié)議)和IGMP(因特網(wǎng)組管理協(xié)議)的幾個協(xié)議組成。
傳輸層312提供有助于兩個主計算機之間的數(shù)據(jù)傳送的網(wǎng)絡(luò)層314和應(yīng)用層310之間的接口。傳輸層關(guān)心諸如將從應(yīng)用層傳遞給它的數(shù)據(jù)劃分成尺寸適合下面網(wǎng)絡(luò)層的塊,確認接收到的分組,將超時設(shè)置成使某個其它端點確認發(fā)送的分組等的事情。在TCP/IP協(xié)議套件中,存在兩種截然不同傳輸協(xié)議TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。TCP提供包括遺失檢測和重發(fā)服務(wù)在內(nèi)、保證在兩個主機之間適當(dāng)發(fā)送數(shù)據(jù)的可靠服務(wù)。相反,UDP不提供保證適當(dāng)傳送數(shù)據(jù)的任何機制,只將稱為數(shù)據(jù)報的數(shù)據(jù)分組從一個主機發(fā)送到另一個主機向應(yīng)用層提供簡單得多的服務(wù)。當(dāng)使用UDP時,應(yīng)用層必須執(zhí)行可靠功能。
應(yīng)用層310管理特定應(yīng)用程序的細節(jié)。存在許多幾乎每種實現(xiàn)都提供的公用TCP/IP應(yīng)用程序,包括(1)用于遠程登錄的Telnet;(2)FTP(文件傳輸協(xié)議);(3)用于電子郵件的SMTP(簡單郵件傳輸協(xié)議);(4)SNMP(簡單網(wǎng)絡(luò)管理協(xié)議);和(5)郵局協(xié)議v3(POP3)。
諸如因特網(wǎng)之類的網(wǎng)絡(luò)通過路由器互連,每一個路由器將兩個或更多個網(wǎng)絡(luò)連接在一起。典型路由器包括帶有輸入和輸出連線的專用硬件箱和使諸如以太網(wǎng)、令牌環(huán)、點到點鏈路等不同類型物理網(wǎng)絡(luò)得到連接的專用硬件和/或內(nèi)置軟件。圖4示出了包括通過路由器436與令牌環(huán)網(wǎng)絡(luò)434連接的以太網(wǎng)432的因特網(wǎng)400的例子。盡管圖4只示出兩個主機在通信,但以太網(wǎng)上的任何主機都可以與上面的任何主機通信,或與令牌環(huán)網(wǎng)絡(luò)上的任何主機通信,反之亦然。
如圖4所示,路由器436包括網(wǎng)絡(luò)層模塊438(在這種情況下,為IP模塊)和適合與主網(wǎng)絡(luò)連接的網(wǎng)絡(luò)驅(qū)動器,即,以太網(wǎng)驅(qū)動器440和令牌環(huán)驅(qū)動器442。在應(yīng)用層上,網(wǎng)絡(luò)包括FTP客戶機420和FTP服務(wù)器422;在傳輸層上,網(wǎng)絡(luò)包括TCP客戶機424和TCP服務(wù)器426;和在網(wǎng)絡(luò)層上,網(wǎng)絡(luò)包括IP客戶機428和IP服務(wù)器430。大多數(shù)網(wǎng)絡(luò)應(yīng)用程序被設(shè)計成一端是客戶機和另一端是服務(wù)器。服務(wù)器向各種客戶機提供一些類型的服務(wù),在這種情況下,訪問服務(wù)器主機上的文件。每層擁有在同一層上與其對等體通信的一種或多種協(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)用層通常管理用戶處理,而較低的三個層(傳輸、網(wǎng)絡(luò)和鏈路)在操作系統(tǒng),譬如,UNIX或Windows操作系統(tǒng)的內(nèi)核中實現(xiàn)。例如,網(wǎng)絡(luò)接口層的用途是管理通信媒體(以太網(wǎng)、令牌環(huán)等)的細節(jié),而應(yīng)用層的用途是管理一個特定用戶應(yīng)用程序(FTP、Telnet等)。
應(yīng)用層和傳輸層使用端到端協(xié)議(FTP協(xié)議444、TCP協(xié)議446)。網(wǎng)絡(luò)層提供用在兩個端系統(tǒng)和兩者之間的每個中間系統(tǒng)(為了簡潔起見,這里只示出一個中間系統(tǒng))中的段到段協(xié)議。例如,路由器436的IP模塊438通過IP協(xié)議448與兩個主機連接。還存在專用于與路由器連接的各種類型網(wǎng)絡(luò)以管理網(wǎng)絡(luò)和鏈路層上的路由器之間的通信的鏈路層協(xié)議。因此,以太網(wǎng)協(xié)議450用于管理路由器436中的以太網(wǎng)驅(qū)動器440和以太網(wǎng)432上的主機的以太網(wǎng)驅(qū)動器452之間的通信,而令牌環(huán)協(xié)議454用于管理路由器436的令牌環(huán)驅(qū)動器442和令牌環(huán)網(wǎng)絡(luò)434上的主機的令牌環(huán)驅(qū)動器456之間的通信。
當(dāng)應(yīng)用程序利用TCP/IP發(fā)送數(shù)據(jù)時,通過每一層將數(shù)據(jù)向下發(fā)送到協(xié)議棧,直到穿過網(wǎng)絡(luò)作為位流發(fā)出。如圖5所示,每一層通過將首標(biāo)附在它接收的數(shù)據(jù)的前面(有時將尾標(biāo)信息加入它接收的數(shù)據(jù)中),將信息加入數(shù)據(jù)中。例如,在應(yīng)用層上,將應(yīng)用首標(biāo)580附在用戶數(shù)據(jù)582的前面,形成應(yīng)用數(shù)據(jù)584。在傳輸層上將傳輸協(xié)議首標(biāo)附在應(yīng)用數(shù)據(jù)的前面。在圖5的情況中,傳輸層是TCP,因此,將TCP首標(biāo)586附在應(yīng)用數(shù)據(jù)的前面,從而形成發(fā)送到網(wǎng)絡(luò)層IP的TCP幀588。TCP首標(biāo)586包括20個字節(jié)。類似地,在網(wǎng)絡(luò)層上,將網(wǎng)絡(luò)層首標(biāo)附在傳輸層首標(biāo)的前面。在TCP/IP的情況中,將IP首標(biāo)590附在TCP幀588的前面,形成IP數(shù)據(jù)報592。IP首標(biāo)590也包括20個字節(jié)。最后,在鏈路層上,將諸如以太網(wǎng)首標(biāo)594之類的媒體首標(biāo)加入從網(wǎng)絡(luò)層接收的數(shù)據(jù)中,形成數(shù)據(jù)幀。在一些例子中,譬如,當(dāng)媒體是以太網(wǎng)時,還將媒體尾標(biāo)附在數(shù)據(jù)的末端。例如,在圖5中,將以太網(wǎng)尾標(biāo)96附在以太網(wǎng)首標(biāo)594和IP數(shù)據(jù)報592上,形成以太網(wǎng)幀598。以太網(wǎng)幀包括與原始應(yīng)用消息數(shù)據(jù)相對應(yīng)的流過網(wǎng)絡(luò)的位流。在首標(biāo)下面的數(shù)字(14,20,20,4)是首標(biāo)以字節(jié)為單位的典型尺寸,例如,以太網(wǎng)首標(biāo)94包括14個字節(jié)等。幀的尺寸受用于傳送數(shù)據(jù)分組的網(wǎng)絡(luò)類型的最大傳輸單元(MTU)限制。例如,以太網(wǎng)的MTU是1500個字節(jié)。網(wǎng)絡(luò)層自動進行碎化(將數(shù)據(jù)報打碎成較小片段),以便每個碎片小于網(wǎng)絡(luò)的MTU。
TCP首標(biāo)的格式示出在圖6中。可以看出,TCP分組600由32-位字構(gòu)成,并且包括20字節(jié)(5-字)首標(biāo)。TCP首標(biāo)605的基本布局包括“源端口號”-源(和目的地)端口號用于將數(shù)據(jù)流多路分用到應(yīng)用程序。在兩個主機之前完全有可能存在多個并發(fā)(simultaneous)TCP數(shù)據(jù)流。TCP數(shù)據(jù)流由4個數(shù)字的一個組唯一地標(biāo)識。這些數(shù)字是2個主機地址和2個端口號。源端口號是在對分組的任何回答中用作目的地的一個號碼。
“目的地端口號”-這是遠程系統(tǒng)上的“目標(biāo)”端口號。
“序號”-這個32位數(shù)字標(biāo)識分組中的數(shù)據(jù)的第1字節(jié)。
“確認號”-這個32位數(shù)字是發(fā)送器主機預(yù)計從遠程主機接收的下一個字節(jié)的字節(jié)號。遠程主機可以推測已經(jīng)安全地接收到直到這個數(shù)字減1的所有字節(jié),并可以舍棄遠程主機的本地副本。
“首標(biāo)長度”-這個4-位字段規(guī)定32位字中的首標(biāo)長度。顯然,最大值是為10個(40個字節(jié))選項準(zhǔn)備的15個字(60個字節(jié))。
“標(biāo)志位”-這個6個位的組標(biāo)識協(xié)議中的各種特殊狀態(tài)??梢酝瑫r設(shè)置幾個位。
“窗口尺寸”-這是從適合存儲未確認數(shù)據(jù)的接收器主機擁有的空間量轉(zhuǎn)換而來的。單位是字節(jié),除非使用窗口比例因子選項。最大值是65535。
“檢驗和”-它覆蓋首標(biāo)和數(shù)據(jù)兩者。通過將偽首標(biāo)附在TCP分組上計算出來,這個TCP分組由三個32-位字組成,每個32-位字包含源和目的地IP地址、設(shè)置成0的一個字節(jié)、設(shè)置成6的一個字節(jié)(IP數(shù)據(jù)報首標(biāo)中TCP的協(xié)議號)和分組長度(以“字”為單位)。
“緊急指示符”-這是TCP機構(gòu)發(fā)送趕上正常數(shù)據(jù)流的緊急數(shù)據(jù)的部分。
“選項”607-存在大量定義在各種RFC中的選項。最有用的是最大段尺寸(MSS)規(guī)定設(shè)施。按照優(yōu)選實施例,選項607可以包含如下說明的多個TCP有效負載選項608。
圖7A示出了TCP選擇確認的分組格式。在RFC 2018中詳細描述了TCP選擇確認選項,特此全文引用,以供參考。TCP選擇確認幀722包括媒體首標(biāo)724、協(xié)議首標(biāo)726、接收序號字段728和發(fā)送序號字段730。媒體首標(biāo)724屬于特定類型的網(wǎng)絡(luò),例如,以太網(wǎng)的以太網(wǎng)首標(biāo)等。協(xié)議首標(biāo)726依賴于諸如TCP/IP、IPX/SPX、Netbios等使用的傳輸和網(wǎng)絡(luò)層協(xié)議。接收序號字段728向計算機可靠接收的最后序號提供標(biāo)識符。發(fā)送序號字段730對應(yīng)于消息的相對順序號。
選項字段732指示已經(jīng)選擇了SACK選項。字段734指示被選擇確認的第1塊的左沿,而字段736指示被選擇確認的第1塊的右沿。字段738指示被選擇確認的第n塊的左沿,而字段740指示被選擇確認的第n塊的右沿,其中,“n”可以是任意整數(shù)。在典型實施例中,選擇確認只選擇確認多達三個塊的分組。
當(dāng)客戶機從數(shù)據(jù)發(fā)送流中檢測到某些數(shù)據(jù)分組丟失了時,客戶機通過發(fā)送選擇確認722請求服務(wù)器重發(fā)一個或多個丟失分組。作出響應(yīng),服務(wù)器像在圖7B中看到的那樣,在TCP重發(fā)幀744中重發(fā)丟失分組。TCP重發(fā)幀744包括如下大量字段。媒體首標(biāo)746適合于特定網(wǎng)絡(luò),例如,以太網(wǎng)的以太網(wǎng)首標(biāo)。字段746中的協(xié)議首標(biāo)#1是包含在字段750中的有效負載#1中的一組相鄰數(shù)據(jù)的TCP首標(biāo)。字段752中的協(xié)議首標(biāo)#2是包含在字段754中的有效負載#2中的一組相鄰數(shù)據(jù)的TCP首標(biāo)。TCP重發(fā)幀744可以包含任意個如字段756中的協(xié)議首標(biāo)#n和字段758中的有效負載#n所指的另外協(xié)議首標(biāo)和有效負載對。協(xié)議首標(biāo)748、752和756依賴于諸如TCP/IP、IPX/SPX、Netbios等使用的傳輸和網(wǎng)絡(luò)層協(xié)議。
協(xié)議首標(biāo)748、752和756每一個中的TCP選項607(圖6)包含相對于TCP重發(fā)幀744內(nèi)的下一個段首標(biāo)的字節(jié)偏移。因此,接收器通過從幀內(nèi)的下一個TCP首標(biāo)的偏移減去當(dāng)前給定協(xié)議首標(biāo)的偏移可以計算出幀內(nèi)每個TCP段的長度。作為TCP發(fā)送或重試幀的標(biāo)準(zhǔn),媒體首標(biāo)746中的長度字段通過對協(xié)議首標(biāo)#1指定偏移只標(biāo)識第1TCP段。這樣,接收器將按照字段748中的協(xié)議首標(biāo)#1檢索字段750中的有效負載#1。在TCP重發(fā)幀中未識別出攜帶多個段的優(yōu)選實施例的多個TCP有效負載選項的接收器將把幀當(dāng)作包含單個段來處理,完全不考慮包含在幀中的隨后TCP段。這使本發(fā)明可以與不支持這種改進的接收器互操作。對于那些支持這種特征的接收器,為指示相對于幀中的下一個協(xié)議首標(biāo)的偏移的選項607讀取TCP分組600。
按照優(yōu)選實施例,支持該特征的接收器檢索有效負載#1,然后,檢驗協(xié)議首標(biāo)#1中的選項607的多個TCP有效負載選項608。協(xié)議首標(biāo)#1中的多個TCP有效負載選項608包含相對于字段752中的協(xié)議首標(biāo)#2的偏移。然后,接收器按照字段752中的協(xié)議首標(biāo)#2提取字段754中的有效負載#2。然后,接收器檢驗協(xié)議首標(biāo)#2的多個TCP有效負載選項608,以提取相對于下一個協(xié)議首標(biāo)的偏移。接收器繼續(xù)這個過程,直到它按照字段756中的協(xié)議首標(biāo)#n檢索字段758中的有效負載#n為止。由于字段756中的協(xié)議首標(biāo)“n”是最后有效負載,它不包含多個TCP有效負載選項608。這向接收器指示已經(jīng)接收到整個TCP重發(fā)幀744。
現(xiàn)在參照圖8A,圖8A示出了按照本發(fā)明優(yōu)選實施例生成重發(fā)幀的過程的流程圖。過程800從服務(wù)器104接收到選擇確認(SACK)開始(步驟802)。然后,服務(wù)器104確定SAC沒有確認發(fā)送分組的哪個分組和在序列中丟失分組是否是不相鄰的(步驟804)。如果丟失分組是相鄰的,則TCP層426(圖4)生成包含相鄰分組的單個TCP首標(biāo)和TCP段的重發(fā)幀(步驟807)。然后,將幀傳遞到IP層430(圖4),分組成IP分組,此后,在網(wǎng)絡(luò)108上將其發(fā)送到客戶機106(步驟808)。此后,在步驟810中結(jié)束該過程。
返回到過程800的判定塊804,如果接收的SACK指示2個或更多個不相鄰分組從發(fā)送流中丟失,服務(wù)器104在TCP層426上生成包含接收SACK傳送的丟失不相鄰分組的重發(fā)幀744(步驟806)。生成的重發(fā)幀包含發(fā)送的每個分組的TCP首標(biāo),其中,每個TCP首標(biāo)包含規(guī)定相對于幀中的下一個順序TCP首標(biāo)的偏移的多個TCP有效負載選項。此后,TCP層426將TCP分組傳送到IP層430,分組成IP分組,并在數(shù)據(jù)鏈路層和物理層上經(jīng)過適當(dāng)處理之后,在網(wǎng)絡(luò)108上發(fā)送它(步驟808)。此后,在步驟810中結(jié)束該過程。
現(xiàn)在參照圖8B,圖8B示出了按照本發(fā)明的優(yōu)選實施例從TCP重發(fā)幀中提取數(shù)據(jù)的過程的流程圖。該過程從容戶機106接收到重發(fā)幀開始(步驟812)。在經(jīng)過以太網(wǎng)驅(qū)動器452適當(dāng)處理和IP層428剝離了IP首標(biāo)之后,TCP層422讀取接收重發(fā)幀內(nèi)的第1TCP首標(biāo)(步驟814),并且根據(jù)第1TCP首標(biāo)中的信息提取第1有效負載(步驟816)。此后,客戶機106確定第1協(xié)議首標(biāo)是否設(shè)有多個有效負載選項(步驟818)。如果不是,則在步驟828中結(jié)束該過程。如果是,則讀取存儲在多個有效負載選項中的偏移,以確定重發(fā)幀中的下一個首標(biāo)的字節(jié)位置(步驟820)??蛻魴C106根據(jù)這個偏移地址讀取下一個首標(biāo)(步驟822)和根據(jù)讀取的首標(biāo)提取重發(fā)幀中的下一個有效負載(步驟824)。然后,客戶機106確定在步驟822中讀取的首標(biāo)是否包含多個有效負載選項(步驟826)。如果不是,則在步驟828中結(jié)束該過程,如果是,則該過程返回到步驟820,讀取規(guī)定重發(fā)幀中的下一個首標(biāo)的字節(jié)位置的多個有效負載選項中的偏移。
現(xiàn)在可以認識到,優(yōu)選實施例給出的多個TCP有效負載重發(fā)幀的使用提供了大量重要優(yōu)點。首先,通過允許單個重發(fā)幀在單個幀中重發(fā)多達MSS,而不是發(fā)送多個幀來發(fā)送不相鄰分組,顯著減少了網(wǎng)絡(luò)中分組的個數(shù)。舉例來說,代表大約60K字節(jié)的一個IP分組的單個TCP重發(fā)幀可以取代如圖9B所示,在現(xiàn)有技術(shù)中所需的近似4K字節(jié)的多達15個分組。正如進一步認識到的那樣,通過允許對正在下載的許多TCP段只進行一次處理,致使路由器進行的IP分組管理和接收系統(tǒng)在IP和TCP層上進行的分組處理大幅度減少?;旧?,基于4-元組的IP級處理和對連接或套接字的TCP級查找只進行一次,而不是上面現(xiàn)有技術(shù)例子中的15次。
雖然通過參照優(yōu)選實施例已經(jīng)具體顯示和描述了本發(fā)明,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式和詳細上作各種改變,而不偏離本發(fā)明的精神和范圍。例如,本發(fā)明可以利用計算機編程軟件、固件和硬件的任意組合來實現(xiàn)。作為實施本發(fā)明或根據(jù)本發(fā)明構(gòu)建設(shè)備的預(yù)備步驟,根據(jù)本發(fā)明的計算機編程代碼(無論是軟件還是固件)通常存儲在諸如固定(硬)驅(qū)動器、軟盤、光盤、磁帶之類的一種或多種機器可讀存儲媒體、諸如ROM(只讀存儲器)、PROM(可編程只讀存儲器)之類的半導(dǎo)體存儲器等中,從而構(gòu)成按照本發(fā)明的制品。包含計算機編程代碼的制品通過執(zhí)行直接來自存儲設(shè)備的代碼,通過將代碼從存儲設(shè)備復(fù)制到諸如硬盤、RAM(隨機存取存儲器)等的另一個存儲設(shè)備中,或通過發(fā)送代碼以便遠程執(zhí)行它來使用。實施本發(fā)明的方法可以通過組合包含代碼的一個或多個機器可讀存儲設(shè)備和執(zhí)行代碼適當(dāng)標(biāo)準(zhǔn)計算機硬件得出。實施本發(fā)明的設(shè)備可以是包含或含有訪問按照本發(fā)明編碼的計算機程序的網(wǎng)絡(luò)的一個或多個計算機和存儲系統(tǒng)。
權(quán)利要求
1.一種重發(fā)數(shù)據(jù)通信中所丟失的分組的方法,該方法包括如下步驟從接收器接收指示未接收到數(shù)據(jù)通信內(nèi)的兩個或更多個分組的確認消息;和生成重發(fā)消息,以便重發(fā)在該消息所指示的未接收到的數(shù)據(jù)通信內(nèi)的兩個或更多個分組,其中,重發(fā)消息包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo),而兩個或更多個協(xié)議首標(biāo)的每一個與兩個或更多個分組的相應(yīng)一個相聯(lián)系,并且兩個或更多個協(xié)議首標(biāo)是同一協(xié)議。
2.根據(jù)權(quán)利要求1所述的方法,其中,兩個或更多個分組在數(shù)據(jù)通信內(nèi)的序列中是不相鄰的。
3.根據(jù)權(quán)利要求1所述的方法,其中,確認消息是選擇確認。
4.根據(jù)權(quán)利要求1所述的方法,其中,數(shù)據(jù)通信遵從TCP。
5.根據(jù)權(quán)利要求1所述的方法,其中,重發(fā)消息包含指示包含多個TCP有效負載的選項。
6.根據(jù)權(quán)利要求1所述的方法,其中,兩個或更多個協(xié)議首標(biāo)的至少一個包含指示重發(fā)消息中兩個或更多個協(xié)議首標(biāo)的另一個的位置的數(shù)字。
7.據(jù)權(quán)利要求1所述的方法,其中,兩個或更多個協(xié)議首標(biāo)是傳輸層首標(biāo)。
8.一種重發(fā)數(shù)據(jù)通信中所丟失的分組的系統(tǒng),該系統(tǒng)包括從接收器接收指示未接收到數(shù)據(jù)通信內(nèi)的兩個或更多個分組的確認消息的裝置;和生成重發(fā)消息,以便重發(fā)在該消息所指示的未接收到的數(shù)據(jù)通信內(nèi)的兩個或更多個分組的裝置,其中,重發(fā)消息包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo),而兩個或更多個協(xié)議首標(biāo)的每一個與兩個或更多個分組的相應(yīng)一個相聯(lián)系,并且兩個或更多個協(xié)議首標(biāo)是同一協(xié)議。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,兩個或更多個分組在數(shù)據(jù)通信內(nèi)的序列中是不相鄰的。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,確認消息是選擇確認。
11.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,數(shù)據(jù)通信遵從TCP。
12.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,重發(fā)消息包含指示包含多個TCP有效負載的選項。
13.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,兩個或更多個協(xié)議首標(biāo)的至少一個包含指示重發(fā)消息中兩個或更多個協(xié)議首標(biāo)的另一個的位置的數(shù)字。
14.據(jù)權(quán)利要求8所述的系統(tǒng),其中,兩個或更多個協(xié)議首標(biāo)是傳輸層首標(biāo)。
15.一種包括機器可讀媒體的制品,該機器可讀媒體包括為了重發(fā)數(shù)據(jù)通信中的丟失分組而嵌入其中,使數(shù)據(jù)處理系統(tǒng)中的控制電路執(zhí)行如下步驟的程序邏輯從接收器接收指示未接收到數(shù)據(jù)通信內(nèi)的兩個或更多個分組的確認消息;和生成重發(fā)消息,以便重發(fā)在該消息所指示的未接收到的數(shù)據(jù)通信內(nèi)的兩個或更多個分組,其中,重發(fā)消息包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo),而兩個或更多個協(xié)議首標(biāo)的每一個與兩個或更多個分組的相應(yīng)一個相聯(lián)系,并且兩個或更多個協(xié)議首標(biāo)是同一協(xié)議。
16.根據(jù)權(quán)利要求15所述的制品,其中,兩個或更多個分組在數(shù)據(jù)通信內(nèi)的序列中是不相鄰的。
17.根據(jù)權(quán)利要求15所述的制品,其中,確認消息是選擇確認。
18.根據(jù)權(quán)利要求15所述的制品,其中,數(shù)據(jù)通信遵從TCP。
19.根據(jù)權(quán)利要求15所述的制品,其中,重發(fā)消息包含指示包含多個TCP有效負載的選項。
20.根據(jù)權(quán)利要求15所述的制品,其中,兩個或更多個協(xié)議首標(biāo)的至少一個包含指示重發(fā)消息中兩個或更多個協(xié)議首標(biāo)的另一個的位置的數(shù)字。
21.據(jù)權(quán)利要求15所述的制品,其中,兩個或更多個協(xié)議首標(biāo)是傳輸層首標(biāo)。
22.一種接收數(shù)據(jù)通信中所丟失的分組的方法,該方法包括如下步驟從發(fā)送器接收包含以前指示成未接收到的數(shù)據(jù)通信內(nèi)的兩個或更多個分組的重發(fā)消息;確定重發(fā)消息是否包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo),其中,兩個或更多個協(xié)議首標(biāo)的每一個與兩個或更多個分組的相應(yīng)一個相聯(lián)系,并且兩個或更多個協(xié)議首標(biāo)是同一協(xié)議;按照其相應(yīng)協(xié)議首標(biāo)提取兩個或更多個分組的第1分組;和按照其相應(yīng)協(xié)議首標(biāo)提取兩個或更多個分組的第2分組。
23.根據(jù)權(quán)利要求22所述的方法,其中,兩個或更多個分組在數(shù)據(jù)通信內(nèi)的序列中是不相鄰的。
24.根據(jù)權(quán)利要求22所述的方法,其中,數(shù)據(jù)通信遵從TCP。
25.根據(jù)權(quán)利要求22所述的方法,其中,重發(fā)消息包含指示包含多個TCP有效負載的選項,并且根據(jù)選項將重發(fā)消息確定為包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo)。
26.根據(jù)權(quán)利要求22所述的方法,其中,第1協(xié)議首標(biāo)包含指示重發(fā)消息中第2協(xié)議首標(biāo)的位置的數(shù)字。
27.據(jù)權(quán)利要求22所述的方法,其中,兩個或更多個協(xié)議首標(biāo)是傳輸層首標(biāo)。
28.一種接收數(shù)據(jù)通信中所丟失的分組的系統(tǒng),該系統(tǒng)包括從發(fā)送器接收包含以前指示成未接收到的數(shù)據(jù)通信內(nèi)的兩個或更多個分組的重發(fā)消息裝置;確定重發(fā)消息是否包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo)的裝置,其中,兩個或更多個協(xié)議首標(biāo)的每一個與兩個或更多個分組的相應(yīng)一個相聯(lián)系,并且兩個或更多個協(xié)議首標(biāo)是同一協(xié)議;按照其相應(yīng)協(xié)議首標(biāo)提取兩個或更多個分組的第1分組的裝置;和按照其相應(yīng)協(xié)議首標(biāo)提取兩個或更多個分組的第2分組裝置。
29.根據(jù)權(quán)利要求28所述的系統(tǒng),其中,兩個或更多個分組在數(shù)據(jù)通信內(nèi)的序列中是不相鄰的。
30.根據(jù)權(quán)利要求28所述的系統(tǒng),其中,數(shù)據(jù)通信遵從TCP。
31.根據(jù)權(quán)利要求28所述的系統(tǒng),其中,重發(fā)消息包含指示包含多個TCP有效負載的選項,并且根據(jù)選項將重發(fā)消息確定為包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo)。
32.根據(jù)權(quán)利要求28所述的系統(tǒng),其中,第1協(xié)議首標(biāo)包含指示重發(fā)消息中第2協(xié)議首標(biāo)的位置的數(shù)字。
33.據(jù)權(quán)利要求28所述的系統(tǒng),其中,兩個或更多個協(xié)議首標(biāo)是傳輸層首標(biāo)。
34.一種包括機器可讀媒體的制品,該機器可讀媒體包括為了接收數(shù)據(jù)通信中的丟失分組而嵌入其中,使數(shù)據(jù)處理系統(tǒng)中的控制電路執(zhí)行如下步驟的程序邏輯從發(fā)送器接收包含以前指示成未接收到的數(shù)據(jù)通信內(nèi)的兩個或更多個分組的重發(fā)消息;確定重發(fā)消息是否包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo),其中,兩個或更多個協(xié)議首標(biāo)的每一個與兩個或更多個分組的相應(yīng)一個相聯(lián)系,并且兩個或更多個協(xié)議首標(biāo)是同一協(xié)議;按照其相應(yīng)協(xié)議首標(biāo)提取兩個或更多個分組的第1分組;和按照其相應(yīng)協(xié)議首標(biāo)提取兩個或更多個分組的第2分組。
35.根據(jù)權(quán)利要求34所述的制品,其中,兩個或更多個分組在數(shù)據(jù)通信內(nèi)的序列中是不相鄰的。
36.根據(jù)權(quán)利要求34所述的制品,其中,數(shù)據(jù)通信遵從TCP。
37.根據(jù)權(quán)利要求34所述的制品,其中,重發(fā)消息包含指示包含多個TCP有效負載的選項,并且根據(jù)選項將重發(fā)消息確定為包含兩個或更多個分組和兩個或更多個協(xié)議首標(biāo)。
38.根據(jù)權(quán)利要求34所述的制品,其中,第1協(xié)議首標(biāo)包含指示重發(fā)消息中第2協(xié)議首標(biāo)的位置的數(shù)字。
39.據(jù)權(quán)利要求34所述的制品,其中,兩個或更多個協(xié)議首標(biāo)是傳輸層首標(biāo)。
全文摘要
TCP/IP重發(fā)幀包含多個TCP段,多個TCP段包含源自數(shù)據(jù)通信的不相鄰丟失分組。幀中的第1段中的TCP選項指示在幀中存在多個TCP有效負載。每個TCP有效負載都含有相應(yīng)前附TCP首標(biāo)。在幀內(nèi)的每個TCP首標(biāo)中規(guī)定的偏移地址標(biāo)識幀中的下一個TCP首標(biāo)的位置。通過允許在單個IP分組中重發(fā)多個不相鄰分組,提高了網(wǎng)絡(luò)吞吐量性能。
文檔編號H04L1/08GK1791106SQ200510120500
公開日2006年6月21日 申請日期2005年11月18日 優(yōu)先權(quán)日2004年12月16日
發(fā)明者尤馬·克里什南, 文卡特·文卡特薩布拉, 維尼特·賈恩 申請人:國際商業(yè)機器公司