專利名稱:用測試分組操作網(wǎng)絡(luò)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種操作網(wǎng)絡(luò)的方法。具體地說,本發(fā)明涉及一種操作數(shù)據(jù)網(wǎng)絡(luò)或互聯(lián)網(wǎng)絡(luò)(即,鏈接在一起的不同網(wǎng)絡(luò)的集合,最廣為人知的示例為因特網(wǎng))的方法、以及根據(jù)這種方法進(jìn)行操作的網(wǎng)絡(luò)或互連網(wǎng)絡(luò)、和這種網(wǎng)絡(luò)內(nèi)的可以進(jìn)行操作以執(zhí)行這種方法的單個裝置。
背景技術(shù):
因特網(wǎng)是鏈接在一起以形成互連網(wǎng)絡(luò)的不同分組交換網(wǎng)絡(luò)的集合。為了從因特網(wǎng)上的一個節(jié)點(diǎn)將數(shù)據(jù)成功地發(fā)送到另一個節(jié)點(diǎn),使用被稱為網(wǎng)際協(xié)議(IP)的協(xié)議。這使得能夠通過因特網(wǎng)將IP數(shù)據(jù)報從發(fā)送(即始發(fā))源節(jié)點(diǎn)路由到接收(即終止)目的地節(jié)點(diǎn)。如數(shù)據(jù)網(wǎng)絡(luò)領(lǐng)域的技術(shù)人員所公知的,與數(shù)據(jù)網(wǎng)絡(luò)的ISO七層參考模型相比,IP是層3或網(wǎng)絡(luò)層協(xié)議。這實(shí)質(zhì)上意味著其負(fù)責(zé)在網(wǎng)絡(luò)或互連網(wǎng)絡(luò)上通過多跳來傳送數(shù)據(jù)。由此在各跳處,讀取最終的IP地址并選擇向前路由,除非數(shù)據(jù)碰巧到達(dá)了目的地節(jié)點(diǎn),在這種情況下其將拒絕層堆棧。
由此,IP是由源節(jié)點(diǎn)、目的地節(jié)點(diǎn)和中間節(jié)點(diǎn)(它們例如可以分別是網(wǎng)絡(luò)服務(wù)器、網(wǎng)絡(luò)客戶端和多個路由器)用來在分組交換網(wǎng)絡(luò)(或者更通常的是,互連網(wǎng)絡(luò))上傳送數(shù)據(jù)的面向數(shù)據(jù)的協(xié)議。此外,IP具有如下特性無論源節(jié)點(diǎn)和目的地節(jié)點(diǎn)先前是否預(yù)先與另一節(jié)點(diǎn)進(jìn)行了通信,并且無論要傳輸?shù)臄?shù)據(jù)類型如何,在源節(jié)點(diǎn)試圖將數(shù)據(jù)傳輸?shù)侥康牡毓?jié)點(diǎn)之前都無需特殊的開始處理。
為了實(shí)現(xiàn)這一特性,IP規(guī)定以IP數(shù)據(jù)報來傳輸數(shù)據(jù),各個IP數(shù)據(jù)報包括頭部和有效載荷部。要傳輸?shù)臄?shù)據(jù)(或其一部分)承載在IP數(shù)據(jù)報的有效載荷部,而頭部包含使得中間路由器能夠按照適當(dāng)方式整體地處理數(shù)據(jù)報以試圖將其遞送到目的地節(jié)點(diǎn)的信息。
如上所述,IP僅代表互連網(wǎng)絡(luò)提供的多層中的一層,用于使得能夠在互連網(wǎng)絡(luò)上成功地傳輸數(shù)據(jù),與七層OSI參考模型相比,IP大致對應(yīng)于層3,即網(wǎng)絡(luò)層。網(wǎng)絡(luò)層“之下”是數(shù)據(jù)鏈路層和物理層,因此可能將各個IP數(shù)據(jù)報封裝在一個或更多個下層(即,鏈路層)數(shù)據(jù)分組中以從網(wǎng)絡(luò)上的一個節(jié)點(diǎn)傳輸?shù)酵痪W(wǎng)絡(luò)中的另一節(jié)點(diǎn)。然而,各個節(jié)點(diǎn)將從接收到的分組中“剝出”IP數(shù)據(jù)報,并將其傳遞到各個中間節(jié)點(diǎn)內(nèi)以及目的地節(jié)點(diǎn)處的IP功能。各個中間節(jié)點(diǎn)內(nèi)的IP功能然后讀取IP頭部以確定其是否為目的地節(jié)點(diǎn)。如果它是目的地節(jié)點(diǎn),則將IP數(shù)據(jù)報的有效載荷部的內(nèi)容傳遞給在IP數(shù)據(jù)報的頭部中標(biāo)識的下一層功能(例如傳遞給傳輸控制協(xié)議(TCP)功能或者傳遞給用戶數(shù)據(jù)報協(xié)議(UDP)功能),如果它不是目的地節(jié)點(diǎn),則試圖朝向目的地節(jié)點(diǎn)繼續(xù)轉(zhuǎn)發(fā)IP數(shù)據(jù)報——下面將更詳細(xì)地描述其機(jī)制。連接到多個不同網(wǎng)絡(luò)并因此是通常具有很多與其他節(jié)點(diǎn)的直接連接的重要互連節(jié)點(diǎn)的中間節(jié)點(diǎn)典型地公知為路由器或網(wǎng)關(guān),并且作為它們的唯一或主要目的通常執(zhí)行數(shù)據(jù)傳輸。
互連網(wǎng)絡(luò)一般可以被認(rèn)為是可以按不同等級觀察的分級實(shí)體。在高等級處,可以認(rèn)為是所謂的自治系統(tǒng)(AS)。這些自治系統(tǒng)通常連接在一起以形成AS的互連網(wǎng)絡(luò)。各個AS通常包括網(wǎng)絡(luò)本身或者甚至包括互連網(wǎng)絡(luò),該互連網(wǎng)絡(luò)本身是由多個較小型網(wǎng)絡(luò)或子網(wǎng)絡(luò)形成的。將不同AS連接在一起的路由器通常被稱為邊界網(wǎng)關(guān)。為了在由多個AS形成的互連網(wǎng)絡(luò)上路由通信,各個AS保持有說明相鄰AS通信應(yīng)該發(fā)送到哪以到達(dá)任一給定IP目的地地址的路由表。在一些互連網(wǎng)絡(luò)中,可以使用公知為邊界網(wǎng)關(guān)協(xié)議(BGP)(在提交本申請時的最新版本為BGP版本4)的域內(nèi)路由協(xié)議(域即為AS)之一按照自治方式來保持這些路由表。通過BGP傳輸控制協(xié)議(TCP),在AS之間建立連接,以在邊界網(wǎng)關(guān)路由器之間傳送路由信息。
在自治系統(tǒng)內(nèi),使用類似的機(jī)制來通過網(wǎng)絡(luò)將IP數(shù)據(jù)報從一個點(diǎn)路由到另一個點(diǎn),在另一個點(diǎn)處路由器再次保持路由表。然而,代替使用BGP,相反使用內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)。目前使用了多個IGP。用于相對小型網(wǎng)絡(luò)的一個普遍使用的IGP是路由信息協(xié)議(RIP),RIP使用用戶數(shù)據(jù)報協(xié)議(UDP)來在協(xié)作的路由器之間傳送路由信息,而不是形成TCP連接。使用RIP,網(wǎng)關(guān)主機(jī)(其帶有路由器)每30秒將其整個路由表(該路由表列出了其所知道的全部其他主機(jī))發(fā)送到其最近的相鄰主機(jī)。該相鄰主機(jī)進(jìn)而將該信息傳遞到它的下一相鄰主機(jī),依此類推,直到網(wǎng)絡(luò)內(nèi)的所有主機(jī)都同樣了解了路由路徑,這一狀態(tài)公知為網(wǎng)絡(luò)趨同(network convergence)。RIP使用跳計(jì)數(shù)作為確定網(wǎng)絡(luò)距離的方法。(其他協(xié)議使用例如可能還包括定時的更復(fù)雜算法。)另一普遍使用的IGP是開放最短路徑優(yōu)先(OSPF)協(xié)議。這一協(xié)議類似于RIP,只是該協(xié)議具有更少的開銷,因?yàn)樵搮f(xié)議僅在路由器的路由表中發(fā)生變化時才發(fā)送消息。此外,該協(xié)議發(fā)送比RIP中發(fā)送的信息更多的信息。
然而,所有這些路由表更新機(jī)制都具有安全性方面的問題。具體來說,存在如下危險路由器可能被“黑”并隨后處于惡意第三方的控制下,該惡意第三方隨后可能發(fā)送虛假的路由更新消息到相鄰的路由器,并將系統(tǒng)進(jìn)入混亂狀態(tài),這造成大量的分組丟失或嚴(yán)重的分組延遲(例如,通過向所有的相鄰路由器通知其表示到所有目的地的最佳下一跳,然后簡單地扔掉所有接收到的分組而不是轉(zhuǎn)發(fā)它們)。此外,通過分析控制和數(shù)據(jù)通信量,通信中帶有的機(jī)密信息可能經(jīng)由被黑的路由器而暴露給未授權(quán)的第三方。
處理涉及路由器安全問題的大部分努力集中在對路由器之間的通信進(jìn)行認(rèn)證以防止所謂的“中間人”和相似類型的攻擊(或者至少使其更困難)。然而,這種方法在處理周期方面存在大量開銷(用來執(zhí)行加密和解密)、并且在廣播額外信息(數(shù)字簽名、散列函數(shù)等)方面也存在大量開銷。此外,這些方法對于“被黑的”合法路由器的風(fēng)險統(tǒng)統(tǒng)無效。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,提供了一種操作數(shù)據(jù)網(wǎng)絡(luò)的方法,該數(shù)據(jù)網(wǎng)絡(luò)的類型為其中多個相互連接的路由器裝置根據(jù)與各個路由器相關(guān)聯(lián)的路由表將接收到的數(shù)據(jù)分組朝向目的地節(jié)點(diǎn)轉(zhuǎn)發(fā),所述方法包括以下步驟在所述多個路由器之一接收路由信息,確定所述信息是否是這樣的信息,即如果該信息是正確的則其使得該路由器更新其路由表中的一個或更多個條目,并且,如果確定所述信息是這樣的信息,則發(fā)送兩個測試分組,所述兩個測試分組中的一個測試分組是根據(jù)路由表中包含的現(xiàn)有信息發(fā)送的,而另一個測試分組是根據(jù)若依照接收到的信息更新了路由表則路由表中將包括的信息而發(fā)送的;比較兩個測試發(fā)送的結(jié)果;并且,如果比較表示接收到的信息是正確的,則更新路由表以反映接收到的信息,否則忽略所述信息并保持路由表不變。
該方法與現(xiàn)有技術(shù)方法相比具有如下優(yōu)點(diǎn)“開銷”很小——兩個測試發(fā)送可以包括兩個小測試分組,無需進(jìn)行加密或解密,并且僅當(dāng)接收到的信息是使得路由器存儲的路由表可能發(fā)生變化的信息時才需要發(fā)送測試分組;對于包括被黑的路由器攻擊在內(nèi)的大量不同攻擊很有效——因?yàn)樵摲椒ㄓ欣貦z查可能在路由器的路由表中造成改變的所有信息,而與該信息來自哪里(或聲稱的來源)無關(guān),所以該方法在處理包括中間人類型的攻擊以及“被黑的”路由器型攻擊在內(nèi)的所有種類的攻擊方面很有效;引入當(dāng)前路由器非常簡單——在現(xiàn)有路由器中實(shí)現(xiàn)該方法無需大量的附加硬件,全部所需要的是一些相對簡單的附加軟件;不排他——該方法不排除附加地使用的其他類型的安全措施。
優(yōu)選的是,路由表是用于路由IP數(shù)據(jù)報和數(shù)據(jù)報片段的IP路由表。測試分組優(yōu)選地為因特網(wǎng)控制消息協(xié)議(ICMP)消息。這種消息可以是回應(yīng)請求消息,或者更優(yōu)選地在目的地支持時間戳請求消息的情況下為時間戳請求消息。請求消息的序號優(yōu)選地是通過以下步驟來確定的隨機(jī)生成一個號碼,隨后根據(jù)所述隨機(jī)生成的號碼設(shè)置另一測試消息的序號(例如,nRANDOM和nRANDOM+1)。測試消息優(yōu)選地包括用于使得更難以使用“分組竊聽者(packet-sniffer)”來將消息檢測為ICMP消息的數(shù)據(jù)填充。
根據(jù)本發(fā)明的第二方面,提供了一種操作數(shù)據(jù)網(wǎng)絡(luò)或互連網(wǎng)絡(luò)內(nèi)的路由器的方法,在所述數(shù)據(jù)網(wǎng)絡(luò)或互連網(wǎng)絡(luò)中,數(shù)據(jù)分組可以通過相鄰路由器之間的多跳從所述網(wǎng)絡(luò)或互連網(wǎng)絡(luò)內(nèi)的源節(jié)點(diǎn)發(fā)送到目的地節(jié)點(diǎn),其中,所述路由器保持有路由表并通過查詢該路由表來確定如何轉(zhuǎn)發(fā)接收到的要求向前傳輸?shù)臄?shù)據(jù)分組,所述方法包括以下步驟接收網(wǎng)絡(luò)配置信息,確定該信息是否表示路由器應(yīng)修改其路由表中的一個或更多個條目,并且如果確定是這樣,則執(zhí)行測試以確定實(shí)際上是否應(yīng)按照所接收到的信息指示的方式修改路由表,并且如果確定是這樣則相應(yīng)地更新路由表,否則就保持路由表不變。
根據(jù)本發(fā)明的第三方面,提供了一種用在數(shù)據(jù)網(wǎng)絡(luò)中的路由器,該路由器包括存儲裝置,用來存儲路由表;多個通信端口,當(dāng)所述路由器用作相互連接的網(wǎng)絡(luò)或者節(jié)點(diǎn)或網(wǎng)絡(luò)的互連網(wǎng)絡(luò)的一部分時,所述多個通信端口將數(shù)據(jù)發(fā)送到相互連接的節(jié)點(diǎn)并且從相互連接的節(jié)點(diǎn)接收數(shù)據(jù);以及處理器或處理器組,用來處理在一個或更多個通信端口接收到的關(guān)于網(wǎng)絡(luò)配置的信息,并根據(jù)所接收到的網(wǎng)絡(luò)配置信息更新路由表,該路由器的特征在于,所述處理器或處理器組在接收到新的網(wǎng)絡(luò)配置信息時可以附加地進(jìn)行如下操作確定所述信息是否表示所述路由器應(yīng)修改其路由表中的一個或更多個條目,并且如果確定是這樣,則執(zhí)行測試以確定實(shí)際上是否應(yīng)按照所接收到的信息指示的方式修改路由表,并且如果確定是這樣則相應(yīng)地更新路由表,否則就保持路由表不變。
優(yōu)選的是,所述測試包括如下操作對于路由器鑒于所接收到的網(wǎng)絡(luò)配置信息而確定為應(yīng)該改變的各個條目發(fā)送一對測試分組,其中,各個測試分組對中的一個測試分組是根據(jù)路由表中包含的現(xiàn)有信息發(fā)送的,而其中另一個測試分組是根據(jù)若依照接收到的信息更新了路由表則路由表中將包括的信息而發(fā)送的。
當(dāng)然,代替僅在測試結(jié)果已確認(rèn)這種修改是適當(dāng)?shù)闹蟛判薷穆酚杀?,路由器相反可以立即修改路由表、但是在測試表示實(shí)際上終究不應(yīng)進(jìn)行修改的情況下將該表還原其先前狀態(tài)。
根據(jù)本發(fā)明的第四方面,提供了一種包括多個根據(jù)本發(fā)明第三方面的路由器的網(wǎng)絡(luò)或互連網(wǎng)絡(luò)。
根據(jù)本發(fā)明的第五方面,提供了一種計(jì)算機(jī)程序或計(jì)算機(jī)程序組以及/或者帶有這種程序或程序組的載體介質(zhì),所述計(jì)算機(jī)程序或計(jì)算機(jī)程序組用于在執(zhí)行期間執(zhí)行本發(fā)明第一方面或第二方面的方法。
為了可以更好地理解本發(fā)明,下面將參照附圖僅通過示例方式來描述本發(fā)明的實(shí)施例,在附圖中圖1是適合于實(shí)現(xiàn)本發(fā)明實(shí)施例的數(shù)據(jù)互連網(wǎng)絡(luò)的示意圖;圖2是實(shí)現(xiàn)本發(fā)明實(shí)施例的網(wǎng)絡(luò)的程式化圖;圖3是例示了根據(jù)本發(fā)明實(shí)施例的操作路由器的方法的流程圖;以及圖4是圖3中的測試子程序的子步驟的流程圖。
具體實(shí)施例方式
首先參照圖1,描述根據(jù)本發(fā)明的數(shù)據(jù)互連網(wǎng)絡(luò)的典型結(jié)構(gòu)。
數(shù)據(jù)互連網(wǎng)絡(luò)的結(jié)構(gòu)圖1示出了互連網(wǎng)絡(luò)100,該互連網(wǎng)絡(luò)100包括經(jīng)由主干ATM網(wǎng)絡(luò)148(其包括多個主干路由器141至145)連接在一起的多個自治系統(tǒng)(AS)110、120、130。在該示例中,AS 110包括經(jīng)由令牌環(huán)局域網(wǎng)(LAN)118連接在一起的五個工作站112a至112e。AS 10還包括打印機(jī)114和三個內(nèi)部路由器115、116及117,所有這三個內(nèi)部路由器還通過令牌環(huán)形LAN118連接在一起。AS 12包括全部經(jīng)由光纖分布式數(shù)據(jù)接口(FDDI)LAN128連接在一起的工作站122、服務(wù)器121以及兩個路由器123和124。AS 130包括服務(wù)器131、兩個有線路由器132和133、以及兩個無線路由器134和135(它們分別提供到膝上型計(jì)算機(jī)136和臺式計(jì)算機(jī)137的無線連接)。圖1中未明確示出使用哪種LAN技術(shù)來將AS 130的部件連接在一起,但是其例如可以是簡單的以太網(wǎng)LAN。
為了介紹本發(fā)明,下面將概括地描述將數(shù)據(jù)分組從互連網(wǎng)絡(luò)100上的第一裝置112a(下文中稱作節(jié)點(diǎn)112a)傳輸?shù)降诙b置136(下文中稱作節(jié)點(diǎn)136)所采取的步驟。當(dāng)節(jié)點(diǎn)112a內(nèi)的IP功能接收到要傳輸?shù)臄?shù)據(jù)分組時,它首先檢查目的地節(jié)點(diǎn)對其來說是否為本地的(即,目的地節(jié)點(diǎn)是否是節(jié)點(diǎn)112b或114)。因?yàn)樵谶@種情況下,目的地節(jié)點(diǎn)(節(jié)點(diǎn)136)對于節(jié)點(diǎn)112a來說不是本地的,所以其將數(shù)據(jù)分組傳輸?shù)狡浔镜芈酚善?17。路由器117檢查目的地地址并確定目的地地址在AS 110之外、由此確定需要將其發(fā)送到可以訪問外部網(wǎng)絡(luò)的網(wǎng)關(guān)路由器。在這種情況下,路由器117是這種網(wǎng)關(guān)路由器,因而它能夠?qū)⒎纸M轉(zhuǎn)發(fā)到外部路由器142。外部或主干路由器142查詢其路由表來確定對于通信來說到節(jié)點(diǎn)136所在的網(wǎng)絡(luò)的當(dāng)前優(yōu)選下一跳;出于本示例的目的,我們可以假設(shè)AS 3與其自身的唯一網(wǎng)絡(luò)相關(guān)聯(lián)。因此路由器142在查詢其路由表時可以發(fā)現(xiàn)路由器144是當(dāng)前優(yōu)選的下一跳目的地,路由器144進(jìn)而可以發(fā)現(xiàn)路由器143是讓通信到達(dá)與AS 130相關(guān)聯(lián)的網(wǎng)絡(luò)的其當(dāng)前優(yōu)選下一跳目的地。在路由器143處,確定它具有到AS 130內(nèi)的網(wǎng)關(guān)路由器132的直接鏈路,因此將分組發(fā)送到路由器132。路由器132然后查詢其路由表來查找節(jié)點(diǎn)136(或者更精確地說,查找節(jié)點(diǎn)136的IP地址)。因?yàn)樵谶@種情況下節(jié)點(diǎn)136是移動裝置(膝上型計(jì)算機(jī)),所以節(jié)點(diǎn)136當(dāng)前很可能具有由無線調(diào)制解調(diào)器135(它可以具有有限數(shù)量的IP地址,它可以將這些IP地址動態(tài)地分配給與之相連接的裝置,AS 130內(nèi)的路由器知道所有這些IP地址都是可以從節(jié)點(diǎn)135訪問的)分配給其的動態(tài)分配的臨時IP地址;因此路由器132根據(jù)其路由表確定裝置131是從路由器132到節(jié)點(diǎn)135的通信的下一跳。在服務(wù)器131處,再次根據(jù)其路由器表確定目的地IP地址與節(jié)點(diǎn)135相關(guān)聯(lián),因此將分組直接傳輸?shù)綗o線調(diào)制解調(diào)器135,無線調(diào)制解調(diào)器135最后通過無線鏈路將分組傳輸?shù)较ド闲陀?jì)算機(jī)136。
根據(jù)以上討論可見,為了通過互連網(wǎng)絡(luò)在分立的網(wǎng)絡(luò)上的兩個裝置之間傳輸數(shù)據(jù),在大量節(jié)點(diǎn)之間傳輸各個分組,所有這些節(jié)點(diǎn)都用作路由器(除了始發(fā)節(jié)點(diǎn)和目的地節(jié)點(diǎn)),其中一些節(jié)點(diǎn)是內(nèi)部路由器,而一些節(jié)點(diǎn)是主干路由器,網(wǎng)關(guān)路由器跨接這兩個不同的域。在各個路由器處,查詢內(nèi)部路由表來確定分組的下一跳。內(nèi)部路由器詳細(xì)了解其網(wǎng)絡(luò)內(nèi)的裝置的位置的結(jié)構(gòu)種類、以及用于處理去往外部目的地和外部路由器的通信的單個或很少幾個缺省類型選項(xiàng)不了解屬于自治系統(tǒng)的不同網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu),但是如何到達(dá)與主干網(wǎng)絡(luò)(其包含外部路由器)相連接的不同網(wǎng)絡(luò)的入口點(diǎn)的詳細(xì)內(nèi)容是共同的。這種結(jié)構(gòu)還是可以縮放的,使得諸如圖1中所示的互連網(wǎng)絡(luò)實(shí)際上可能形成通過甚至更大的主干網(wǎng)絡(luò)等鏈接在一起的較大的子網(wǎng)絡(luò)(或子互連網(wǎng)絡(luò))集合的子網(wǎng)絡(luò)(或子互連網(wǎng)絡(luò))。
本發(fā)明涉及路由器更新其路由表的方式。本發(fā)明可以同樣地應(yīng)用到所有這種方法。具體來說,本發(fā)明可以應(yīng)用于用來更新內(nèi)部路由器的路由表的算法以及用來更新外部路由器的算法。因此下面的討論描述了本發(fā)明如何應(yīng)用到用于更新內(nèi)部路由器的典型算法(即,路由信息協(xié)議(RIP))和用于更新外部或網(wǎng)關(guān)路由器內(nèi)的路由表的典型算法(即,邊界網(wǎng)關(guān)協(xié)議(BGP))。當(dāng)然,如上所述,本發(fā)明可以按照與下面示出的將其應(yīng)用于RIP和BGP的方式相對應(yīng)的方式同樣地應(yīng)用于其他路由協(xié)議。
簡言之,在RIP中,分組通常經(jīng)由被記錄為具有最低代價的路由器而轉(zhuǎn)發(fā)到目的地。路由表僅包含與各個目的地的最低代價路由相對應(yīng)的記錄(基本上按照目的地和從該路由器到達(dá)它們的“代價”(例如,基于跳數(shù))的列表的形式)。在BGP中,各個路由器的更新消息包括到所有可達(dá)目的地的最新路由路徑。定期地廣播該消息。在路由器將該更新消息中繼到其相鄰路由器之前,路由器添加上其自身的AS標(biāo)識符(AS號)。此外,BGP還便于基于預(yù)定路由策略集對多個另選路線進(jìn)行排序。
RIP在RIP中,各個路由器保持按子網(wǎng)中的各個路由器編制索引、并對子網(wǎng)中的各個路由器都包含一個條目的路由表。條目包含兩個部分用于目的地的優(yōu)選呼出鏈路和到該目的地的代價估計(jì)。對代價的衡量標(biāo)準(zhǔn)可以是跳數(shù)、毫秒級的時間延遲、沿路徑排隊(duì)的分組總數(shù)或類似內(nèi)容。如果使用延遲作為衡量標(biāo)準(zhǔn),則路由器可以用特殊的ECHO分組(接收方僅對其加以時間戳并盡可能快地將其發(fā)回)來直接測量延遲(注意,這是由在屬于因特網(wǎng)控制消息協(xié)議(ICMP)的RFC 792和1122中的因特網(wǎng)工程任務(wù)組(IETF)規(guī)定的功能,并且實(shí)現(xiàn)IP的“每個主機(jī)”都必須提供該功能)。
作為示例,假設(shè)路由器了解到其各個相鄰路由器的延遲。每個路由器每T毫秒一次地向各個相鄰路由器發(fā)送其到子網(wǎng)中(例如,自治系統(tǒng)內(nèi))的各個路由器的估計(jì)延遲的列表。路由器還從各個其相鄰路由器接收類似的列表。設(shè)想這些表之一恰來自相鄰路由器X,Xi是X的到達(dá)節(jié)點(diǎn)i所花時間的估計(jì)值。如果該路由器知道到其相鄰路由器X的延遲為m毫秒,則該路由器還知道它可以經(jīng)由X在經(jīng)由X的(Xi+m)毫秒內(nèi)到達(dá)節(jié)點(diǎn)i。通過對各個相鄰路由器執(zhí)行該計(jì)算,路由器可以找出哪個估計(jì)值看起來是最好的,并在其新路由表中使用該估計(jì)值和相應(yīng)的鏈路。需要注意的是,在計(jì)算中不使用舊的路由表。
BGP在BGP中,BGP路由器對通過建立TCP連接而彼此通信。按照這種方式運(yùn)行提供了可靠的通信并隱藏了所通過的網(wǎng)絡(luò)的全部細(xì)節(jié)。BGP從根本上是距離矢量協(xié)議,但與RIP頗為不同。代替僅保持到各個目的地的代價,各個BGP路由器記錄所使用的確切路徑。同樣,代替定期地向各個相鄰路由器給出其到各個可能目的地的估計(jì)代價,各個BGP路由器告訴其相鄰路由器它正在使用的確切路徑。
此外,RIP/BGP路由表建立在二手信息上,在常規(guī)的廣泛使用的RIP和BGP協(xié)議中實(shí)際上從來不對該信息進(jìn)行驗(yàn)證。例如,如果路由器R宣稱具有到給定網(wǎng)絡(luò)的最佳路線,則其他路由器不會驗(yàn)證這一信息。事實(shí)上,它們甚至不驗(yàn)證該信息是從路由器R發(fā)送來的或者甚至不驗(yàn)證路由器R的存在!無需強(qiáng)調(diào),這種驗(yàn)證的缺失可能是敞開的安全漏洞。傳播假的路由信息并使整個網(wǎng)絡(luò)陷入災(zāi)難根本不困難。這是一個精明但惡意的用戶可以中斷整個IP網(wǎng)絡(luò)的通信的清晰示例。盡管增強(qiáng)版RIP 2和BGP4包括簡單的認(rèn)證機(jī)制,但仍有很多改進(jìn)之處。
在下面的部分中,描述了本發(fā)明的兩個實(shí)施例。實(shí)質(zhì)上,這些實(shí)施例分別是RIP和BGP協(xié)議的改進(jìn),其中在使用由相鄰路由器發(fā)送的路由信息來更新路由表之前對該信息進(jìn)行驗(yàn)證。用作例示本發(fā)明的示例的改進(jìn)RIP和BGP協(xié)議下面被稱為驗(yàn)證RIP(V-RIP)和驗(yàn)證BGP(V-BGP)。
V-RIP在該方法中,并不是一從任何相鄰路由器接收到新的更新消息就輕信地更新其路由表,在該方法中路由器首先驗(yàn)證該信息是否相當(dāng)有可能是正確的。下面列出在本實(shí)施例中執(zhí)行的用于實(shí)現(xiàn)該驗(yàn)證的確切步驟。將參照圖2以及圖3和圖4來進(jìn)行以下描述,圖2示出了包括多個節(jié)點(diǎn)A到L(注意,在描述V-RIP時假設(shè)這些節(jié)點(diǎn)都是內(nèi)部路由器,而在我們描述V-BGP時假設(shè)這些節(jié)點(diǎn)都是外部路由器)的大大簡化的網(wǎng)絡(luò)結(jié)構(gòu),圖3和圖4通過流程圖例示了所包含的步驟。
1.當(dāng)路由器從其相鄰路由器接收到更新消息時,它并不立即更新其路由表,相反,它通過將新消息與其RIP的當(dāng)前路由表進(jìn)行比較來分析該新消息(S10)。
2.作為使用延遲作為衡量標(biāo)準(zhǔn)的示例,在圖2中,路由器J常規(guī)地從其相鄰路由器A、I、H和K接收路由信息更新。在路由器J中,存儲來自所有相鄰路由器的兩個連續(xù)(上一個和當(dāng)前的)路由更新消息。
3.每當(dāng)路由器J接收到更新時,它檢查(S20)對其當(dāng)前路由表的更新來確定該更新是否表示應(yīng)對路由表進(jìn)行改變(例如,如果通過將路由表(所述路由表通常是根據(jù)從相鄰路由器發(fā)送的最新路由更新消息集而形成的)與路由器A發(fā)送的當(dāng)前更新進(jìn)行比較而確定了該更新表示到路由器D的延遲的顯著減少。)(注意實(shí)際上,例如,如果A通告具有較大延遲的假路由信息,那么,由于路由器很少經(jīng)由路由器A傳輸通信,所以A將與網(wǎng)絡(luò)自動隔離。)4.如果(在圖3中的確定步驟S30)更新表示不可能對路由器確定有任何影響(例如,因?yàn)楦虏槐硎窘?jīng)由A到達(dá)任何目的地將比先前通過另一第一跳路由器到達(dá)得更快),則路由器J不采取任何行動(并且,該方法結(jié)束)。
5.然而,如果(在判定步驟S30)更新確實(shí)表示可能對路由器確定造成影響(例如,因?yàn)楦卤硎粳F(xiàn)在經(jīng)由路由器A到達(dá)路由器D比經(jīng)由路由器H快得多),則路由器J加以時間戳并經(jīng)由兩個不同的路線將帶有不同序號和隨機(jī)量的填充的兩個診斷分組發(fā)送(在子程序S40)到受影響的路由器(例如,路由器D)。一個路線是經(jīng)由“新”路由器(例如,路由器A),另一個路線是經(jīng)由路由器J的當(dāng)前路由表中的用于受影響目的地節(jié)點(diǎn)(例如,路由器D)的當(dāng)前下一路由器。在接收到診斷分組時,目的地路由器(例如,路由器D)盡可能快地(根據(jù)診斷分組的確切特性,有可能如果恰當(dāng)?shù)脑捑驮诎凑漳撤N方式對分組加以時間戳之后)僅僅發(fā)回兩個應(yīng)答分組。通過注意與兩個診斷分組相對應(yīng)的這兩個應(yīng)答分組的接收時間,并將這些接收時間與原診斷分組的發(fā)送時間相比較,路由器J根據(jù)兩個路由器之間的分組傳輸時間來計(jì)算哪個路線最短。
6.如果(在步驟S50)確定了由路由器A通告的新路線的分組傳輸時間少于路由表當(dāng)前建議的路線的分組輸出時間,則有理由假設(shè)最近接收到的更新(例如,來自路由器A的更新)中所包含的信息是正確的,因此路由器J正常地更新其路由表(在步驟S60),并更新由所有相鄰路由器發(fā)送的路由消息集(即,刪除當(dāng)前的“前一更新”,并將當(dāng)前的“當(dāng)前更新”(即新接收到的更新)移到“前一更新”)。
7.然而,如果(在步驟S50)確定由路由器A通告的新路線的分組傳輸時間不少于路由表當(dāng)前建議的路線的分組傳輸時間,則有理由懷疑來自路由器A的新路由信息,因此路由器J不使用來自路由器A的路由信息來更新路由表。此外,簡單地丟棄新接收到的更新,并且不對存儲在“前一更新”字段中的值進(jìn)行改變。如果(在步驟S70)確定持續(xù)發(fā)生異常(例如,如果接收到的連續(xù)懷疑超過預(yù)定數(shù)量、由此被丟棄的更新超過預(yù)定數(shù)量),則路由器J(在步驟S80)在結(jié)束該方法之前向其系統(tǒng)發(fā)出告警。
按照上述方式,使用該簡單的驗(yàn)證,通過誠實(shí)的相鄰路由器可以濾除并終止來自錯誤配置或惡意的路由器的假路由信息。
下面將通過參照圖2以及表1和2的以下示例來例示上述處理。
表1示出了從路由器J到其4個相鄰路由器的測量時間、在時間T記錄在路由器J中的來自A、I、H、K的路由消息、以及路由器J根據(jù)這兩個信息集生成的路由表。通常,如在表1中所做的,如果所有路由信息都是正常的,則路由器J每當(dāng)接收到來自其相鄰節(jié)點(diǎn)的新的更新集時計(jì)算新的路由表(如表1中的最右邊的3列所顯示的)。
表1
為了進(jìn)行說明,考慮J如何計(jì)算其到路由器D的新路線。路由器J知道它可以在8毫秒內(nèi)到達(dá)其相鄰路由器A,并且A宣稱能夠在40毫秒內(nèi)到達(dá)D,因此J假設(shè)它可以經(jīng)由A到達(dá)D的延遲為(8+40)48毫秒。同樣,J假設(shè)它可以經(jīng)由I到達(dá)D的延遲為(10+27)37毫秒,經(jīng)由H到達(dá)D的延遲為(12+8)20毫秒,經(jīng)由K到達(dá)D的延遲為(6+24)30毫秒。因此最小的延遲為20毫秒(經(jīng)由相鄰路由器H)。因此,在J的路由表中,到D的路由指定20毫秒的延遲,并且指定第一跳目的地為H。
表2
表2示出了在時間T+1在路由器J中記錄的來自A、I、H、K的路由消息、以及在常規(guī)情況下馬上或者根據(jù)本實(shí)施例一旦新接收到的更新的相關(guān)一個或多個方面經(jīng)過了驗(yàn)證就根據(jù)新的更新而得到的新路由表。顯然,路由器A聲稱到路由器D的延遲顯著降低,從其先前通告的40毫秒延遲降低到10毫秒。當(dāng)路由器J例行地計(jì)算經(jīng)由A到D的延遲時,由此其確定經(jīng)由A的新延遲僅為(8+10=)18毫秒。顯然,18毫秒的新延遲小于J的當(dāng)前最小延遲值20毫秒,因此,現(xiàn)在根據(jù)在時間T+1從所有相鄰路由器接收到的當(dāng)前更新到D的最快路線是經(jīng)由A(下一最快路線是經(jīng)由H的20毫秒)。
因此,根據(jù)本實(shí)施例,J現(xiàn)在試圖驗(yàn)證來自A的路由信息(而同時保持在時間T接收到的更新消息的副本——事實(shí)上,在本發(fā)明中,實(shí)際上在完成測試之前根本不生成表2,從而在根據(jù)需要驗(yàn)證了新更新之前根據(jù)表1的路由表轉(zhuǎn)發(fā)在此期間接收到的所有分組)。為了執(zhí)行驗(yàn)證,路由器J對兩個診斷分組P和Q(它們是相似的,只是序號不同)加以時間戳,并經(jīng)由兩個不同的路線將它們發(fā)送到路由器D。分組P經(jīng)由路由器A傳輸?shù)紻,而分組Q經(jīng)由H(路由器J的當(dāng)前路由表中(即,根據(jù)表1)的目的地D的當(dāng)前下一路由器)傳輸?shù)紻。在接收到診斷分組時,路由器D優(yōu)選地盡可能快地用兩個響應(yīng)分組進(jìn)行回應(yīng)。此外,如果路由器D支持這種特征,則它可以對分組加以時間戳以精確地顯示路由器D何時接收到測試分組,并且還可以顯示應(yīng)答分組何時離開路由器D。
如果在出現(xiàn)超時之前收回了兩個響應(yīng)分組,則路由器J確定哪個診斷分組首先到達(dá)目的地路由器D(或者至少哪個診斷分組首先返回)。根據(jù)本實(shí)施例,如果確定了經(jīng)由新路線的分組為具有最小延遲(即,如果路由器J發(fā)現(xiàn)診斷分組P的返回時間短于診斷分組Q的返回時間),則假設(shè)來自相鄰路由器A的最新更新是正確的,并且根據(jù)表2更新其表(即,路由器J將經(jīng)由A的18毫秒作為其到D的最新估計(jì)延遲而設(shè)置在其路由表中)。
另一方面,如果路由器J確定經(jīng)由新路線發(fā)送的診斷分組并不是首先到達(dá)目的地(即,路由器J發(fā)現(xiàn)診斷分組P的返回時間長于Q的返回時間),則認(rèn)為來自路由器A的新路由更新消息(即,在時間T+1的路由更新消息)是可疑的,并且路由器J將這一事件記錄在其系統(tǒng)日志文件中。J隨后不采取任何行動來更新其來自A的路由消息或其路由表(并不對于來自A的可疑信息進(jìn)行更新)。
然而,需要注意,在本實(shí)施例中仍使用來自任何其他受信任的相鄰路由器的任何非可疑信息來更新路由表;然而,仍將來自路由器A的不重要因此未經(jīng)驗(yàn)證的信息認(rèn)為是可疑的——盡管它并未積極地不通過驗(yàn)證——并且因此刪除A的最新更新消息中的所有消息。因此將生成如下的新表其中來自路由器A的條目實(shí)際上對應(yīng)于在時間T從A接收到的更新消息,而其余來自相鄰路由器I、H和K的更新是在時間T+1接收到的更新。在本示例中(因?yàn)樵跁r間T+1的來自相鄰路由器I、H和K的更新與在時間T接收到的更新相同),新表(沒有單獨(dú)示出)的實(shí)際效果實(shí)際上一致地等同于表1。
如果路由器A持續(xù)發(fā)送可疑的路由消息(即,如果系統(tǒng)日志檢測到在預(yù)定量的時間內(nèi)(或者在預(yù)定量的更新消息內(nèi))從特定的相鄰路由器接收到多于規(guī)定數(shù)量的可疑更新),則路由器J向系統(tǒng)管理員發(fā)送告警。
此外,在本實(shí)施例中,如果在發(fā)生超時之前沒有接收到診斷分組中的一個或全部兩個,則路由器J重試測試直到規(guī)定次數(shù)(例如,3次);這是本發(fā)明的另一重要特征——容錯性有助于提高本方法的可靠性。如果持續(xù)地不能在發(fā)生超時前接收到診斷分組中的一個或全部兩個,則路由器根據(jù)以下內(nèi)容進(jìn)行操作如果經(jīng)由新路線的分組持續(xù)地超時,但經(jīng)由舊路線的分組不是這樣,則認(rèn)為更新消息可疑,并且路由器按照以上描述的處理可疑更新的方式操作;如果經(jīng)由舊路線的分組持續(xù)地超時,但經(jīng)由新路線的分組不是這樣,則認(rèn)為更新有效,并且路由器按照以上描述的處理可信更新的方式操作;并且如果兩個分組都持續(xù)地超時,則認(rèn)為可能存在某一普遍問題,因此出于謹(jǐn)慎起見,不信任新更新,但是在系統(tǒng)日志中并不將其記錄為可疑,因此它對于用于向系統(tǒng)管理員發(fā)送警告的對可疑更新的計(jì)數(shù)不起作用。
兩個診斷分組的成功發(fā)送和返回對于該方案的成功是至為關(guān)鍵的。因此,在本實(shí)施例中,將一個分組的序號隨機(jī)生成為Y,有效位長度為16(或者更多,如果診斷分組的特性允許的話);在本實(shí)施例中,將另一分組的序號設(shè)置為(Y+1)。該隨機(jī)生成的序號有助于防止序號預(yù)測攻擊,這是因?yàn)榧词挂粋€或兩個診斷分組被竊聽或發(fā)覺,也不會對以后的任何診斷分組造成任何影響。其次,向診斷分組應(yīng)用數(shù)據(jù)填充,由此將隨機(jī)選擇量的表面上無用的信息位(所謂的填充)加入到分組,這使得網(wǎng)絡(luò)竊聽者更難以分析通信,并將重要的診斷分組與其他承載IP分組的普通數(shù)據(jù)區(qū)分開來。
圖4中例示了在本發(fā)明中執(zhí)行的上述測試或驗(yàn)證子程序,其包括以下子步驟的序列。首先,在步驟S410,生成隨機(jī)數(shù)(Y)來形成第一診斷分組(P)中的序列ID。接著,在步驟S420,生成第一診斷分組(P)(其具有隨機(jī)生成的序號Y和隨機(jī)量的數(shù)據(jù)填充)。然后,在步驟S420,經(jīng)由新路線(例如,經(jīng)由路由器A)傳輸?shù)谝环纸M(P)。然后,在步驟S430,生成第二測試分組(Q)(其具有序列ID Y+1和隨機(jī)量的數(shù)據(jù)填充)。在步驟S450,經(jīng)由舊的路線(例如,經(jīng)由路由器H)傳輸?shù)诙y試分組(Q)。在步驟S460,路由器等待接收對兩個診斷分組的回應(yīng),然后在步驟S470,路由器報告結(jié)果,即其在可以獲得實(shí)際往返時間或者到達(dá)目的地的單程時間的情況下報告實(shí)際往返時間或者到達(dá)目的地的單程時間,或者,另選的是,路由器僅返回哪個診斷分組的延遲更少。如果在接收到響應(yīng)之前一個或兩個診斷分組超時,則如上所述地采取行動。
在本實(shí)施例中,診斷分組在目的地路由器(例如,以上給出的示例中的路由器D)支持時間戳因特網(wǎng)控制消息協(xié)議(ICMP)消息的情況下采取時間戳因特網(wǎng)控制消息協(xié)議(ICMP)消息的形式,如果目的地路由器不支持時間戳消息則采取簡單的Echo請求和應(yīng)答ICMP消息的形式。然而毫無疑問,在另選實(shí)施例中,可以設(shè)計(jì)并采用任意數(shù)量的不同診斷分組結(jié)構(gòu)來執(zhí)行測量到特定目的地路由器的延遲的功能;具體來說,可以使用指定確切路線并確保在回程中遵循同一路線的診斷分組等。
V-BGP1.當(dāng)一個路由器接收到來自其相鄰路由器的更新消息時,它并不立即更新其路由表;相反,它通過將該更新消息與其BGP當(dāng)前路由路徑相比較來分析新消息。
2.作為示例,在圖1中,路由器J定期地接收來自其相鄰路由器A、I、H和K的路由信息更新。在路由器J中,記錄了來自所有相鄰路由器的兩個連續(xù)(上一個和當(dāng)前)路由消息。
3.在時間T,路由器A向路由器J發(fā)送其到D的路由路徑A-B-C-D,在時間T+1,該消息變?yōu)锳-G-D。因此,路由器J識別出到路由器D的跳數(shù)的顯著減少。路由器J如在普通BGP中一樣使用其自身的“距離”函數(shù)來評估是否應(yīng)改變其到路由器D的路由路徑(注意實(shí)際上,如果A通告路徑更長的假路由信息,則將自動地把A與網(wǎng)絡(luò)隔離開?;蛘撸绻鸄出于其策略而通告路徑更長的路由信息,則J可以安全地將其忽略)。
4.如果不改變,則路由器J不采取動作。
5.如果改變,則路由器J對序號不同的兩個類似診斷分組P和Q加以時間戳并經(jīng)由兩個不同的路線將它們發(fā)送到路由器D。分組P經(jīng)由路由器A到達(dá)D。分組Q經(jīng)由其當(dāng)前路由路徑到達(dá)D。路由器D僅對這兩個診斷分組加以時間戳(如果可能的話),并盡可能快地發(fā)回兩個響應(yīng)分組。通過接收與兩個診斷分組相對應(yīng)的這兩個響應(yīng)分組,路由器J然后可以基于兩個路線間的傳輸時間而容易地計(jì)算哪條路線最短。
6.如果經(jīng)由路由器A通告的新路線傳輸?shù)脑\斷分組的分組傳輸時間較少,則路由器J將路由器A的更新分類為值得信任,因此如常地更新其路由表,并更新其由所有相鄰路由器發(fā)送的兩個連續(xù)路由消息。否則,將來自路由器A的路由信息分類為可疑,并且路由器J不使用來自路由器A的路由信息更新路由表。如果持續(xù)出現(xiàn)異常,則路由器J向其系統(tǒng)管理員發(fā)送告警。
7.在該簡單的驗(yàn)證之后,可通過其誠實(shí)的相鄰路由器濾除并終止來自錯誤配置或惡意的路由器的假路由信息。
變型例對于讀者來說,顯然可以在不脫離本發(fā)明概念的情況下對上述實(shí)施例進(jìn)行很多修改。例如,診斷分組發(fā)送過程可以要求來自計(jì)劃目的地路由器的某種認(rèn)證,以確認(rèn)診斷分組沒有被攔截并且沒有偽造假的應(yīng)答分組(例如,所謂的中間人類型攻擊)。
代替僅僅依賴于哪個是最快返回的診斷分組,診斷分組發(fā)送和接收過程可以監(jiān)視所采取的路由,并可以執(zhí)行一系列測試來測量沿著該路由到達(dá)各個點(diǎn)所用的時間(例如,采用類似于公知的“tracert”應(yīng)用的功能)。此外,代替如果所通告的路由快于舊路由就簡單地接受新通告的信息,還可以采取對所通告時間的精度的某種驗(yàn)證(例如,如果通告了2毫秒的時間,但實(shí)際上更接近20毫秒,則即使仍快于舊路由,也認(rèn)為該更新可疑)。
對于本領(lǐng)域技術(shù)人員來說,毫無疑問可以進(jìn)行很多其他類似的這種變化。
權(quán)利要求
1.一種操作數(shù)據(jù)網(wǎng)絡(luò)的方法,該數(shù)據(jù)網(wǎng)絡(luò)的類型為其中多個相互連接的路由器裝置根據(jù)與各個路由器相關(guān)聯(lián)的路由表將接收到的數(shù)據(jù)分組朝向目的地節(jié)點(diǎn)轉(zhuǎn)發(fā),所述方法包括以下步驟在所述多個路由器之一接收路由信息,確定所述信息是否是如果其為正確的則其將使得該路由器更新其路由表中的一個或更多個條目的信息,如果確定所述信息是這樣的信息,則發(fā)送兩個測試分組,所述兩個測試分組中的一個測試分組是根據(jù)路由表中包含的現(xiàn)有信息發(fā)送的,而另一個測試分組是根據(jù)若依照接收到的信息更新路由表則路由表中將包括的信息而發(fā)送的;比較兩個測試發(fā)送的結(jié)果;并且,如果所述比較表示接收到的信息是正確的,則更新路由表以反映接收到的信息,否則忽略所述信息并保持路由表不變。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述數(shù)據(jù)分組是使用網(wǎng)際協(xié)議通過網(wǎng)絡(luò)傳輸?shù)摹?br>
3.根據(jù)權(quán)利要求1或2所述的方法,其中,生成的所述測試分組具有隨機(jī)序列ID號。
4.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的方法,其中,發(fā)送的所述測試分組具有隨機(jī)量的數(shù)據(jù)填充。
5.使用數(shù)據(jù)網(wǎng)絡(luò)或互連網(wǎng)絡(luò)內(nèi)的路由器來將接收到的數(shù)據(jù)分組朝向目的地節(jié)點(diǎn)傳輸?shù)姆椒?,在所述?shù)據(jù)網(wǎng)絡(luò)或互連網(wǎng)絡(luò)中,可以經(jīng)由相鄰路由器之間的多跳將數(shù)據(jù)分組從所述網(wǎng)絡(luò)或互連網(wǎng)絡(luò)內(nèi)的源節(jié)點(diǎn)發(fā)送到目的地節(jié)點(diǎn),其中,所述路由器保持有路由表并通過查詢該路由表來確定如何轉(zhuǎn)發(fā)接收到的要求向前傳輸?shù)臄?shù)據(jù)分組,所述方法包括以下步驟接收網(wǎng)絡(luò)配置信息,確定該信息是否表示路由器應(yīng)該修改其路由表中的一個或更多個條目,如果確定是這樣,則執(zhí)行測試以確定實(shí)際上是否應(yīng)該按照所接收到的信息指示的方式來修改路由表,如果確定是這樣,則相應(yīng)地更新路由表,否則就保持路由表不變。
6.根據(jù)權(quán)利要求5所述的使用路由器的方法,其中,所述測試包括以下步驟向在測試結(jié)果為肯定的情況下可能要在路由表中改變其路由的目的地節(jié)點(diǎn)分別經(jīng)由當(dāng)前路由和可能的新路由傳輸兩個診斷分組,并且確定哪個路由帶來最短的延遲。
7.根據(jù)權(quán)利要求5或6所述的使用路由器的方法,其中,使用網(wǎng)際協(xié)議通過網(wǎng)絡(luò)來傳輸要轉(zhuǎn)發(fā)的數(shù)據(jù)分組。
8.根據(jù)權(quán)利要求6所述的使用路由器的方法,其中,生成的所述測試分組具有隨機(jī)序列ID號。
9.根據(jù)權(quán)利要求6或8所述的使用路由器的方法,其中,發(fā)送的所述測試分組具有隨機(jī)量的數(shù)據(jù)填充。
10.一種用在數(shù)據(jù)網(wǎng)絡(luò)中的路由器,該路由器包括存儲裝置,用來存儲路由表;多個通信端口,當(dāng)所述路由器用作相互連接的網(wǎng)絡(luò)或者節(jié)點(diǎn)或網(wǎng)絡(luò)的互連網(wǎng)絡(luò)的一部分時,所述多個通信端口將數(shù)據(jù)發(fā)送到相互連接的節(jié)點(diǎn)并且從相互連接的節(jié)點(diǎn)接收數(shù)據(jù);以及處理器或處理器組,用于處理在一個或更多個通信端口接收到的關(guān)于網(wǎng)絡(luò)配置的信息,并根據(jù)所接收到的網(wǎng)絡(luò)配置信息更新路由表,該路由器的特征在于,所述處理器或處理器組在接收到新的網(wǎng)絡(luò)配置信息時可以附加地進(jìn)行如下操作確定所述信息是否表示所述路由器應(yīng)該修改其路由表中的一個或更多個條目,如果確定是這樣,則執(zhí)行測試以確定實(shí)際上是否應(yīng)該按照所接收到的信息指示的方式修改路由表,并且如果確定是這樣,則相應(yīng)地更新路由表,否則就保持路由表不變。
11.根據(jù)權(quán)利要求10所述的路由器,其中,所述測試包括以下步驟對于路由器鑒于所接收到的網(wǎng)絡(luò)配置信息而確定為應(yīng)該改變的各個條目發(fā)送一對測試分組,其中,各個測試分組對中的一個測試分組是根據(jù)路由表中包含的現(xiàn)有信息發(fā)送的,而其中另一個測試分組是根據(jù)若依照接收到的信息更新路由表則路由表中將包括的信息而發(fā)送的。
12.根據(jù)權(quán)利要求10或11所述的路由器,其中,所述路由器根據(jù)網(wǎng)際協(xié)議進(jìn)行操作。
13.根據(jù)權(quán)利要求11或12所述的路由器,其中,生成的所述測試分組具有隨機(jī)序列ID號。
14.根據(jù)權(quán)利要求11、12或13所述的路由器,其中,發(fā)送的所述測試分組具有隨機(jī)量的數(shù)據(jù)填充。
15.一種數(shù)據(jù)網(wǎng)絡(luò)或互連網(wǎng)絡(luò),該數(shù)據(jù)網(wǎng)絡(luò)或互連網(wǎng)絡(luò)包括多個根據(jù)權(quán)利要求10至14中的任一項(xiàng)所述的路由器。
16.一種計(jì)算機(jī)程序或程序組,所述計(jì)算機(jī)程序或程序組在其執(zhí)行期間可以進(jìn)行操作以執(zhí)行權(quán)利要求1至9中的任一項(xiàng)所述的方法。
17.一種載有權(quán)利要求16所述的計(jì)算機(jī)程序或程序組的載體介質(zhì)。
全文摘要
本發(fā)明提供用測試分組操作網(wǎng)絡(luò)的方法。數(shù)據(jù)網(wǎng)絡(luò)的類型為多個相互連接的路由器裝置根據(jù)與各個路由器相關(guān)聯(lián)的路由表將接收到的數(shù)據(jù)分組朝向目的地節(jié)點(diǎn)轉(zhuǎn)發(fā)。所述方法包括以下步驟在所述多個路由器之一接收路由信息,確定所述信息是否是如果其為正確的則其將使得該路由器更新其路由表中的一個或更多個條目的信息,如果確定了所述信息是這樣的信息則發(fā)送兩個測試分組,其中一個測試分組是根據(jù)在路由表中包含的現(xiàn)有信息發(fā)送的,另一個測試分組是根據(jù)若依照接收到的信息更新路由表則路由表中將包括的信息而發(fā)送的;比較兩個測試發(fā)送的結(jié)果;如果比較表示接收的信息是正確的,則更新路由表以反映接收到信息,否則忽略所述信息并保持路由表不變。
文檔編號H04L29/06GK1989745SQ200580024602
公開日2007年6月27日 申請日期2005年7月15日 優(yōu)先權(quán)日2004年7月20日
發(fā)明者何利文 申請人:英國電訊有限公司