两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

檢測(cè)和避開網(wǎng)絡(luò)內(nèi)高數(shù)據(jù)訛誤路徑的方法、系統(tǒng)和產(chǎn)品的制作方法

文檔序號(hào):7594434閱讀:204來源:國知局
專利名稱:檢測(cè)和避開網(wǎng)絡(luò)內(nèi)高數(shù)據(jù)訛誤路徑的方法、系統(tǒng)和產(chǎn)品的制作方法
技術(shù)領(lǐng)域
總的來說,本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸,特別涉及因特網(wǎng)或類似網(wǎng)絡(luò)上的數(shù)據(jù)塊傳輸。更具體地說,本發(fā)明涉及快速檢測(cè)導(dǎo)致高數(shù)據(jù)訛誤(data corruption)的因特網(wǎng)內(nèi)路徑,并且高效地對(duì)數(shù)據(jù)進(jìn)行重新路由選擇以繞開該高數(shù)據(jù)訛誤路徑。
背景技術(shù)
網(wǎng)絡(luò)提供通過特定路徑將信息從源傳輸?shù)侥康牡氐膫鬏?。信息通過路由器沿著路徑傳輸。典型地,每個(gè)路由器知道網(wǎng)絡(luò)中可用的各條路徑,并且該知識(shí)存儲(chǔ)在路徑數(shù)據(jù)庫或路徑表中。信息根據(jù)特定協(xié)議在整個(gè)網(wǎng)絡(luò)上傳輸,并且網(wǎng)絡(luò)內(nèi)的路由器可以支持多種協(xié)議中的任何一個(gè)。因此,路由器可以存儲(chǔ)使用多種協(xié)議可獲得的多個(gè)路徑。
因特網(wǎng)已成為特別重要的用于傳輸和分發(fā)數(shù)據(jù)(文本、代碼、圖像、視頻、音頻或混合式)和軟件的網(wǎng)絡(luò)。用戶以范圍從14.4Kb/s到超過45Mb/s的廣泛不同性能級(jí)別連接到骨干因特網(wǎng)。傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)已成為因特網(wǎng)和內(nèi)部網(wǎng)技術(shù)中廣泛實(shí)現(xiàn)的標(biāo)準(zhǔn)通信協(xié)議,它允許客戶端、服務(wù)器和耦合它們的通信系統(tǒng)之間的廣泛異構(gòu)性。網(wǎng)際協(xié)議(IP)是網(wǎng)絡(luò)層協(xié)議,而傳輸控制協(xié)議(TCP)是傳輸層協(xié)議。在網(wǎng)絡(luò)層,IP提供“數(shù)據(jù)報(bào)”傳送服務(wù)。相反,TCP構(gòu)建數(shù)據(jù)報(bào)服務(wù)之上的傳輸層服務(wù),以在兩個(gè)IP主機(jī)之間提供有保證的、順序的字節(jié)流傳送。
在諸如因特網(wǎng)之類的大型網(wǎng)絡(luò)中,網(wǎng)絡(luò)內(nèi)路徑之一有可能導(dǎo)致數(shù)據(jù)訛誤。雖然沿著該路徑的每個(gè)路由器將對(duì)所接收的每個(gè)數(shù)據(jù)分組的報(bào)頭執(zhí)行校驗(yàn)和、以檢測(cè)分組的數(shù)據(jù)訛誤,但是沿著該路徑引起的某些數(shù)據(jù)訛誤只能通過對(duì)接收分組的整個(gè)有效載荷執(zhí)行校驗(yàn)和來檢測(cè)。因此,網(wǎng)絡(luò)內(nèi)的路由器不知道它們正在將受損分組轉(zhuǎn)發(fā)到目的地。只有當(dāng)分組到達(dá)對(duì)整個(gè)有效載荷執(zhí)行校驗(yàn)和的接收主機(jī)時(shí),才檢測(cè)到該數(shù)據(jù)訛誤。接收主機(jī)然后將確認(rèn)信息發(fā)送到發(fā)送主機(jī),從而請(qǐng)求重傳受損數(shù)據(jù)分組。然而,由于發(fā)送主機(jī)和接收主機(jī)沒有辦法知道哪一條路徑導(dǎo)致數(shù)據(jù)訛誤,因此它們不能在重傳數(shù)據(jù)分組時(shí)避開那條路徑。此外,發(fā)送主機(jī)和接收主機(jī)沒有辦法向網(wǎng)絡(luò)內(nèi)的路由器通知數(shù)據(jù)訛誤以便路由器能夠糾正或避開訛誤路徑。因此,可以看到,需要一種提供快速檢測(cè)網(wǎng)絡(luò)內(nèi)的壞鏈路以便路由器能夠避開數(shù)據(jù)訛誤鏈路來經(jīng)過路由選擇傳送數(shù)據(jù)分組。

發(fā)明內(nèi)容
根據(jù)本發(fā)明,公開了用于檢測(cè)和避開IP網(wǎng)絡(luò)中導(dǎo)致數(shù)據(jù)訛誤的數(shù)據(jù)鏈路的改進(jìn)型方法、系統(tǒng)和產(chǎn)品。本發(fā)明的一個(gè)優(yōu)選方法包括以下步驟在IP網(wǎng)絡(luò)內(nèi)的路由器中接收數(shù)據(jù)鏈路上的數(shù)據(jù)分組,其中,數(shù)據(jù)分組來源于一個(gè)發(fā)送者,發(fā)往一個(gè)接收者,并且包含要對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和的指示;響應(yīng)接收到包含要對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和的指示的數(shù)據(jù)分組,對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和;響應(yīng)整個(gè)數(shù)據(jù)分組的校驗(yàn)和失敗,修改表示在校驗(yàn)和失敗的數(shù)據(jù)鏈路上接收的數(shù)據(jù)分組數(shù)的值;以及如果該值超過路由器的訛誤閾值,則執(zhí)行路由選擇更新以避免在該數(shù)據(jù)鏈路上傳輸數(shù)據(jù)分組。
在下面詳細(xì)描述中,本發(fā)明的所有目的、特性和優(yōu)點(diǎn)將會(huì)變得更加清楚。


