專利名稱:通過動態(tài)設(shè)置重組計時器改進網(wǎng)絡(luò)性能的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)處理網(wǎng)絡(luò)系統(tǒng)中的數(shù)據(jù)傳輸,尤其涉及在因特網(wǎng)和類似網(wǎng)絡(luò)上的數(shù)據(jù)塊傳輸。更具體地說,本發(fā)明涉及改進的網(wǎng)際協(xié)議(IP)網(wǎng)絡(luò)通信。
背景技術(shù):
計算機網(wǎng)絡(luò)是用于在實體之間傳送數(shù)據(jù)的互連通信媒體的地理上分布的集合。實體可以包括任何在通信媒體上發(fā)起(即發(fā)送)和/或接收網(wǎng)絡(luò)報文的設(shè)備,諸如主機或終端站。多種類型的計算機網(wǎng)絡(luò)是可用的,其類型涵蓋局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)。終端站可以包括個人計算機或工作站,其典型地根據(jù)預(yù)先定義的協(xié)議通過交換諸如幀或分組的數(shù)據(jù)的離散報文進行通信。在本文中,通信協(xié)議棧包括一組定義站如何相互交互的規(guī)則。
因特網(wǎng)已成為用于數(shù)據(jù)(文本、代碼、圖像、視頻、音頻或其混合)和軟件的傳輸和分發(fā)的重要的計算機網(wǎng)絡(luò)。因特網(wǎng)通信體系結(jié)構(gòu)協(xié)議棧的主要協(xié)議是網(wǎng)絡(luò)層(第3層)的網(wǎng)際協(xié)議(IP)和傳輸層(第4層)的傳輸控制協(xié)議(TCP)。術(shù)語TCP/IP通常用于指因特網(wǎng)體系結(jié)構(gòu),其已成為在因特網(wǎng)和內(nèi)聯(lián)網(wǎng)技術(shù)中廣泛執(zhí)行的標(biāo)準(zhǔn)通信協(xié)議,賦予客戶機、服務(wù)器和耦合它們的通信系統(tǒng)之間廣泛的異構(gòu)性。IP在網(wǎng)絡(luò)層提供“數(shù)據(jù)報”傳送服務(wù)。TCP構(gòu)造面向連接的傳輸層服務(wù),以提供兩個IP主機之間數(shù)據(jù)流的可靠、有序的傳送。TCP/IP傳輸?shù)目煽啃酝ǔJ艿饺缦氯N事件的危害數(shù)據(jù)丟失、數(shù)據(jù)損壞和數(shù)據(jù)重排。
數(shù)據(jù)丟失在TCP/IP中由超時機制管理。TCP維持計時器(重傳計時器)以測量從接收方接收已發(fā)送的段的確認(rèn)(ACK)的時延。當(dāng)ACK沒有在估計的時間間隔內(nèi)到達時(重傳超時(RTO)),相應(yīng)的段被認(rèn)為丟失并重傳。此外,由于TCP傳統(tǒng)上基于分組丟失表明網(wǎng)絡(luò)擁塞的假設(shè),因此TCP將通過輸入“慢速起動”補償其傳輸速率,從而極大地減小其對一個段的擁塞窗口。
當(dāng)段到達接收方時,TCP通過對段執(zhí)行校驗和來管理數(shù)據(jù)損壞。校驗和算法是TCP頭和數(shù)據(jù)中的所有16位字的補碼和的16位補碼。TCP發(fā)送方計算有關(guān)分組數(shù)據(jù)的校驗和,并將這2字節(jié)的值裝載入TCP頭。TCP頭的校驗和字段還包括12字節(jié)虛擬頭(pseudo header),其包括來自IP頭的信息。接收方計算有關(guān)所接收的數(shù)據(jù)(除去TCP頭中的2字節(jié)校驗和字段)的校驗和,并驗證其是否匹配頭中的校驗和值。
TCP通過維護將進入的分組進行排隊直到這些分組按順序重排的重組隊列,管理數(shù)據(jù)的重排或段的亂序到達。只有當(dāng)該隊列中的數(shù)據(jù)按順序到達時,才被移到可由用戶看見的用戶的接收緩存器。當(dāng)接收方觀察到所接收的分組的序號中有“空洞”時,就對其接收的每個后續(xù)的“亂序”分組生成重復(fù)確認(rèn)(DACK)。直到接收到缺少的分組,具有更高序號的每個所接收的數(shù)據(jù)分組被認(rèn)為是“亂序”的,并導(dǎo)致生成DACK。
圖7是包括IP頭部分110和有效負載/數(shù)據(jù)部分150的IP分組100的示意性框圖。IP頭110包括指示IP頭的格式的版本字段102、指示因特網(wǎng)頭的長度的因特網(wǎng)頭長度(IHL)字段104和提供所希望的服務(wù)質(zhì)量的參數(shù)的指示的服務(wù)類型(TOS)字段106。IP總長度字段108指定包括IP頭和有效負載/數(shù)據(jù)的IP分組的長度,而IP標(biāo)識字段110指定由發(fā)送實體分配的識別值以幫助重組分組的分段。
IP頭還包括更多分段(MF)標(biāo)記112、指定IP分組內(nèi)分段的位置的IP分段偏移量字段114和指示允許分組停留在網(wǎng)絡(luò)中的最長時間的生存時間(TTL)字段116。協(xié)議字段118指示用在分組的有效負載/數(shù)據(jù)部分150中的下一層協(xié)議,而頭校驗和字段120提供只有IP頭的校驗和。IP頭還包括包含發(fā)送實體的IP源地址的源地址字段122,包含接收實體的IP目的地址的目的地址字段124,以及選項字段126和填充字段128。
如果與源和目的實體相關(guān)聯(lián)的LAN標(biāo)準(zhǔn)不相同(例如以太網(wǎng)和令牌環(huán)網(wǎng)),則通常需要IP數(shù)據(jù)報的分段(以下稱為分組)。在這種情況中,網(wǎng)絡(luò)的路由器和交換機可能需要改變分組的格式,以便分組可以由目的實體接收。例如,如果分組在允許大的分組大小的網(wǎng)絡(luò)中發(fā)起,并經(jīng)過將分組限制在較小分組大小的一個或多個鏈路或本地網(wǎng)絡(luò),則互連網(wǎng)絡(luò)的交換機必須對IP分組進行分段。在TCP/IP網(wǎng)絡(luò)環(huán)境中,分段和重組過程是已知的,并在Information Sciences Institute University of SouthernCalifornia(1981)的網(wǎng)際協(xié)議,請求注解(RFC)791中進行了詳細描述,其公開文件在此并入作為參考。根據(jù)RFC 791,IP分段將IP分組分成可后來重組的任意數(shù)目的分段。
為了對IP分組進行分段,源或者中間系統(tǒng)(例如交換機)創(chuàng)建兩個或多個新的IP分段,并將來自原始分組的一部分IP頭字段的內(nèi)容復(fù)制到分段的每個IP頭中。分段的接收實體使用IP標(biāo)識字段110的內(nèi)容(即分組標(biāo)識符(ID))確保不會混淆不同分組的分段。即,標(biāo)識字段110用于區(qū)分分組之間的分段。IP分段偏移量字段114通知接收實體有關(guān)分段在原始分組中的位置。每個分段的分段偏移量字段和IP總長度字段108的內(nèi)容確定由分段覆蓋的一部分原始分組。MF標(biāo)記112指示(例如當(dāng)重置時)最后一個分段。整個IP分組的始發(fā)主機將IP標(biāo)識字段110設(shè)置為對于分組在網(wǎng)絡(luò)中是活動的時間以及源/目的地址對和協(xié)議(例如TCP,UDP)是唯一的值。整個分組的始發(fā)主機還將MF標(biāo)記112設(shè)置為例如零,將IP分段偏移量字段114設(shè)置為零。
IP標(biāo)識字段110是2字節(jié)字段,其必須在達到65535后才繞回(即必須從1重新開始編號)。在每秒生成數(shù)千個IP分組的高速網(wǎng)絡(luò)上,字段110中的IP標(biāo)識符(IP-ID)可每秒繞回多次。例如,在吉比特以太網(wǎng)上,1秒鐘可生成80,000個分組,這意味著IP-ID的繞回可在1秒鐘內(nèi)發(fā)生。由于網(wǎng)絡(luò)會變得甚至更快,因此這種繞回會甚至更頻繁地發(fā)生。例如,采用10吉比特以太網(wǎng),繞回可在毫秒級發(fā)生。
因此,如果屬于被繞回的IP-ID的分段與由最初的IP-ID識別的不同IP分組的分段重組,則IP-ID繞回是網(wǎng)絡(luò)中數(shù)據(jù)損壞的原因。由于利用頭校驗和120以檢測損壞的因特網(wǎng)校驗和算法不是很強,因此諸如TCP或UDP的上層協(xié)議可能不能檢測損壞。這個問題在IP中通過使用重組計時器(參見RFC 791)解決。如果在重組計時器期間內(nèi)還沒有接收到所識別的分組的所有分段,則IP分段重組使用重組計時器以丟棄分段。IP分段重組的許多實現(xiàn)通常使用30秒的重組計時器。在非常快速的網(wǎng)絡(luò)中,IP-ID在該時間間隔內(nèi)將繞回多次,增加了分段與被繞回的IP-ID的錯誤分段不匹配的可能性。
對快速網(wǎng)絡(luò)中IP-ID繞回的解決方案是將重組計時器設(shè)置成非常低的值,從而減小重復(fù)IP-ID數(shù)量突出的情況。然而,由于分段在只有IP分組還沒有到達時沿著慢速鏈路被錯誤地丟棄,因此這會導(dǎo)致具有快速和慢速網(wǎng)絡(luò)的不同速度的網(wǎng)絡(luò)環(huán)境的性能下降。丟棄慢速網(wǎng)絡(luò)連接中的IP分段將導(dǎo)致要求來自上層的不必要的重傳??梢钥闯觯M峁┮环N解決由在可變速度的網(wǎng)絡(luò)上的IP-ID繞回引起的數(shù)據(jù)損壞問題的解決方案,其提供超過已知的解決方案的改進的性能。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,公開了一種通過數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)通信的改進的方法和系統(tǒng)。本發(fā)明的一個優(yōu)選方法包括以下步驟接收方通過網(wǎng)絡(luò)接收數(shù)據(jù)分段;根據(jù)與包括數(shù)據(jù)分段的數(shù)據(jù)分組的發(fā)送方之間的接口,動態(tài)地設(shè)置數(shù)據(jù)分段的重組時間;以及如果在接收到數(shù)據(jù)分段后,數(shù)據(jù)分段保持從數(shù)據(jù)分組中被分段的時間比重組時間長,則丟棄數(shù)據(jù)分段。
通過以下詳細的描述,本發(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是可用于本發(fā)明的優(yōu)選實施例的網(wǎng)絡(luò)的4層通信體系結(jié)構(gòu);圖4描述了可用于本發(fā)明的優(yōu)選實施例的諸如因特網(wǎng)的由路由器互連的網(wǎng)絡(luò)的框圖;圖5示出了可用于本發(fā)明的優(yōu)選實施例的當(dāng)數(shù)據(jù)分組經(jīng)過TCP/IP協(xié)議棧時的數(shù)據(jù)分組的格式;圖6示出了根據(jù)本發(fā)明的優(yōu)選實施例的用于設(shè)置重組計時器以響應(yīng)接收IP分段的過程的流程圖;圖7是包括IP頭部分和有效負載/數(shù)據(jù)部分的IP分組數(shù)據(jù)格式的示意性框圖。
在以下本發(fā)明的典型實施例的詳細描述中,參考附圖,其形成詳細描述的一部分,并且通過說明可實行本發(fā)明的具體典型實施例進行顯示。
具體實施例方式
在以下本發(fā)明的典型實施例的詳細描述中,充分描述了可實行本發(fā)明的特定典型實施例,以使本領(lǐng)域的技術(shù)人員能夠?qū)崿F(xiàn)本發(fā)明,應(yīng)當(dāng)理解,在不背離本發(fā)明的精神或范圍的情況下,可以使用其它的實施例,可以進行邏輯、體系結(jié)構(gòu)、程序、機械、電子和其它方面的改變。因此,下述詳細的描述并不是限制,本發(fā)明的范圍僅由所附權(quán)利要求限制。特別地,雖然下面關(guān)于TCP/IP網(wǎng)絡(luò)環(huán)境描述了優(yōu)選實施例,但應(yīng)當(dāng)知道,本發(fā)明并不限于TCP/IP實現(xiàn)。
現(xiàn)在參照附圖,尤其參照圖1,描述了可實現(xiàn)本發(fā)明的優(yōu)選實施例的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)。數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)101包括至少一個經(jīng)由至少一個諸如因特網(wǎng)107的網(wǎng)絡(luò)耦合到至少一個客戶機系統(tǒng)105的服務(wù)器系統(tǒng)103。服務(wù)器103與客戶機105之間的數(shù)據(jù)傳送符合TCP/IP規(guī)范以及文件傳送協(xié)議(FTP)、超文本傳送協(xié)議(HTTP)或一些類似的通信協(xié)議。如將要知道的,雖然僅顯示了單個服務(wù)器103和單個客戶機系統(tǒng)105,但數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)101可包括任何數(shù)量的由包括因特網(wǎng)107的一個或多個連接和網(wǎng)絡(luò)互連的服務(wù)器和客戶機系統(tǒng)(未示出)。為了說明的目的,服務(wù)器103和客戶機系統(tǒng)105使用TCP/IP通信,雖然本發(fā)明并不局限于此,但在可選實施例中,也可以使用其它適合的協(xié)議。
圖2是可用于本發(fā)明的優(yōu)選實施例的服務(wù)器-客戶機系統(tǒng)的典型軟件體系結(jié)構(gòu)的描述。服務(wù)器103和客戶機105每一個都用軟件體系結(jié)構(gòu)200構(gòu)造。在最低一層,操作系統(tǒng)205用于向用戶和其它軟件提供高級功能。這樣的操作系統(tǒng)典型地包括BIOS(基本輸入輸出系統(tǒng))。通過直接調(diào)用操作系統(tǒng)功能或間接地旁路操作系統(tǒng)以訪問通過網(wǎng)絡(luò)通信的硬件,通信軟件210通過外部端口經(jīng)由物理通信鏈路向諸如因特網(wǎng)的網(wǎng)絡(luò)提供通信。應(yīng)用編程接口215允許作為個人或軟件例行程序的系統(tǒng)用戶使用符合標(biāo)準(zhǔn)的接口調(diào)用系統(tǒng)能力,而無需考慮特定的功能如何實現(xiàn)。因特網(wǎng)軟件220代表可用于裝備計算機的因特網(wǎng)功能的多個標(biāo)準(zhǔn)商用軟件包中的任何一個。應(yīng)用程序軟件225代表被設(shè)計成通過通信端口響應(yīng)數(shù)據(jù)以提供用戶想要的希望的功能的任何數(shù)量的軟件應(yīng)用程序。該層的應(yīng)用程序可包括處理可由因特網(wǎng)用戶訪問的數(shù)據(jù)、視頻、圖表、照片或文本所必需的應(yīng)用程序。
如圖3所示,TCP/IP和類似的協(xié)議可由包括應(yīng)用層310、傳輸層312、網(wǎng)絡(luò)層314、鏈路層316和物理層318的4層網(wǎng)絡(luò)通信體系結(jié)構(gòu)使用。每一層負責(zé)處理各種通信任務(wù),如下所述。
物理層318通常將數(shù)據(jù)轉(zhuǎn)換為比特,用于在網(wǎng)絡(luò)的各種物理設(shè)備之間的通信。物理層中使用的協(xié)議的例子可包括但不限于來自諸如以太網(wǎng)卡、令牌環(huán)網(wǎng)卡、無線網(wǎng)卡和類似的卡的網(wǎng)絡(luò)接口卡的協(xié)議。電氣和電子工程師協(xié)會(IEEE)已發(fā)布了可用于物理層的多個協(xié)議,諸如IEEE 802.3標(biāo)準(zhǔn)(以太網(wǎng))、IEEE 802.5標(biāo)準(zhǔn)(令牌環(huán)網(wǎng))和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ò)層由幾個協(xié)議構(gòu)成,包括IP(網(wǎng)際協(xié)議)、ICMP(網(wǎng)際控制報文協(xié)議)和IGMP(因特網(wǎng)組管理協(xié)議)。
傳輸層312提供網(wǎng)絡(luò)層314和應(yīng)用層310之間的接口,方便了兩個主機之間的數(shù)據(jù)傳送。傳輸層涉及諸如將從應(yīng)用層傳送到它的數(shù)據(jù)分成用于下面的網(wǎng)絡(luò)層的合適大小的塊、確認(rèn)所接收的分組、設(shè)置超時以確定另一端確認(rèn)所發(fā)送的分組等的事情。在TCP/IP協(xié)議套件中,有兩個明顯不同的傳輸協(xié)議TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。TCP提供可靠性服務(wù)以確保數(shù)據(jù)在兩個主機之間正確地發(fā)送,包括丟失檢測和重傳服務(wù)。相反地,UDP通過僅從一個主機向另一個主機發(fā)送稱作數(shù)據(jù)報的數(shù)據(jù)分組向應(yīng)用層提供更簡單的服務(wù),無需提供任何確保數(shù)據(jù)被正確傳送的機制。當(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)絡(luò)連接,諸如以太網(wǎng)、令牌環(huán)網(wǎng)、點對點連接等。圖4示出了包括由路由器436連接到令牌環(huán)網(wǎng)絡(luò)434的以太網(wǎng)網(wǎng)絡(luò)432的因特網(wǎng)400。雖然圖4僅示出了通信中的兩個主機,但以太網(wǎng)上的任何主機都能夠與其上的任何主機通信,或與令牌環(huán)網(wǎng)絡(luò)上的任何主機通信,反之亦然。
如圖4所示,路由器436包括網(wǎng)絡(luò)層模塊438(在這種情況下為IP模塊)和用于連接到主機網(wǎng)絡(luò)的適當(dāng)?shù)木W(wǎng)絡(luò)驅(qū)動器,即以太網(wǎng)驅(qū)動器440和令牌環(huán)網(wǎng)驅(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)網(wǎng)協(xié)議454。應(yīng)用層通常處理用戶過程,而下面三層(傳輸、網(wǎng)絡(luò)和鏈路層)在諸如UNIX和Windows操作系統(tǒng)的操作系統(tǒng)的內(nèi)核中實現(xiàn)。例如,網(wǎng)絡(luò)接口層的目的在于處理通信媒體(以太網(wǎng)、令牌環(huán)網(wǎng)等)的細節(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))上的跳到跳(hop-to-hop)協(xié)議。例如,路由器436的IP模塊438通過IP協(xié)議448連接到兩個主機。還有專用于連接到路由器的各種類型的主機網(wǎng)絡(luò)的鏈路層協(xié)議,以處理鏈路層的網(wǎng)絡(luò)與路由器之間的通信。因此,以太網(wǎng)協(xié)議450用于處理路由器436中的以太網(wǎng)驅(qū)動器440與以太網(wǎng)絡(luò)432上的主機的以太網(wǎng)驅(qū)動器452之間的通信,而令牌環(huán)網(wǎng)協(xié)議454用于處理路由器436中的令牌環(huán)網(wǎng)驅(qū)動器440與令牌環(huán)網(wǎng)絡(luò)434上的主機的令牌環(huán)網(wǎng)驅(qū)動器456之間的通信。
當(dāng)應(yīng)用使用TCP/IP發(fā)送數(shù)據(jù)時,數(shù)據(jù)經(jīng)過每一層向下發(fā)送到協(xié)議棧,直到作為比特流穿過網(wǎng)絡(luò)發(fā)送出去。如圖5所示,協(xié)議棧500中的每一層通過將頭(有時增加尾部信息)添加到其接收到的數(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包括二十個字節(jié)。類似地,在網(wǎng)絡(luò)層,網(wǎng)絡(luò)層頭被添加到傳輸層數(shù)據(jù)上。在TCP/IP的情況下,IP頭590被添加到TCP幀588以形成IP數(shù)據(jù)報592。IP頭590也包括二十個字節(jié)。最后,在鏈路層,諸如以太網(wǎng)頭594的媒體頭(media header)被增加到從網(wǎng)絡(luò)層接收的數(shù)據(jù)上,以形成數(shù)據(jù)幀。在一些情況下,例如當(dāng)媒體是以太網(wǎng)時,媒體尾部也被添加到數(shù)據(jù)的末尾。例如,在圖5中,以太網(wǎng)尾部96被添加到以太網(wǎng)頭594和IP數(shù)據(jù)報592上,以形成以太網(wǎng)幀598。以太網(wǎng)幀包括對應(yīng)原始應(yīng)用報文數(shù)據(jù)的流經(jīng)網(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。
現(xiàn)在返回參照圖1和圖4,描述用于異構(gòu)網(wǎng)絡(luò)環(huán)境中的如本發(fā)明的優(yōu)選實施例提供的動態(tài)IP分組重組計時器的操作。網(wǎng)絡(luò)中的接收主機在其內(nèi)存中存儲第一和第二用戶可配置的每個接口重組計時器-第一個設(shè)置成快速網(wǎng)絡(luò)的優(yōu)化重組計時器,第二個設(shè)置成較慢網(wǎng)絡(luò)的優(yōu)化重組計時器。在本發(fā)明的優(yōu)選實施例中,用于丟棄IP分段的第一或第二重組計時器被動態(tài)地選擇用于每個所接收的IP分組。這一實施例在避免由于IP網(wǎng)絡(luò)系統(tǒng)中IP-ID繞回所產(chǎn)生的數(shù)據(jù)損壞方面提供了實質(zhì)的改進。
在接收到IP分段時,接收方基于例如源地址122或其它網(wǎng)絡(luò)信息確定發(fā)送方是否在與接收方相同的子網(wǎng)上。對于從位于相同子網(wǎng)上的發(fā)送方接收到的IP分段,接收方將在其重組計時器中使用較快的(第一存儲的)重組時間,而對于通過網(wǎng)絡(luò)上的網(wǎng)關(guān)或其它較慢或較長鏈路發(fā)來的IP分段,則在其重組計時器中使用較慢的(第二存儲的)重組時間。
這樣,連接到網(wǎng)絡(luò)中的可變速度鏈路的接收方將基于所接收的IP分段經(jīng)過的接口的類型或速度,設(shè)置不同的重組計時器。例如,從位于相同子網(wǎng)上的發(fā)送方接收的IP分組會具有被設(shè)置成很短值的重組時間(例如,0.5秒)。經(jīng)過網(wǎng)關(guān)或已知的較長鏈路接收的IP分段會被設(shè)置較長的重組計時器(例如,說明經(jīng)過網(wǎng)絡(luò)較慢速度出來的1秒)。如果所接收的分段是IP分組的第一個分段,或者如果所計算的重組計時器被確定成比接收系統(tǒng)中當(dāng)前使用的計時器長,則所選擇的重組計時器通常會由接收方用于屬于同一數(shù)據(jù)分組的所有后續(xù)接收到的數(shù)據(jù)分段。這種設(shè)置重組時間的算法可用于IP分組的每個分段,或者僅用于第一個分段,然后根據(jù)所希望的粒度,重新用于來自同一數(shù)據(jù)分組的所有后續(xù)的分段。
現(xiàn)在參照圖6,其示出了根據(jù)本發(fā)明的優(yōu)選實施例的用于設(shè)置重組計時器以響應(yīng)接收IP分段的過程的流程圖。過程在步驟602開始,此時IP分段被網(wǎng)絡(luò)上的客戶機接收。該過程繼續(xù)判斷框604,接收客戶機確定IP分段的源IP地址和目的IP地址是否指示發(fā)送方和接收方在網(wǎng)絡(luò)的同一子網(wǎng)上。如果是,則如框606所示,接收方將重組計時器設(shè)置為存儲在接收方處的用于在同一子網(wǎng)上接收的IP分段的值?;谠撟泳W(wǎng)的速度和結(jié)構(gòu),這個重組計時器值已由用戶預(yù)先確定或由系統(tǒng)計算,作為丟棄IP分段和需要在子網(wǎng)上重傳的最佳時間。如果在框604的判斷是發(fā)送方和接收方不在同一子網(wǎng)上,則該過程繼續(xù)到步驟608,接收方將重組計時器設(shè)置為存儲在接收方處的確定為對于經(jīng)過網(wǎng)絡(luò)中的網(wǎng)關(guān)或其它較慢的鏈路接收的IP分段最優(yōu)的值。這個重組時間通常比在步驟606中設(shè)置的時間長,以說明與子網(wǎng)外的網(wǎng)絡(luò)相關(guān)聯(lián)的較長等待時間。
如可知道的,這個解決方案不需要對通信的發(fā)送側(cè)進行任何修改。此外,每個接口重組計時器比當(dāng)前系統(tǒng)范圍的重組計時器值更細。在基于UNIX的系統(tǒng)上,這個解決方案可容易地通過增強“ifconfig”命令實現(xiàn),以提供接口專用的重組計時器。
本領(lǐng)域的普通技術(shù)人員可知道,上述方法通常在一個或多個處理器(未示出)上運行的軟件中執(zhí)行,并且軟件可被提供為在諸如磁盤或光盤的任何適合的數(shù)據(jù)載體(也未示出)上承載的計算機程序單元。傳輸數(shù)據(jù)的信道可類似地包括所有描述的存儲介質(zhì),以及諸如有線或無線信號媒體的信號承載媒體。
因此,本發(fā)明可適合地實現(xiàn)為與計算機系統(tǒng)一起使用的計算機程序產(chǎn)品。這樣的實現(xiàn)可包括一系列計算機可讀指令,其或者固定在諸如計算機可讀介質(zhì)的有形介質(zhì)上,例如磁盤、CD-ROM、ROM或硬盤,或者經(jīng)由調(diào)制解調(diào)器或其它接口設(shè)備通過包括但不限于光或模擬通信線路的有形介質(zhì)或者無形地使用包括但不限于微波、紅外或其它傳輸技術(shù)的無線技術(shù)傳送到計算機系統(tǒng)。這一系列計算機可讀指令實現(xiàn)前述的全部或部分功能。
本領(lǐng)域的技術(shù)人員可以知道,這種計算機可讀指令能夠用與多種計算機體系結(jié)構(gòu)或操作系統(tǒng)一起使用的多種編程語言編寫。此外,這種指令可以使用當(dāng)前或未來的包括但不限于半導(dǎo)體、磁或光的任何存儲技術(shù)存儲,或者使用當(dāng)前或未來的包括但不限于光、紅外或微波的任何通信技術(shù)傳輸??梢灶A(yù)見,這種計算機程序產(chǎn)品可以作為具有附帶的打印的或電子的文檔的可移動介質(zhì)分發(fā),電子文檔例如在系統(tǒng)ROM或硬盤上與計算機系統(tǒng)一起預(yù)先裝載的例如壓縮軟件,或者從服務(wù)器或電子公告板經(jīng)過例如因特網(wǎng)或萬維網(wǎng)的網(wǎng)絡(luò)分發(fā)。
雖然本發(fā)明已參照優(yōu)選實施例進行了專門的顯示和描述,但本領(lǐng)域的技術(shù)人員可理解,在不背離本發(fā)明精神和范圍的情況下,可以進行形式和細節(jié)的多種改變。例如,本發(fā)明可以使用計算機編程軟件、固件或硬件的任何組合實現(xiàn)。作為實施本發(fā)明或構(gòu)成根據(jù)本發(fā)明的裝置的準(zhǔn)備步驟,根據(jù)本發(fā)明的計算機編程代碼(不管是軟件或固件)通常存儲在諸如硬盤驅(qū)動器、磁盤、光盤、磁帶、諸如ROM、PROM的半導(dǎo)體存儲器等的一個或多個機器可讀存儲介質(zhì)中,從而制造根據(jù)本發(fā)明的一項產(chǎn)品。通過直接從存儲設(shè)備執(zhí)行代碼,或者將代碼從存儲設(shè)備復(fù)制到諸如硬盤、RAM等的另一個存儲設(shè)備,或者通過發(fā)送代碼用于遠程執(zhí)行,使用包括計算機編程代碼的該項產(chǎn)品。通過將包括根據(jù)本發(fā)明的代碼的一個或多個機器可讀存儲設(shè)備與適當(dāng)?shù)臉?biāo)準(zhǔn)計算機硬件相結(jié)合以執(zhí)行其中包含的代碼,可以實現(xiàn)本發(fā)明的方法形式。用于實現(xiàn)本發(fā)明的裝置可以是包含或具有網(wǎng)絡(luò)訪問根據(jù)本發(fā)明編碼的計算機程序的一個或多個計算機和存儲系統(tǒng)。雖然本發(fā)明采用實現(xiàn)本發(fā)明的目標(biāo)的最優(yōu)方式的形式進行了描述,但本領(lǐng)域的技術(shù)人員可知道,根據(jù)這些教導(dǎo),可以實現(xiàn)多種改變,而不脫離本發(fā)明的精神或范圍。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的方法,包括在接收方通過網(wǎng)絡(luò)接收數(shù)據(jù)分段;根據(jù)與包括所述數(shù)據(jù)分段的數(shù)據(jù)分組的發(fā)送方之間的接口的速度,動態(tài)地設(shè)置所述數(shù)據(jù)分段的重組時間;以及如果在接收到所述數(shù)據(jù)分段后,所述數(shù)據(jù)分段保持是來自所述數(shù)據(jù)分組的分段的時間比所述重組時間長,則丟棄所述數(shù)據(jù)分段。
2.根據(jù)權(quán)利要求1所述的方法,其中,動態(tài)地設(shè)置重組時間的步驟包括如果包含所述數(shù)據(jù)分段的數(shù)據(jù)分組的發(fā)送方通過所述網(wǎng)絡(luò)的已知的快速鏈路連接到所述接收方,則設(shè)置所述重組時間為第一時間;如果所述數(shù)據(jù)分組的發(fā)送方?jīng)]有通過所述網(wǎng)絡(luò)的已知的快速鏈路連接到所述接收方,則設(shè)置所述重組時間為第二時間。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述第一時間比所述第二時間快。
4.根據(jù)權(quán)利要求2所述的方法,還包括在接收方存儲所述第一時間和所述第二時間。
5.根據(jù)權(quán)利要求2所述的方法,其中,所述發(fā)送方通過多條鏈路連接到所述接收方,其中任何一條鏈路都是已知的快速鏈路。
6.根據(jù)權(quán)利要求2所述的方法,其中,當(dāng)所述發(fā)送方在與所述數(shù)據(jù)分組的接收方相同的網(wǎng)絡(luò)子網(wǎng)內(nèi)時,所述數(shù)據(jù)分組的發(fā)送方通過所述網(wǎng)絡(luò)的已知的快速鏈路連接到所述接收方。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述數(shù)據(jù)分組是由IP層生成的IP分組。
8.一種數(shù)據(jù)處理系統(tǒng),包括用于在接收方通過網(wǎng)絡(luò)接收數(shù)據(jù)分段的裝置;用于根據(jù)與包括所述數(shù)據(jù)分段的數(shù)據(jù)分組的發(fā)送方之間的接口的速度動態(tài)地設(shè)置所述數(shù)據(jù)分段的重組時間的裝置;以及用于如果在接收到所述數(shù)據(jù)分段后,所述數(shù)據(jù)分段保持是來自所述數(shù)據(jù)分組的分段的時間比所述重組時間長,則丟棄所述數(shù)據(jù)分段的裝置。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述用于動態(tài)地設(shè)置重組時間的裝置包括用于在包括所述數(shù)據(jù)分段的數(shù)據(jù)分組的發(fā)送方通過所述網(wǎng)絡(luò)的已知的快速鏈路連接到所述接收方的情況下設(shè)置所述重組時間為第一時間的裝置;用于在所述數(shù)據(jù)分組的發(fā)送方?jīng)]有通過所述網(wǎng)絡(luò)的已知的快速鏈路連接到所述接收方的情況下設(shè)置所述重組時間為第二時間的裝置。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述第一時間比所述第二時間快。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括用于在接收方存儲所述第一時間和所述第二時間的裝置。
12.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述發(fā)送方通過多條鏈路連接到所述接收方,其中任何一條鏈路都是已知的快速鏈路。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,當(dāng)所述發(fā)送方在與所述數(shù)據(jù)分組的接收方相同的網(wǎng)絡(luò)子網(wǎng)內(nèi)時,所述數(shù)據(jù)分組的發(fā)送方通過所述網(wǎng)絡(luò)的已知的快速鏈路連接到所述接收方。
14.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述數(shù)據(jù)分組是由IP層生成的IP分組。
15.一種產(chǎn)品,包括機器可讀介質(zhì),其包括使數(shù)據(jù)處理系統(tǒng)中的控制電路執(zhí)行以下步驟的嵌入式程序邏輯在接收方通過網(wǎng)絡(luò)接收數(shù)據(jù)分段;根據(jù)與包括所述數(shù)據(jù)分段的數(shù)據(jù)分組的發(fā)送方之間的接口的速度,動態(tài)地設(shè)置所述數(shù)據(jù)分段的重組時間;以及如果在接收到所述數(shù)據(jù)分段后,所述數(shù)據(jù)分段保持是來自所述數(shù)據(jù)分組的分段的時間比所述重組時間長,則丟棄所述數(shù)據(jù)分段。
16.根據(jù)權(quán)利要求15所述的產(chǎn)品,其中,所述動態(tài)地設(shè)置重組時間的步驟包括如果包括所述數(shù)據(jù)分段的數(shù)據(jù)分組的發(fā)送方通過所述網(wǎng)絡(luò)的已知的快速鏈路連接到所述接收方,則設(shè)置所述重組時間為第一時間;如果所述數(shù)據(jù)分組的發(fā)送方?jīng)]有通過所述網(wǎng)絡(luò)的已知的快速鏈路連接到所述接收方,則設(shè)置所述重組時間為第二時間。
17.根據(jù)權(quán)利要求16所述的產(chǎn)品,其中,所述第一時間比所述第二時間快。
18.根據(jù)權(quán)利要求16所述的產(chǎn)品,還包括在接收方存儲所述第一時間和所述第二時間。
19.根據(jù)權(quán)利要求16所述的產(chǎn)品,其中,所述發(fā)送方通過多條鏈路連接到所述接收方,其中任何一條鏈路都是已知的快速鏈路。
20.根據(jù)權(quán)利要求16所述的產(chǎn)品,其中,當(dāng)所述發(fā)送方在與所述數(shù)據(jù)分組的接收方相同的網(wǎng)絡(luò)子網(wǎng)內(nèi)時,所述數(shù)據(jù)分組的發(fā)送方通過所述網(wǎng)絡(luò)的已知的快速鏈路連接到所述接收方。
21.根據(jù)權(quán)利要求15所述的產(chǎn)品,其中,所述數(shù)據(jù)分組是由IP層生成的IP分組。
全文摘要
在TCP/IP接收方中的重組計時器被動態(tài)地設(shè)置以避免由IP標(biāo)識繞回引起的快速網(wǎng)絡(luò)上的數(shù)據(jù)損壞?;诮邮辗胶桶l(fā)送方是否在同一子網(wǎng)上,對于快速網(wǎng)絡(luò),接收方獨立地將重組計時器設(shè)置為由用戶設(shè)置的第一重組時間;或者對于慢速網(wǎng)絡(luò),將重組計時器設(shè)置為由用戶設(shè)置的第二重組計時器。
文檔編號H04L12/56GK1791063SQ20051011528
公開日2006年6月21日 申請日期2005年11月11日 優(yōu)先權(quán)日2004年12月16日
發(fā)明者V·文卡塔蘇布拉 申請人:國際商業(yè)機器公司