專利名稱:具有平均速率和突發(fā)速率控制的基于泛洪的路由協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò),更具體地,涉及用于計(jì)算機(jī)網(wǎng)絡(luò)中的路由協(xié)議。
背景技術(shù):
計(jì)算機(jī)網(wǎng)絡(luò)為交換數(shù)據(jù)、共享資源的一組互連計(jì)算設(shè)備。在基于包的網(wǎng)絡(luò)中,比如互聯(lián)網(wǎng),計(jì)算設(shè)備通過將數(shù)據(jù)分割為稱作包的小塊來傳遞數(shù)據(jù),這些包被分別路由穿過網(wǎng)絡(luò)從源設(shè)備到達(dá)目標(biāo)設(shè)備。目標(biāo)設(shè)備從包中提取數(shù)據(jù),然后將數(shù)據(jù)組裝成其原始形式。網(wǎng)絡(luò)中被稱為路由器的某些設(shè)備使用路由協(xié)議交換和積累描述網(wǎng)絡(luò)的拓?fù)湫畔ⅰ?這允許路由器建設(shè)其自己的網(wǎng)絡(luò)的路由拓?fù)鋱D。一旦接收到輸入數(shù)據(jù)包,路由器則檢查包中的關(guān)鍵信息(keying ^formation),并根據(jù)累積的拓?fù)湫畔⑥D(zhuǎn)發(fā)包。許多路由協(xié)議使用基于泛洪的分發(fā)機(jī)制向網(wǎng)絡(luò)中的路由器通知拓?fù)湫畔ⅰ_@些路由協(xié)議通常依賴于需要每個(gè)路由器具有同步路由拓?fù)湫畔⒌穆酚伤惴?。例如,開放最短路徑優(yōu)先(OSPF)和中間系統(tǒng)到中間系統(tǒng)(IS-IS)路由協(xié)議為使用鏈路狀態(tài)消息來確保其路由拓?fù)渑c關(guān)于可用接口、度量和其它與網(wǎng)絡(luò)鏈路相關(guān)聯(lián)的變量同步的鏈路狀態(tài)協(xié)議。例如, OSPF利用鏈路狀態(tài)通告(LSA),而IS-IS使用鏈路狀態(tài)協(xié)議數(shù)據(jù)單元(LSP)來交換信息。 生成鏈路狀態(tài)消息的路由器通常遍及網(wǎng)絡(luò)來泛洪(flood)鏈路狀態(tài)消息,以致于每個(gè)其它路由器都接收鏈路狀態(tài)消息。在路由器通過點(diǎn)對點(diǎn)連接連接起來的網(wǎng)絡(luò)拓?fù)渲?,每個(gè)路由器向每個(gè)接口上可達(dá)的鄰近路由器泛洪鏈路狀態(tài)消息以確保同步。在使用諸如以太網(wǎng)的多路存取介質(zhì)的網(wǎng)絡(luò)中,網(wǎng)絡(luò)中的路由器向所有其它路由器泛洪鏈路狀態(tài)消息。在任意一種情況下,接收路由器使用經(jīng)由鏈路狀態(tài)消息接收的鏈路信息來構(gòu)建和保持它們自己的網(wǎng)絡(luò)拓?fù)?。IS-IS 在 “ Intermediate system to Intermediate systemrouting information exchange protocol for use in conjunction with the Protocolfor providing the Connectionless-mode Network Service (ISO 8473) ”,ISO,IS0/IEC 10589 :2002 中有詳細(xì)說明,其全部內(nèi)容結(jié)合于此作為參考。近來,基于泛洪的路由協(xié)議已經(jīng)被擴(kuò)展到在路由器之間攜帶對路由控制有幫助的重要信息(significant Information) 0例如,除攜帶拓?fù)湫畔⑼?,路由協(xié)議已經(jīng)被擴(kuò)展到攜帶具體執(zhí)行信息,例如配置數(shù)據(jù)、硬件清單、附加的性能信息和其它信息。
發(fā)明內(nèi)容
通常,增強(qiáng)的基于泛洪的路由協(xié)議被描述為提供突發(fā)速率和平均速率流控制。本技術(shù)可以允許使用傳統(tǒng)的基于泛洪的路由協(xié)議以同步路由器間的大量的數(shù)據(jù),但是提供允許單獨(dú)的(individual)接收路由器能夠控制每個(gè)發(fā)送器泛洪信息的速率的機(jī)制。尤其,描述了接收路由器通過發(fā)送路由器控制基于泛洪的傳輸?shù)钠骄俾屎屯话l(fā)速率的技術(shù)。此外,控制可以以不使接收器過載的自動(dòng)防故障方式來實(shí)現(xiàn)。即,在某些情況下,如果沒有通過接收路由器接收到肯定的允許,則發(fā)送路由器可以減少甚至?xí)和;诜汉榈膫鬏?。通過實(shí)施這樣的機(jī)制,在網(wǎng)絡(luò)中的基于泛洪的路由協(xié)議的分配機(jī)制可以被作為 “拉(pull) ”模型實(shí)施,其中,通過單獨(dú)的接收路由器消耗狀態(tài)信息的速率來最終控制通過網(wǎng)絡(luò)的狀態(tài)信息流。在一個(gè)實(shí)例中,在本文中所描述的基于泛洪的路由協(xié)議被擴(kuò)展到包含平均速率控制,平均速率控制允許接收路由器連續(xù)不斷地控制發(fā)送路由器向鄰接(adjacency)泛洪信息的平均速率。特別是,用于路由器間通信的路由協(xié)議攜帶擴(kuò)展參數(shù),通過該擴(kuò)展參數(shù),接收路由器指定傳輸信用值。在一個(gè)實(shí)施方式中,信用值指定允許發(fā)送器向接收器發(fā)送的附加包的數(shù)目??蛇x地,信用值指定允許發(fā)送器發(fā)送的字節(jié)數(shù)目。在發(fā)送指定數(shù)目的包或字節(jié)時(shí),發(fā)送器暫停傳輸,直到接收到另外的信用值。由接收路由器提高了信用值的速率決定了發(fā)送路由器傳送數(shù)據(jù)的平均速率,并允許接收路由器控制需要接收路由器處理輸入數(shù)據(jù)的平均速率。每次提高的信用值的量和接收路由器提高信用值的算法決定了網(wǎng)絡(luò)中數(shù)據(jù)流的動(dòng)態(tài),包括最大釋放量和平均包吞吐量,其又反過來決定了接收路由器需要的緩沖量。接收路由器周期性地傳輸它們的信用值,作為可靠性機(jī)制以避免通信的失敗阻止了發(fā)送路由器接收信用值的死鎖狀況。在第二個(gè)實(shí)例中,本文中所描述的基于泛洪的路由協(xié)議被擴(kuò)展到允許接收路由器以最小包傳輸間隔的形式指定發(fā)送路由器所應(yīng)用的策略。即,接收路由器確定和指定發(fā)送路由器必須在每個(gè)包傳輸間延遲的最小傳輸間隔。這提供了除了由基于信用值方案提供的平均速率控制以外的突發(fā)速率控制,并且,被應(yīng)用于諸如以太網(wǎng)的多路存取介質(zhì),和點(diǎn)對點(diǎn)鏈路拓?fù)洹Mㄟ^實(shí)施這樣的機(jī)制,網(wǎng)絡(luò)系統(tǒng)中基于泛洪的路由協(xié)議的鏈路狀態(tài)消息可以被實(shí)施為“拉”模型,其中,通過單獨(dú)的接收路由器消耗拓?fù)湫畔⒌乃俾蕘碜罱K控制通過網(wǎng)絡(luò)系統(tǒng)的數(shù)據(jù)流。本文中所描述的機(jī)制可以用可擴(kuò)展的基于泛洪的路由協(xié)議,比如IS-IS,以反相兼容形式配置。在一個(gè)實(shí)施方式中,基于泛洪的鏈路狀態(tài)路由協(xié)議的鏈路狀態(tài)消息傳輸?shù)目刂品椒ǎㄍㄟ^層二(U)通信介質(zhì)在第一路由器和第二路由器之間建立鏈路狀態(tài)路由鄰接。 該方法還包括根據(jù)基于泛洪的鏈路狀態(tài)路由協(xié)議,利用第一路由設(shè)備接收入站消息。入站消息指定第一路由器和第二路由器之間的路由鄰接的最小包間隔。該方法還包括通過L2 通信介質(zhì)從第一路由器向第二路由器泛洪多個(gè)鏈路狀態(tài)消息以傳遞鏈路狀態(tài)消息。當(dāng)向第二路由器泛洪消息時(shí),第一路由器至少保持所述多個(gè)鏈路狀態(tài)消息中每個(gè)之間的指定的所述最小包間隔。在另一個(gè)實(shí)施方式中,路由設(shè)備包括網(wǎng)絡(luò)接口,被配置為通過層二(U)通信介質(zhì)發(fā)送和接收包。路由設(shè)備還包括耦接至網(wǎng)絡(luò)接口的控制單元?;诜汉榈逆溌窢顟B(tài)路由協(xié)議,在控制單元的處理器上執(zhí)行,以便為網(wǎng)絡(luò)保持網(wǎng)絡(luò)拓?fù)湫畔⒁约巴ㄟ^所述層二(L2)通信介質(zhì)與對等路由器(peer router)建立鄰接。路由設(shè)備的數(shù)據(jù)庫存儲(chǔ)由鄰接的對等路由器指定的最小包間隔,并且出站包隊(duì)列存儲(chǔ)由鏈路狀態(tài)路由協(xié)議生成的在要通過L2通信介質(zhì)向?qū)Φ嚷酚善鞣汉榈亩鄠€(gè)鏈路狀態(tài)消息。路由設(shè)備還包括調(diào)度器,使鏈路狀態(tài)消息從出站包隊(duì)列出列,并向L2通信介質(zhì)泛洪每個(gè)鏈路狀態(tài)消息,其中,當(dāng)向L2通信介質(zhì)泛洪多個(gè)鏈路狀態(tài)消息時(shí),調(diào)度器至少保持多個(gè)鏈路狀態(tài)消息中每個(gè)之間的指定的最小包間隔。本發(fā)明的一個(gè)或者多個(gè)實(shí)施方式的詳細(xì)說明將在下面的附圖和說明書中描述。本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將很明顯地從說明書、附圖和權(quán)利要求書中得出。
圖1為示出符合本發(fā)明的原理的支持增強(qiáng)鏈路狀態(tài)協(xié)議的示例性網(wǎng)絡(luò)系統(tǒng)的框圖;圖2為示出符合本發(fā)明的原理的支持增強(qiáng)LSP的路由器的框圖;圖3為示出根據(jù)增強(qiáng)路由協(xié)議指定當(dāng)前傳輸信用值和當(dāng)前策略值(policer value)的接收路由器的示例性操作的流程圖;圖4為示出了根據(jù)增強(qiáng)路由協(xié)議傳輸包的發(fā)送路由器傳輸包的示例性操作的框圖;圖5為已經(jīng)被擴(kuò)展為允許路由器指定當(dāng)前傳輸信用值和當(dāng)前策略值的多重廣播鏈路狀態(tài)消息報(bào)頭的實(shí)例。
具體實(shí)施例方式圖1為示出了符合本發(fā)明原理的支持增強(qiáng)鏈路狀態(tài)協(xié)議的示例性網(wǎng)絡(luò)系統(tǒng)10的框圖。為了便于說明,示例性網(wǎng)絡(luò)系統(tǒng)10被示出為包括使用不同形式的下層層二(U)通信介質(zhì)的兩個(gè)網(wǎng)絡(luò)12A、12B。例如,網(wǎng)絡(luò)12A使用“多路存取介質(zhì)” 15,其中網(wǎng)絡(luò)的所有L2通信被發(fā)送到(即,廣播到)耦接至網(wǎng)絡(luò)的所有路由器14A-14F。例如,廣播網(wǎng)絡(luò)的一個(gè)實(shí)例為以太網(wǎng),其中以太幀被傳送到網(wǎng)絡(luò)的所有節(jié)點(diǎn)。相比之下,網(wǎng)絡(luò)12B使用點(diǎn)對點(diǎn)L2通信介質(zhì),例如,光鏈路16A-16D。在這種情況下,路由協(xié)議更新消息在相鄰的路由器之間發(fā)送, 并且被那些路由器處理和終止。在該實(shí)例中,路由器14E、14F物理存在于使用路由器所提供的不同物理接口的兩個(gè)網(wǎng)絡(luò)12A和12B中。雖然圖1中未示出,但是網(wǎng)絡(luò)系統(tǒng)10可以包括其它網(wǎng)絡(luò)設(shè)備,例如,交換機(jī)和集線器。此外,雖然圖1中未示出,但是每個(gè)路由器14通常為各種用戶終端計(jì)算設(shè)備服務(wù),例如膝上型計(jì)算機(jī)、臺式計(jì)算機(jī)、工作站、個(gè)人數(shù)字助理 (PDA)和移動(dòng)電話。為了便于說明本文描述的技術(shù),示出了關(guān)于使用L2多路存取介質(zhì)15的網(wǎng)絡(luò)12A 和使用L2點(diǎn)對點(diǎn)介質(zhì)16的網(wǎng)絡(luò)12B的網(wǎng)絡(luò)系統(tǒng)10。在這里,參考層,例如L2和L3,指的是在開放系統(tǒng)互連(OSI)模型中的適當(dāng)?shù)膶印>唧w地,L2指的是OSI模型中的數(shù)據(jù)鏈路層。數(shù)據(jù)鏈路層可以提供在網(wǎng)絡(luò)設(shè)備之間傳輸數(shù)據(jù)以及檢測并可校正可能在物理層中發(fā)生的錯(cuò)誤的功能上和程序上的方法。L2通信介質(zhì)的實(shí)例是以太網(wǎng)。L3指的是在OSI 模型中的網(wǎng)絡(luò)層。網(wǎng)絡(luò)層可以提供在保持高層所需要的服務(wù)質(zhì)量的同時(shí)經(jīng)由一個(gè)或多個(gè)網(wǎng)絡(luò)從源向目的地傳輸可變長度的數(shù)據(jù)序列的功能上和程序上的方法。層3協(xié)議的實(shí)例為因特網(wǎng)協(xié)議(IP)。關(guān)于OSI模型的更多信息可以在如下文獻(xiàn)中找到IEEE出版的標(biāo)題為"0SI Reference Model-the ISO Model of Architecture for Open Systems Interconnection",由 HubretZimmermann 于 1980 年 4 月發(fā)表在 IEEE Transactions on Communications第觀卷第4號,其全部內(nèi)容結(jié)合于此作為參考。通常,路由器14使用基于泛洪的路由協(xié)議來彼此通知拓?fù)湫畔⒉⑹姑總€(gè)路由器所保持的鏈路狀態(tài)數(shù)據(jù)庫同步。如本文所描述的,路由器14支持已經(jīng)以本文所描述的方法擴(kuò)展的增強(qiáng)鏈路狀態(tài)協(xié)議(LSP),通過該協(xié)議,消耗(consume)拓?fù)湫畔⒌慕邮章酚善髂軌蚩刂瓢l(fā)送路由器的基于泛洪的傳輸?shù)钠骄屯话l(fā)速率。在一個(gè)實(shí)例中,新的不透明類型、長度、值(TLV =Type, Length, Value)被限定為,可由已經(jīng)在網(wǎng)絡(luò)系統(tǒng)10內(nèi)使用的各種類型的鏈路狀態(tài)消息來攜帶。TLV可以包括第一字段,用于承載允許路由器控制另一個(gè)路由器向鄰接泛洪信息的平均速率的傳輸信用值(credit)。此外,TLV可以包括第二字段,用于承載發(fā)送路由器必須在每個(gè)連續(xù)包傳輸之間延遲的最小時(shí)間間隔(例如,以微秒計(jì))。這允許接收路由器以非常低的反向帶寬消耗控制發(fā)送路由器中的策略,進(jìn)而控制包突發(fā)速率。通過實(shí)施這樣的機(jī)制,網(wǎng)絡(luò)系統(tǒng)10中的基于泛洪的路由協(xié)議的鏈路狀態(tài)消息可以被實(shí)施為“拉” 模型,其中,各接收路由器14消耗拓?fù)湫畔⒌乃俾首罱K控制通過網(wǎng)絡(luò)系統(tǒng)的數(shù)據(jù)流。TLV可以由已在網(wǎng)絡(luò)系統(tǒng)10中使用的各種類型的鏈路狀態(tài)消息攜帶。例如,路由器14通常交換初始鏈路狀態(tài)消息以建立鄰接關(guān)系。例如,路由器14可以交換IS-IS HELLO 協(xié)議數(shù)據(jù)單元(PDU)以與其它路由器建立鄰接。路由器14可以在這些初始PDU中包括本文所描述的TLV,以便通知其它路由器關(guān)于它們的數(shù)據(jù)消耗速率需求。此外,或者可選地, 路由器14在基于泛洪的鏈路狀態(tài)消息中不透明地包括TLV,以使每個(gè)路由器所保持的鏈路狀態(tài)數(shù)據(jù)庫同步。每個(gè)鏈路狀態(tài)消息通常在網(wǎng)絡(luò)上周期性地更新,并且被接收路由器確認(rèn)。 例如,路由器14可以利用周期性的IS-IS鏈路狀態(tài)PDU以使它們的鏈路狀態(tài)數(shù)據(jù)庫同步, 可以利用部分序列號PDU(PSNP)和完整序列號PDU(CSNP)以確認(rèn)信息的接收。路由器14 可以將TLV嵌入鏈路狀態(tài)PDU中,或者,更可能地,嵌入確認(rèn)PDU中。在一個(gè)實(shí)施方式中,發(fā)送路由器將平均和突發(fā)速率控制機(jī)制僅應(yīng)用于承載其它信息的路由拓?fù)湫畔⒌摹皵?shù)據(jù)承載” L3信令通信,對于該路由拓?fù)湫畔?,路由協(xié)議已被擴(kuò)展以用于傳送。即,在該實(shí)例中,發(fā)送路由器并未將控制機(jī)制應(yīng)用于用于建立和保持鄰接關(guān)系或者確認(rèn)數(shù)據(jù)的接收以及校驗(yàn)數(shù)據(jù)庫的同步的路由協(xié)議的其它控制信息。作為一個(gè)實(shí)例,網(wǎng)絡(luò)12B中的路由器141典型地與作為對等(peer)路由器的路由器14G和14H建立分開的鄰接。路由器141周期性地在鏈路16A和16B上泛洪鏈路狀態(tài)消息18A和18B以確保路由器14G-14I保持同步的鏈路狀態(tài)數(shù)據(jù)庫。一旦從路由器141接收到鏈路狀態(tài)消息,路由器14G、14H便回復(fù)確認(rèn)鏈路狀態(tài)消息20A、20B,例如,IS-IS PSNP0 這種交互不斷進(jìn)行,從而路由器14I-14H保持同步的鏈路狀態(tài)數(shù)據(jù)庫。貫穿該處理,路由器 141在第一模式下操作,其中,路由器根據(jù)路由器14G最近指定的當(dāng)前傳輸信用值和最小時(shí)間間隔控制鏈路16A上的鏈路狀態(tài)消息18A的傳輸。同樣地,路由器141根據(jù)路由器14H 最近指定的當(dāng)前傳輸信用值和最小時(shí)間間隔控制鏈路16B上的鏈路狀態(tài)消息18B的傳輸。 路由器141可以已接收到由與路由器之間的點(diǎn)對點(diǎn)鄰接相關(guān)的鄰接建立消息(例如,IS-IS HELLO消息)或隨后的確認(rèn)鏈路狀態(tài)消息20 (例如,IS-ISPSNP)攜帶的不透明TLV中的鄰接指定的流控制機(jī)制。當(dāng)在廣播網(wǎng)絡(luò)12A中分發(fā)路由拓?fù)湫畔r(shí),路由器14A-14F通過多路存取介質(zhì) 15 (例如,交換式以太網(wǎng)介質(zhì))泛洪組播鏈路狀態(tài)消息。繼續(xù)上述的實(shí)例,響應(yīng)于從路由器 14G接收到鏈路狀態(tài)消息,路由器14E可以在多路存取介質(zhì)15上輸出一個(gè)以上組播鏈路狀態(tài)消息,以將路由拓?fù)湫畔⒎汉橹炼嗦反嫒〗橘|(zhì)以及從每個(gè)路由器14A-14D接收確認(rèn)24。 在一個(gè)實(shí)例中,路由器14E向多路存取介質(zhì)15周期性地輸出鏈路狀態(tài)消息22作為IS-IS鏈路狀態(tài)PDU,并且從確認(rèn)該信息接收的每個(gè)路由器14A-14D接收IS-IS CSNP形式的確認(rèn)M。 在該處理中,路由器14E在第二模式下操作,其中,路由器根據(jù)確認(rèn)M所攜帶的TLV中最長的最小時(shí)間間隔控制多路存取介質(zhì)15上組播鏈路狀態(tài)消息22的傳輸,而不考慮TLV中指定的任何當(dāng)前傳輸信用值。即,當(dāng)將鏈路狀態(tài)消息傳輸?shù)骄W(wǎng)絡(luò)的多路存取介質(zhì)15上時(shí),路由器14E忽略從廣播網(wǎng)絡(luò)12A接收的確認(rèn)鏈路狀態(tài)消息20 (例如,IS-IS PSNP)的TLV中指定的任何包信用值。以相似的方式,每個(gè)參與廣播網(wǎng)絡(luò)12A的路由器14A-14F根據(jù)當(dāng)前最長的由任意路由器指定的最小包間隔來傳輸數(shù)據(jù)承載鏈路狀態(tài)消息。這自然將網(wǎng)絡(luò)12A 的所有鄰居之間的包速率扼制到任意路由器當(dāng)前要求的最慢速率。在該實(shí)例中,組播模式的語法與上面參照網(wǎng)絡(luò)12B描述的點(diǎn)對點(diǎn)模式的一樣。在一些實(shí)例中,路由器14E可以被配置為與廣播網(wǎng)絡(luò)12的一個(gè)以上路由器 14A-14D、14F建立點(diǎn)對點(diǎn)路由協(xié)議鄰接,即使通過多路存取介質(zhì)15進(jìn)行通信。在這種情況下,對于每個(gè)鄰接,路由器14E以如上所述的點(diǎn)對點(diǎn)模式進(jìn)行操作,從而基于鄰接的最小包間隔和當(dāng)前分配的信用值來控制包速率。利用點(diǎn)對點(diǎn)鄰接的網(wǎng)格來使用策略和信用值分配,即使通過多路存取介質(zhì)15也能使流控制密集(tight)。然而,某些基于泛洪的協(xié)議,例如IS-IS,利用多路存取介質(zhì)上的組播特征,而不依賴于由所有路由器進(jìn)行的周期性重發(fā)。 例如,在IS-IS中,指定的路由器周期性地將狀態(tài)的摘要(以CSNP的形式)傳輸?shù)蕉嗦反嫒〗橘|(zhì)(例如,LAN)上。當(dāng)另一個(gè)路由器接收到摘要時(shí),如果指定的路由器丟失了包,則該路由器通常將請求丟失包(通過發(fā)送PSNP)或者組播丟失包。這意味著在LAN上的IS-IS 有效路由器可以安全地丟棄輸入的IS-IS通信,而不給LAN增加任何負(fù)擔(dān),S卩,不會(huì)使得LAN 上的任何其它系統(tǒng)試圖向它轉(zhuǎn)播所丟棄的通信。在這樣的系統(tǒng)中,管理員可以避免多路存取介質(zhì)上點(diǎn)對點(diǎn)鄰接的完全網(wǎng)格,并且組播模式的利用可以提供足夠的流控制水平和高數(shù)據(jù)傳輸速率。圖2為示出了用于IS-IS路由協(xié)議的本文所描述的平均和突發(fā)速率控制信息的示例性編碼的框圖。通常,IS-IS鏈路狀態(tài)PDU由固定的報(bào)頭和均包含類型、長度和值(TLV) 的多個(gè)元組組成。在圖2的實(shí)例中,TLV 40包括類型字段42、長度字段44以及被分割為信用值子字段46和最小包間隔子字段48的值字段45。類型字段42具有一個(gè)字節(jié)(octet)的長度,指定本文中限定的用于承載基于泛洪的路由協(xié)議的傳送突發(fā)速率和平均速率控制信息的新TLV的唯一標(biāo)識符。長度字段44長度為一個(gè)字節(jié),指示值字段45的字節(jié)長度,即,在該示例性TLV中為6。信用值子字段46指定允許數(shù)據(jù)發(fā)送路由器傳輸?shù)臄?shù)據(jù)承載鏈路狀態(tài)消息(例如, IS-IS鏈路狀態(tài)PDU)的數(shù)目。在一個(gè)實(shí)施方式中,零值表示數(shù)據(jù)發(fā)送路由器必須停止發(fā)送數(shù)據(jù)承載鏈路狀態(tài)消息。如果降低特定鄰接的信用值不會(huì)阻止已經(jīng)從發(fā)送路由器發(fā)出的鏈路狀態(tài)消息的到達(dá),則數(shù)據(jù)接收路由器可以通過在PSNP或者CNSP中包括新TLV 40而在任何時(shí)間改變信用值。當(dāng)向諸如以太網(wǎng)的多路存取介質(zhì)傳輸鏈路狀態(tài)消息時(shí),該子字段可以被數(shù)據(jù)發(fā)送路由器忽略。最小包間隔子字段48以微秒指定最小間隔,鄰接的數(shù)據(jù)發(fā)送路由器必須在連續(xù)的數(shù)據(jù)承載包之間保持該間隔。如上所述,對于點(diǎn)對點(diǎn)鄰接,當(dāng)向發(fā)起TLV的數(shù)據(jù)接收路由器傳輸消息時(shí),接收TLV 40的數(shù)據(jù)發(fā)送路由器必須至少以該間隔隔開數(shù)據(jù)承載鏈路狀態(tài)消息。對于多路存取介質(zhì),數(shù)據(jù)發(fā)送路由器保持由參與多路存取L2網(wǎng)絡(luò)的任意路由器指定的最長間隔。將TLV結(jié)合到用于確認(rèn)數(shù)據(jù)承載鏈路狀態(tài)PDU接收的PSNP或者CSNP中, 允許數(shù)據(jù)接收路由器用非常低的反向帶寬控制數(shù)據(jù)發(fā)送路由器的策略,進(jìn)而控制包突發(fā)速率。該值可以在任意時(shí)間改變,再一次,發(fā)送TLV 40的數(shù)據(jù)發(fā)送路由器應(yīng)該容忍數(shù)據(jù)發(fā)送路由器對更新間隔的響應(yīng)中的延遲。零值意味著數(shù)據(jù)接收路由器不需要數(shù)據(jù)發(fā)送路由器所執(zhí)行的策略。某些值,例如OxFFFFFFFO,可以為特定含意預(yù)留。IS-IS允許任何種類的IS-IS 消息中都包含TLV,并且協(xié)議規(guī)范要求未識別的TLV被路由器忽略。以這種方式,在本文中 TLV 40被稱為不透明的TLV,本文所描述的技術(shù)允許將包括突發(fā)速率控制和平均速率控制的拉模型逐步引入現(xiàn)有的IS-IS網(wǎng)絡(luò)。圖3為示出根據(jù)本文所描述的原理利用增強(qiáng)的基于泛洪的路由協(xié)議的數(shù)據(jù)發(fā)送路由器和數(shù)據(jù)接收路由器的示例性操作的流程圖。最初,一對路由器交換會(huì)話建立消息以建立基于泛洪的路由協(xié)議的鄰接(60,72)。 例如,路由器可以交換IS-IS HELLO PDU以創(chuàng)建鄰接。兩個(gè)路由器都可以將TLV 40包含在其傳輸?shù)腎S-IS HELLO PDU中以指定初始突發(fā)速率和平均速率流控制參數(shù),從而在向一個(gè)路由器發(fā)送數(shù)據(jù)承載路由協(xié)議包時(shí)供另一路由器使用。每個(gè)路由器可以更新內(nèi)部數(shù)據(jù)庫、 會(huì)話表或者其它數(shù)據(jù)結(jié)構(gòu),以存儲(chǔ)通過另一路由器為特定路由協(xié)議鄰接而指定的突發(fā)速率和平均速率流控制參數(shù)。對于多點(diǎn)發(fā)送模式和點(diǎn)對點(diǎn)模式,語法可以是一樣的。例如,TLV 40可以承載在IS-IS HELLO PDU中用于鄰接建立,或者等同的構(gòu)造可以由OSPF HELLO消息承載以協(xié)商和建立初始信用值和突發(fā)速率。如果平均速率和突發(fā)速率控制信息沒有包含在鄰接的至少一個(gè)路由器所進(jìn)行的會(huì)話建立消息中,這意味著路由器要么沒有實(shí)施流控制方案,要么被配置為不參與該方案。 在這種情況下,兩個(gè)路由器后退到基于泛洪的路由協(xié)議的現(xiàn)有傳輸方法。會(huì)話建立消息中的平均速率和突發(fā)速率控制信息用來建立初始信用值和包間隔, 這意味著,例如通過發(fā)送零信用值和/或大包間間隔,路由器可以向它的鄰居請求軟啟動(dòng)。 HELLO消息中的TLV僅在初始建立鄰接時(shí)被解釋,一旦鄰接建立,TLV就可以被接收路由器忽略,而不會(huì)如來自路由器的確認(rèn)消息中所指定那樣為鄰接改變?nèi)魏萎?dāng)前設(shè)置。這允許同樣的Hello包被無限地發(fā)送,這對于分布式包傳輸/吸收機(jī)制是有用的。在建立基于泛洪的路由協(xié)議鄰接之后,路由器使用泛洪鏈路狀態(tài)消息周期性地同步其鏈路狀態(tài)數(shù)據(jù)庫。即,數(shù)據(jù)發(fā)送路由器周期性地進(jìn)行整理和排隊(duì),用于向另一路由器傳輸一個(gè)以上鏈路狀態(tài)消息,例如IS-IS鏈路狀態(tài)PDU,以刷新鏈路狀態(tài)信息(62)。在上下文中,準(zhǔn)備傳輸鏈路狀態(tài)消息的路由器稱為數(shù)據(jù)發(fā)送路由器,鏈路狀態(tài)消息將要發(fā)送到的鄰接的另一路由器稱為數(shù)據(jù)接收路由器。關(guān)于為傳輸而排隊(duì)的出站鏈路狀態(tài)消息,數(shù)據(jù)發(fā)送路由器可以以基于路由器是通過多路存取L2通信介質(zhì)(例如,以太網(wǎng))耦接還是通過點(diǎn)對點(diǎn)通信介質(zhì)(例如,光鏈路) 耦接的兩模式中的一個(gè)模式下操作(64)。如果鄰接是在點(diǎn)對點(diǎn)鏈路上形成的,數(shù)據(jù)發(fā)送路由器查詢當(dāng)前的平均速率流控制以確定鄰接是否已接收了當(dāng)前傳輸信用值,以傳輸排隊(duì)的鏈路狀態(tài)消息(66)。如果沒有, 則數(shù)據(jù)發(fā)送路由器等待信用值被接收(66中的否)。如果對于特定的鄰接存在足夠的信用值,則數(shù)據(jù)發(fā)送路由器確定從在先的數(shù)據(jù)承載鏈路狀態(tài)消息已經(jīng)被泛洪到鄰接開始是否已經(jīng)經(jīng)過了指定的最小包間隔(68)。如果為否,則數(shù)據(jù)發(fā)送路由器在前進(jìn)之前等待足夠時(shí)間經(jīng)過(在68為否)。如果為是,則數(shù)據(jù)發(fā)送路由器使鏈路狀態(tài)消息出列,將該消息泛洪到鄰接,并且重置包間隔計(jì)時(shí)器(70)。如果鄰接在多路存取通信介質(zhì)上形成,數(shù)據(jù)發(fā)送路由器忽略為鄰接指定的任何平均速率流控制(即,信用值)。替代地,數(shù)據(jù)發(fā)送路由器只確定從在先的數(shù)據(jù)承載鏈路狀態(tài)消息已經(jīng)被泛洪到鄰接開始是否已經(jīng)經(jīng)過了指定的最小包間隔(68)。一旦等待了指定的時(shí)間間隔,數(shù)據(jù)發(fā)送路由器便使鏈路狀態(tài)消息出列,并且將該消息泛洪到鄰接(70)。一旦接收數(shù)據(jù)承載鏈路狀態(tài)消息(74),數(shù)據(jù)接收路由器便根據(jù)鏈路狀態(tài)協(xié)議處理該消息,以更新其鏈路狀態(tài)數(shù)據(jù)庫(75)。此外,數(shù)據(jù)接收路由器可以基于其當(dāng)前能力為特定鄰接調(diào)整其當(dāng)前平均速率控制,即,最小包間隔,以處理輸入包(76)。如果為鄰接在點(diǎn)對點(diǎn)通信介質(zhì)上接收包(78),則數(shù)據(jù)接收路由器還為鄰接分配信用值,從而可以在請求額外信用值之前為可以被發(fā)送的最大數(shù)目的包控制突發(fā)速率的速度(80)。數(shù)據(jù)接收路由器可以基于路由器上的當(dāng)前包處理需求為鄰接增加或者減少最小包間隔,和/或分配的信用值。這些需求可以由數(shù)據(jù)接收路由器處理的信令控制平面的包的水平引起,其可以由與該或者其它路由協(xié)議鄰接相關(guān)聯(lián)的入站信令包隊(duì)列的當(dāng)前隊(duì)列長度表示。此外,數(shù)據(jù)接收路由器可以基于轉(zhuǎn)發(fā)臨時(shí)數(shù)據(jù)平面業(yè)務(wù)當(dāng)前所消耗的帶寬和資源調(diào)整最小包間隔和/或分配的信用值。可以考慮的其它標(biāo)準(zhǔn)包括由基于泛洪路由協(xié)議的路由器當(dāng)前保持的鄰接的數(shù)目。一旦對鄰接的信用值做任何調(diào)整和/或?yàn)猷徑臃峙湫庞弥?,?shù)據(jù)接收路由器輸出鏈路狀態(tài)確認(rèn)消息,該消息確認(rèn)接收到向鄰接泛洪的鏈路狀態(tài)更新消息(82)。例如,數(shù)據(jù)接收路由器可以輸出部分序列號PDU或者是完整序列號PDU以確認(rèn)收到該信息。此時(shí),數(shù)據(jù)接收路由器將LTV包括在鏈路狀態(tài)確認(rèn)信息中以向數(shù)據(jù)發(fā)送路由器傳送當(dāng)前最小包間隔和分配給鄰接的任意信用值。以這種方式,該技術(shù)允許基于泛洪的路由協(xié)議通信機(jī)制以更多地作為基于拉模型運(yùn)轉(zhuǎn),在拉模型中數(shù)據(jù)接收路由器在速率上具有微粒度控制,該速率為在路由鄰接上接收數(shù)據(jù)的速率。圖4為示出被配置為符合本發(fā)明的原理的路由器104的實(shí)例的框圖。例如,路由器104可以代表圖1中的任意路由器14。在圖4中示出的示例性實(shí)施方式中,路由器104 包括一個(gè)以上用于使用網(wǎng)絡(luò)鏈路112和113接收和發(fā)送包的接口卡(IFC) 106。IFC 106通常通過多個(gè)物理接口端口耦接網(wǎng)絡(luò)鏈路112、113。通常,路由器104從網(wǎng)絡(luò)鏈路112接收入站包,確定所接收的包的目的地,以及基于目的地在網(wǎng)絡(luò)鏈路113上輸出包。用這種方法, 網(wǎng)絡(luò)鏈路112、113為傳輸包提供L2通信介質(zhì)。網(wǎng)絡(luò)鏈路112、113中的任意一個(gè)可以是諸如以太網(wǎng)的多路存取介質(zhì),或者是諸如光學(xué)連接的點(diǎn)對點(diǎn)介質(zhì)。通常,路由器104可以被看作具有提供了控制平面103和數(shù)據(jù)平面105的控制單元108??刂破矫?03主要負(fù)責(zé)保持鏈路狀態(tài)數(shù)據(jù)庫(DB)IlO以反映泛洪域的當(dāng)前鏈路狀態(tài)數(shù)據(jù)。例如,路由引擎68為鏈路狀態(tài)路由協(xié)議112的執(zhí)行提供運(yùn)行環(huán)境,鏈路狀態(tài)路由協(xié)議112與對等路由器通信并周期性地更新鏈路狀態(tài)DB 110以精確地反映路由器104運(yùn)行在其中的泛洪域(例如圖1中的泛洪域10)的鏈路狀態(tài)。示例協(xié)議包括路由和標(biāo)簽交換協(xié)議,比如IS-IS和OSPF。根據(jù)鏈路狀態(tài)DB 110,轉(zhuǎn)發(fā)元件(forwarding element) 114保持轉(zhuǎn)發(fā)信息116,轉(zhuǎn)發(fā)信息116將網(wǎng)絡(luò)目的地或其它關(guān)鍵信息與特定的下一跳和路由器108的輸出接口卡106 的相應(yīng)接口端口關(guān)聯(lián)起來。控制平面103通常處理鏈路狀態(tài)DB 110以執(zhí)行路由選擇,以及基于所選擇的路由器產(chǎn)生轉(zhuǎn)發(fā)信息116。用這種方法,轉(zhuǎn)發(fā)信息可以被編程到數(shù)據(jù)平面105 內(nèi)??刂破矫?03可以以表、目錄、基樹或者其它數(shù)據(jù)結(jié)構(gòu)的形式產(chǎn)生傳輸信息116。美國專利7,184,437提供了關(guān)于利用基樹進(jìn)行路由解析的路由器的示例性實(shí)施方式,其全部內(nèi)容結(jié)合于此作為參考。當(dāng)轉(zhuǎn)發(fā)臨時(shí)(transient)包時(shí),轉(zhuǎn)發(fā)元件114基于包的報(bào)頭中的關(guān)鍵信息遍歷轉(zhuǎn)發(fā)信息116以最終選擇下一跳以及向其轉(zhuǎn)發(fā)包的輸出接口?;谶x擇,轉(zhuǎn)發(fā)元件114可以直接向輸出接口輸出包,或者在高端路由器的多級交換構(gòu)造的情況下,可以將包轉(zhuǎn)發(fā)到隨后的級用以切換到合適的輸出接口。標(biāo)題為具有多路傳輸?shù)墓鈱W(xué)互聯(lián)的多機(jī)箱式路由器的美國專利申請2008/0044181描述了多機(jī)箱式路由器,其中,諸如3級Clos交換構(gòu)造的多級交換構(gòu)造被用作在多機(jī)箱式路由器的多重路由節(jié)點(diǎn)間轉(zhuǎn)播包的高端轉(zhuǎn)發(fā)面。美國專利申請 2008/0044181的全部內(nèi)容結(jié)合于此作為參考。本發(fā)明并不限于該架構(gòu)。在其它實(shí)施方式中,路由器104可以以多種方式配置。在一個(gè)實(shí)施方式中,例如,所有或者部分控制平面103 和數(shù)據(jù)平面105可以被直接復(fù)制和合并進(jìn)IFC 106內(nèi)。如本文中所描述的,鏈路狀態(tài)路由協(xié)議112是已經(jīng)被本文所描述的方式擴(kuò)展的基于泛洪的通信協(xié)議??刂破矫?03包括輸出隊(duì)列120,輸出隊(duì)列120用于存儲(chǔ)由鏈路狀態(tài)協(xié)議112保持的各路由鄰接的鏈路狀態(tài)消息。例如,輸出隊(duì)列120A可以存儲(chǔ)第一鄰接的出站鏈路狀態(tài)消息,而輸出隊(duì)列120B可以存儲(chǔ)第二鄰接的出站鏈路狀態(tài)消息。當(dāng)經(jīng)由轉(zhuǎn)發(fā)元件 114傳輸出列的輸出鏈路狀態(tài)消息時(shí),調(diào)度器(scheduler) 122根據(jù)本文所描述的技術(shù)和上述關(guān)于圖3的流程圖的闡述運(yùn)行。就是說,關(guān)于數(shù)據(jù)承載鏈路狀態(tài)消息,調(diào)度器122根據(jù)基于突發(fā)速率流控制(即,最小包間隔)以及在鄰接通過點(diǎn)對點(diǎn)通信介質(zhì)可達(dá)的情況下,根據(jù)為鄰接指定的平均速率流控制(即,信用值)控制鏈路狀態(tài)消息的傳輸。數(shù)據(jù)平面105的轉(zhuǎn)發(fā)元件114將入站鏈路狀態(tài)消息117傳遞到用于向鏈路狀態(tài)路由協(xié)議112遞送的入站隊(duì)列119。鏈路狀態(tài)路由協(xié)議112處理入站鏈路狀態(tài)消息,并且更新鄰接數(shù)據(jù)111以保持與其它路由器建立的每個(gè)鄰接的條目(entry)。例如,在鄰接數(shù)據(jù)111內(nèi)的每個(gè)條目指定鄰接的標(biāo)識符(例如,IP地址)、由其它路由器為鄰接分配的當(dāng)前信用值、由其它路由器為鄰接設(shè)置的最小包間隔,以及通過其可達(dá)鄰接的L2通信介質(zhì)的類型,即點(diǎn)對點(diǎn)或者多路存取類型。鏈路狀態(tài)路由協(xié)議112 —旦接收到攜帶如上所述的TLV 40的鄰接的入站鏈路狀態(tài)消息(例如,IS-IS HELLO, PSNP或CSNP),便為給定的鄰接更新突發(fā)速率和平均速率流控制數(shù)據(jù)。在這種情況下,鏈路狀態(tài)路由協(xié)議112解析通過TLV設(shè)置的信用值分配和當(dāng)前最小包間隔,并且更新鄰接數(shù)據(jù)111,從而調(diào)整了調(diào)度器122為那個(gè)鄰接傳輸輸出鏈路狀態(tài)消息的速率。通過相同的L2通信介質(zhì)(即,多路存取介質(zhì))可達(dá)的鄰接可以在鄰接數(shù)據(jù)111中被標(biāo)記,以便對鄰接記錄分組。當(dāng)該組的任何一個(gè)輸出鏈路狀態(tài)消息出列時(shí),調(diào)度器122基于該鄰接中任意一個(gè)指定的最長的最小時(shí)間間隔控制傳輸,而不考慮該鄰接的任何當(dāng)前傳輸信用值。調(diào)度器122為每個(gè)鄰接,或者在多路存取介質(zhì)的情況下為鄰接組,保持計(jì)時(shí)器 124,并且在已經(jīng)滿足給定鄰接的最小包間隔時(shí),只輸出那個(gè)鄰接的鏈路狀態(tài)消息。在另一個(gè)實(shí)例中,該技術(shù)為了在開放最短路徑優(yōu)先(OSPF)鏈路狀態(tài)協(xié)議的框架內(nèi)實(shí)施可以提供增強(qiáng)鏈路狀態(tài)協(xié)議,以創(chuàng)建允許路由器指定當(dāng)前傳輸信用值和當(dāng)前策略值的新類型的網(wǎng)絡(luò)鏈路狀態(tài)協(xié)議。在一個(gè)實(shí)例中,TLV 40的等同物可以包括在OSFP HELLO信息或者LSA確認(rèn)包內(nèi)。在另一個(gè)實(shí)例中,新類型的OSPF LSA可以被限定為攜帶本文所描述的突發(fā)速率和平均速率流控制信息。圖5為本文所描述的用于承載突發(fā)速率和平均速率流控制信息的鏈路狀態(tài)信息報(bào)頭158的實(shí)例。作為圖5所示的示例性實(shí)施方式,鏈路狀態(tài)消息報(bào)頭158遵循OSPF協(xié)議,在其中,它遵守OSPF協(xié)議指定的4字節(jié)寬度限制。就是說,鏈路狀態(tài)消息報(bào)頭158包括一組4字節(jié)的行,如圖5中通過報(bào)頭158頂部顯示的每行為0-31比特范圍所反映的。OSPF 鏈路狀態(tài)消息格式的更多細(xì)節(jié)可以在1998年四月因特網(wǎng)工程任務(wù)推動(dòng)小組(IETF)的RFC 2328中找到,其結(jié)合于此作為參考。如圖5中所示,鏈路狀態(tài)消息報(bào)頭158包括鏈路狀態(tài)消息年齡(age)字段160A、 可選擇字段160B、LS類型字段160C、鏈路狀態(tài)標(biāo)識符字段160D( “鏈路狀態(tài)ID 160D”)、通告路由器字段160E、鏈路狀態(tài)序列號字段160F、鏈路狀態(tài)校驗(yàn)和字段160G,長度字段160H, 分配的信用值字段1601和最小包間隔字段1601。雖然示為包含字段160A-160I( “字段 160”),但是,只要鏈路狀態(tài)消息報(bào)頭158包括最小包間隔字段1601以及,可選地,信用值字段1601,則鏈路狀態(tài)消息報(bào)頭158可以包含多于或者少于圖5中所示的字段160。LS年齡字段160A通常指定以秒計(jì)的包含(bearing)鏈路狀態(tài)消息報(bào)頭158的鏈路狀態(tài)消息的年齡,并用于區(qū)分在其各自的LS序列號字段160F中指定相同的鏈路狀態(tài)消息序列號的兩個(gè)鏈路狀態(tài)消息??蛇x擇字段160B可以指定哪個(gè)可選能力(capability)與包含鏈路狀態(tài)消息報(bào)頭158的鏈路狀態(tài)消息相關(guān)聯(lián)。LS類型字段160C指示包含鏈路狀態(tài)報(bào)頭158的鏈路狀態(tài)消息的格式和功能,即, 鏈路狀態(tài)消息的類型。例如,如果LS類型字段160C存儲(chǔ)“ 1 ”,則與鏈路狀態(tài)消息報(bào)頭158相關(guān)聯(lián)的鏈路狀態(tài)消息被指定為路由器鏈路狀態(tài)消息??蛇x地,例如,如果LS類型字段160C 存儲(chǔ)“2”,則由鏈路狀態(tài)消息報(bào)頭158所限定的鏈路狀態(tài)消息被確定為網(wǎng)絡(luò)鏈路狀態(tài)消息。 通過指定當(dāng)前未被用于限定現(xiàn)有鏈路狀態(tài)消息類型的不同的標(biāo)識符,本文中LS類型字段 160C被用于表示鏈路狀態(tài)消息是用于傳達(dá)突發(fā)速率和平均速率控制信息的流控制類型。鏈路狀態(tài)ID字段160D典型地識別通過包含鏈路狀態(tài)消息報(bào)頭158的鏈路狀態(tài)消息所描述的路由域的一部分。通告路由器字段160E可以指定鏈路狀態(tài)消息的起源的OSPF 路由器標(biāo)識符。LS序列號字段160F可以包括用于檢測舊的和重復(fù)的鏈路狀態(tài)消息的有符號的32比特的整數(shù)。LS校驗(yàn)和字段160G可以表示伴隨鏈路狀態(tài)消息報(bào)頭158的鏈路狀態(tài)消息是否包含錯(cuò)誤,OSPF模型44可以使用LS校驗(yàn)和字段160G以拋棄可能有錯(cuò)誤的鏈路狀態(tài)消息。長度字段160H表示鏈路狀態(tài)消息報(bào)頭158的長度。信用值字段1601為新定義的字段,可以僅在在LS類型字段160C中具有流控制類型的鏈路狀態(tài)消息中出現(xiàn)。如果這樣的值在字段160C中被指定,支持本文中所描述的技術(shù)的OSFP路由協(xié)議可以接收和處理鏈路狀態(tài)消息以提取和記錄由發(fā)起鏈路狀態(tài)消息的路由器指定的最小包間隔和當(dāng)前信用值分配。接收路由器可以隨后使用這些值控制鏈路狀態(tài)消息向路由器泛洪的速率。由于鏈路狀態(tài)消息報(bào)頭158限定了新類型的OSPF信息,OSPF網(wǎng)絡(luò)中的路由器可以選擇一個(gè)周期用于輸出承載該信息的OSPF消息,以控制數(shù)據(jù)承載OSPF LSA的泛洪,而不消耗有效的網(wǎng)絡(luò)帶寬。此外,或可選地,新定義的類型的OSPF消息可以包括拓?fù)涓滦畔ⅲ员愦婊蛘呷〈鷤鹘y(tǒng)的數(shù)據(jù)承載LSA,還為相反方向上的傳輸傳達(dá)速率控制信息。
雖然該技術(shù)被描述為關(guān)于向基于泛洪的路由協(xié)議提高突發(fā)速率和平均速率控制以同步路由器間的數(shù)據(jù),但是該技術(shù)還可以被應(yīng)用于控制單一設(shè)備或者系統(tǒng)的分布式部件間的信息流程。例如,可以預(yù)期,路由器(例如多機(jī)箱式路由器)或者其它復(fù)雜的網(wǎng)絡(luò)設(shè)備可以內(nèi)部地利用基于泛洪的路由協(xié)議在分布式部件間廣播鏈路狀態(tài)和其它狀態(tài)信息。在這種情況下,本文所描述的技術(shù)允許分布式部件(例如,多重路由和轉(zhuǎn)發(fā)部件)實(shí)施基于泛洪的協(xié)議以在設(shè)備內(nèi)泛洪和同步狀態(tài)信息,還允許設(shè)備的數(shù)據(jù)接收部件單獨(dú)地對向各自的部件的狀態(tài)信息的泛洪提供流控制。設(shè)備可以是分離的物理部件,以致于基于泛洪的協(xié)議通過內(nèi)部交換結(jié)構(gòu)、總線或者鏈路傳送信息??蛇x地,不同的部件可以是在由公共的物理計(jì)算環(huán)境提供的虛擬環(huán)境中運(yùn)行的不同的虛擬機(jī)器(例如,分離的虛擬路由器)。在這種情況下,部件可以通過內(nèi)部處理信令機(jī)制實(shí)施基于泛洪的方案。在分布式部件間內(nèi)部地傳輸狀態(tài)信息的網(wǎng)絡(luò)設(shè)備的實(shí)例可以在標(biāo)題為“同步控制單元間狀態(tài)信息”的美國專利7,739,403 和標(biāo)題為“在多機(jī)箱式路由器中不停止轉(zhuǎn)發(fā)”的美國專利申請11Λ92,204中找到,每個(gè)專利結(jié)合于此作為參考。已經(jīng)描述了本發(fā)明的多種實(shí)施方式。這些和其它實(shí)施方式在權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種基于泛洪的鏈路狀態(tài)路由協(xié)議的鏈路狀態(tài)消息的傳輸控制方法,所述方法包括通過層二(U)通信介質(zhì)建立第一路由器和第二路由器之間的鏈路狀態(tài)路由鄰接; 根據(jù)基于泛洪的鏈路狀態(tài)路由協(xié)議,利用第一路由設(shè)備接收入站消息,其中,所述入站消息指定所述第一路由器和所述第二路由器之間的所述路由鄰接的最小包間隔;以及通過所述L2通信介質(zhì)從所述第一路由器向所述第二路由器泛洪多個(gè)鏈路狀態(tài)消息以傳遞所述鏈路狀態(tài)消息,其中,當(dāng)向所述L2通信介質(zhì)泛洪所述多個(gè)鏈路狀態(tài)消息時(shí),所述第一路由器至少保持所述多個(gè)鏈路狀態(tài)消息中每個(gè)之間的指定的所述最小包間隔。
2.根據(jù)權(quán)利要求1所述的方法,還包括利用所述第一路由器確定所述L2通信介質(zhì)包括多路存取通信介質(zhì)還是點(diǎn)對點(diǎn)通信介質(zhì),當(dāng)所述L2通信介質(zhì)包括點(diǎn)對點(diǎn)通信介質(zhì)時(shí),所述第一路由器以第一模式操作,其中, 所述第一路由器以連續(xù)包之間的時(shí)間間隔超出所述鄰接的所述最小包間隔的方式用所述第一路由器向所述L2通信介質(zhì)輸出所述多個(gè)鏈路狀態(tài)消息;以及當(dāng)所述L2通信介質(zhì)包括多路存取通信介質(zhì)時(shí),所述第一路由器以第二模式操作,其中,所述第一路由器(a)識別最長的由與所述第一路由器具有鄰接并且通過同一 L2通信介質(zhì)可達(dá)的一組路由器中的任意路由器指定的最小包間隔,以及(b)利用所述第一路由器以連續(xù)包之間的時(shí)間間隔超出所識別的所述一組路由器的最小包間隔的方式向所述L2通信介質(zhì)泛洪所述多個(gè)鏈路狀態(tài)消息。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述入站消息進(jìn)一步指定由所述第二路由器分配給所述鄰接的包信用值,以及其中,通過所述L2通信介質(zhì)從所述第一路由器向所述第二路由器泛洪多個(gè)鏈路狀態(tài)消息包括,利用所述第一路由器泛洪所述多個(gè)鏈路狀態(tài)消息的子集直到所分配的所述包信用值,以及在泛洪所述多個(gè)鏈路狀態(tài)消息的剩余部分之前等待,直到從所述第二路由器接收到另外的信用值。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述包信用值指定為路由協(xié)議鄰接分配的多個(gè)包或者多個(gè)字節(jié)中的一個(gè)。
5.根據(jù)權(quán)利要求3所述的方法,其中,所述入站消息包括類型、長度和值(TLV),所述類型、長度和值(TLV)包括為所述鄰接指定所述最小包間隔的第一子字段,以及指定由所述第二路由器分配給所述鄰接的所述包信用值的第二子字段。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述入站消息包括包含所述TLV的IS-ISHELLO 協(xié)議數(shù)據(jù)單元。
7.根據(jù)權(quán)利要求5所述的方法,還包括在接收所述入站鏈路狀態(tài)消息之前,從所述第一路由器向所述第二路由器發(fā)送一個(gè)以上鏈路狀態(tài)消息,以使所述第一路由器和所述第二路由器的鏈路狀態(tài)數(shù)據(jù)庫同步;以及響應(yīng)于先前發(fā)送的所述鏈路狀態(tài)消息,利用所述第一路由器接收所述入站消息,其中, 所述入站消息包括IS-IS部分序列號PDU (PSNP),所述IS-IS部分序列號PDU (PSNP)確認(rèn)收到先前發(fā)送的所述鏈路狀態(tài)消息,并包含指定所述最小包間隔和所述包信用值的所述TLV。
8.根據(jù)權(quán)利要求1所述的方法,其中,所述入站消息進(jìn)一步指定由所述第二路由器分配給所述鄰接的包信用值,所述方法還包括利用所述第一路由器確定所述L2通信介質(zhì)包括多路存取通信介質(zhì)還是點(diǎn)對點(diǎn)通信介質(zhì);當(dāng)所述L2通信介質(zhì)包括點(diǎn)對點(diǎn)通信介質(zhì)時(shí),通過利用所述第一路由器輸出所述多個(gè)鏈路狀態(tài)消息的子集直到所分配的所述包信用值,以及在輸出所述多個(gè)鏈路狀態(tài)消息的剩余部分之前等待,直到從所述第二路由器接收到另外的信用值,根據(jù)所分配的所述包信用值控制從所述第一路由器向所述第二路由器的所述多個(gè)鏈路狀態(tài)消息的泛洪;以及當(dāng)所述L2通信介質(zhì)包括多路存取通信介質(zhì)時(shí),通過所述L2通信介質(zhì)從所述第一路由器向所述第二路由器泛洪所述多個(gè)鏈路狀態(tài)消息,而不考慮通過入站鏈路狀態(tài)消息為所述鄰接指定的所述包信用值。
9.一種路由設(shè)備,包括網(wǎng)絡(luò)接口,被配置為通過層二(U)通信介質(zhì)發(fā)送和接收包;控制單元,耦接至所述網(wǎng)絡(luò)接口 ;基于泛洪的鏈路狀態(tài)路由協(xié)議,在所述控制單元的處理器上執(zhí)行,以便為網(wǎng)絡(luò)保持網(wǎng)絡(luò)拓?fù)湫畔?,其中,所述鏈路狀態(tài)路由協(xié)議通過所述層二(U)通信介質(zhì)與對等路由器建立鄰接;數(shù)據(jù)庫,存儲(chǔ)由所述鄰接的所述對等路由器指定的最小包間隔;出站包隊(duì)列,存儲(chǔ)由所述鏈路狀態(tài)路由協(xié)議生成的、要通過所述L2通信介質(zhì)向所述對等路由器泛洪的多個(gè)鏈路狀態(tài)消息;調(diào)度器,使所述鏈路狀態(tài)消息從所述出站包隊(duì)列出列,并向所述L2通信介質(zhì)泛洪每個(gè)所述鏈路狀態(tài)消息,其中,當(dāng)向所述L2通信介質(zhì)泛洪所述多個(gè)鏈路狀態(tài)消息時(shí),所述調(diào)度器至少保持所述多個(gè)鏈路狀態(tài)消息中每個(gè)之間的指定的所述最小包間隔。
10.根據(jù)權(quán)利要求9所述的路由設(shè)備,其中,所述數(shù)據(jù)庫包括多個(gè)路由器的記錄,所述路由設(shè)備利用所述記錄保持所述L2通信介質(zhì)上的鏈路狀態(tài)路由協(xié)議鄰接,每個(gè)所述記錄均指定由相應(yīng)路由器指定的用于向所述路由器泛洪鏈路狀態(tài)消息的最小包間隔,其中,當(dāng)所述L2通信介質(zhì)包括點(diǎn)對點(diǎn)通信介質(zhì)時(shí),所述調(diào)度器以第一模式操作,其中, 所述調(diào)度器以連續(xù)鏈路狀態(tài)消息之間的時(shí)間間隔超出由所述對等路由器指定的所述最小包間隔的方式,向所述L2通信介質(zhì)泛洪所述多個(gè)鏈路狀態(tài)消息;以及其中,當(dāng)所述L2通信介質(zhì)包括多路存取通信介質(zhì)時(shí),所述調(diào)度器以第二模式操作,其中,所述調(diào)度器(a)訪問所述數(shù)據(jù)庫,以識別最長的由在L2通信介質(zhì)上具有鄰接的多個(gè)路由器中的任意一個(gè)指定的最小包間隔;以及(b)以連續(xù)鏈路狀態(tài)消息之間的時(shí)間間隔超出所識別的所述多個(gè)路由器的所述最小包間隔的方式,向所述L2通信介質(zhì)泛洪所述多個(gè)鏈路狀態(tài)消息。
11.根據(jù)權(quán)利要求9所述的路由設(shè)備,其中,所述數(shù)據(jù)庫存儲(chǔ)指定由所述對等路由器當(dāng)前分配給所述鄰接的包信用值的數(shù)據(jù),以及其中,所述調(diào)度器利用所述第一路由器泛洪所述多個(gè)鏈路狀態(tài)消息的子集直到所分配的所述包信用值,以及在泛洪所述多個(gè)鏈路狀態(tài)消息的剩余部分之前等待,直到從所述對等路由器接收到另外的信用值。
12.根據(jù)權(quán)利要求10所述的路由設(shè)備,其中,所述包信用值指定為路由協(xié)議鄰接分配的多個(gè)包或者多個(gè)字節(jié)中的一個(gè)。
13.根據(jù)權(quán)利要求10所述的路由設(shè)備,其中,所述鏈路狀態(tài)路由協(xié)議從所述對等路由器接收具有類型、長度和值(TLV)的入站消息,所述類型、長度和值(TLV)包含為所述鄰接指定所述最小包間隔的第一子字段,以及指定由所述對等路由器分配給所述鄰接的所述包信用值的第二子字段,以及其中,所述鏈路狀態(tài)路由協(xié)議基于所述TLV內(nèi)指定的所述最小包間隔和所述包信用值更新所述數(shù)據(jù)庫。
14.根據(jù)權(quán)利要求13所述的路由設(shè)備,其中,所述入站消息包括包含所述TLV的中間系統(tǒng)到中間系統(tǒng)(IS-IS)路由協(xié)議HELLO協(xié)議數(shù)據(jù)單元。
15.根據(jù)權(quán)利要求13所述的路由設(shè)備,其中,所述入站消息包括IS-IS部分序列號 PDU(PSNP),所述IS-IS部分序列號PDU(PSNP)確定收到先前發(fā)送的所述鏈路狀態(tài)消息,并且包含指定所述最小包間隔和所述包信用值的所述TLV。
16.根據(jù)權(quán)利要求9所述的路由設(shè)備,其中,所述鏈路狀態(tài)路由協(xié)議接收包括報(bào)頭的開放最短路徑優(yōu)先(OSPF)鏈路狀態(tài)通告,所述報(bào)頭指定最小包間隔以及由所述對等路由器分配給所述鄰接的所述包信用值;以及其中,所述鏈路狀態(tài)路由協(xié)議基于所述OSPF報(bào)頭內(nèi)指定的所述最小包間隔和所述包信用值更新所述數(shù)據(jù)庫。
17.根據(jù)權(quán)利要求9所述的路由設(shè)備,其中,所述數(shù)據(jù)庫包括多個(gè)路由器的記錄,所述路由設(shè)備利用所述記錄保持所述L2通信介質(zhì)上的鏈路狀態(tài)路由協(xié)議鄰接,每個(gè)所述記錄均指定由相應(yīng)路由器指定的用于向所述路由器泛洪鏈路狀態(tài)消息的最小包間隔和包信用值,當(dāng)L2通信介質(zhì)包括點(diǎn)對點(diǎn)通信介質(zhì)時(shí),所述調(diào)度器以第一模式操作,其中,所述調(diào)度器向所述L2通信介質(zhì)泛洪多個(gè)鏈路狀態(tài)消息的子集直到被分配的所述包信用值,并且在泛洪所述多個(gè)鏈路狀態(tài)消息的剩余部分之前等待,直到從所述對等路由器接收到另外的包信用值;以及當(dāng)L2通信介質(zhì)包括多路存取通信介質(zhì)時(shí),所述調(diào)度器以第二模式操作,其中,所述調(diào)度器通過所述L2通信介質(zhì)從所述第一路由器向所述對等路由器泛洪所述多個(gè)鏈路狀態(tài)消息,而不考慮通過所述入站鏈路狀態(tài)消息為所述鄰接指定的所述包信用值。
全文摘要
本發(fā)明描述了一種具有平均速率和突發(fā)速率控制的基于泛洪的路由協(xié)議。一種路由設(shè)備,包括網(wǎng)絡(luò)接口,被配置為通過層二(L2)通信介質(zhì)發(fā)送和接收包。基于泛洪的鏈路狀態(tài)路由協(xié)議在路由裝置的處理器上執(zhí)行以便為網(wǎng)絡(luò)保持網(wǎng)絡(luò)拓?fù)湫畔?,以及通過所述層二(L2)通信介質(zhì)建立與對等路由器的鄰接。路由設(shè)備的數(shù)據(jù)庫存儲(chǔ)由用于鄰接的對等路由器指定的最小包間隔和信用值。當(dāng)足夠的信用值被分配給L2通信介質(zhì)時(shí),路由器的調(diào)度器使鏈路狀態(tài)消息從出站包隊(duì)列出列,并向L2通信介質(zhì)泛洪各鏈路狀態(tài)消息,同時(shí)至少保持每個(gè)所述多個(gè)鏈路狀態(tài)消息間的指定的最小包間隔。
文檔編號H04L12/56GK102377666SQ201110240610
公開日2012年3月14日 申請日期2011年8月19日 優(yōu)先權(quán)日2010年8月19日
發(fā)明者戴維·M·卡特茲, 戴維·沃德 申請人:叢林網(wǎng)絡(luò)公司