圖1是示出其中可以實(shí)現(xiàn)本發(fā)明優(yōu)選實(shí)施例的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)。
圖2是可以用于本發(fā)明的優(yōu)選實(shí)施例中的用于服務(wù)器-客戶端系統(tǒng)的典型軟件架構(gòu)的圖示。
圖3示出利用TCP/IP的4層通信架構(gòu)的例子。
圖4示出包括通過路由器連接到令牌環(huán)網(wǎng)的以太網(wǎng)的因特網(wǎng)的例子。
圖5示出當(dāng)數(shù)據(jù)穿過TCP/IP協(xié)議棧時(shí)數(shù)據(jù)的格式。
圖6A示出TCP報(bào)頭的格式。
圖6B示出根據(jù)一個(gè)優(yōu)選實(shí)施例的IP報(bào)頭的格式。
圖6C示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的TCP確認(rèn)幀的數(shù)據(jù)結(jié)構(gòu)。
圖7示出諸如因特網(wǎng)的網(wǎng)絡(luò)的圖示。
圖8示出用來接收和轉(zhuǎn)發(fā)IP數(shù)據(jù)報(bào)的路由器的硬件。
圖9A示出根據(jù)一個(gè)優(yōu)選實(shí)施例的路由選擇表和轉(zhuǎn)發(fā)表。
圖9B示出根據(jù)一個(gè)優(yōu)選實(shí)施例的路由器存儲(chǔ)器中的寄存器。
圖10示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的在客戶端-服務(wù)器系統(tǒng)中執(zhí)行的、用于指示網(wǎng)絡(luò)內(nèi)數(shù)據(jù)訛誤的過程的流程圖。
圖11示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的在客戶端-服務(wù)器系統(tǒng)中執(zhí)行的、用于指示網(wǎng)絡(luò)內(nèi)數(shù)據(jù)訛誤的過程的流程圖。
圖12示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的在網(wǎng)絡(luò)路由器中執(zhí)行的、用于提供快速檢測(cè)和避開網(wǎng)絡(luò)內(nèi)導(dǎo)致高數(shù)據(jù)訛誤的數(shù)據(jù)路徑的過程的流程圖。
具體實(shí)施例方式
在下文中將參照附圖通過優(yōu)選實(shí)施例描述本發(fā)明,其中相同的標(biāo)號(hào)表示相同或類似的單元。雖然本發(fā)明是按照用于實(shí)現(xiàn)本發(fā)明目的的最佳方式來描述的,但是本領(lǐng)域的技術(shù)人員應(yīng)該理解,在本文的啟迪下可以實(shí)現(xiàn)各種變更而不脫離本發(fā)明的精神或范圍。
現(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ò)102包括通過至少一個(gè)網(wǎng)絡(luò)如因特網(wǎng)108連接到至少一個(gè)客戶端系統(tǒng)106的至少一個(gè)服務(wù)器系統(tǒng)104。服務(wù)器系統(tǒng)104與客戶端系統(tǒng)106之間的數(shù)據(jù)傳輸遵循TCP/IP規(guī)范以及文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)或者某類似通信協(xié)議。應(yīng)該理解,雖然僅示出了單個(gè)服務(wù)器系統(tǒng)104和單個(gè)客戶端系統(tǒng)106,但是數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò)102可以包括由一種或多種連接法(connection)和網(wǎng)絡(luò)(包括因特網(wǎng)108)互連的任意數(shù)目的服務(wù)器和客戶端系統(tǒng)(未示出)。
為了在網(wǎng)絡(luò)上傳輸數(shù)據(jù),需要有一組規(guī)則以便正確執(zhí)行傳輸序列的每一個(gè)部分。這些規(guī)則中的每一個(gè)稱作協(xié)議,并且一組規(guī)則稱作協(xié)議集。在因特網(wǎng)和各種其他網(wǎng)絡(luò)如LAN(局域網(wǎng))和WAN(廣域網(wǎng))上傳輸數(shù)據(jù)時(shí)所用的最常見協(xié)議集由TCP/IP(傳輸控制協(xié)議/網(wǎng)際協(xié)議)協(xié)議集提供。TCP/IP協(xié)議集允許運(yùn)行不同操作系統(tǒng)的各種不同類型的計(jì)算機(jī)相互通信。TCP/IP形成全球因特網(wǎng)即真正跨越全球的數(shù)百萬計(jì)算機(jī)的廣域網(wǎng)的基礎(chǔ)。除了TCP/IP協(xié)議集之外,還存在很多其他網(wǎng)絡(luò)協(xié)議集,包括IPX/SPX(因特網(wǎng)分組交換/順序分組交換)和NetBios。雖然最初是由獨(dú)立研究組開發(fā)的,但是大部分網(wǎng)絡(luò)協(xié)議是公開(非私有)標(biāo)準(zhǔn),其中很多是作為一系列按照數(shù)字順序的RFC(請(qǐng)求注解)文件來公布的。例如,IP協(xié)議是RFC791。RFC文件可在因特網(wǎng)或者各個(gè)圖書館容易地獲得。雖然存在區(qū)別,但是這些網(wǎng)絡(luò)協(xié)議集的每一個(gè)在結(jié)構(gòu)上是類似的,它們都包括一組層,其中每層負(fù)責(zé)通信任務(wù)的不同方面。為簡單起見,下面討論將主要關(guān)于采用TCP/IP協(xié)議時(shí)的本發(fā)明使用。然而,本領(lǐng)域的技術(shù)人員應(yīng)該認(rèn)識(shí)到,雖然本發(fā)明的原理是參照TCP/IP協(xié)議描述的,但是本發(fā)明也可以應(yīng)用于各種其他網(wǎng)絡(luò)。
流控制是處理接收主機(jī)和發(fā)送者之間的處理和緩沖能力失配以最佳地利用由傳輸介質(zhì)提供的帶寬的過程。TCP流控制機(jī)制只在終端站運(yùn)行,以限制TCP端點(diǎn)發(fā)送數(shù)據(jù)的速率。然而,TCP缺少顯式數(shù)據(jù)速率控制。基本流控制機(jī)制是施加于最后顯式確認(rèn)的字節(jié)以外的一定范圍字節(jié)上的“滑動(dòng)窗”?;瑒?dòng)窗限制從服務(wù)器最近發(fā)送的字節(jié)與尚未從客戶端接收到接收確認(rèn)的最早字節(jié)之間的連續(xù)字節(jié)的最大數(shù)目。該滑動(dòng)操作限制TCP端點(diǎn)可以發(fā)送的未確認(rèn)可傳輸數(shù)據(jù)量。多種算法自動(dòng)重新發(fā)送分組,并且當(dāng)超過滑動(dòng)窗限制時(shí)緩慢地重新啟動(dòng)數(shù)據(jù)傳輸。因此,如果在傳輸數(shù)據(jù)集合的中間切斷服務(wù)器與客戶端之間的鏈路,則服務(wù)器將在由客戶端確認(rèn)的最后分組的一個(gè)滑動(dòng)窗內(nèi)停止發(fā)送分組?;瑒?dòng)窗的使用內(nèi)在地限制了通過網(wǎng)絡(luò)的數(shù)據(jù)傳輸帶寬。
圖2是可以用于本發(fā)明的優(yōu)選實(shí)施例中的服務(wù)器-客戶端系統(tǒng)的典型軟件架構(gòu)的圖示。服務(wù)器104和客戶端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允許不管是作為個(gè)人還是作為軟件例程的系統(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è)包的任一個(gè)。應(yīng)用軟件225代表設(shè)計(jì)成通過通信端口對(duì)數(shù)據(jù)作出反應(yīng)以提供用戶尋求的期望功能的軟件應(yīng)用。此層的應(yīng)用可以包括處理能由因特網(wǎng)用戶訪問的數(shù)據(jù)、視頻、圖形、照片或文本所需的應(yīng)用。
如圖3所示,TCP/IP和類似協(xié)議由包括應(yīng)用層310、傳輸層312、網(wǎng)絡(luò)層314以及鏈路層316的網(wǎng)絡(luò)的4層通信架構(gòu)300采用。每層如下所述地負(fù)責(zé)處理各種通信任務(wù)。鏈路層316(也稱作數(shù)據(jù)鏈路層或者網(wǎng)絡(luò)接口層)通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序以及計(jì)算機(jī)中的相應(yīng)網(wǎng)絡(luò)接口卡。它們一起處理在物理上與正被使用的網(wǎng)絡(luò)介質(zhì)如以太網(wǎng)電纜等進(jìn)行接口交互的所有硬件細(xì)節(jié)。
網(wǎng)絡(luò)層314(也稱作網(wǎng)際層)處理數(shù)據(jù)分組在網(wǎng)絡(luò)內(nèi)的移動(dòng)。例如,網(wǎng)絡(luò)層處理在網(wǎng)絡(luò)上傳輸?shù)母鱾€(gè)數(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之間的接口,該接口幫助在兩個(gè)主機(jī)計(jì)算機(jī)之間傳輸數(shù)據(jù)。傳輸層與如下事情有關(guān)將從應(yīng)用傳給它的數(shù)據(jù)分成適當(dāng)大小的用于下面網(wǎng)絡(luò)層的數(shù)據(jù)塊,確認(rèn)接收分組、設(shè)置超時(shí)以確定另一端確認(rèn)所發(fā)送的分組等等。在TCP/IP協(xié)議集中,存在兩個(gè)明顯不同的傳輸協(xié)議TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。TCP提供可靠性服務(wù)以保證數(shù)據(jù)在兩個(gè)主機(jī)之間正確傳輸,包括信號(hào)丟失檢測(cè)和重傳服務(wù)。相反,UDP通過僅將稱作數(shù)據(jù)報(bào)的數(shù)據(jù)分組從一個(gè)主機(jī)發(fā)送到另一個(gè)主機(jī)而不提供任何用于保證數(shù)據(jù)被正確傳輸?shù)臋C(jī)制,向應(yīng)用層提供簡單得多的服務(wù)。當(dāng)使用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)文件傳輸協(xié)議FTP;(3)用于電子郵件的簡單郵件傳輸協(xié)議SMTP;以及(4)簡單網(wǎng)絡(luò)管理協(xié)議SNMP。
諸如因特網(wǎng)的網(wǎng)絡(luò)由路由器互連,其中每個(gè)路由器一起連接兩個(gè)或更多個(gè)網(wǎng)絡(luò)。典型路由器包括具有輸入和輸出連接的專用硬件盒以及允許連接很多不同類型的物理網(wǎng)絡(luò)如以太網(wǎng)、令牌環(huán)(token ring)、點(diǎn)到點(diǎn)鏈路等的專用硬件和/或嵌入式軟件。圖4示出包括由路由器436連接到令牌環(huán)網(wǎng)434的以太網(wǎng)432的因特網(wǎng)400。雖然圖4僅示出通信中的兩個(gè)主機(jī),但是以太網(wǎng)上的任何主機(jī)可以與其上的任何主機(jī),或者令牌環(huán)網(wǎng)上的任何主機(jī)通信,反之亦然。
如圖4所示,路由器436包括網(wǎng)絡(luò)層模塊438(在本例中為IP模塊),以及用于連接到主機(jī)網(wǎng)絡(luò)的適當(dāng)網(wǎng)絡(luò)驅(qū)動(dòng)器即以太網(wǎng)驅(qū)動(dòng)器440和令牌環(huán)驅(qū)動(dòng)器442。在應(yīng)用層,網(wǎng)絡(luò)包括FTP客戶端420和FTP服務(wù)器422。大部分網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)成一端為客戶端而另一端為服務(wù)器。服務(wù)器向各個(gè)客戶端提供某種類型的服務(wù),在本例中,訪問服務(wù)器主機(jī)上的文件。每層都具有一個(gè)或多個(gè)用于與其相同層的對(duì)等體通信的協(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ò)層和鏈路層)在操作系統(tǒng)如UNIX或Windows操作系統(tǒng)的內(nèi)核中實(shí)現(xiàn)。例如,網(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ò)層提供在兩個(gè)端系統(tǒng)和其間的每一個(gè)中間系統(tǒng)上使用的中繼段到中繼段(hop-to-hop)協(xié)議(為簡潔起見,在此僅示出一個(gè)中間系統(tǒng))。例如,路由器436的IP模塊438采用IP協(xié)議448連接到兩個(gè)主機(jī)。還存在特定于連接到路由器的不同類型主機(jī)網(wǎng)絡(luò)的鏈路層協(xié)議,以在鏈路層處理網(wǎng)絡(luò)和路由器之間的通信。因此,以太網(wǎng)協(xié)議450用來處理路由器436中的以太網(wǎng)驅(qū)動(dòng)器440與以太網(wǎng)432上的主機(jī)的以太網(wǎng)驅(qū)動(dòng)器452之間的通信,而令牌環(huán)協(xié)議454用來處理路由器436的令牌環(huán)驅(qū)動(dòng)器442與令牌環(huán)網(wǎng)434上主機(jī)的令牌環(huán)驅(qū)動(dòng)器456之間的通信。
在TCP/IP協(xié)議集中,網(wǎng)絡(luò)層即IP提供不可靠服務(wù)。它將數(shù)據(jù)分組從源處移至目的地,但是沒有提供用于保證傳送的機(jī)制,甚至沒有提供用于判定是否已發(fā)生正確傳輸?shù)臋C(jī)制。TCP提供可靠性服務(wù)以保證數(shù)據(jù)在兩個(gè)主機(jī)之間被正確傳輸,該服務(wù)包括丟失檢測(cè)和重傳服務(wù)。
路由器具有兩個(gè)或更多個(gè)網(wǎng)絡(luò)接口層(因?yàn)樗B接兩個(gè)或更多個(gè)網(wǎng)絡(luò))。任何具有多個(gè)接口的系統(tǒng)都稱作是多駐留的(multi-homed)。主機(jī)也可以是多駐留的,但是除非它明確地將分組從一個(gè)接口轉(zhuǎn)發(fā)到另一個(gè)接口,否則它不稱作路由器。另外,路由器無需是僅在因特網(wǎng)內(nèi)移動(dòng)分組的專用硬件盒。大多數(shù)TCP/IP實(shí)現(xiàn)允許多駐留主機(jī)用作路由器,但是該主機(jī)需要明確配置成支持該使用。在這樣的情況下,系統(tǒng)是主機(jī)(當(dāng)正在使用諸如FTP或Telnet的應(yīng)用時(shí))或者路由器(當(dāng)它正在將分組從一個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)到另一個(gè)網(wǎng)絡(luò)時(shí))。連接網(wǎng)絡(luò)的另一種方式是采用橋接器。橋接器在鏈路層連接網(wǎng)絡(luò),而路由器在網(wǎng)絡(luò)層連接網(wǎng)絡(luò)。橋接器使得多個(gè)LAN對(duì)于高層看上去如同是單個(gè)LAN一樣。
當(dāng)應(yīng)用使用TCP/IP發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)沿著協(xié)議棧逐層向下發(fā)送,直到它作為字節(jié)流跨越網(wǎng)絡(luò)發(fā)送為止。如圖5所示,每層通過向所接收的數(shù)據(jù)前置報(bào)頭(并且有時(shí)添加報(bào)尾信息)。例如,在應(yīng)用層,應(yīng)用報(bào)頭580前置于用戶數(shù)據(jù)582以形成應(yīng)用數(shù)據(jù)584。在傳輸層,將傳輸層報(bào)頭前置于應(yīng)用數(shù)據(jù)。在圖5的情況下,傳輸層是TCP,因此將TCP報(bào)頭586前置于應(yīng)用數(shù)據(jù)584,從而形成發(fā)送到網(wǎng)絡(luò)層IP的TCP分組588。TCP報(bào)頭586包括二十字節(jié)。類似地,在網(wǎng)絡(luò)層,將網(wǎng)絡(luò)層報(bào)頭前置于傳輸層數(shù)據(jù)。在TCP/IP的情況下,將IP報(bào)頭590前置于TCP分組588以形成IP數(shù)據(jù)報(bào)592。IP報(bào)頭590也包括二十字節(jié)。最后,在鏈路層,將諸如以太網(wǎng)報(bào)頭594的介質(zhì)報(bào)頭加到從網(wǎng)絡(luò)層接收的數(shù)據(jù)以形成數(shù)據(jù)分組。在某些情況下,例如當(dāng)介質(zhì)是以太網(wǎng)時(shí),還將介質(zhì)報(bào)尾附加到數(shù)據(jù)的末尾。例如,在圖5中,將以太網(wǎng)報(bào)尾96附加到以太網(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字節(jié)等。分組的大小將受限于用來傳輸數(shù)據(jù)分組的網(wǎng)絡(luò)類型的最大傳輸單元(MTU)。例如,以太網(wǎng)的MTU為1500字節(jié)。網(wǎng)絡(luò)層自動(dòng)執(zhí)行分段(將數(shù)據(jù)報(bào)分成較小片斷),從而使每個(gè)片斷小于網(wǎng)絡(luò)的MTU。
圖6A示出TCP報(bào)頭的格式。如圖所示,TCP分組600由32位字構(gòu)成,并且包括20字節(jié)(5字)報(bào)頭。TCP報(bào)頭605的基本布局包括“源端口號(hào)”-源(和目的)端口號(hào)用于將數(shù)據(jù)流多路分解到應(yīng)用。兩個(gè)主機(jī)之間存在多個(gè)同時(shí)TCP數(shù)據(jù)流是完全有可能的。TCP數(shù)據(jù)流由四個(gè)數(shù)字所構(gòu)成的組唯一標(biāo)識(shí)。它們是兩個(gè)主機(jī)地址和兩個(gè)端口號(hào)。源端口號(hào)是要在對(duì)分組的任何回復(fù)中用作目的地的端口號(hào)。
“目的端口號(hào)”-這是遠(yuǎn)程系統(tǒng)上的“目標(biāo)”端口號(hào)。
“順序號(hào)”-這個(gè)32位數(shù)標(biāo)識(shí)分組中數(shù)據(jù)的第一字節(jié)。
“確認(rèn)號(hào)”-這個(gè)32位數(shù)是發(fā)送主機(jī)預(yù)期從遠(yuǎn)程主機(jī)接收的下一字節(jié)的字節(jié)號(hào)。遠(yuǎn)程主機(jī)可以推斷直到該數(shù)減1的所有字節(jié)均已被安全接收并且遠(yuǎn)程主機(jī)的本地副本可以被丟棄。
“報(bào)頭長度”-這個(gè)4位字段以32位字為單位指定報(bào)頭長度。顯然,該最大值是15字(60字節(jié)),其中考慮到10(40字節(jié))選項(xiàng)。
“標(biāo)志位”-這個(gè)由6位構(gòu)成的組標(biāo)識(shí)協(xié)議中的各種特殊狀態(tài)。這些位中的若干位可以同時(shí)設(shè)置。
“窗口大小”-這是根據(jù)接收主機(jī)可用于存儲(chǔ)未確認(rèn)數(shù)據(jù)的空間量的轉(zhuǎn)換。除非使用窗口比例因子選項(xiàng),這些單位是字節(jié)。最大值為65535。
“校驗(yàn)和”-這覆蓋報(bào)頭和數(shù)據(jù)。它通過將偽報(bào)頭前置于TCP分組來計(jì)算。這包括三個(gè)32位字,包含源和目的IP地址、設(shè)為0的字節(jié)、設(shè)為6的字節(jié)(IP數(shù)據(jù)報(bào)報(bào)頭中的TCP的協(xié)議號(hào))以及分組長度(以“字”為單位)。TCP分組的校驗(yàn)和字段設(shè)為零,并且將下面算法施加于視作16位(無符號(hào))字序列的前置分組。注意,在校驗(yàn)和計(jì)算中包括IP地址意味著TCP不能容易地在不同于IP的較低層協(xié)議上執(zhí)行。
“緊急指針”-這是用于發(fā)送將優(yōu)先于正常數(shù)據(jù)流的緊急數(shù)據(jù)的TCP機(jī)制的一部分。如果設(shè)置緊急標(biāo)志,則該字段表示緊急數(shù)據(jù)的最后字節(jié)在數(shù)據(jù)內(nèi)的位置。沒有指示緊急數(shù)據(jù)在何處開始的方法。
“選項(xiàng)”-存在不同RFC中所定義的多個(gè)選項(xiàng)。最有用的是最大分組大小(MSS)規(guī)范設(shè)施。
根據(jù)本優(yōu)選實(shí)施例的IP報(bào)頭610的格式如圖6B所示,并且以當(dāng)前賦值為“4”的版本號(hào)(版本)開頭。接下來四位以長字(32位)為單位表示報(bào)頭長度字段(報(bào)頭長度)。對(duì)于因特網(wǎng)上的幾乎所有數(shù)據(jù)分組,該值為“5”,這使得報(bào)頭長度為20字節(jié)。然而,如果數(shù)據(jù)報(bào)為稱作選項(xiàng)分組的特殊類型,則該數(shù)目增大。接下來八位稱作“ToS”位,表示分配給該數(shù)據(jù)報(bào)的服務(wù)類型。不同應(yīng)用具有用于從網(wǎng)絡(luò)傳送的不同服務(wù)要求,它們?cè)赥oS字段中編碼。接下來十六位字段是以字節(jié)為單位的數(shù)據(jù)報(bào)總長度,從而將IP數(shù)據(jù)報(bào)的長度限制為216;即65535字節(jié)。稱作“標(biāo)識(shí)”字段的接下來十六位唯一標(biāo)識(shí)由主機(jī)發(fā)送的每個(gè)數(shù)據(jù)報(bào)。下兩個(gè)字段為標(biāo)志(FLG)和片斷偏移字段,它們用來當(dāng)數(shù)據(jù)報(bào)通過對(duì)數(shù)據(jù)報(bào)最大大小具有限制的網(wǎng)絡(luò)時(shí)對(duì)數(shù)據(jù)報(bào)進(jìn)行分組并且重新組裝它們。
圖6B的IP報(bào)頭610所示的下一字段稱作“存活時(shí)間”或TTL字段,它負(fù)責(zé)限制數(shù)據(jù)報(bào)可以在網(wǎng)絡(luò)內(nèi)進(jìn)行中繼的中繼段(hop)數(shù)。該字段在網(wǎng)絡(luò)中的每一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)減小。如果該字段在到達(dá)期望目的地之前減小至零,則丟棄該數(shù)據(jù)報(bào)。該機(jī)制防止由于某路由選擇錯(cuò)誤而在兩個(gè)連網(wǎng)節(jié)點(diǎn)之間無限循環(huán)。下一字段為協(xié)議字段,由主機(jī)用來區(qū)別該數(shù)據(jù)報(bào)打算用于的較高層應(yīng)用。這允許在相同兩個(gè)主機(jī)之間同時(shí)存在多個(gè)應(yīng)用。報(bào)頭校驗(yàn)和是下一字段,它通常提供校驗(yàn)和生成功能,并且保證報(bào)頭的有效性。校驗(yàn)和在整個(gè)報(bào)頭的范圍內(nèi)計(jì)算,并且存儲(chǔ)在報(bào)頭中。
根據(jù)本優(yōu)選實(shí)施例,報(bào)頭校驗(yàn)和之后為稱作檢查TCP校驗(yàn)和(“CK_TCP_CKSUM”)的特殊標(biāo)志,它指示接收連網(wǎng)節(jié)點(diǎn)對(duì)整個(gè)接收分組執(zhí)行校驗(yàn)和(如在此所用的“分組校驗(yàn)和”)。根據(jù)本優(yōu)選實(shí)施例,當(dāng)網(wǎng)絡(luò)中的路由器接收到在IP報(bào)頭中設(shè)有CK_TCP_CKSUM位的分組時(shí),除了利用IP報(bào)頭610中的報(bào)頭校驗(yàn)和執(zhí)行的報(bào)頭校驗(yàn)和之外,它還將對(duì)整個(gè)TCP有效載荷600計(jì)算校驗(yàn)和。在連網(wǎng)節(jié)點(diǎn)上利用存儲(chǔ)在分組的TCP報(bào)頭605中的校驗(yàn)和值來執(zhí)行整個(gè)分組的該校驗(yàn)和。如果未設(shè)置CK_TCP_CKSUM位,則僅利用IP報(bào)頭610中的報(bào)頭校驗(yàn)和執(zhí)行報(bào)頭校驗(yàn)和。
該字段之后為兩個(gè)地址源網(wǎng)絡(luò)地址和目的網(wǎng)絡(luò)地址。每個(gè)主機(jī)分配有唯一地址,這允許網(wǎng)絡(luò)將數(shù)據(jù)報(bào)流從一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)到另一個(gè)節(jié)點(diǎn)。
當(dāng)客戶端檢測(cè)到特定數(shù)據(jù)分組從數(shù)據(jù)傳輸流中丟失時(shí),客戶端將通過在確認(rèn)幀中發(fā)送丟失分組的第一字節(jié)的順序號(hào)來請(qǐng)求服務(wù)器重傳丟失分組。如圖6C所示,TCP確認(rèn)幀622的格式包括介質(zhì)報(bào)頭624、協(xié)議報(bào)頭626、接收順序號(hào)字段628以及發(fā)送順序號(hào)字段630。介質(zhì)報(bào)頭624將特定于網(wǎng)絡(luò)類型,例如以太網(wǎng)的以太網(wǎng)報(bào)頭等。協(xié)議報(bào)頭626將依賴于所使用的傳輸和網(wǎng)絡(luò)層協(xié)議如TCP/IP、IPX/SPX、Netbios等等。接收順序號(hào)字段628提供由計(jì)算機(jī)可靠接收的最后一個(gè)順序號(hào)的標(biāo)識(shí)符。發(fā)送順序號(hào)630對(duì)應(yīng)于消息的相對(duì)順序號(hào)。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,校驗(yàn)和失敗(CKSUM_FAIL)標(biāo)志632提供當(dāng)對(duì)接收分組的TCP校驗(yàn)和失敗時(shí)可以由接收主機(jī)設(shè)置的專用標(biāo)志。當(dāng)確定接收分組包含受損數(shù)據(jù)時(shí),接收主機(jī)將在返回給服務(wù)器主機(jī)的確認(rèn)幀622中設(shè)置校驗(yàn)和識(shí)別標(biāo)志632。
在圖1的簡化因特網(wǎng)圖示中,數(shù)據(jù)報(bào)以自動(dòng)方式從源轉(zhuǎn)發(fā)到目的地。從發(fā)送主機(jī)的角度來看,它僅知道目的地址,而不知道數(shù)據(jù)報(bào)到達(dá)最終目的地的路徑。對(duì)于IP數(shù)據(jù)報(bào)的自動(dòng)傳送,提供了在因特網(wǎng)內(nèi)部的中間連網(wǎng)節(jié)點(diǎn)上運(yùn)行的IP路由選擇協(xié)議的和諧共存,IP路由選擇協(xié)議是通過稱作IP路由選擇PDU的路由選擇數(shù)據(jù)報(bào)與其他網(wǎng)際互連節(jié)點(diǎn)共享連網(wǎng)地址信息的每個(gè)網(wǎng)際互連節(jié)點(diǎn)上的智能機(jī)制。每個(gè)網(wǎng)際互連節(jié)點(diǎn)上的IP路由選擇協(xié)議創(chuàng)建并維護(hù)允許它將進(jìn)入數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到朝向其最終目的地的路線上的下一個(gè)網(wǎng)際互連節(jié)點(diǎn)的數(shù)據(jù)庫。
圖7給出諸如因特網(wǎng)的網(wǎng)絡(luò)的圖示。在圖7的例子中,示出了十一個(gè)主機(jī)連接到十三個(gè)路由器的網(wǎng)絡(luò),這些主機(jī)在地理位置上是獨(dú)立的。稱作路由器的每個(gè)連網(wǎng)節(jié)點(diǎn)具有與全部連網(wǎng)節(jié)點(diǎn)的一個(gè)子集的連接?;ミB可能不是完全的;也就是,每個(gè)路由器可能不直接連接到網(wǎng)絡(luò)中的每一個(gè)其他路由器。作為例子,假定主機(jī)1希望將數(shù)據(jù)報(bào)發(fā)送到主機(jī)9。主機(jī)1可以通過將數(shù)據(jù)報(bào)發(fā)送到路由器1來以幾種方法實(shí)現(xiàn)這一點(diǎn)。然后路由器1可以將數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到路由器2,路由器2將該數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到最終目的路由器9,路由器9將其轉(zhuǎn)發(fā)到主機(jī)9。主機(jī)1也可能發(fā)送數(shù)據(jù)報(bào)到路由器1,然后路由器1將該數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到路由器11,路由器11將其轉(zhuǎn)發(fā)到路由器10,路由器10將其轉(zhuǎn)發(fā)到路由器8,最終路由器8可以將該數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到路由器9,路由器9又將其發(fā)送到主機(jī)9。
很多共存IP路由選擇協(xié)議共同為路由器1提供信息以確定它將數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到哪個(gè)路由器(上面例子中的路由器2或路由器11,并且在因特網(wǎng)的每一個(gè)網(wǎng)際互連節(jié)點(diǎn)提出相同的問題)以創(chuàng)建非完全互連因特網(wǎng)中的網(wǎng)絡(luò)。每個(gè)路由器創(chuàng)建它通過網(wǎng)際路由選擇協(xié)議從其他路由器得知的目的網(wǎng)絡(luò)地址的分層拓?fù)浣Y(jié)構(gòu)的數(shù)據(jù)庫,該數(shù)據(jù)庫稱作路由選擇表。根據(jù)路由選擇表,每個(gè)路由器創(chuàng)建稱作“轉(zhuǎn)發(fā)表”的另一個(gè)數(shù)據(jù)庫,它將目的網(wǎng)絡(luò)地址映射到其接口之一;意味著,如果路由器經(jīng)由直接連接的接口從主機(jī)或者其他路由器獲得數(shù)據(jù)報(bào),則通過檢查報(bào)頭中的目的網(wǎng)絡(luò)地址并且將它應(yīng)用于路由選擇表,路由器可以確定應(yīng)該使用本地接口或端口中的哪一個(gè)來轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)。使用這兩個(gè)表即路由選擇表和轉(zhuǎn)發(fā)表,通過檢查數(shù)據(jù)報(bào)IP報(bào)頭并且查詢轉(zhuǎn)發(fā)表以查找要向其發(fā)送數(shù)據(jù)報(bào)的下一個(gè)接口,進(jìn)入網(wǎng)絡(luò)的數(shù)據(jù)報(bào)因此可以轉(zhuǎn)發(fā)到最終目的地。存在兩個(gè)非常流行的IP路由選擇協(xié)議BGP和OSPF,它們包括IPv6和MPLS。IPv6是解決地址空間限制的提案。另一方面,MPLS是流線化IP數(shù)據(jù)報(bào)的轉(zhuǎn)發(fā)過程的提案。這兩個(gè)提案的共同主題之一是丟棄IP報(bào)頭層的任何校驗(yàn)和字段。然而,本發(fā)明的基礎(chǔ)是發(fā)現(xiàn)可以通過如下所述增強(qiáng)校驗(yàn)和功能而獲得的顯著優(yōu)點(diǎn)。
圖8示出在IP連網(wǎng)節(jié)點(diǎn)中接受和轉(zhuǎn)發(fā)IP數(shù)據(jù)報(bào)所需的路由器中的硬件。路由器必須首先處理進(jìn)入分組的IP報(bào)頭。數(shù)據(jù)報(bào)的外出接口根據(jù)進(jìn)入IP數(shù)據(jù)報(bào)中的進(jìn)入目的地址來確定。一旦報(bào)頭得到驗(yàn)證,則數(shù)據(jù)發(fā)送到連網(wǎng)節(jié)點(diǎn)中的另一個(gè)端口或者連網(wǎng)節(jié)點(diǎn)內(nèi)的路由選擇引擎。路由器連網(wǎng)節(jié)點(diǎn)的典型架構(gòu)采用連接到連網(wǎng)節(jié)點(diǎn)的多個(gè)接口的路由選擇引擎800來實(shí)現(xiàn)。發(fā)往路由選擇引擎800的所有IP路由選擇協(xié)議數(shù)據(jù)通過所有進(jìn)入端口轉(zhuǎn)發(fā)到路由選擇引擎800。路由選擇引擎800檢查路由選擇協(xié)議PDU,并且得知各個(gè)網(wǎng)絡(luò)的目的網(wǎng)絡(luò)地址,然后計(jì)算網(wǎng)絡(luò)地址的外出接口號(hào)。目的網(wǎng)絡(luò)地址和外出接口號(hào)形成一個(gè)條目到轉(zhuǎn)發(fā)表中(如圖9A中的轉(zhuǎn)發(fā)表904的例子所示)。然后,路由選擇引擎800將轉(zhuǎn)發(fā)表或其更新發(fā)送到每個(gè)進(jìn)入接口,從而指示每個(gè)進(jìn)入報(bào)頭處理單元(圖8中的單元801-804)如何確定每個(gè)進(jìn)入數(shù)據(jù)報(bào)的出去接口。然后,每個(gè)進(jìn)入報(bào)頭處理單元將驗(yàn)證每個(gè)數(shù)據(jù)報(bào),檢查目的地字段,然后在轉(zhuǎn)發(fā)表中對(duì)目的地進(jìn)行索引以確定數(shù)據(jù)報(bào)的外出端口號(hào)。
現(xiàn)在使用圖8的高層連網(wǎng)節(jié)點(diǎn)圖來詳細(xì)描述一個(gè)示例性過程。假定IP路由選擇協(xié)議的某些組合,分別附于單元801、802、803和804的另一側(cè)上的路由器分別告知網(wǎng)絡(luò)地址a、b和c,網(wǎng)絡(luò)地址c、d和e,網(wǎng)絡(luò)地址a、f和g以及最后是網(wǎng)絡(luò)地址h、i和j的可到達(dá)性。在該簡單例子中,路由選擇引擎800知道以輸出端口810-840表示的多個(gè)出去或者輸出端口。路由選擇引擎800將根據(jù)很多選項(xiàng)之一如成本、中繼段計(jì)數(shù)等決定最佳出去端口以例如到達(dá)目的網(wǎng)絡(luò)地址‘a(chǎn)’和目的網(wǎng)絡(luò)地址‘c’。對(duì)于本例,假定路由選擇引擎800選擇與端口810的接口來轉(zhuǎn)發(fā)所有發(fā)往網(wǎng)絡(luò)地址‘a(chǎn)’的數(shù)據(jù)報(bào),并且它選擇端口820來轉(zhuǎn)發(fā)所有發(fā)往網(wǎng)絡(luò)地址‘c’的數(shù)據(jù)報(bào),則路由選擇引擎800將在其上創(chuàng)建圖9所示的轉(zhuǎn)發(fā)表904。實(shí)際上,骨干路由器上的轉(zhuǎn)發(fā)表可以擴(kuò)展至數(shù)萬條目。圖9A中的每個(gè)網(wǎng)絡(luò)地址作為以四個(gè)字節(jié)表示實(shí)際網(wǎng)絡(luò)地址的四個(gè)數(shù)字列在括號(hào)內(nèi)。然后,路由選擇引擎800將轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)到每個(gè)輸入或進(jìn)入數(shù)據(jù)端口,以允許報(bào)頭處理單元801-804檢查所有進(jìn)入數(shù)據(jù)報(bào),并且匹配轉(zhuǎn)發(fā)表中的目的地址,從而確定相應(yīng)適當(dāng)?shù)妮敵龌蛲獬鼋涌诙丝?10、820、830、840。然后,通過交換機(jī)805將該數(shù)據(jù)報(bào)發(fā)送到輸出端口。
回到圖7,現(xiàn)在提供本優(yōu)選實(shí)施例如何提供導(dǎo)致高數(shù)據(jù)訛誤的網(wǎng)絡(luò)內(nèi)數(shù)據(jù)路徑的快速檢測(cè)和避開的例子。在本例中,網(wǎng)絡(luò)700內(nèi)的鏈路2正在拾取對(duì)在該鏈路上穿過的分組導(dǎo)致數(shù)據(jù)訛誤的噪聲。因此,當(dāng)主機(jī)5向主機(jī)8發(fā)起數(shù)據(jù)通信時(shí),數(shù)據(jù)流有可能通過路徑鏈路1-鏈路4拾取鏈路2中的噪聲。如果受損數(shù)據(jù)分組允許從主機(jī)5穿過網(wǎng)絡(luò)700至主機(jī)8,則主機(jī)8將對(duì)接收分組執(zhí)行校驗(yàn)和,并且確定一些數(shù)據(jù)分組具有受損數(shù)據(jù)。然而,由于主機(jī)5和主機(jī)8沒有足夠信息來確定受損數(shù)據(jù)分組通過網(wǎng)絡(luò)700所采取的路徑,因此它們不能明確辨別導(dǎo)致訛誤的鏈路,并且指示網(wǎng)絡(luò)700避開訛誤鏈路。然而,根據(jù)本優(yōu)選實(shí)施例,主機(jī)8發(fā)送設(shè)有校驗(yàn)和失敗位632的確認(rèn)分組622,從而表示所接收的順序號(hào)分組具有數(shù)據(jù)訛誤并且請(qǐng)求網(wǎng)絡(luò)實(shí)現(xiàn)本優(yōu)選實(shí)施例的快速檢測(cè)和訛誤鏈路避開例程。
根據(jù)本優(yōu)選實(shí)施例,當(dāng)主機(jī)5接收到設(shè)有校驗(yàn)和失敗位632(CKSUM_FAIL)的確認(rèn)幀622時(shí),主機(jī)5將開始在其與主機(jī)8正在進(jìn)行的當(dāng)前通信會(huì)話內(nèi)傳輸在其IP報(bào)頭中設(shè)有檢查-TCP-校驗(yàn)和(CK_TCP_CKSUM)的所有分組,從而請(qǐng)求所有接收路由器對(duì)接收分組執(zhí)行分組校驗(yàn)和。當(dāng)接收到設(shè)有檢查-TCP-校驗(yàn)和位的分組時(shí),主機(jī)5將對(duì)整個(gè)分組執(zhí)行完整的校驗(yàn)和,而不是僅僅對(duì)IP報(bào)頭執(zhí)行校驗(yàn)和。在一個(gè)優(yōu)選實(shí)施例中,分組校驗(yàn)和通過執(zhí)行如結(jié)合IP報(bào)頭610和TCP報(bào)頭605所述的IP報(bào)頭校驗(yàn)和與TCP有效載荷校驗(yàn)和來執(zhí)行。在另一個(gè)替換實(shí)施例中,CK_TCP_CKSUM位擴(kuò)展至為包括TCP/IP有效載荷在內(nèi)的整個(gè)分組提供校驗(yàn)和值的字段,并且對(duì)該組合值執(zhí)行校驗(yàn)和。
假定鏈路1沒有引入錯(cuò)誤,則由路由器5執(zhí)行的分組校驗(yàn)和將確認(rèn)分組是良好的,并且將允許路由器5繼續(xù)根據(jù)目的端口對(duì)分組進(jìn)行路由選擇。然后,路由器5中的路由選擇和轉(zhuǎn)發(fā)表將引導(dǎo)鏈路2上發(fā)往主機(jī)8的途中的數(shù)據(jù)分組。當(dāng)接收到數(shù)據(jù)分組時(shí),路由器13將檢測(cè)到檢查-TCP-校驗(yàn)和位已被設(shè)置,并且將對(duì)整個(gè)分組執(zhí)行分組校驗(yàn)和。由于鏈路2一直在引入噪聲,因此由路由器13執(zhí)行的分組校驗(yàn)和將失敗,從而表示主機(jī)5與路由器13之間的鏈路是壞的。然后,路由器13將丟棄受損分組,并且更新維護(hù)在設(shè)定周期內(nèi)被檢測(cè)為訛誤的分組數(shù)的計(jì)數(shù)的寄存器。
如圖9B所示,根據(jù)一個(gè)優(yōu)選實(shí)施例,路由器存儲(chǔ)器900內(nèi)的寄存器920記錄由其路由器接收的分組的總數(shù),并且寄存器910記錄受損接收分組數(shù)。寄存器910包括寄存器912,包含在端口1(CP_PORTA)上檢測(cè)的受損分組數(shù)的值;寄存器914,包含在端口2(CP_PORTB)上檢測(cè)的受損分組數(shù)的值;寄存器916,包含在端口3(CP_PORTC)上檢測(cè)的受損分組數(shù)的值;以及寄存器918,包含在端口4(CP_PORTD)上檢測(cè)的受損分組數(shù)的值。寄存器920包括寄存器922,包含在端口1(TP_PORT1)上接收的數(shù)據(jù)分組總數(shù)的值;寄存器924,包含在端口2(TP_PORT2)上接收的數(shù)據(jù)分組總數(shù)的值;寄存器926,包含在端口3(TP_PORT3)上接收的數(shù)據(jù)分組總數(shù)的值;以及寄存器928,包含在端口4(TP_PORT4)上接收的數(shù)據(jù)分組總數(shù)的值。寄存器910和920周期性地例如每五分鐘復(fù)位至“0”。
當(dāng)路由器在其端口之一上接收到分組時(shí),對(duì)與該端口相對(duì)應(yīng)的寄存器920中的值增1,并且如果檢測(cè)到該分組受損,則對(duì)與該端口相對(duì)應(yīng)的寄存器910中的值增1。因此,例如,如果路由器13在其輸入端口3上連接到鏈路2,則每次在端口3上接收到數(shù)據(jù)分組時(shí),存儲(chǔ)在寄存器926中的變量將增“1”,另外,每次在端口3上接收到受損分組時(shí),存儲(chǔ)在寄存器916中的變量將增“1”。
路由器連續(xù)監(jiān)測(cè)特定端口上的受損分組與在該端口上接收的分組總數(shù)之比(即CP_PORT_/TP_PORT)。如果特定端口的比率超過由路由器的管理策略預(yù)設(shè)的“訛誤閾值”,則指示該鏈路是訛誤的。在一個(gè)優(yōu)選實(shí)施例中,如果在給定五分組間隔內(nèi)的受損與接收分組之比超過百分之二十(20%)閾值,則認(rèn)為該鏈路是壞的。如果特定端口的受損與接收分組之比不超過預(yù)設(shè)閾值,則路由器將繼續(xù)如同平常操作,并且繼續(xù)使用連接到該端口的鏈路。
因此,根據(jù)本優(yōu)選實(shí)施例,如果特定端口的受損與接收分組之比超過訛誤閾值,則路由器認(rèn)為相關(guān)鏈路正在導(dǎo)致數(shù)據(jù)訛誤,并且將更新其路由選擇表以從路由選擇中排除該鏈路。根據(jù)路由選擇協(xié)議的需要,路由器還將路由選擇更新發(fā)到網(wǎng)絡(luò)中的其他路由器,從而表示該鏈路是訛誤的并且應(yīng)該被避開。在一個(gè)優(yōu)選實(shí)施例中,利用由OSPF(公開最短路徑最先)協(xié)議提供的鏈路狀態(tài)告知(LSA)來向耦合到端口1-4的其他路由器提供路由選擇更新,并且通知避開所識(shí)別的受損鏈路。OSPF是根據(jù)最短路徑最先或者鏈路狀態(tài)算法為IP網(wǎng)絡(luò)開發(fā)的內(nèi)部網(wǎng)關(guān)路由選擇協(xié)議。路由器使用鏈路狀態(tài)算法以根據(jù)由每個(gè)節(jié)點(diǎn)構(gòu)成的因特網(wǎng)的拓?fù)浣Y(jié)構(gòu)計(jì)算到每個(gè)節(jié)點(diǎn)的最低路徑來將路由選擇信息發(fā)送到因特網(wǎng)絡(luò)中的所有節(jié)點(diǎn)。每個(gè)路由器發(fā)送描述其自己鏈路的狀態(tài)的路由選擇表的那一部分,并且它還發(fā)送完整的路由選擇結(jié)構(gòu)(拓?fù)浣Y(jié)構(gòu))。
回到圖7的例子,在根據(jù)本發(fā)明判定鏈路2受損之前,從主機(jī)5到主機(jī)8的重傳速率將由于很多受損分組沿著鏈路1-2-3-4的路徑的所需快速重傳而看到較大的增長。一旦根據(jù)本發(fā)明判定鏈路2正在導(dǎo)致訛誤并且應(yīng)被避開,路由器13就向網(wǎng)絡(luò)發(fā)出路由選擇更新,這將導(dǎo)致路由器5在鏈路5-6-7-8-4上轉(zhuǎn)發(fā)數(shù)據(jù)分組以到達(dá)主機(jī)8,從而避開受損鏈路2。通過鏈路1-5-6-7-8-4的新路徑,主機(jī)5將看到丟失或受損數(shù)據(jù)分組的重傳速率對(duì)于主機(jī)5與主機(jī)8之間的連接會(huì)話開始顯著下降。因此,當(dāng)重傳速率降至由管理策略設(shè)置的預(yù)定級(jí)別之下時(shí),主機(jī)5則可以通過本優(yōu)選實(shí)施例的過程認(rèn)為在網(wǎng)絡(luò)700內(nèi)檢測(cè)到壞鏈路并且避開了它,因此將停止在發(fā)送到主機(jī)8的數(shù)據(jù)分組的IP報(bào)頭中設(shè)置CK_TCP_CKSUM選項(xiàng)。
應(yīng)該理解,本優(yōu)選實(shí)施例比當(dāng)前路由選擇算法和網(wǎng)絡(luò)提供較大的優(yōu)點(diǎn)。首先,網(wǎng)絡(luò)堵塞得到顯著的緩解,因?yàn)楫?dāng)檢測(cè)到訛誤時(shí)在路由器丟棄受損分組,從而消除了受損分組自始至終到接收客戶端主機(jī)的傳播。第二,通過對(duì)目標(biāo)特定數(shù)據(jù)分組提供一種機(jī)制來進(jìn)行分組校驗(yàn)和計(jì)算,增大了在鏈路上進(jìn)行錯(cuò)誤檢測(cè)的概率,從而路由選擇協(xié)議更快地對(duì)潛在鏈路故障作出反應(yīng)。
現(xiàn)在參照?qǐng)D10,示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的在客戶端-服務(wù)器系統(tǒng)中執(zhí)行的用于指示網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)訛誤的過程。當(dāng)客戶端在網(wǎng)絡(luò)連接上接收數(shù)據(jù)分組時(shí),過程1000開始于步驟1005。在步驟1010,客戶端通過對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和來判定接收數(shù)據(jù)分組是否是訛誤的。如果不是,則過程傳到步驟1015,該步驟表示客戶端通過發(fā)送對(duì)CKSUM_FAIL標(biāo)志進(jìn)行了復(fù)位的分組確認(rèn)幀來響應(yīng)數(shù)據(jù)分組的接收,從而表示接收數(shù)據(jù)分組在客戶端通過了校驗(yàn)和測(cè)試。從步驟1015,該過程結(jié)束于步驟1022。回到判定塊1010,如果接收數(shù)據(jù)分組被判定為受損,則過程傳到步驟1020,其中客戶端發(fā)送設(shè)有CKSUM_FAIL標(biāo)志的接收分組確認(rèn)幀,從而表示接收分組沒有通過校驗(yàn)和測(cè)試,并且數(shù)據(jù)分組是訛誤的。從步驟1020,過程結(jié)束于步驟1022。
現(xiàn)在參照?qǐng)D11,示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的在客戶端-服務(wù)器系統(tǒng)中執(zhí)行的用于指示網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)訛誤的過程。當(dāng)客戶端接收到設(shè)有CKSUM_FAIL標(biāo)志的分組確認(rèn)幀時(shí),過程1100開始于步驟1105。該過程傳到步驟1130,其中服務(wù)器通過將在每個(gè)該數(shù)據(jù)分組的IP報(bào)頭中設(shè)有CK_TCP_CKSUM標(biāo)志的所有隨后數(shù)據(jù)分組發(fā)送到客戶端,從而當(dāng)接收時(shí),請(qǐng)求網(wǎng)絡(luò)中接收該數(shù)據(jù)分組的每個(gè)路由器對(duì)整個(gè)分組執(zhí)行分組校驗(yàn)和。然后,過程傳到步驟1135,其中作為用于將丟失或訛誤數(shù)據(jù)分組傳送到客戶端的TCP快速重傳算法的結(jié)果,服務(wù)器存儲(chǔ)發(fā)送主機(jī)正被要求將數(shù)據(jù)分組重新發(fā)送到客戶端主機(jī)的比率(“當(dāng)前重傳速率”)。然后,過程傳到判定塊1140,其中服務(wù)器判定客戶端的當(dāng)前重傳速率是否已降至存儲(chǔ)在服務(wù)器中的預(yù)定閾值重傳速率之下。如果不是,則過程返回到步驟1130,其中將最近當(dāng)前重傳速率存儲(chǔ)在服務(wù)器中。如果步驟1140中的判定表示當(dāng)前重傳速率降至閾值重傳速率之下,則認(rèn)為當(dāng)前重傳速率中的下降是根據(jù)本發(fā)明由網(wǎng)絡(luò)內(nèi)的路由器檢測(cè)和避開服務(wù)器主機(jī)與客戶端主機(jī)之間的路徑內(nèi)的訛誤鏈路的結(jié)果,并且過程傳到步驟1045,其中服務(wù)器將對(duì)CK_TCP_CKSUM進(jìn)行了復(fù)位的隨后分組發(fā)送到客戶端,從而不請(qǐng)求網(wǎng)絡(luò)中接收到該數(shù)據(jù)分組的路由器對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行分組校驗(yàn)和。
現(xiàn)在參照?qǐng)D12,示出了根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的在網(wǎng)絡(luò)路由器中執(zhí)行的用于提供快速檢測(cè)和避開網(wǎng)絡(luò)內(nèi)導(dǎo)致高數(shù)據(jù)訛誤的數(shù)據(jù)路徑的過程。過程1200開始于步驟1205,并且傳到步驟1210,其中網(wǎng)絡(luò)內(nèi)的路由器在給定接口上接收網(wǎng)絡(luò)連接上的數(shù)據(jù)分組,并且增加在該接口(TP_PORT_)上接收的總分組數(shù)的存儲(chǔ)值(存儲(chǔ)在寄存器920中)。然后,過程傳到判定塊1215,其中判定是否設(shè)置了接收數(shù)據(jù)分組的IP報(bào)頭中的CK_TCP_CKSUM標(biāo)志。如果不是,則過程傳到步驟1220,其中路由器對(duì)分組的IP報(bào)頭執(zhí)行校驗(yàn)和。然后,過程傳到判定塊1225,其中判定校驗(yàn)和測(cè)試是否通過。如果不是,則過程傳到步驟1230,其中路由器丟棄分組,然后過程結(jié)束于步驟1235。如果步驟1225上的判定是校驗(yàn)和通過,則過程傳到步驟1240,其中數(shù)據(jù)分組通過網(wǎng)絡(luò)朝向客戶端轉(zhuǎn)發(fā)到路徑中的下一個(gè)路由器(下一個(gè)中繼段)。其后,過程結(jié)束于步驟1235。
回到判定塊1215,如果在通過網(wǎng)絡(luò)接收的數(shù)據(jù)分組中設(shè)置了CK_TCP_CKSUM,則過程傳到步驟1245,其中路由器對(duì)所接收的整個(gè)數(shù)據(jù)分組執(zhí)行分組校驗(yàn)和。然后,過程傳到判定塊1250,其中判定整個(gè)數(shù)據(jù)分組的分組校驗(yàn)和是否通過。如果是,則過程回傳到步驟1240,其中數(shù)據(jù)分組通過網(wǎng)絡(luò)朝向客戶端轉(zhuǎn)發(fā)到路徑中的下一個(gè)中繼段。如果步驟1250的判定是分組校驗(yàn)和未通過,則過程傳到步驟1255,其中路由器丟棄接收分組。然后,過程傳到步驟1260,其中路由器增加在端口(C_PORT_)上接收的檢測(cè)受損分組數(shù)的分類值(存儲(chǔ)在寄存器910中)。其后,過程傳到判定塊1265,其中判定C_PORT_的值是否超過系統(tǒng)的訛誤閾值。在一個(gè)優(yōu)選實(shí)施例中,訛誤閾值是一個(gè)百分比,并且步驟1265的判定是接收受損分組數(shù)與接收總分組數(shù)的百分比(C_PORT_/TP_PORT)是否大于訛誤閾值百分比。如果步驟1270的判定是否定的,則過程結(jié)束于步驟1235。如果步驟1265的判定是肯定的,則過程傳到步驟1270,其中路由器更新其轉(zhuǎn)發(fā)表以避開該端口上的鏈路,并且將表示鏈路訛誤的路由選擇更新傳輸?shù)骄W(wǎng)絡(luò),從而更新訛誤鏈路上的所有網(wǎng)絡(luò)路由器。其后,過程結(jié)束于步驟1235。
盡管本發(fā)明是參照其優(yōu)選實(shí)施例來具體描述的,但本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,在不脫離本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)的各種修改。例如,本發(fā)明可以利用計(jì)算機(jī)程序軟件、固件或硬件的任意組合來實(shí)現(xiàn)。作為實(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)品。該包含計(jì)算機(jī)程序代碼的產(chǎn)品通過直接從存儲(chǔ)裝置執(zhí)行代碼,通過將代碼從存儲(chǔ)裝置復(fù)制到諸如硬盤、RAM等的另一個(gè)存儲(chǔ)裝置中,或者通過傳輸該代碼以進(jìn)行遠(yuǎn)程執(zhí)行來使用。用于實(shí)施本發(fā)明的方法可以通過組合一個(gè)或多個(gè)包含該代碼的機(jī)器可讀存儲(chǔ)裝置與用來執(zhí)行該代碼的適當(dāng)標(biāo)準(zhǔn)計(jì)算機(jī)硬件來實(shí)施。用于實(shí)施本發(fā)明的設(shè)備可以是一個(gè)或多個(gè)包含或具有對(duì)根據(jù)本發(fā)明編碼的計(jì)算機(jī)程序的網(wǎng)絡(luò)訪問的計(jì)算機(jī)和存儲(chǔ)系統(tǒng)。
權(quán)利要求
1.一種IP網(wǎng)絡(luò)中用于檢測(cè)和避開導(dǎo)致數(shù)據(jù)訛誤的數(shù)據(jù)鏈路的方法,所述方法包括以下步驟在IP網(wǎng)絡(luò)內(nèi)的路由器中接收數(shù)據(jù)鏈路上的數(shù)據(jù)分組,其中,數(shù)據(jù)分組來源于一個(gè)發(fā)送者,發(fā)往一個(gè)接收者,并且包含要對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和的指示;響應(yīng)接收到包含要對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和的指示的數(shù)據(jù)分組,對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和;響應(yīng)整個(gè)數(shù)據(jù)分組的校驗(yàn)和失敗,修改表示在校驗(yàn)和失敗的數(shù)據(jù)鏈路上接收的數(shù)據(jù)分組數(shù)的值;以及如果該值超過路由器的訛誤閾值,則執(zhí)行路由選擇更新以避免在該數(shù)據(jù)鏈路上傳輸數(shù)據(jù)分組。
2.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟將指示接收數(shù)據(jù)分組訛誤的分組確認(rèn)信息從接收者發(fā)送到發(fā)送者。
3.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟在從接收者接收到指示接收數(shù)據(jù)分組訛誤的分組確認(rèn)信息之后,將數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者,其中該數(shù)據(jù)分組包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示。
4.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟確定從發(fā)送者到接收者的數(shù)據(jù)分組的重傳速率,并且將數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者,其中如果重傳速率低于預(yù)定閾值,則數(shù)據(jù)分組不包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示。
5.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟(a)從接收者接收指示接收數(shù)據(jù)分組訛誤的分組確認(rèn)信息;(b)在接收到分組確認(rèn)信息之后,將包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示的數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者;(c)確定從發(fā)送者到接收者的數(shù)據(jù)分組的重傳速率;以及(d)執(zhí)行步驟(b),直到在步驟(c)判定重傳速率小于預(yù)定閾值,然后執(zhí)行步驟(e);(e)將不包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示的數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者。
6.根據(jù)權(quán)利要求1所述的方法,其中,整個(gè)數(shù)據(jù)分組包括數(shù)據(jù)分組的IP報(bào)頭、TCP報(bào)頭和數(shù)據(jù)有效載荷。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述值存儲(chǔ)在路由器的寄存器中。
8.根據(jù)權(quán)利要求1所述的方法,其中,所述指示是設(shè)在數(shù)據(jù)分組的IP報(bào)頭中的標(biāo)志。
9.根據(jù)權(quán)利要求1所述的方法,其中,遵循OSPF執(zhí)行路由選擇更新。
10.根據(jù)權(quán)利要求1所述的方法,其中IP網(wǎng)絡(luò)為TCP/IP網(wǎng)絡(luò),并且數(shù)據(jù)分組來源于TCP發(fā)送者,發(fā)往TCP接收者。
11.一種用于在IP網(wǎng)絡(luò)中檢測(cè)和避開導(dǎo)致數(shù)據(jù)訛誤的數(shù)據(jù)鏈路的系統(tǒng),所述系統(tǒng)包括用于在IP網(wǎng)絡(luò)內(nèi)的路由器接收數(shù)據(jù)鏈路上的數(shù)據(jù)分組的裝置,其中,數(shù)據(jù)分組來源于一個(gè)發(fā)送者,發(fā)往一個(gè)接收者,并且包含要對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和的指示;用于響應(yīng)接收到包含要對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和的指示的數(shù)據(jù)分組,對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和的裝置;用于響應(yīng)整個(gè)數(shù)據(jù)分組的校驗(yàn)和失敗,修改表示在校驗(yàn)和失敗的數(shù)據(jù)鏈路上接收的數(shù)據(jù)分組數(shù)的值的裝置;以及用于如果該值超過路由器的訛誤閾值,則執(zhí)行路由選擇更新以避免在該數(shù)據(jù)鏈路上傳輸數(shù)據(jù)分組的裝置。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括用于將指示接收數(shù)據(jù)分組訛誤的分組確認(rèn)信息從接收者發(fā)送到發(fā)送者的裝置。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括用于在從接收者接收到指示接收數(shù)據(jù)分組訛誤的分組確認(rèn)信息之后,將數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者的裝置,其中該數(shù)據(jù)分組包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括用于確定從發(fā)送者到接收者的數(shù)據(jù)分組的重傳速率,并且將數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者的裝置,其中如果重傳速率低于預(yù)定閾值,則數(shù)據(jù)分組不包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),述包括用于執(zhí)行以下步驟的裝置(a)從接收者接收指示接收數(shù)據(jù)分組訛誤的分組確認(rèn)信息;(b)在接收到分組確認(rèn)信息之后,將包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示的數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者;(c)確定從發(fā)送者到接收者的數(shù)據(jù)分組的重傳速率;以及(d)執(zhí)行步驟(b),直到在步驟(c)判定重傳速率小于預(yù)定閾值,然后執(zhí)行步驟(e);(e)將不包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示的數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者。
16.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,整個(gè)數(shù)據(jù)分組包括數(shù)據(jù)分組的IP報(bào)頭、TCP報(bào)頭和數(shù)據(jù)有效載荷。
17.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述值存儲(chǔ)在路由器的寄存器中。
18.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述指示是設(shè)在數(shù)據(jù)分組的IP報(bào)頭中的標(biāo)志。
19.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,遵循OSPF執(zhí)行路由選擇更新。
20.根據(jù)權(quán)利要求11所述的系統(tǒng),其中IP網(wǎng)絡(luò)為TCP/IP網(wǎng)絡(luò),并且數(shù)據(jù)分組來源于TCP發(fā)送者,發(fā)往TCP接收者。
21.一種用于在IP網(wǎng)絡(luò)中檢測(cè)和避開導(dǎo)致數(shù)據(jù)訛誤的數(shù)據(jù)鏈路的產(chǎn)品,包括其中嵌入有使數(shù)據(jù)處理系統(tǒng)中的控制電路執(zhí)行以下步驟的程序邏輯的機(jī)器可讀介質(zhì)在IP網(wǎng)絡(luò)內(nèi)的路由器中接收數(shù)據(jù)鏈路上的數(shù)據(jù)分組,其中,數(shù)據(jù)分組來源于一個(gè)發(fā)送者,發(fā)往一個(gè)接收者,并且包含要對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和的指示;響應(yīng)接收到包含要對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和的指示的數(shù)據(jù)分組,對(duì)整個(gè)數(shù)據(jù)分組執(zhí)行校驗(yàn)和;響應(yīng)整個(gè)數(shù)據(jù)分組的校驗(yàn)和失敗,修改表示在校驗(yàn)和失敗的數(shù)據(jù)鏈路上接收的數(shù)據(jù)分組數(shù)的值;以及如果該值超過路由器的訛誤閾值,則執(zhí)行路由選擇更新以避免在該數(shù)據(jù)鏈路上傳輸數(shù)據(jù)分組。
22.根據(jù)權(quán)利要求21所述的產(chǎn)品,還包括以下步驟將指示接收數(shù)據(jù)分組訛誤的分組確認(rèn)信息從接收者發(fā)送到發(fā)送者。
23.根據(jù)權(quán)利要求21所述的產(chǎn)品,還包括以下步驟在從接收者接收到指示接收數(shù)據(jù)分組訛誤的分組確認(rèn)信息之后,將數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者,其中該數(shù)據(jù)分組包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示。
24.根據(jù)權(quán)利要求21所述的產(chǎn)品,還包括以下步驟確定從發(fā)送者到接收者的數(shù)據(jù)分組的重傳速率,并且將數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者,其中如果重傳速率低于預(yù)定閾值,則數(shù)據(jù)分組不包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示。
25.根據(jù)權(quán)利要求21所述的產(chǎn)品,還包括以下步驟(a)從接收者接收指示接收數(shù)據(jù)分組訛誤的分組確認(rèn)信息;(b)在接收到分組確認(rèn)信息之后,將包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示的數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者;(c)確定從發(fā)送者到接收者的數(shù)據(jù)分組的重傳速率;以及(d)執(zhí)行步驟(b),直到在步驟(c)判定重傳速率小于預(yù)定閾值,然后執(zhí)行步驟(e);(e)將不包含接收發(fā)往接收者的途中的數(shù)據(jù)分組的路由器應(yīng)對(duì)整個(gè)數(shù)據(jù)分組檢查數(shù)據(jù)訛誤的指示的數(shù)據(jù)分組從發(fā)送者發(fā)送到接收者。
26.根據(jù)權(quán)利要求21所述的產(chǎn)品,其中,整個(gè)數(shù)據(jù)分組包括數(shù)據(jù)分組的IP報(bào)頭、TCP報(bào)頭和數(shù)據(jù)有效載荷。
27.根據(jù)權(quán)利要求21所述的產(chǎn)品,其中,所述值存儲(chǔ)在路由器的寄存器中。
28.根據(jù)權(quán)利要求21所述的產(chǎn)品,其中,所述指示是設(shè)在數(shù)據(jù)分組的IP報(bào)頭中的標(biāo)志。
29.根據(jù)權(quán)利要求21所述的產(chǎn)品,其中,遵循OSPF執(zhí)行路由選擇更新。
30.根據(jù)權(quán)利要求21所述的產(chǎn)品,其中IP網(wǎng)絡(luò)為TCP/IP網(wǎng)絡(luò),并且數(shù)據(jù)分組來源于TCP發(fā)送者,發(fā)往TCP接收者。
全文摘要
TCP/IP網(wǎng)絡(luò)中的接收主機(jī)發(fā)送指示接收數(shù)據(jù)分組訛誤的確認(rèn)信息。發(fā)送主機(jī)將開始發(fā)送,其中在IP報(bào)頭中設(shè)有稱作檢查-TCP-校驗(yàn)和位的新字段,從而請(qǐng)求TCP/IP網(wǎng)絡(luò)中的所有路由器對(duì)整個(gè)接收分組執(zhí)行校驗(yàn)和。TCP/IP網(wǎng)絡(luò)中的路由器將對(duì)設(shè)有檢查-TCP-校驗(yàn)和位的整個(gè)分組而不是僅對(duì)IP報(bào)頭執(zhí)行完整的校驗(yàn)和。路由器連續(xù)監(jiān)測(cè)整個(gè)分組校驗(yàn)和失敗的在特定端口上接收的訛誤分組與在那個(gè)端口上接收的分組的總數(shù)之比。如果訛誤與接收分組之比超過訛誤閾值,則路由器認(rèn)為相關(guān)鏈路導(dǎo)致數(shù)據(jù)訛誤,并且發(fā)出指示該路訛誤并且應(yīng)被避開的路由選擇更新。一旦發(fā)送者與接收者之間的重傳速率降至閾值級(jí)別之下,則檢測(cè)到訛誤鏈路,并在TCP/IP網(wǎng)絡(luò)內(nèi)避開它,并且不再在發(fā)送到接收主機(jī)的數(shù)據(jù)分組的IP報(bào)頭中設(shè)置檢查-TCP-校驗(yàn)和選項(xiàng)。
文檔編號(hào)H04L1/24GK1581764SQ20041005662
公開日2005年2月16日 申請(qǐng)日期2004年8月13日 優(yōu)先權(quán)日2003年8月14日
發(fā)明者德維普·N·巴納吉, 維尼特·賈恩, 瓦蘇·瓦拉巴內(nèi)尼, 文卡特·文卡特蘇布拉 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
苏尼特左旗| 理塘县| 上杭县| 绥滨县| 宁国市| 阿克苏市| 明水县| 承德县| 宁海县| 芦山县| 柳河县| 宁河县| 临夏市| 道真| 南华县| 湖南省| 北宁市| 集贤县| 安福县| 阜宁县| 松滋市| 库伦旗| 雷波县| 梅河口市| 毕节市| 个旧市| 青神县| 沁阳市| 武鸣县| 罗甸县| 阿拉善盟| 榆中县| 黄陵县| 类乌齐县| 凤台县| 诸暨市| 咸丰县| 红桥区| 安陆市| 海原县| 闽侯县|