專利名稱:用于處理復(fù)制分組的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息網(wǎng)絡(luò)領(lǐng)域,更具體而言,本發(fā)明涉及用于識(shí)別復(fù)制分組的方法和裝置。
背景技術(shù):
隨著越來越多的信息通過當(dāng)今的網(wǎng)絡(luò)被傳送,企業(yè)在向它們的顧客提供及時(shí)的服務(wù)和信息時(shí)變得嚴(yán)重依賴于它們的網(wǎng)絡(luò)基礎(chǔ)設(shè)施。這些網(wǎng)絡(luò)基礎(chǔ)設(shè)施的故障會(huì)在收入損失和雇員空閑方面付出極大代價(jià)。因此,具有高可靠性的系統(tǒng)越來越吸引聯(lián)網(wǎng)設(shè)備的用戶。此外,路由器、交換機(jī)和其他這樣的網(wǎng)絡(luò)元件的制造商被不斷地要求提供能夠在仍舊維持這種高可靠性的同時(shí)支持不斷增長的網(wǎng)絡(luò)流量負(fù)擔(dān)的網(wǎng)絡(luò)元件。這些需求迫使網(wǎng)絡(luò)元件提供更大的分組處理速率,這種處理速率的增長通常是通過處理功率的大幅增長來實(shí)現(xiàn)的。
對(duì)于要求這種高可用性的網(wǎng)絡(luò)環(huán)境,一種用于提供故障保險(xiǎn)連接的方法是對(duì)每個(gè)分組進(jìn)行多次發(fā)送,每次發(fā)送通過從源到目的地的若干(或所有)獨(dú)立路徑。由于獨(dú)立路徑,通常提供兩條路徑并兩次發(fā)送分組就足夠了,因?yàn)檫@兩條路徑同時(shí)發(fā)生故障的概率很低。這種方法本質(zhì)上提供了零故障恢復(fù)時(shí)間,因?yàn)槿绻粭l路徑發(fā)生故障,則在另一路徑上(至少以很高概率)接收分組的拷貝。
相反,其他方案通常會(huì)帶來某種延時(shí)。這可能包括諸如以下延時(shí)與活動(dòng)路徑的故障檢測相關(guān)聯(lián)的延時(shí)、與轉(zhuǎn)發(fā)到備選路徑的分組的交換相關(guān)聯(lián)的延時(shí),以及與在切換(這通常由終端主機(jī)處理)期間丟棄的分組流量的重傳相關(guān)聯(lián)的延時(shí)。這種延時(shí)由于協(xié)議超時(shí)和用于路由選擇重配置的設(shè)置時(shí)間而可以持續(xù)數(shù)秒,對(duì)于長程鏈路尤其如此。
因此,盡管多分組發(fā)送技術(shù)相對(duì)于其他備選技術(shù)來說更有吸引力,但是這樣的方法提出了多個(gè)挑戰(zhàn)。一個(gè)問題在于將每個(gè)分組發(fā)送兩次所需的額外帶寬。但是,在任何第一路徑發(fā)生故障的情況下都需要第二路徑的帶寬,因此經(jīng)常爭論的是,通過空閑(并因此可用在故障情況下)或者通過傳輸這些復(fù)制品(它們被用在故障情況下),該帶寬在任何未發(fā)生故障的情況下都是一種浪費(fèi)。第二種挑戰(zhàn)是在兩條獨(dú)立路徑上引導(dǎo)分組。在單獨(dú)的第1層路徑的情況下,通常存在出自源的兩條物理鏈路(例如源和目的地之間的兩條光纖連接),以使得在物理MAC層上發(fā)生復(fù)制傳輸。在更高層上,源或許可以利用由這些層提供的設(shè)施來沿著兩條獨(dú)立路徑“源路由”分組。例如,企業(yè)路由器可被連接到兩個(gè)單獨(dú)的服務(wù)提供商(SP)并通過鏈路同時(shí)向每個(gè)單獨(dú)的SP發(fā)送分組。另外,在支持這種機(jī)制的環(huán)境中可以使用因特網(wǎng)協(xié)議(IP)松散源路由選項(xiàng)(LSRO)和多路徑標(biāo)記交換(MPLS)。
應(yīng)該注意,在以上述方式提供可靠連接時(shí),這樣的技術(shù)必須防止復(fù)制分組被遞送到終端主機(jī)。這一點(diǎn)在在對(duì)終端主機(jī)(它們通常通過某種暴露的長程連接來連接子網(wǎng))來說透明的網(wǎng)絡(luò)層中提供這種可用性特征時(shí)尤其有意義,這是由于復(fù)制分組消耗終端主機(jī)處和終端主機(jī)的網(wǎng)絡(luò)上的資源。此外,在某些情況下,這些復(fù)制分組會(huì)干擾終端主機(jī)的協(xié)議的操作。這種復(fù)制分組還會(huì)擾亂作為不應(yīng)當(dāng)復(fù)制分組的服務(wù)的網(wǎng)絡(luò)層的標(biāo)準(zhǔn)語義。但是,網(wǎng)絡(luò)層服務(wù)無法依靠序列號(hào)來檢測復(fù)制分組,例如在可靠的傳輸協(xié)議(例如傳輸控制協(xié)議(TCP))中可用的序列號(hào)。
因此,希望具有以下能力在不會(huì)不利地影響網(wǎng)絡(luò)效率的情況下,通過沿不同路徑傳輸復(fù)制分組來提供可靠的網(wǎng)絡(luò)連通性。這種功能還應(yīng)該以不會(huì)不利地影響采用這種解決方案的網(wǎng)絡(luò)元件的處理能力(即分組吞吐量)的方式來提供。優(yōu)選地,采用這種解決方案的網(wǎng)絡(luò)元件還應(yīng)該能夠使其自身和網(wǎng)絡(luò)抵御采用大量分組擾亂網(wǎng)絡(luò)操作的攻擊。
發(fā)明內(nèi)容
在一個(gè)實(shí)施例中,公開了一種網(wǎng)絡(luò)設(shè)備。該網(wǎng)絡(luò)設(shè)備包括復(fù)制分組映射(DPM)。在該實(shí)施例的某些方面中,DPM包括多個(gè)DPM字段。在該實(shí)施例的其他方面中,DPM被配置為接收分組概要值(PSV)。
在另一實(shí)施例中,公開了用于確定分組是否是復(fù)制分組的方法。該方法包括確定復(fù)制分組映射(DPM)的字段是否指示分組是復(fù)制分組。該確定是用與分組相對(duì)應(yīng)的分組概要值(PSV)來執(zhí)行的。
以上是概述,從而必然包含細(xì)節(jié)的簡化、一般化和省略;因此,本領(lǐng)域技術(shù)人員將意識(shí)到,該概述僅僅是示例性的,并且決不希望是限制性的。在下面提出的非限制性詳細(xì)描述中,僅由權(quán)利要求書限定的本發(fā)明的其他方面、創(chuàng)造性特征和優(yōu)點(diǎn)將變得明顯。
通過參考附圖,本領(lǐng)域技術(shù)人員可以更好地理解本發(fā)明,并清楚了解多個(gè)目的、特征和優(yōu)點(diǎn)。
圖1是示出并入了本發(fā)明實(shí)施例的網(wǎng)絡(luò)設(shè)備的框圖。
圖2是示出根據(jù)本發(fā)明實(shí)施例的具有兩個(gè)復(fù)制分組映射(DPM)的DPM庫的框圖。
圖3是示出根據(jù)本發(fā)明實(shí)施例的具有多個(gè)DPM的DPM庫的框圖。
圖4是示出根據(jù)本發(fā)明實(shí)施例的DPM的框圖。
圖5是示出根據(jù)本發(fā)明實(shí)施例的DPM字段的框圖。
圖6是示出包括支持本發(fā)明實(shí)施例的信息的訪問控制列表的框圖。
圖7是示出根據(jù)本發(fā)明實(shí)施例的分組處理的流程圖。
圖8是示出根據(jù)本發(fā)明實(shí)施例的DPM查找進(jìn)程的流程圖。
圖9是示出根據(jù)本發(fā)明實(shí)施例的用于操作包括多個(gè)DPM的DPM庫的進(jìn)程的流程圖。
圖10是示出根據(jù)本發(fā)明實(shí)施例的利用先前和當(dāng)前DPM庫進(jìn)行的DPM查找進(jìn)程的流程圖。
不同附圖中所使用的相同標(biāo)號(hào)指示類似或相同的項(xiàng)目。
具體實(shí)施例方式
下面提供對(duì)本發(fā)明的示例的詳細(xì)描述,該描述不應(yīng)看作對(duì)發(fā)明本身的限制。相反,任何數(shù)目的變化都可以落在所附權(quán)利要求書限定的本發(fā)明的范圍內(nèi)。
介紹本發(fā)明提供了這樣一種方法和裝置,其通過對(duì)關(guān)于分組的信息執(zhí)行散列操作并將散列值與已存儲(chǔ)的代表先前接收到的分組的散列值的值相比較來檢測復(fù)制分組,以便確定分組是否是復(fù)制的(即,是否已經(jīng)被網(wǎng)絡(luò)設(shè)備“看見”過)。例如可以逐個(gè)比特地比較由散列函數(shù)生成的值與已存儲(chǔ)的值。如果分組是復(fù)制的(即已存儲(chǔ)的值包括指示這樣的分組已被網(wǎng)絡(luò)設(shè)備接收到過的信息),則丟棄分組。如果分組不是復(fù)制的,則將分組的散列信息添加到已存儲(chǔ)的散列信息,并以適當(dāng)方式轉(zhuǎn)發(fā)分組。散列函數(shù)可以是任何這樣的函數(shù),但是散列的隨機(jī)化程度越高,生成的誤報(bào)(falsepositive)就越少。還將意識(shí)到,生成和存儲(chǔ)的比特越多,確定就越準(zhǔn)確,但是相對(duì)成本也越大。
更具體而言,根據(jù)本發(fā)明的網(wǎng)絡(luò)設(shè)備包括分組概要值(PSV)生成器,該生成器被配置為用于從每個(gè)接收到的分組中提取PSV。該網(wǎng)絡(luò)設(shè)備還包括復(fù)制分組映射(DPM)庫,該DPM庫包括至少一個(gè)DPM。在一個(gè)實(shí)施例中,每個(gè)DPM對(duì)于每個(gè)PSV提供一個(gè)條目。當(dāng)接收到分組時(shí),生成該分組的PSV。利用該P(yáng)SV,在DPM中“查找”該分組(即,將該P(yáng)SV與DPM中的信息相匹配)。如果DPM中的信息指示具有該P(yáng)SV的分組已被接收,則該分組被分類為復(fù)制的并被相應(yīng)地處理(通常是被丟棄)。否則,該條目被更新以指示接收到具有給定PSV的分組,該分組被分類為非復(fù)制的,并相應(yīng)地被轉(zhuǎn)發(fā)。
在本發(fā)明的一個(gè)實(shí)施例中,DPM是一個(gè)2字段條目,其中一個(gè)字段對(duì)應(yīng)于先前的時(shí)間間隔Tp,而另一字段對(duì)應(yīng)于當(dāng)前時(shí)間間隔Tc。在接收到分組時(shí),如果與該分組的PSV相對(duì)應(yīng)的條目的任何一個(gè)字段已被設(shè)置,則分組被分類為復(fù)制的。否則,條目中與當(dāng)前時(shí)間間隔(Tc)相對(duì)應(yīng)的字段被設(shè)置。這些時(shí)間間隔對(duì)應(yīng)于實(shí)時(shí)間隔。在當(dāng)前時(shí)間間隔(Tc)結(jié)束時(shí),DPM中與先前時(shí)間間隔(Tp)相對(duì)應(yīng)的字段被清除,然后該字段看作與新的當(dāng)前時(shí)間間隔相對(duì)應(yīng)的字段,而那些先前被看作與當(dāng)前時(shí)間間隔相對(duì)應(yīng)的字段被看作與針對(duì)下一時(shí)間間隔的先前時(shí)間間隔相對(duì)應(yīng)的字段。該時(shí)間間隔在這里被稱為時(shí)間間隔改變(TIC)。如果每個(gè)時(shí)間間隔的長度是t毫秒,那么根據(jù)相對(duì)于最近的TIC的確切當(dāng)前時(shí)間,如果具有相同PSV的分組是在最近t到2t毫秒內(nèi)接收到的,則分組被看作是最近接收到的。具體而言,在剛剛發(fā)生了TIC的時(shí)刻,在最近t毫秒內(nèi)接收到的分組被分類為復(fù)制的,而就在TIC發(fā)生前,在最近2t毫秒內(nèi)接收到的分組被分類為復(fù)制的。
這種方案可以被擴(kuò)展到每條目多個(gè)字段,同時(shí)伴隨空間和構(gòu)造成本的增大。以與上述類似的方式,在每次TIC時(shí),與最舊時(shí)間間隔相關(guān)聯(lián)的字段被清除,然后被與新的時(shí)間間隔相關(guān)聯(lián),同時(shí)先前第二舊的字段被指定為最舊字段。這種擴(kuò)展可被用于對(duì)為復(fù)制抑制目的而被認(rèn)為是“最近的”時(shí)間段的變化提供粒度更精細(xì)的控制。實(shí)際上,通過調(diào)整TIC值(以及可獲得的DPM中被使用的DPM的數(shù)量),可以動(dòng)態(tài)配置窗口大小(接收復(fù)制分組導(dǎo)致較晚接收到的復(fù)制分組被確定為復(fù)制的時(shí)間段)。但是,無論實(shí)現(xiàn)兩個(gè)還是更多個(gè)DPM,重新指定DPM字段實(shí)現(xiàn)起來都相對(duì)直接(無論以硬件還是軟件實(shí)現(xiàn)),這是因?yàn)檫@樣做只影響在接收分組時(shí)設(shè)置哪個(gè)DPM,以及在每次TIC時(shí)清除哪個(gè)DPM。
實(shí)現(xiàn)本發(fā)明實(shí)施例的網(wǎng)絡(luò)設(shè)備提供了若干優(yōu)點(diǎn),其中包括以下優(yōu)點(diǎn)。這樣的網(wǎng)絡(luò)設(shè)備(例如交換機(jī)或路由器)可以不向終端主機(jī)遞送大量復(fù)制分組的情況下支持如前所述的為了實(shí)現(xiàn)零故障恢復(fù)時(shí)間而在獨(dú)立路徑上執(zhí)行的復(fù)制分組傳輸。這樣的網(wǎng)絡(luò)設(shè)備還可以抑制由于故障、錯(cuò)誤配置和攻擊而引起的復(fù)制。
但是,將會(huì)意識(shí)到,本發(fā)明的使用也適合于在同一鏈路上將每個(gè)分組發(fā)送多次(例如兩次)的情形。當(dāng)然,在使用這種方法時(shí),考慮到諸如給定鏈路的可用帶寬是否足夠以及鏈路上的過量分組丟棄(與鏈路的故障相對(duì)照)之類的問題,通過鏈路發(fā)送復(fù)制分組必須是可行的。
由于根據(jù)本發(fā)明的方法采用標(biāo)準(zhǔn)分組格式(即不需要對(duì)分組進(jìn)行修改(例如不需要向分組添加信息)),因此這樣的方法不涉及當(dāng)前在現(xiàn)有網(wǎng)絡(luò)設(shè)備中使用的標(biāo)準(zhǔn)協(xié)議的修改。此外,由于該方法可以以硬件實(shí)現(xiàn),因此采用本發(fā)明的網(wǎng)絡(luò)設(shè)備的分組吞吐量未受到嚴(yán)重影響,并且實(shí)際上可能不會(huì)遭受任何的惡化。
用于復(fù)制分組檢測的裝置的示例圖1是示出根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)設(shè)備100的體系結(jié)構(gòu)的框圖。網(wǎng)絡(luò)設(shè)備100在分組處理單元110處接收傳入分組流105。一旦經(jīng)過分組處理單元110的處理,傳入分組流105就被網(wǎng)絡(luò)設(shè)備100轉(zhuǎn)發(fā),作為傳出分組流115。傳入分組流105的分組在分組處理單元110內(nèi)是部分由分組概要值(PSV)生成器120來處理的。PSV生成器120生成PSV 125,PSV125被傳遞到復(fù)制分組映射(DPM)庫130。DPM庫130受控于DPM控制單元140。如果DPM庫130與DPM控制單元140聯(lián)合確定出作為PSV125提供的值指示復(fù)制分組,則這種狀況經(jīng)由命中信號(hào)145被傳輸?shù)椒纸M處理單元110。類似地,如果作為PSV 125提供的值沒有致使DPM庫130生成命中,則同樣地利用命中信號(hào)145指示正在考慮的分組不是復(fù)制分組這一事實(shí)。如果分組不是復(fù)制的,則更新DPM庫130中與PSV 125的值(即正在考慮的分組)相對(duì)應(yīng)的條目,以指示分組的接收(未來用于識(shí)別該分組的復(fù)制)。一旦已經(jīng)執(zhí)行了關(guān)于給定分組是否是復(fù)制分組的確定,分組處理單元110就可以基于該信息來適當(dāng)?shù)靥幚斫o定分組。
在本發(fā)明中,網(wǎng)絡(luò)設(shè)備100的PSV生成器120從每個(gè)分組中提取出分組概要值(PSV 125)并將該P(yáng)SV傳遞到DPM庫130。DPM庫130包括復(fù)制分組映射(DPM),該DPM可以以多種方式配置。這樣的DPM對(duì)于每個(gè)PSV可以包括一個(gè)條目,或可以將PSV映射到其中的比特。當(dāng)接收到分組時(shí),基于其PSV在DPM中查找該分組。如果DPM條目指示具有該P(yáng)SV的分組最近已接收到,則分組被分類為復(fù)制的并被相應(yīng)地處理(通常被丟棄)。否則,更新該條目以指示具有該P(yáng)SV的分組的最近接收,并將分組分類為非復(fù)制的,并相應(yīng)地轉(zhuǎn)發(fā)分組。
在這樣的體系結(jié)構(gòu)中,DPM庫130(更具體而言,DPM庫130內(nèi)的(一個(gè)或多個(gè))DPM)可使用Bloom過濾器來實(shí)現(xiàn)。Bloom過濾器是一種簡單的空間效率高的隨機(jī)化數(shù)據(jù)結(jié)構(gòu),其用于表示一個(gè)集合,以便支持近似成員查詢。這種空間高效性是以由于未將所有接收到的分組映射到唯一PSV而引起的小概率的誤報(bào)為代價(jià)來實(shí)現(xiàn)的,但是在本申請(qǐng)中這是一種方便的折衷辦法。Bloom過濾器以可接受的低概率的誤報(bào)為對(duì)于空間效率高的用于維護(hù)關(guān)于已接收到的分組的信息的機(jī)制的需求提供了良好的解決方案。利用該方法,每個(gè)DPM被設(shè)計(jì)為用于實(shí)現(xiàn)對(duì)于給定窗口(對(duì)照最近接收到的分組檢查復(fù)制分組的時(shí)間段)的Bloom過濾器。在這種情形中,每個(gè)DPM(Bloom過濾器)以全0的陣列開始。如上所述,對(duì)每個(gè)分組執(zhí)行多次(例如k次)散列操作以形成其相應(yīng)的PSV,其中每次散列操作產(chǎn)生DPM中的一個(gè)比特位置。這些比特位置被設(shè)置(例如設(shè)置為1)。為了檢查新接收的分組是否是復(fù)制的(即其PSV是否在DPM中存儲(chǔ)的PSV集合中),新接收的分組被執(zhí)行k次散列操作,并且相應(yīng)的比特被檢查。如果相應(yīng)的比特都是1,則PSV被匹配,該分組是復(fù)制的(至少在某個(gè)置信級(jí)別上)。否則,PSV未被匹配,分組不是復(fù)制的。在后一種情況下,DPM中與該P(yáng)SV相對(duì)應(yīng)的比特被設(shè)置(例如設(shè)置為1)以指示該分組的接收。
通過散列函數(shù)的數(shù)目(k)、在給定時(shí)間段期間期望分析的分組的數(shù)目(n)以及在每個(gè)DPM中的比特的數(shù)目(m)來近似地控制誤報(bào)的概率。在一種實(shí)現(xiàn)方式中,可以推導(dǎo)出在給定要分析的分組的數(shù)目以及每個(gè)DPM中的比特的數(shù)目的情況下使所采用的散列函數(shù)的個(gè)數(shù)最小的關(guān)系,該關(guān)系是k=ln 2*(m/n)在只使用單個(gè)散列函數(shù)的情況下,該等式變?yōu)閙=0.6932/n其中,在實(shí)踐中,DPM的大小被限制在整數(shù)個(gè)比特(并且可能是偶數(shù)個(gè)比特)。因此,按照這種表示方法,每個(gè)DPM所需的比特?cái)?shù)目由針對(duì)給定誤報(bào)概率將要分析的分組的數(shù)目(從而,針對(duì)復(fù)制檢查分組的時(shí)間間隔的長度)所控制。
在本發(fā)明的一個(gè)實(shí)施例中,使用單個(gè)散列函數(shù)。在此實(shí)施例中,利用在傳輸層對(duì)分組內(nèi)容執(zhí)行的循環(huán)冗余校驗(yàn)(CRC)計(jì)算來實(shí)現(xiàn)PSV。這種計(jì)算通常不包括更低層頭部和尾部信息,這些頭部和尾部信息可能依賴于分組采取的路徑。由于CRC計(jì)算與諸如傳統(tǒng)軟件校驗(yàn)和的較弱屬性相比往往更能確保分組中的任何差異導(dǎo)致PSV中的差異,因此這種計(jì)算很有吸引力。CRC計(jì)算也易于以硬件實(shí)現(xiàn)。但是,如前所述,也可以使用其他散列函數(shù)以及多個(gè)散列函數(shù)。PSV可以選擇性地包括目的地/轉(zhuǎn)發(fā)信息,以使被發(fā)送到不同目的地的同一傳輸層分組不會(huì)被看作復(fù)制分組。
在本發(fā)明的一個(gè)實(shí)施例中,DPM庫由兩個(gè)DPM構(gòu)成,其中一個(gè)DPM對(duì)應(yīng)于先前時(shí)間間隔Tp,而另一DPM對(duì)應(yīng)于當(dāng)前時(shí)間間隔Tc。在接收到分組時(shí),如果與給定分組的PSV相對(duì)應(yīng)的條目已使任一DPM被設(shè)置,則分組被分類為復(fù)制的。否則,條目中與當(dāng)前時(shí)間間隔相對(duì)應(yīng)的字段被設(shè)置。這些時(shí)間間隔對(duì)應(yīng)于實(shí)時(shí)間隔。在當(dāng)前時(shí)間間隔Tc結(jié)束時(shí),DPM中與先前時(shí)間間隔相對(duì)應(yīng)的字段被清除,然后被看作與新的當(dāng)前時(shí)間間隔相對(duì)應(yīng)的字段,而那些先前被看作與當(dāng)前時(shí)間間隔相對(duì)應(yīng)的字段現(xiàn)在被看作與針對(duì)下一時(shí)間間隔的先前時(shí)間間隔相對(duì)應(yīng)的字段。該時(shí)間間隔在這里被稱為時(shí)間間隔改變(TIC)。如果每個(gè)時(shí)間間隔的長度是t毫秒,那么根據(jù)相對(duì)于最近的TIC的確切當(dāng)前時(shí)間,如果具有相同PSV的分組是在最近t到2t毫秒內(nèi)接收到的,則分組被看作是最近接收到的。具體而言,在剛剛發(fā)生了TIC的時(shí)刻,在最近t毫秒內(nèi)接收到的分組被分類為復(fù)制的,而就在TIC發(fā)生前,在最近2t毫秒內(nèi)接收到的分組被分類為復(fù)制的?,F(xiàn)在聯(lián)系圖2來論述支持這種方法的體系結(jié)構(gòu)。
圖2是更詳細(xì)示出DPM庫130和DPM控制單元140的框圖。在圖2中,DPM庫200接收PSV 205,并在DPM控制單元210的控制下生成命中信號(hào)215。DPM庫200在DPM尋址單元220處接收PSV 205。DPM尋址單元220基于PSV 205的值來確定多個(gè)DPM(在圖2中示為DPM222(1)-(2)(DPM 222(1)-(2)進(jìn)而包括DPM字段225(1,1)-(2,N)))中的哪些DPM將被訪問。DPM尋址單元(DPMAU)220通過向DPM控制單元210提供DPMAU數(shù)據(jù)信號(hào)226,并進(jìn)而接收DPMAU控制信號(hào)227而在DPM控制單元210的控制下提供這種功能。DPM控制單元210還被配置為用于經(jīng)由DPM數(shù)據(jù)信號(hào)228(1)-(2)從DPM字段225(1,1)-(2,N)中讀取信息。以類似方式,DPM控制單元210經(jīng)由DPM控制信號(hào)229(1)-(2)來控制DPM字段225(1,1)-(2,N)。
為了確定是否應(yīng)該斷言(assert)命中信號(hào)215,根據(jù)PSV 205的值(即指示由PSV 205代表的分組是復(fù)制的)來檢查DPM字段225(1,1)-(1,N)和DPM字段225(2,1)-(2,N)中的一些適當(dāng)?shù)腄PM字段的值。在一種情形下,這是以如下方式實(shí)現(xiàn)的。DPMAU 220將DPMAU數(shù)據(jù)信號(hào)226提供到DPM控制單元210,而DPM控制單元210提供DPMAU控制信號(hào)227作為響應(yīng)。DPMAU控制信號(hào)227導(dǎo)致DPM字段225(1,1)-(2,N)中的一些適當(dāng)?shù)腄PM字段的讀取線路的斷言。這致使DPM字段225(1,1)-(2,N)中選中的DPM字段在它們的輸出處提供它們的內(nèi)容?;谒鼈兊膬?nèi)容(經(jīng)由DPM數(shù)據(jù)信號(hào)228(1)-(2)確定),DPM控制單元210也對(duì)那些尚未被設(shè)置的DPM字段進(jìn)行設(shè)置。DPM數(shù)據(jù)信號(hào)228(1)-(2)和DPM控制信號(hào)229(1)-(2)還允許DPM控制單元210在交換當(dāng)前和先前DPM時(shí)清除DPM 222(1)-(2)中的一個(gè)適當(dāng)?shù)腄PM。
輸出被提供到選擇單元240,選擇單元240在DPM控制單元210的控制下(并基于DPM數(shù)據(jù)信號(hào)228(1)-(2)的值),從DPM字段225(1,1)-(2,N)的輸出中選擇適當(dāng)?shù)妮敵觥T趫?zhí)行選擇之后,選擇單元240對(duì)這些輸出執(zhí)行與(AND)操作,并對(duì)結(jié)果執(zhí)行或(OR)操作以得出命中信號(hào)215。因此,如果DPM 222(1)-(2)中的任一DPM的所有被選比特都指示由PSV 205代表的分組是復(fù)制的,則由命中信號(hào)215指示這一事實(shí)。
應(yīng)該注意,實(shí)際上,PSV 205的比特線可被簡單地傳遞到DPM222(1)-(2),以及在確定命中信號(hào)215的值時(shí)用于確定DPM 222(1)-(2)中的哪一個(gè)(或二者)將使用PSV 205的輸入使能信號(hào)。在此情況下,DPM尋址單元220僅用于向DPM控制單元210提供DPMAU數(shù)據(jù)信號(hào)226,以被DPM控制單元210用于生成DPM控制信號(hào)229(1)-(2)(在此情況下是上述使能信號(hào))。在此情形中,DPM數(shù)據(jù)信號(hào)228(1)-(2)可被DPM控制單元210用于確定DPM字段225(1,1)-(2,N)中的每一個(gè)的狀態(tài)。
還應(yīng)該注意,在其他實(shí)現(xiàn)方式中,DPM字段225(1,1)-(2,N)可以包括允許DPM字段225(1,1)-(2,N)中的每一個(gè)執(zhí)行生成前述輸出所需的尋址和比較的電路(因此,功能)。在此情況下,PSV 205將被傳遞到DPM字段225(1,1)-(2,N),DPM字段225(1,1)-(2,N)隨后執(zhí)行讀取功能,并將必各輸出提供到選擇單元240并設(shè)置其自身,以便存儲(chǔ)PSV 205的值。
要注意,變量標(biāo)識(shí)符“N”被用在這里描述的附圖中的若干實(shí)例中,以更簡單地指示一系列相關(guān)或類似元件中的最后一個(gè)元件。這種變量標(biāo)識(shí)符的重復(fù)使用并不一定意味著這些元件序列的大小之間的相關(guān)性,雖然這種相關(guān)性也可能存在。這種變量標(biāo)識(shí)符的使用不要求每個(gè)元件序列具有與由同一變量標(biāo)識(shí)符限界的另一序列相同的元件數(shù)目。相反,在每個(gè)使用實(shí)例中,由“N”(或任何其他這樣的標(biāo)識(shí)符)標(biāo)識(shí)的變量可以保存與具有相同變量標(biāo)識(shí)符的其他實(shí)例相同或不同的值。
此外,關(guān)于這里描述的信號(hào),本領(lǐng)域技術(shù)人員將意識(shí)到,信號(hào)可從第一模塊直接被發(fā)送到第二模塊,或者信號(hào)可以在模塊之間被修改(例如被放大、衰減、延遲、鎖存、緩沖、反相、過濾或以其他方式修改)。雖然上述實(shí)施例中的信號(hào)被刻畫為從一個(gè)模塊發(fā)送到下一模塊,但是本發(fā)明的其他實(shí)施例可以包括修改后的信號(hào)以取代這種直接發(fā)送的信號(hào),只要信號(hào)中的信息和/或功能方面在模塊間傳輸即可。在某種程度上,在第二模塊處的信號(hào)輸入可以被概念化為從來自第一模塊的第一信號(hào)輸出中導(dǎo)出的第二信號(hào),這是因?yàn)槠渲猩婕半娐返奈锢硐拗?例如不可避免地存在某種衰減和延遲)。因此,這里所使用的從第一信號(hào)中導(dǎo)出的第二信號(hào)包括第一信號(hào)或?qū)Φ谝恍盘?hào)的任何修改,這種修改或者由于電路限制,或者由于穿過其他不改變第一信號(hào)中的信息和/或功能方面的電路元件。
在上述實(shí)施例中,不同的組件被包含在不同的其他組件(例如被示為網(wǎng)絡(luò)設(shè)備100的組件的各種元件)內(nèi)。將會(huì)理解,這樣示出的體系結(jié)構(gòu)僅僅作為示例,實(shí)際上,可以實(shí)現(xiàn)很多其他體系結(jié)構(gòu)來實(shí)現(xiàn)同樣的功能。在簡要但仍舊明確的意義上,用于實(shí)現(xiàn)同樣功能的組件的任何布置從效果上而言都是“相關(guān)聯(lián)”的,以實(shí)現(xiàn)所需功能。因此,這里為實(shí)現(xiàn)特定功能而組合的任何兩個(gè)組件都可被看作彼此“相關(guān)聯(lián)”以實(shí)現(xiàn)所需功能,這與體系結(jié)構(gòu)或中間組件無關(guān)。同樣地,如此關(guān)聯(lián)的任何兩個(gè)組件還可被看作彼此“可操作地相連”或“可操作地相耦合”以實(shí)現(xiàn)所需功能。
聯(lián)系圖1和2所述的方法可被擴(kuò)展到對(duì)于每個(gè)條目具有多個(gè)字段(即多DPM)的體系結(jié)構(gòu),但是在空間和制造成本上也會(huì)有相應(yīng)的增長。以與上述相似的方式,與最舊時(shí)間間隔相關(guān)聯(lián)的DPM在每次TIC時(shí)被清除,然后被關(guān)聯(lián)到新的時(shí)間間隔,而先前第二舊的DPM現(xiàn)在被指定為最舊DPM。這種擴(kuò)展可被用于對(duì)在復(fù)制抑制中被認(rèn)為是“最近的”時(shí)間段的變化提供粒度更精細(xì)的控制。但是,不論是實(shí)現(xiàn)兩個(gè)還是更多個(gè)DPM,DPM的重新指定都是相對(duì)直接的以便以硬件或軟件來實(shí)現(xiàn),這是因?yàn)檫@種重新指定只影響在分組接收時(shí)設(shè)置哪個(gè)DPM,以及在每次TIC時(shí)清除哪個(gè)DPM。
可以使TIC之間的時(shí)間間隔是可配置的。但是,該間隔應(yīng)該被設(shè)置為使其大于復(fù)制分組到達(dá)之間的期望差,但小于傳輸分組重傳時(shí)間之間的時(shí)間。例如,在比如說遍及美國大陸的WAN鏈路上,切換時(shí)間通常在30-50毫秒的范圍內(nèi)。在這種情形中,在分組接收時(shí)間中允許例如大約15毫秒的抖動(dòng),并將TIC之間的時(shí)間設(shè)置為15毫秒。即使利用TCP的“快速重傳”,發(fā)送者也將需要接收與接收機(jī)處的3個(gè)順序錯(cuò)亂的分組相對(duì)應(yīng)的3個(gè)復(fù)制ACK來導(dǎo)致重傳,因此上一跳路由器在看見原始分組之后至少大約60到100毫秒之前,將不會(huì)看到重傳的分組。因此,它將不會(huì)把傳輸層重傳分類為復(fù)制的。
在某些實(shí)施例(例如某些硬件實(shí)現(xiàn)方式)中,通過將DPM庫的DPM字段分割到存儲(chǔ)器的多個(gè)分離的庫中,并且向與將被清除的字段(DPM)相對(duì)應(yīng)的庫提供重置,來實(shí)現(xiàn)每次TIC時(shí)的字段清除。在另一實(shí)施例中,使用簡單的狀態(tài)機(jī)來在給定的TIC時(shí)逐步清除每個(gè)條目中的最舊字段。在每次TIC時(shí)立即清除所有這些最舊DPM字段不是強(qiáng)制性的,但是DPM字段的清除應(yīng)該發(fā)生在從TIC時(shí)刻開始的(合理的)有限時(shí)間段內(nèi)。為了確保這種清除及時(shí)發(fā)生,可以采用額外的DPM。利用這種方法,當(dāng)額外DPM保存最舊字段時(shí),在TIC時(shí)使該DPM脫離與分組接收相關(guān)的服務(wù),并且將先前脫離服務(wù)的庫作為最新庫添加回服務(wù)中。在“脫離服務(wù)”時(shí),狀態(tài)機(jī)具有對(duì)該先前最舊的庫的排他性訪問,以使DPM字段可被清除。這樣的實(shí)現(xiàn)方式聯(lián)系圖3給出。
圖3是根據(jù)本發(fā)明的多庫技術(shù)的框圖。與圖2的DPM庫200的情況相同,DPM庫300接收PSV 305,并在DPM控制單元310的控制下生成命中信號(hào)315。但是,與圖2的DPM庫200不同的是,DPM 300支持多個(gè)復(fù)制分組映射(圖3中示為DPM 320(1)-(M))。以類似方式,DPM庫300在DPM尋址單元(DPMAU)330處接收PSV 305,所述DPMAU 330受DPM控制單元310的控制。DPMAU 330被耦合到DPM 320(1)-(M)中的每一個(gè),并被配置為用于向其中選中的DPM提供PSV 305。在這方面DPM庫300不同于DPM庫200。盡管DPM庫200提供兩個(gè)復(fù)制分組映射(并且可被容易地配置為只支持一個(gè)復(fù)制分組映射),DPM庫300被設(shè)計(jì)為支持多個(gè)(即多于兩個(gè))復(fù)制分組映射。
在DPM控制單元310的控制下,由選擇單元330選擇來自DPM320(1)-(M)中的適當(dāng)DPM的輸出。選擇單元330提供多種功能。選擇單元330選擇DPM 320(1)-(M)中的適當(dāng)DPM作為先前DPM和當(dāng)前DPM,對(duì)來自給定DPM的被選字段執(zhí)行與操作,以便確定給定的DPM是否指示復(fù)制分組。來自每個(gè)選中的DPM的這種結(jié)果與其他這樣的結(jié)果執(zhí)行與操作,以便確定選中的DPM中的任何DPM是否指示復(fù)制分組。該與操作的結(jié)果被從DPM庫300輸出,作為命中信號(hào)315。
圖4是更詳細(xì)示出復(fù)制分組映射(DPM)庫400的示例性體系結(jié)構(gòu)的框圖。DPM庫400以與上述類似的方式接收PSV 405,然后生成命中信號(hào)410。在圖4所示的體系結(jié)構(gòu)中,DPM庫400包括專用的DPM尋址單元(在圖4中示為DPM尋址單元415)、多個(gè)DPM字段(被示為DPM字段420(1)-(N),它們構(gòu)成DPM 425)以及選擇單元430。在DPM控制單元(未示出)的控制下,DPM庫400被設(shè)計(jì)為用于基于DPM字段420(1)-(N)中的一個(gè)或多個(gè)的內(nèi)容經(jīng)由命中信號(hào)410生成對(duì)復(fù)制分組的指示。將注意到,為了簡化起見,DPM庫400被示為具有單個(gè)DPM(DPM425,它是單列DPM字段)。DPM 425通過重置信號(hào)435的斷言被清除(例如重置為全0)。
在操作中,DPM庫400通過重置信號(hào)435的斷言被初始化。一旦被初始化(并在接收到分組且隨后生成PSV 405之后),DPM尋址單元415接收要在DPM庫400中“查找”的PSV。DPM尋址單元415確定DPM字段420(1)-(N)中的哪些DPM字段將被讀取(例如預(yù)期這些字段中的哪些將是在復(fù)制分組匹配的情況下或在Bloom過濾器實(shí)現(xiàn)方式的情況下的字段,DPM字段420(1)-(N)中的哪個(gè)將被讀取)。DPM尋址單元415利用多個(gè)讀取信號(hào)(被示為讀取信號(hào)440(1)-(N))來訪問DPM字段420(1)-(N)。在一種實(shí)現(xiàn)方式中,DPM尋址單元415就只是檢查PSV 405的值,并針對(duì)其值等于1的每個(gè)比特位置來斷言讀取信號(hào)440(1)-(N)中的相應(yīng)信號(hào),從而讀取DPM字段420(1)-(N)中的相應(yīng)DPM字段。或者,在Bloom過濾器實(shí)現(xiàn)方式中,讀取信號(hào)440(1)-(N)中與PSV 405的值相對(duì)應(yīng)的那個(gè)讀取信號(hào)被斷言。通過鎖存控制信號(hào)460,輸出值被鎖存在輸出450(1)-(N)中的相應(yīng)的輸出處。選擇單元430接收輸出450(1)-(N),并在接收自DPM控制單元(未示出)的選擇信號(hào)470的控制下選擇這些信號(hào)中的適當(dāng)信號(hào)。輸出450(1)-(N)中的適當(dāng)輸出在以這種方式被識(shí)別出的情況下,被選擇并被執(zhí)行與操作,從而使肯定結(jié)果指示DPM字段420(1)-(N)中的每個(gè)相應(yīng)DPM字段被同樣地設(shè)置,從而指示匹配(并因此指示復(fù)制分組)。該結(jié)果作為命中信號(hào)410被提供到分組處理單元。
圖5是DPM字段500的示例性體系結(jié)構(gòu)的框圖,該DPM字段500是諸如參考前圖論述的DPM字段這樣的DPM字段的示例。DPM字段500包括DPM存儲(chǔ)單元510,其輸出被輸出鎖存器520鎖存。DPM存儲(chǔ)單元510還接收重置信號(hào)530和設(shè)置信號(hào)540。設(shè)置信號(hào)540是讀取信號(hào)550的延遲版本,并且是在鎖存控制信號(hào)570的控制下,通過利用設(shè)置信號(hào)延遲鎖存器560延遲讀取信號(hào)550而生成的。一旦DPM存儲(chǔ)單元510的內(nèi)容已被輸出鎖存器520鎖存,該值就作為輸出580出現(xiàn)。
在操作中,DPM字段500首先接收重置信號(hào)530,以便初始化DPM存儲(chǔ)單元510。當(dāng)DPM存儲(chǔ)單元510將被讀取時(shí),讀取信號(hào)550被斷言,從而致使DPM存儲(chǔ)單元510的內(nèi)容被提供到輸出鎖存器520。鎖存控制570隨后被斷言以鎖存該輸出,并因此將該輸出作為DPM字段500的輸出580提供。與這些操作合作,讀取信號(hào)550被提供到設(shè)置信號(hào)延遲鎖存器560,以最終作為設(shè)置信號(hào)540被提供到DPM存儲(chǔ)單元510。但是,為了避免競爭狀況(race condition),在鎖存控制570被斷言以鎖存DPM存儲(chǔ)單元510的輸出之前讀取信號(hào)550不被斷言,隨后僅在由設(shè)置信號(hào)延遲鎖存器560產(chǎn)生的延遲之后。從而,設(shè)置信號(hào)540在該延遲之后被斷言(即,在讀取信號(hào)550的斷言、鎖存控制信號(hào)570的斷言(從而DPM存儲(chǔ)單元510的內(nèi)容的鎖存)并且由設(shè)置信號(hào)延遲鎖存器560提供延遲之后)。設(shè)置信號(hào)540的斷言設(shè)置DPM存儲(chǔ)單元510。更簡單來講,DPM字段500被設(shè)計(jì)為使其可以被清除,隨后被讀取。但是,不論DPM存儲(chǔ)單元510的內(nèi)容如何,DPM字段500都在被讀取之后被設(shè)置。這種情況繼續(xù),直到下次重置信號(hào)被斷言。
在一個(gè)實(shí)施例中,復(fù)制分組分類導(dǎo)致分組被丟棄,并且可選地,導(dǎo)致計(jì)數(shù)器遞增。在某些實(shí)施例中,計(jì)數(shù)器由分組分類(例如可能包括傳統(tǒng)的ACL分類)方面選擇。復(fù)制分組分類應(yīng)防止諸如ACL、策略器(policer)和轉(zhuǎn)發(fā)統(tǒng)計(jì)量之類的統(tǒng)計(jì)量響應(yīng)于復(fù)制而被更新。網(wǎng)絡(luò)設(shè)備可被設(shè)計(jì)為如果存在關(guān)于復(fù)制分組可能晚些到達(dá)并且不被丟棄的指示,那么在分組在傳輸前被丟棄(例如被輸出策略器)的情況下,使被分類為非復(fù)制的分組致使對(duì)DPM的更新被抑制。但是,需要注意維護(hù)標(biāo)準(zhǔn)分組統(tǒng)計(jì)量,包括策略器統(tǒng)計(jì)量?,F(xiàn)在聯(lián)系圖6給出這種ACL的示例。
圖6是示出訪問控制列表(ACL)600的字段的框圖。ACL 600包括多個(gè)訪問控制列表?xiàng)l目610(1)-(N)(注意,訪問控制列表(ACL)條目還可稱為ACE)。ACL條目610(1)-(N)中的每一個(gè)包括多個(gè)字段,在圖6中包含性地示為ACL字段620(1,1)-(N,N)。ACL 600可以被設(shè)計(jì)為考慮由本發(fā)明的分組處理單元生成的結(jié)果。例如,ACL字段620(1,L)-(N,L)可被配置為允許分組處理判決基于(至少部分基于)根據(jù)本發(fā)明的分組處理的結(jié)果。
應(yīng)該注意,就以下意義而言網(wǎng)絡(luò)層復(fù)制分組分類不是最理想的兩個(gè)不同的更高層分組有可能被以兩個(gè)TIC的時(shí)間段接收到并被映射到同一PSV,從而導(dǎo)致后一分組被(錯(cuò)誤地)分類為復(fù)制的并(通常)被丟棄。雖然這很不幸,但是它只有在所產(chǎn)生在丟棄速率在網(wǎng)絡(luò)層中由其他因素引起的丟棄速率中是一項(xiàng)顯著增長的情況下才會(huì)帶來問題。實(shí)際上,可以這么說,這樣的情況實(shí)際上只有在這樣的行為會(huì)降低網(wǎng)絡(luò)對(duì)于基于不具有復(fù)制分組傳輸?shù)姆桨傅膽?yīng)用的可用性和可靠性的情況下才會(huì)帶來問題。DPM應(yīng)該利用相關(guān)聯(lián)的分組到達(dá)速率和TIC時(shí)間間隔將“誤報(bào)”數(shù)目保持在低于可接受分組丟棄的速率上。例如,假設(shè)10Gbps的連接和平均長度為300字節(jié)的分組,則在15毫秒間隔中大約可接收63,000個(gè)分組。
在一個(gè)實(shí)施例中,如前所述,網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn)Bloom過濾器以替代DPM的每個(gè)字段。利用Bloom過濾器的標(biāo)準(zhǔn)分析并假設(shè)有良好質(zhì)量的散列,令誤命中容差為f,并且過濾器接收到的分組數(shù)目為P,則Bloom過濾器參數(shù)如下k=ceil(-log2(f))n=ceil(log2(Pk))其中k是PSV中所需子字段的數(shù)目,n是每個(gè)子字段中的比特?cái)?shù)目,因此n*k是PSV的比特寬度。因此,例如f為10-6,則k約為20,如果P約為128,000,則n約為2。如果該體系結(jié)構(gòu)對(duì)于每次分組接收支持k個(gè)讀-修改-寫周期,則這可被實(shí)現(xiàn)為一個(gè)具有2n比特的比特陣列。但是,這可以通過為每個(gè)子字段提供一個(gè)單獨(dú)的比特陣列子庫來實(shí)現(xiàn),因此每個(gè)DPM庫需要20個(gè)子庫,其中每個(gè)子庫大約包括2兆比特,或者說總共包括40兆比特。在每個(gè)條目有3個(gè)字段的情況下,一個(gè)DPM庫是120兆比特。通過適當(dāng)?shù)匦薷囊陨蠀?shù),DPM可被分配給每個(gè)端口,或由多個(gè)端口共享。例如,由4個(gè)10千兆比特端口共享的DPM將允許分組接收速率P變?yōu)?倍。提供大量具有這種性質(zhì)的庫(子庫)的專用存儲(chǔ)器芯片將有助于實(shí)現(xiàn)高速的基于硬件的網(wǎng)絡(luò)設(shè)備。
這里論述的復(fù)制分組分類方法還會(huì)遇到以下情況復(fù)制分組到達(dá)的足夠晚,以至于未被DPM識(shí)別為復(fù)制分組(換句話說,在原始分組后多于1-2個(gè)TIC)。但是,通過合適地設(shè)置TIC間隔,這種情況是不太可能發(fā)生的。此外,大多數(shù)分組流量都是在TCP上承載的,TCP會(huì)通過響應(yīng)于原始分組的確認(rèn)未出現(xiàn)而重傳分組來導(dǎo)致接收到復(fù)制分組。因此,該協(xié)議(實(shí)際上是大多數(shù)協(xié)議)在此狀況下可以很容易地在在終端主機(jī)處丟棄復(fù)制分組。由于這種傳輸層保護(hù),偶爾溜過的復(fù)制分組不會(huì)造成任何損害,只要在接收主機(jī)處消耗的帶寬和處理量不嚴(yán)重即可。通過要求兩條路徑之間的正常抖動(dòng)遠(yuǎn)低于往返時(shí)間(通常情況),TIC間隔可被設(shè)置以使這種事件成為小概率事件。
用于復(fù)制分組檢測的示例性進(jìn)程圖7是一般地示出根據(jù)本發(fā)明的實(shí)施例的進(jìn)程的流程圖。該進(jìn)程開始于關(guān)于需要這種處理的新分組的接收的確定(步驟700)。只要未接收到新分組,進(jìn)程就循環(huán),以等待這種分組的接收。一旦接收到新分組,就例如利用分組的內(nèi)容來生成分組概要值(PSV)(步驟710)。一旦生成了分組的PSV,該P(yáng)SV就被用于執(zhí)行復(fù)制分組映射查找(步驟720)。接下來,確定與該P(yáng)SV的值相對(duì)應(yīng)的DPM字段是否指示所考慮的分組是復(fù)制分組(730)。如果分組不是復(fù)制分組,則以通常方式(例如根據(jù)該分組的適用ACE)轉(zhuǎn)發(fā)分組(步驟740)。但是,如果針對(duì)該分組的PSV的DPM字段指示該分組是復(fù)制的,則丟棄分組(步驟750)。
如上所述,圖7示出了根據(jù)本發(fā)明實(shí)施例的進(jìn)程的流程圖??梢砸庾R(shí)到,這里論述的操作可以由直接輸入的命令構(gòu)成,這些命令可以由計(jì)算機(jī)系統(tǒng)用戶或由專用硬件模塊執(zhí)行的步驟來輸入,但是優(yōu)選實(shí)施例包括由軟件模塊執(zhí)行的步驟。這里提到的步驟的功能可以對(duì)應(yīng)于模塊的功能或模塊的一部分的功能。
這里所稱操作可以是模塊或模塊的一部分(例如軟件、固件或硬件模塊)。例如,雖然所述實(shí)施例包括軟件模塊和/或包括手工輸入的用戶命令,但是各種示例模塊可以是專用硬件模塊。這里論述的軟件模塊可以包括腳本、批處理文件或其他可執(zhí)行文件,或者這些文件的組合和/或部分。軟件模塊可以包括編碼在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序或其子例程。
另外,本領(lǐng)域技術(shù)人員將意識(shí)到,模塊之間的邊界僅僅是示例性的,并且備選實(shí)施例可以合并模塊,或另外分解模塊中的功能。例如,這里論述的模塊可以被分解成作為多個(gè)計(jì)算機(jī)進(jìn)程被執(zhí)行的子模塊,并且可選地,在多個(gè)計(jì)算機(jī)上執(zhí)行。此外,備選實(shí)施例可以組合特定模塊或子模塊的多個(gè)實(shí)例。此外,本領(lǐng)域技術(shù)人員將意識(shí)到,在示例性實(shí)施例中描述的操作僅用于舉例說明。根據(jù)本發(fā)明,操作可被組合,或者操作的功能可被分配到另外的他操作中。
或者,這些行為可以被包含在實(shí)現(xiàn)這種功能的電路結(jié)構(gòu)中,例如復(fù)雜指令集計(jì)算機(jī)(CISC)的微代碼、被編程到可編程或可擦除/可編程設(shè)備中的固件、現(xiàn)場可編程門陣列(FPGA)的配置、門陣列或全定制專用集成電路(ASIC)的設(shè)計(jì)等等。
這里所示出并論述的進(jìn)程的每個(gè)塊可以由模塊(例如軟件模塊)或模塊的一部分或計(jì)算機(jī)系統(tǒng)用戶來執(zhí)行。因此,上述方法及其操作以及用于其的模塊可以在被配置為用于執(zhí)行該方法的操作的計(jì)算機(jī)系統(tǒng)上執(zhí)行,和/或從計(jì)算機(jī)可讀介質(zhì)執(zhí)行。該方法可以被包含在用于配置計(jì)算機(jī)系統(tǒng)以執(zhí)行所述方法的機(jī)器可讀和/或計(jì)算機(jī)可讀介質(zhì)中。因此,軟件模塊可以被存儲(chǔ)在計(jì)算機(jī)系統(tǒng)存儲(chǔ)器內(nèi)和/或被發(fā)送到計(jì)算機(jī)系統(tǒng)存儲(chǔ)器,以將計(jì)算機(jī)系統(tǒng)配置為執(zhí)行所述模塊的功能。
這樣的計(jì)算機(jī)系統(tǒng)通常根據(jù)程序(內(nèi)部存儲(chǔ)的指令的列表,例如特定的應(yīng)用程序和/或操作系統(tǒng))處理信息并經(jīng)由I/O設(shè)備產(chǎn)生作為結(jié)果的輸出信息。計(jì)算機(jī)進(jìn)程通常包括執(zhí)行(運(yùn)行)程序或程序的一部分、當(dāng)前程序值和狀態(tài)信息,以及由操作系統(tǒng)用于管理進(jìn)程執(zhí)行的資源。父進(jìn)程可以產(chǎn)生其他子進(jìn)程以幫助執(zhí)行父進(jìn)程的總功能。由于父進(jìn)程具體產(chǎn)生子進(jìn)程來執(zhí)行父進(jìn)程的總功能的一部分,因此由子進(jìn)程(以及孫子進(jìn)程等)執(zhí)行的功能有時(shí)可被描述為是由父進(jìn)程執(zhí)行的。
這樣的計(jì)算機(jī)系統(tǒng)通常包括多個(gè)“同時(shí)”執(zhí)行的計(jì)算機(jī)進(jìn)程。通常,計(jì)算機(jī)系統(tǒng)包括單個(gè)處理單元,該處理單元能夠交替地支持很多活動(dòng)進(jìn)程。雖然多個(gè)進(jìn)程看起來可能是同時(shí)執(zhí)行的,但是在任何給定時(shí)間點(diǎn),實(shí)際上只有一個(gè)進(jìn)程被單個(gè)處理單元所執(zhí)行。通過快速改變進(jìn)程執(zhí)行,計(jì)算機(jī)系統(tǒng)給出了同時(shí)執(zhí)行進(jìn)程的外觀。計(jì)算機(jī)系統(tǒng)在各個(gè)執(zhí)行階段中在多個(gè)進(jìn)程間復(fù)用計(jì)算機(jī)系統(tǒng)的資源的能力被稱為多任務(wù)處理(multitasking)。按照定義可支持真正的同時(shí)處理的具有多個(gè)處理單元的系統(tǒng),被稱為多處理系統(tǒng)。當(dāng)活動(dòng)的進(jìn)程在多任務(wù)處理和/或多處理環(huán)境中被執(zhí)行時(shí),這樣的進(jìn)程常被稱為同時(shí)執(zhí)行。
這里描述的軟件模塊可以被這樣的計(jì)算機(jī)系統(tǒng)例如從計(jì)算機(jī)可讀介質(zhì)中接收。計(jì)算機(jī)可讀介質(zhì)可以被永久地、可移除地或遠(yuǎn)程地耦合到計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)可讀介質(zhì)例如非排它性地包括任何數(shù)目的下述介質(zhì)磁存儲(chǔ)介質(zhì),包括磁盤和磁帶存儲(chǔ)介質(zhì);光存儲(chǔ)介質(zhì),例如緊致盤介質(zhì)(例如CD-ROM、CD-R等等)和數(shù)字視頻盤存儲(chǔ)介質(zhì);非易失性存儲(chǔ)器,包括諸如FLASH存儲(chǔ)器、EEPROM、EPROM、ROM或?qū)S眉呻娐分惖幕诎雽?dǎo)體的存儲(chǔ)單元;易失性存儲(chǔ)介質(zhì),包括寄存器、緩沖器或緩存、主存儲(chǔ)器、RAN等等;以及數(shù)據(jù)傳輸介質(zhì),包括計(jì)算機(jī)網(wǎng)絡(luò)、點(diǎn)到點(diǎn)電信和載波傳輸介質(zhì)。在基于UNIX的實(shí)施例中,軟件模塊可以包含在文件中,該文件可以是設(shè)備、終端、本地或遠(yuǎn)程文件、套接字、網(wǎng)絡(luò)連接、信號(hào)或其他通信或狀態(tài)改變的手段。其他新型和各種類型的計(jì)算機(jī)可讀介質(zhì)可被用于存儲(chǔ)和/或傳輸這里論述的軟件模塊。
圖8是示出在諸如圖2所示的體系結(jié)構(gòu)中進(jìn)行DPM查找(例如圖7所示)的基本進(jìn)程的流程圖。該進(jìn)程開始于確定與PSV相對(duì)應(yīng)的當(dāng)前字段是否等于零(例如被清除)(步驟800)。很明顯,關(guān)于與PSV相對(duì)應(yīng)的當(dāng)前字段是否等于零的確定可被用于代表利用單個(gè)復(fù)制分組映射執(zhí)行的分析,或來自兩個(gè)復(fù)制分組映射的結(jié)果的或操作(在使用加窗方法的情況下)。在任何情況下,如果此分析指示與PSV相對(duì)應(yīng)的當(dāng)前字段不等于零,DPM庫則指示所考慮的分組是復(fù)制分組(步驟810)。但是,如果與PSV相對(duì)應(yīng)的當(dāng)前字段等于零,DPM庫則指示所考慮的分組不是復(fù)制分組(步驟820)并設(shè)置與給定分組的PSV相對(duì)應(yīng)的當(dāng)前字段(例如設(shè)置為1)(步驟830)。
圖9是示出用于操作諸如圖3所示DPM庫300這樣的DPM庫的進(jìn)程的流程圖。該處理開始于DPM庫和DPM控制單元的初始化(步驟900)。接下來,最初充當(dāng)先前和當(dāng)前DPM的DPM被選擇(步驟910)。一旦先前和當(dāng)前DPM被選擇,利用這些DPM執(zhí)行的分組處理就可以開始(步驟920)。該處理繼續(xù),直到已被識(shí)別為當(dāng)前DPM的DPM超時(shí)(如DPM控制單元所指示)為止(步驟930)。一旦當(dāng)前DPM超時(shí),下一DPM就變?yōu)楫?dāng)前DPM(步驟940),并且“舊的”當(dāng)前DPM變?yōu)橄惹癉PM(步驟945)。
在某些實(shí)施例中,當(dāng)選擇了當(dāng)前和下一DPM的新位置時(shí),已被選為先前DPM的DPM可以被清除。在這樣的實(shí)現(xiàn)方式中,需要使舊的(先前的)DPM脫離服務(wù)以清除該DPM。在此情況下,可以采用用于清除舊DPM的單獨(dú)的子進(jìn)程。當(dāng)當(dāng)前和下一DPM被選為“新的”先前和當(dāng)前DPM時(shí)(步驟940),“舊的”先前DPM被清除(步驟950)。當(dāng)舊的(先前的)DPM未被完全清除時(shí)(步驟960)該進(jìn)程進(jìn)行下去,并繼續(xù)進(jìn)行直到舊的(先前的)DPM被完全清除為止(步驟970)。這時(shí),該DPM可用作當(dāng)前DPM。
圖10是示出根據(jù)本發(fā)明用于以圖9建議的方式利用當(dāng)前和先前DPM處理分組的進(jìn)程的流程圖。該進(jìn)程開始于確定與當(dāng)前PSV值相對(duì)應(yīng)的先前DPM是否等于零(步驟1000)。如果與當(dāng)前PSV值相對(duì)應(yīng)的先前DPM不等于零,DPM庫則指示給定分組是復(fù)制分組(步驟1010)。
但是,如果與當(dāng)前PSV值相對(duì)應(yīng)的先前DPM等于零,則確定與當(dāng)前PSV值相對(duì)應(yīng)的當(dāng)前DPM是否等于零(步驟1020)。同樣,與不等于零的先前DPM相同,如果與當(dāng)前PSV值相對(duì)應(yīng)的當(dāng)前DPM不等于零,DPM庫則指示給定的分組是復(fù)制分組(步驟1010)。但是,如果與當(dāng)前PSV值相對(duì)應(yīng)的當(dāng)前DPM也等于零,DPM庫則指示給定的分組不是復(fù)制分組(步驟1030)。另外,DPM庫設(shè)置與當(dāng)前PSV值相對(duì)應(yīng)的當(dāng)前DPM(例如設(shè)置為1),以指示具有與當(dāng)前PSV值相對(duì)應(yīng)的PSV值的分組已被DPM庫識(shí)別出(步驟1040)。
這里描述的基本方案可以以多種方式被擴(kuò)展。例如,復(fù)制分類可被限制到分組中通過使用了復(fù)制傳輸?shù)逆溌返竭_(dá)的被選子集,并被限制到對(duì)偶然的復(fù)制分組具有復(fù)原能力的協(xié)議子集(例如TCP)。相反,復(fù)制分組分類可被用于確定和響應(yīng)于發(fā)生在未期望出現(xiàn)復(fù)制分組的網(wǎng)絡(luò)設(shè)置中的復(fù)制分組的發(fā)生。例如,復(fù)制分組分類可被用于抑制可能由于以下原因引起的復(fù)制分組起因于網(wǎng)絡(luò)設(shè)備的故障(例如路由器故障,其中發(fā)生故障的路由器重復(fù)發(fā)送相同的分組)、生成樹環(huán)、多播環(huán)或甚至生成了大量復(fù)制分組的惡意攻擊。
雖然已經(jīng)示出并描述了本發(fā)明的特定實(shí)施例,但是對(duì)于本領(lǐng)域技術(shù)人員顯而易見的是,基于這里的教導(dǎo),可以在不脫離本發(fā)明及其更廣闊方面的情況下進(jìn)行改變和修改,因此,所附權(quán)利要求將把落在本發(fā)明的真實(shí)精神和范圍內(nèi)的所有這樣的改變和修改包含在其范圍內(nèi)。此外,雖然已經(jīng)參考這些特定實(shí)施例具體示出和描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將會(huì)理解,在不脫離本發(fā)明的精神或范圍的情況下,可以對(duì)其在形式和細(xì)節(jié)上執(zhí)行上述和其他改變。
權(quán)利要求
1.一種網(wǎng)絡(luò)設(shè)備,包括復(fù)制分組映射(DPM)。
2.如權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM包括多個(gè)DPM字段。
3.如權(quán)利要求2所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM被配置為接收分組概要值(PSV)。
4.如權(quán)利要求3所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM被實(shí)現(xiàn)為Bloom過濾器。
5.如權(quán)利要求3所述的網(wǎng)絡(luò)設(shè)備,其中所述多個(gè)DPM字段之一對(duì)應(yīng)于所述PSV。
6.如權(quán)利要求3所述的網(wǎng)絡(luò)設(shè)備,其中所述多個(gè)DPM字段中的每一個(gè)對(duì)應(yīng)于所述PSV中的一個(gè)比特。
7.如權(quán)利要求3所述的網(wǎng)絡(luò)設(shè)備,其中所述多個(gè)DPM字段中的每一個(gè)被配置為將所述PSV的相應(yīng)比特的值與存儲(chǔ)在所述多個(gè)DPM字段中的每一個(gè)中的值相比較,以生成輸出,并且所述輸出中的每一個(gè)的值指示所述PSV的所述相應(yīng)比特的所述值是否與存儲(chǔ)在所述多個(gè)DPM字段中的所述每一個(gè)的所述值相匹配。
8.如權(quán)利要求3所述的網(wǎng)絡(luò)設(shè)備,其中所述多個(gè)DPM字段中的每一個(gè)被配置為被用所述PSV尋址,并且存儲(chǔ)在所述多個(gè)DPM字段中與所述PSV的值相對(duì)應(yīng)的那個(gè)DPM字段中的值指示所述分組是否是所述復(fù)制分組。
9.如權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,還包括分組概要值(PSV)生成器,其中所述復(fù)制分組映射(DPM)被耦合到所述PSV生成器。
10.如權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其中所述PSV生成器被配置為基于由所述PSV生成器接收到的分組來生成PSV,并且所述DPM被配置為接收所述PSV。
11.如權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM包括多個(gè)DPM字段。
12.如權(quán)利要求11所述的網(wǎng)絡(luò)設(shè)備,其中所述多個(gè)DPM字段之一對(duì)應(yīng)于所述PSV。
13.如權(quán)利要求11所述的網(wǎng)絡(luò)設(shè)備,其中所述多個(gè)DPM字段中的每一個(gè)對(duì)應(yīng)于所述PSV中的一個(gè)比特。
14.如權(quán)利要求12所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM被實(shí)現(xiàn)為Bloom過濾器。
15.如權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,還包括DPM庫,其中所述DPM庫包括所述DPM。
16.如權(quán)利要求15所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM庫還包括多個(gè)DPM,其中所述多個(gè)DPM包括所述DPM。
17.如權(quán)利要求16所述的網(wǎng)絡(luò)設(shè)備,其中所述多個(gè)DPM中的每一個(gè)被實(shí)現(xiàn)為Bloom過濾器。
18.如權(quán)利要求16所述的網(wǎng)絡(luò)設(shè)備,其中所述多個(gè)DPM中的第一DPM被指定為當(dāng)前DPM,并且所述多個(gè)DPM中的第二DPM被指定為先前DPM。
19.如權(quán)利要求16所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM庫還包括耦合到所述多個(gè)DPM的DPM尋址單元;耦合到所述多個(gè)DPM的選擇單元;以及DPM控制單元,該DPM控制單元被耦合以控制所述DPM尋址單元、所述多個(gè)DPM和所述選擇單元。
20.如權(quán)利要求19所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM控制單元被配置為選擇所述多個(gè)DPM中的第一DPM作為當(dāng)前DPM,并選擇所述多個(gè)DPM中的第二DPM作為先前DPM。
21.如權(quán)利要求20所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM控制單元被配置為致使所述DPM尋址單元向所述當(dāng)前DPM和所述先前DPM提供所述PSV;并且所述DPM控制單元被配置為致使所述選擇單元選擇所述當(dāng)前DPM和所述先前DPM。
22.如權(quán)利要求20所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM控制單元被配置為選擇所述先前DPM作為不活動(dòng)的DPM,并清除所述不活動(dòng)的DPM。
23.如權(quán)利要求15所述的網(wǎng)絡(luò)設(shè)備,還包括分組概要值(PSV)生成器,其中所述復(fù)制分組映射(DPM)被耦合到所述PSV生成器。
24.如權(quán)利要求23所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM庫還包括耦合在所述PSV生成器和所述多個(gè)DPM之間的DPM尋址單元;以及耦合到所述多個(gè)DPM的選擇單元。
25.如權(quán)利要求24所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM庫還包括DPM控制單元,該DPM控制單元被耦合以控制所述DPM尋址單元、所述多個(gè)DPM和所述選擇單元。
26.如權(quán)利要求25所述的網(wǎng)絡(luò)設(shè)備,其中所述選擇單元被配置為生成命中信號(hào),并且所述命中信號(hào)指示所述PSV的比特值與存儲(chǔ)在所述多個(gè)DPM之一中的相應(yīng)位置上的比特值相匹配。
27.如權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其中所述PSV生成器被配置為基于由所述PSV生成器接收到的分組來生成PSV,并且所述DPM被配置為接收所述PSV。
28.如權(quán)利要求27所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM還被配置為指示所述PSV與存儲(chǔ)在所述DPM中的PSV相匹配。
29.如權(quán)利要求28所述的網(wǎng)絡(luò)設(shè)備,其中所述PSV生成器被配置為利用循環(huán)冗余校驗(yàn)計(jì)算來生成所述PSV。
30.如權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,還包括分組處理單元,所述分組處理單元包括所述PSV生成器。
31.如權(quán)利要求30所述的網(wǎng)絡(luò)設(shè)備,還包括DPM庫,其中所述DPM庫包括所述DPM,所述DPM庫被配置為生成命中信號(hào),并且所述DPM庫被耦合以接收來自所述PSV生成器的所述PSV,并向所述分組處理單元提供所述命中信號(hào)。
32.如權(quán)利要求31所述的網(wǎng)絡(luò)設(shè)備,其中所述命中信號(hào)指示所述PSV的值與存儲(chǔ)在所述多個(gè)DPM之一中的值相匹配。
33.如權(quán)利要求31所述的網(wǎng)絡(luò)設(shè)備,其中所述命中信號(hào)指示所述PSV的比特值與存儲(chǔ)在所述多個(gè)DPM之一中的相應(yīng)位置上的比特值相匹配。
34.如權(quán)利要求31所述的網(wǎng)絡(luò)設(shè)備,其中所述分組處理單元被配置為利用所述命中信號(hào)來處理所述分組。
35.如權(quán)利要求31所述的網(wǎng)絡(luò)設(shè)備,其中所述處理包括致使所述分組處理單元基于所述命中信號(hào)而丟棄所述分組。
36.一種用于確定分組是否是復(fù)制分組的方法,包括確定復(fù)制分組映射(DPM)的字段是否指示所述分組是所述復(fù)制分組,其中所述確定是利用與所述分組相對(duì)應(yīng)的分組概要值(PSV)來進(jìn)行的。
37.如權(quán)利要求36所述的方法,還包括如果所述確定確定所述分組是所述復(fù)制分組,則指示所述分組是所述復(fù)制分組。
38.如權(quán)利要求37所述的方法,還包括如果所述分組是所述復(fù)制分組,則丟棄所述分組。
39.如權(quán)利要求37所述的方法,其中所述確定包括
39所述PSV到所述DPM。
40.如權(quán)利要求39所述的方法,其中所述確定是通過將所述PSV的比特與存儲(chǔ)在所述DPM的所述字段中的比特相比較來進(jìn)行的,并且如果所述PSV的所述比特與存儲(chǔ)在所述DPM的所述字段中的所述比特相匹配,則執(zhí)行所述指示。
41.如權(quán)利要求40所述的方法,還包括將存儲(chǔ)在所述DPM的所述字段中的所述比特設(shè)置為所述PSV的所述比特的值。
42.如權(quán)利要求37所述的方法,其中所述確定包括基于所述PSV來選擇所述DPM的所述字段。
43.如權(quán)利要求42所述的方法,其中所述確定是通過基于所述PSV的值選擇所述DPM的所述字段來進(jìn)行的,并且如果存儲(chǔ)在所述DPM的所述字段中的值指示所述分組是所述復(fù)制分組,則執(zhí)行所述指示。
44.如權(quán)利要求43所述的方法,還包括如果所述分組不是所述復(fù)制分組,則設(shè)置存儲(chǔ)在所述DPM的所述字段中的所述值。
45.如權(quán)利要求44所述的方法,還包括通過基于所述分組中的信息生成循環(huán)冗余校驗(yàn)值來生成所述PSV。
46.如權(quán)利要求37所述的方法,其中所述DPM是多個(gè)DPM之一。
47.如權(quán)利要求46所述的方法,還包括選擇所述多個(gè)DPM中的第一DPM作為先前DPM;以及選擇所述多個(gè)DPM中的第二DPM作為當(dāng)前DPM。
48.如權(quán)利要求47所述的方法,還包括利用所述PSV來確定所述先前DPM的字段是否指示所述分組是所述復(fù)制分組;以及利用所述PSV來確定所述當(dāng)前DPM的字段是否指示所述分組是所述復(fù)制分組。
49.如權(quán)利要求48所述的方法,還包括如果所述先前DPM的所述字段指示所述分組不是所述復(fù)制分組,并且所述當(dāng)前DPM的所述字段指示所述分組不是所述復(fù)制分組,則指示所述分組不是所述復(fù)制分組,否則指示所述分組是所述復(fù)制分組。
50.如權(quán)利要求47所述的方法,還包括選擇所述先前DPM作為不活動(dòng)的DPM;選擇所述當(dāng)前DPM作為所述先前DPM;并且選擇所述多個(gè)DPM中的另一DPM作為所述當(dāng)前DPM。
51.如權(quán)利要求50所述的方法,還包括在所述不活動(dòng)的DPM被選擇為所述當(dāng)前DPM之前清除所述不活動(dòng)的DPM。
52.如權(quán)利要求50所述的方法,其中所述選擇所述先前DPM作為不活動(dòng)的DPM,選擇所述當(dāng)前DPM作為所述先前DPM以及選擇所述多個(gè)DPM中的另一DPM作為所述當(dāng)前DPM的步驟是周期性地執(zhí)行的。
53.如權(quán)利要求52所述的方法,其中所述周期性地執(zhí)行的周期是這樣的所述周期大于復(fù)制分組到達(dá)之間的期望差異,并且所述周期小于分組重傳之間的時(shí)間。
54.如權(quán)利要求52所述的方法,其中所述周期性地執(zhí)行的周期被配置為允許所述不活動(dòng)的DPM在所述不活動(dòng)的DPM被選擇為所述當(dāng)前DPM之前被清除。
55.一種網(wǎng)絡(luò)設(shè)備,包括處理器;耦合到所述處理器的計(jì)算機(jī)可讀介質(zhì);以及被編碼在所述計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)代碼,該計(jì)算機(jī)代碼用于確定分組是否是復(fù)制分組,并且被配置為致使所述處理器確定復(fù)制分組映射(DPM)的字段是否指示所述分組是所述復(fù)制分組,其中所述計(jì)算機(jī)代碼被配置為致使所述處理器利用與所述分組相對(duì)應(yīng)的分組概要值(PSV)進(jìn)行確定。
56.如權(quán)利要求55所述的網(wǎng)絡(luò)設(shè)備,其中所述計(jì)算機(jī)代碼還被配置為致使所述處理器如果被配置為致使所述處理器進(jìn)行確定的所述計(jì)算機(jī)代碼確定所述分組是所述復(fù)制分組,則指示所述分組是所述復(fù)制分組。
57.如權(quán)利要求56所述的網(wǎng)絡(luò)設(shè)備,其中所述計(jì)算機(jī)代碼還被配置為致使所述處理器將所述PSV與所述DPM相比較。
58.如權(quán)利要求56所述的網(wǎng)絡(luò)設(shè)備,其中所述計(jì)算機(jī)代碼還被配置為致使所述處理器基于所述PSV選擇所述DPM的所述字段。
59.如權(quán)利要求58所述的網(wǎng)絡(luò)設(shè)備,其中所述計(jì)算機(jī)代碼還被配置為致使所述處理器通過被配置為基于所述分組中的信息生成循環(huán)冗余校驗(yàn)值來生成所述PSV。
60.如權(quán)利要求55所述的網(wǎng)絡(luò)設(shè)備,其中所述DPM是多個(gè)DPM之一。
61.如權(quán)利要求60所述的網(wǎng)絡(luò)設(shè)備,其中所述計(jì)算機(jī)代碼還被配置為致使所述處理器選擇所述多個(gè)DPM中的第一DPM作為先前DPM;以及選擇所述多個(gè)DPM中的第二DPM作為當(dāng)前DPM。
62.如權(quán)利要求61所述的網(wǎng)絡(luò)設(shè)備,其中所述計(jì)算機(jī)代碼還被配置為致使所述處理器利用所述PSV來確定所述先前DPM的字段是否指示所述分組是所述復(fù)制分組;以及利用所述PSV來確定所述當(dāng)前DPM的字段是否指示所述分組是所述復(fù)制分組。
63.如權(quán)利要求62所述的網(wǎng)絡(luò)設(shè)備,其中所述計(jì)算機(jī)代碼還被配置為致使所述處理器如果所述先前DPM的所述字段指示所述分組不是所述復(fù)制分組,并且所述當(dāng)前DPM的所述字段指示所述分組不是所述復(fù)制分組,則指示所述分組不是所述復(fù)制分組,否則指示所述分組是所述復(fù)制分組。
64.如權(quán)利要求61所述的網(wǎng)絡(luò)設(shè)備,其中所述計(jì)算機(jī)代碼還被配置為致使所述處理器選擇所述先前DPM作為不活動(dòng)的DPM;選擇所述當(dāng)前DPM作為所述先前DPM;并且選擇所述多個(gè)DPM中的另一DPM作為所述當(dāng)前DPM。
65.如權(quán)利要求64所述的網(wǎng)絡(luò)設(shè)備,其中所述還被配置為致使所述處理器選擇所述先前DPM作為所述不活動(dòng)的DPM的計(jì)算機(jī)代碼,所述還被配置為致使所述處理器選擇所述當(dāng)前DPM作為所述先前DPM的計(jì)算機(jī)代碼,以及所述還被配置為致使所述處理器選擇所述多個(gè)DPM中的另一DPM作為所述當(dāng)前DPM的計(jì)算機(jī)代碼還被配置為周期性地被執(zhí)行。
66.如權(quán)利要求65所述的網(wǎng)絡(luò)設(shè)備,其中所述周期性地執(zhí)行的周期是這樣的所述周期大于復(fù)制分組到達(dá)之間的期望差異,并且所述周期小于分組重傳之間的時(shí)間。
67.如權(quán)利要求65所述的網(wǎng)絡(luò)設(shè)備,其中所述周期性地執(zhí)行的周期被配置為允許所述不活動(dòng)的DPM在所述不活動(dòng)的DPM被選擇為所述當(dāng)前DPM之前被清除。
68.一種用于確定分組是否是復(fù)制分組的計(jì)算機(jī)程序產(chǎn)品,包括可在計(jì)算機(jī)系統(tǒng)上執(zhí)行的第一指令集,該第一指令集被配置為確定復(fù)制分組映射(DPM)的字段是否指示所述分組是所述復(fù)制分組,其中所述第一指令集利用與所述分組相對(duì)應(yīng)的分組概要值(PSV)來進(jìn)行所述確定;以及計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算機(jī)程序產(chǎn)品被編碼在所述計(jì)算機(jī)可讀介質(zhì)中。
69.如權(quán)利要求68所述的計(jì)算機(jī)程序產(chǎn)品,還包括可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第二指令集,該第二指令集被配置為在所述被配置為致使所述處理器進(jìn)行確定的計(jì)算機(jī)代碼確定所述分組是所述復(fù)制分組的情況下,指示所述分組是所述復(fù)制分組。
70.如權(quán)利要求69所述的計(jì)算機(jī)程序產(chǎn)品,還包括可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第三指令集,該第三指令集被配置為將所述PSV與所述DPM相比較。
71.如權(quán)利要求69所述的計(jì)算機(jī)程序產(chǎn)品,還包括可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第三指令集,該第三指令集被配置為基于所述PSV來選擇所述DPM的所述字段。
72.如權(quán)利要求71所述的計(jì)算機(jī)程序產(chǎn)品,還包括可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第四指令集,該第四指令集被配置為通過被配置為基于所述分組中的信息生成循環(huán)冗余校驗(yàn)值來生成所述PSV。
73.如權(quán)利要求68所述的計(jì)算機(jī)程序產(chǎn)品,其中所述DPM是多個(gè)DPM之一。
74.如權(quán)利要求73所述的計(jì)算機(jī)程序產(chǎn)品,還包括可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第二指令集,該第二指令集被配置為選擇所述多個(gè)DPM中的第一DPM作為先前DPM;以及可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第三指令集,該第三指令集被配置為選擇所述多個(gè)DPM中的第二DPM作為當(dāng)前DPM。
75.如權(quán)利要求74所述的計(jì)算機(jī)程序產(chǎn)品,還包括可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第四指令集,該第四指令集被配置為利用所述PSV來確定所述先前DPM的字段是否指示所述分組是所述復(fù)制分組;以及可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第五指令集,該第五指令集被配置為利用所述PSV來確定所述當(dāng)前DPM的字段是否指示所述分組是所述復(fù)制分組。
76.如權(quán)利要求75所述的計(jì)算機(jī)程序產(chǎn)品,還包括可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第六指令集,該第六指令集被配置為在所述先前DPM的所述字段指示所述分組不是所述復(fù)制分組,并且所述當(dāng)前DPM的所述字段指示所述分組不是所述復(fù)制分組的情況下,指示所述分組不是所述復(fù)制分組,以及可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第七指令集,該第七指令集被配置為在除以上情況外的其他情況下,指示所述分組是所述復(fù)制分組。
77.如權(quán)利要求74所述的計(jì)算機(jī)程序產(chǎn)品,還包括可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第四指令集,該第四指令集被配置為選擇所述先前DPM作為不活動(dòng)的DPM;可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第五指令集,該第五指令集被配置為選擇所述當(dāng)前DPM作為所述先前DPM;以及可在所述計(jì)算機(jī)系統(tǒng)上執(zhí)行的第六指令集,該第六指令集被配置為選擇所述多個(gè)DPM中的另一DPM作為所述當(dāng)前DPM。
78.如權(quán)利要求77所述的計(jì)算機(jī)程序產(chǎn)品,其中所述第四、第五和第六指令集被周期性地執(zhí)行。
79.如權(quán)利要求68所述的計(jì)算機(jī)程序產(chǎn)品,其中所述周期性地執(zhí)行的周期是這樣的所述周期大于復(fù)制分組到達(dá)之間的期望差異,并且所述周期小于分組重傳之間的時(shí)間。
80.如權(quán)利要求68所述的計(jì)算機(jī)程序產(chǎn)品,其中所述周期性地執(zhí)行的周期被配置為允許所述不活動(dòng)的DPM在所述不活動(dòng)的DPM被選擇為所述當(dāng)前DPM之前被清除。
81.一種用于確定分組是否是復(fù)制分組的裝置方法,包括用于確定復(fù)制分組映射(DPM)的字段是否指示所述分組是所述復(fù)制分組的裝置,其中所述用于確定的裝置使用與所述分組相對(duì)應(yīng)的分組概要值(PSV)。
82.如權(quán)利要求81所述的裝置,還包括用于指示所述分組是所述復(fù)制分組的裝置,所述用于指示的裝置被配置為在所述用于確定的裝置確定所述分組是所述復(fù)制分組的情況下指示所述分組是所述復(fù)制分組。
83.如權(quán)利要求82所述的裝置,其中所述確定包括用于將所述PSV與所述DPM相比較的裝置。
84.如權(quán)利要求82所述的裝置,其中所述確定包括用于基于所述PSV來選擇所述DPM的所述字段的裝置。
85.如權(quán)利要求84所述的裝置,還包括用于生成所述PSV的裝置,該裝置包括用于基于所述分組中的信息來生成循環(huán)冗余校驗(yàn)值的裝置。
86.如權(quán)利要求82所述的裝置,其中所述DPM是多個(gè)DPM之一。
87.如權(quán)利要求86所述的裝置,還包括用于選擇所述多個(gè)DPM中的第一DPM作為先前DPM的裝置;以及用于選擇所述多個(gè)DPM中的第二DPM作為當(dāng)前DPM的裝置。
88.如權(quán)利要求87所述的裝置,還包括用于利用所述PSV來確定所述先前DPM的字段是否指示所述分組是所述復(fù)制分組的裝置;以及用于利用所述PSV來確定所述當(dāng)前DPM的字段是否指示所述分組是所述復(fù)制分組的裝置。
89.如權(quán)利要求88所述的裝置,還包括用于在所述先前DPM的所述字段指示所述分組不是所述復(fù)制分組,并且所述當(dāng)前DPM的所述字段指示所述分組不是所述復(fù)制分組的情況下,指示所述分組不是所述復(fù)制分組的裝置,以及用于在除以上情況外的其他情況下,指示所述分組是所述復(fù)制分組的裝置。
90.如權(quán)利要求87所述的裝置,還包括用于選擇所述先前DPM作為不活動(dòng)的DPM的裝置;用于選擇所述當(dāng)前DPM作為所述先前DPM的裝置;以及用于選擇所述多個(gè)DPM中的另一DPM作為所述當(dāng)前DPM的裝置。
91.如權(quán)利要求90所述的裝置,還包括用于在所述不活動(dòng)的DPM被選擇為所述當(dāng)前DPM之前清除所述不活動(dòng)的DPM的裝置。
92.如權(quán)利要求90所述的裝置,其中所述用于選擇所述先前DPM作為所述不活動(dòng)的DPM的裝置,所述用于選擇所述當(dāng)前DPM作為所述先前DPM的裝置,以及所述用于選擇所述多個(gè)DPM中的另一DPM作為所述當(dāng)前DPM的裝置周期性地執(zhí)行它們各自的選擇。
全文摘要
公開了用于確定分組是否是復(fù)制分組的方法和裝置。該方法包括確定復(fù)制分組映射(DPM)的字段是否指示分組是復(fù)制分組(步驟730)。該確定是利用與分組相對(duì)應(yīng)的分組概要值(PSV)來進(jìn)行的(步驟710和720)。所述裝置(例如網(wǎng)絡(luò)設(shè)備)包括復(fù)制分組映射(DPM),該DPM可被用于進(jìn)行上述確定。
文檔編號(hào)H04L12/56GK1826776SQ200480021360
公開日2006年8月30日 申請(qǐng)日期2004年7月23日 優(yōu)先權(quán)日2003年7月24日
發(fā)明者戴維·R·徹里騰 申請(qǐng)人:思科技術(shù)公司