用于數(shù)據(jù)包冗余清除的系統(tǒng)和方法
【專利摘要】一種數(shù)據(jù)包處理的方法,包括:接收包括報(bào)頭的第一數(shù)據(jù)包,所述報(bào)頭具有多個(gè)域,所述多個(gè)域中的一個(gè)為標(biāo)識域;確定用于所述第一數(shù)據(jù)包的所述報(bào)頭中所述標(biāo)識域的標(biāo)識值;確定所述第一數(shù)據(jù)包的所述標(biāo)識值是否與第二數(shù)據(jù)包報(bào)頭中的標(biāo)識值相匹配;并使用所述第一數(shù)據(jù)包的所述報(bào)頭中所述域中的另一個(gè)以當(dāng)所述第一數(shù)據(jù)包的所述標(biāo)識值與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配時(shí)確定所述第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。
【專利說明】用于數(shù)據(jù)包冗余清除的系統(tǒng)和方法
[0001]相關(guān)申請案
[0002]本申請涉及2010年2月24日提交的第12/712,093號美國專利申請,其全部內(nèi)容以引用方式明確地并入本文。
【技術(shù)領(lǐng)域】
[0003]本申請大體涉及網(wǎng)絡(luò)交換裝置。
【背景技術(shù)】
[0004]網(wǎng)絡(luò)交換機(jī)已用于將數(shù)據(jù)包從一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)到另一個(gè)節(jié)點(diǎn)。該等網(wǎng)絡(luò)交換裝置包括用于從第一節(jié)點(diǎn)接收數(shù)據(jù)包的第一網(wǎng)絡(luò)端口以及用于將數(shù)據(jù)包傳遞到第二節(jié)點(diǎn)的第二網(wǎng)絡(luò)端口。
[0005]在包交換網(wǎng)絡(luò)中,在包交換網(wǎng)絡(luò)中的終端之間報(bào)文的傳輸、路由、轉(zhuǎn)發(fā)等被分成一個(gè)或多個(gè)數(shù)據(jù)包。通常,通過包交換網(wǎng)絡(luò)傳輸或路由的數(shù)據(jù)包包括三個(gè)要素:報(bào)頭、有效載荷和報(bào)尾。報(bào)頭可包括若干識別符,例如源和目的地終端地址、VLAN標(biāo)記、數(shù)據(jù)包大小、數(shù)據(jù)包協(xié)議等。有效載荷是除了報(bào)頭或報(bào)尾之外的正被傳輸?shù)暮诵倪f送數(shù)據(jù)。報(bào)尾通常標(biāo)識數(shù)據(jù)包的結(jié)束且可包括錯(cuò)誤檢查信息(例如,CRC信息)。數(shù)據(jù)包可符合多種包格式,例如IEEE 802.1D 或 802.3 標(biāo)準(zhǔn)。
[0006]包交換網(wǎng)絡(luò)中的每個(gè)終端都與唯一的終端地址相關(guān)聯(lián)。報(bào)文數(shù)據(jù)包中的每一個(gè)都具有源終端地址、目的地終端地址以及有效載荷,有效載荷包含該報(bào)文中的至少一部分。源終端地址是數(shù)據(jù)包的源終端的終端地址。目的地終端地址是數(shù)據(jù)包的目的地終端的終端地址。另外,報(bào)文的每個(gè)數(shù)據(jù)包可采取不同的路徑到達(dá)目的地終端,具體取決于通信信道的可用性,并且可在不同的時(shí)間到達(dá)。在目的地終端處由報(bào)文的數(shù)據(jù)包重組成完整的報(bào)文。本領(lǐng)域的技術(shù)人員通常將源終端地址和目的地終端地址分別稱作源地址和目的地地址。
[0007]本主題申請的 申請人:已經(jīng)確定,包交換裝置(設(shè)備)可用來在包交換網(wǎng)絡(luò)中將數(shù)據(jù)包的拷貝(通過交換機(jī)或路由器的SPAN端口,或者通過其內(nèi)置分接模塊對每個(gè)數(shù)據(jù)包進(jìn)行復(fù)制獲得)轉(zhuǎn)發(fā)到網(wǎng)絡(luò)監(jiān)控或安全工具以據(jù)此進(jìn)行分析。該等包交換設(shè)備可具有用于連接至包交換網(wǎng)絡(luò)的一個(gè)或多個(gè)網(wǎng)絡(luò)端口以及連接到用于監(jiān)控包流量的一個(gè)或多個(gè)網(wǎng)絡(luò)儀器的一個(gè)或多個(gè)儀器端口,網(wǎng)絡(luò)儀器例如數(shù)據(jù)包嗅探器、入侵檢測系統(tǒng)、應(yīng)用監(jiān)控器或取證記錄器。
[0008]有時(shí),用戶可能會想要部署各種網(wǎng)絡(luò)儀器來監(jiān)控包流量。為了監(jiān)控經(jīng)過交換機(jī)的每個(gè)數(shù)據(jù)包,通常設(shè)置span端口,使得每個(gè)數(shù)據(jù)包在經(jīng)過端口(入口或出口)時(shí)都會被復(fù)制。因此,對于在交換機(jī)的一個(gè)端口進(jìn)入且接著在同一交換機(jī)的另一個(gè)端口外出的數(shù)據(jù)包來說,從span端口發(fā)出該數(shù)據(jù)包的至少兩個(gè)拷貝。如果該數(shù)據(jù)包是多播包,那么交換機(jī)將會通過多個(gè)端口發(fā)出該數(shù)據(jù)包的多個(gè)拷貝,因此span端口將會發(fā)出該數(shù)據(jù)包的更多拷貝。在這種情形中,從span端口出來的該數(shù)據(jù)包的拷貝通常是相同的。
[0009]在其他情況下,交換機(jī)可改變數(shù)據(jù)包的VLAN標(biāo)記以使該數(shù)據(jù)包拷貝中的一些可具有不同的VLAN標(biāo)記。此外,數(shù)據(jù)包可能會經(jīng)過路由器,在這種情況下,目的地MAC地址甚或IP報(bào)頭信息中的一些域,如TTL域可能已變化改變,但有效載荷仍然是相同的。
[0010]如果數(shù)據(jù)包的拷貝是在其他網(wǎng)絡(luò)設(shè)置所制得的且被轉(zhuǎn)發(fā)送至相同的分析工具,該分析工具可能在稍有不同的時(shí)間使用相同的有效載荷接收數(shù)據(jù)包。重復(fù)數(shù)據(jù)包的生成也可發(fā)生在冗余網(wǎng)段,這取決于用于分接待被轉(zhuǎn)發(fā)送至分析工具的數(shù)據(jù)包的段中分接點(diǎn)的位置。即,根據(jù)分接頭在冗余網(wǎng)段中的位置,可生成同一數(shù)據(jù)包的多個(gè)拷貝或具有相同有效載荷的數(shù)據(jù)包(即,僅具有不同目的地和/或源地址的數(shù)據(jù)包)的多個(gè)拷貝。該等重復(fù)數(shù)據(jù)包的存在能夠防止發(fā)生準(zhǔn)確的分析,能夠?qū)W(wǎng)絡(luò)中的可用帶寬產(chǎn)生負(fù)面影響,或能夠壓倒不具備處理所有這些帶有重復(fù)信息的數(shù)據(jù)包性能的工具。因此,本申請的 申請人:確定具有一種在對數(shù)據(jù)包進(jìn)行任何分析或監(jiān)控前清除重復(fù)數(shù)據(jù)包的新系統(tǒng)和方法將是可取的。
【發(fā)明內(nèi)容】
[0011]根據(jù)一些實(shí)施方案,一種數(shù)據(jù)包處理方法,包括接收包括報(bào)頭的第一數(shù)據(jù)包,該報(bào)頭具有多個(gè)域;以及根據(jù)預(yù)先確定的域檢查層次使用多個(gè)域中的第一個(gè)確定第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包,其中預(yù)先確定的域檢查層次規(guī)定在多個(gè)域中的第二個(gè)之前檢查多個(gè)域中的第一個(gè),多個(gè)域中的第一個(gè)具有在統(tǒng)計(jì)學(xué)上相對高于多個(gè)域中的第二個(gè)的變化率,且其中當(dāng)多個(gè)域中的第一個(gè)與在第一數(shù)據(jù)包前接收的第二數(shù)據(jù)包中域中相應(yīng)一個(gè)相匹配且當(dāng)從接收到第二數(shù)據(jù)包開始的規(guī)定時(shí)間段內(nèi)接收到第一數(shù)據(jù)包時(shí),確定第一數(shù)據(jù)包為重復(fù)數(shù)據(jù)包。
[0012]根據(jù)其他實(shí)施方案,一種數(shù)據(jù)包交換系統(tǒng),包括第一端口,其被配置成接收包括報(bào)頭的第一數(shù)據(jù)包,報(bào)頭具有多個(gè)域;以及集成電路,其被配置成根據(jù)預(yù)先確定的域檢查層次使用多個(gè)域中的第一個(gè)確定第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包,其中預(yù)先確定的域檢查層次規(guī)定在多個(gè)域中的第二個(gè)之前檢查多個(gè)域中的第一個(gè),且多個(gè)域中的第一個(gè)具有在統(tǒng)計(jì)學(xué)上相對高于多個(gè)域中的第二個(gè)的變化率,且其中集成電路被配置成當(dāng)多個(gè)域中的第一個(gè)與在第一數(shù)據(jù)包前接收的第二數(shù)據(jù)包中域中相應(yīng)一個(gè)相匹配且當(dāng)從接收到第二數(shù)據(jù)包開始的規(guī)定時(shí)間段內(nèi)接收到第一數(shù)據(jù)包時(shí),確定第一數(shù)據(jù)包為重復(fù)數(shù)據(jù)包。
[0013]根據(jù)其他實(shí)施方案,一種計(jì)算機(jī)程序產(chǎn)品,包括存儲一組指令的非臨時(shí)性介質(zhì),其執(zhí)行可進(jìn)行一種數(shù)據(jù)包處理方法,該方法包括接收包括報(bào)頭的第一數(shù)據(jù)包,報(bào)頭具有多個(gè)域;以及根據(jù)預(yù)先確定的域檢查層次使用多個(gè)域中的第一個(gè)確定第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包,其中預(yù)先確定的域檢查層次規(guī)定在多個(gè)域中的第二個(gè)之前檢查多個(gè)域中的第一個(gè),且多個(gè)域中的第一個(gè)具有在統(tǒng)計(jì)學(xué)上相對高于多個(gè)域中的第二個(gè)的變化率,且其中當(dāng)多個(gè)域中的第一個(gè)與在第一數(shù)據(jù)包前接收的第二數(shù)據(jù)包中域中相應(yīng)一個(gè)相匹配且當(dāng)從接收到第二數(shù)據(jù)包開始的規(guī)定時(shí)間段內(nèi)接收到第一數(shù)據(jù)包時(shí),確定第一數(shù)據(jù)包為重復(fù)數(shù)據(jù)包。
[0014]根據(jù)其他實(shí)施方案,一種數(shù)據(jù)包處理的方法,包括接收包括報(bào)頭的第一數(shù)據(jù)包,報(bào)頭具有多個(gè)域,多個(gè)域中的一個(gè)為標(biāo)識域;確定用于第一數(shù)據(jù)包的報(bào)頭中標(biāo)識域的標(biāo)識值;確定第一數(shù)據(jù)包的標(biāo)識值是否與第二數(shù)據(jù)包報(bào)頭中的標(biāo)識值相匹配;并使用第一數(shù)據(jù)包的報(bào)頭中域中的另一個(gè)以當(dāng)?shù)谝粩?shù)據(jù)包的標(biāo)識值與第二數(shù)據(jù)包的標(biāo)識值相匹配時(shí)確定第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。
[0015]根據(jù)其他實(shí)施方案,一種數(shù)據(jù)包交換設(shè)備,包括第一端口,其被配置成接收包括報(bào)頭的第一數(shù)據(jù)包,報(bào)頭具有多個(gè)域,多個(gè)域中的一個(gè)為標(biāo)識域;以及集成電路,其被配置成確定用于第一數(shù)據(jù)包的報(bào)頭中標(biāo)識域的標(biāo)識值,確定第一數(shù)據(jù)包的標(biāo)識值是否與第二數(shù)據(jù)包報(bào)頭中的標(biāo)識值相匹配,并使用域中的另一個(gè)以當(dāng)?shù)谝粩?shù)據(jù)包的標(biāo)識值與第二數(shù)據(jù)包的標(biāo)識值相匹配時(shí)確定第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。
[0016]根據(jù)其他實(shí)施方案,一種計(jì)算機(jī)程序產(chǎn)品,具有存儲一組指令的非臨時(shí)性介質(zhì),其執(zhí)行可進(jìn)行一種數(shù)據(jù)包處理方法,該方法包括接收包括報(bào)頭的第一數(shù)據(jù)包,報(bào)頭具有多個(gè)域,多個(gè)域中的一個(gè)為標(biāo)識域;確定用于第一數(shù)據(jù)包的報(bào)頭中標(biāo)識域的標(biāo)識值;確定第一數(shù)據(jù)包的標(biāo)識值是否與第二數(shù)據(jù)包報(bào)頭中的標(biāo)識值相匹配;并使用域中的另一個(gè)以當(dāng)?shù)谝粩?shù)據(jù)包的標(biāo)識值與第二數(shù)據(jù)包的標(biāo)識值相匹配時(shí)確定第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。
[0017]其他和進(jìn)一步的方面和特征將通過閱讀下面用于說明而非限制本發(fā)明的有關(guān)實(shí)施方案的詳細(xì)描述而變得顯而易見。
【專利附圖】
【附圖說明】
[0018]附圖示出實(shí)施方案的設(shè)計(jì)和實(shí)用性,其中類似的元件由共同的參考數(shù)字所表示。這些附圖不一定要按比例繪制。為了更好地理解如何實(shí)現(xiàn)上述和其他優(yōu)點(diǎn)和目的,將提供實(shí)施方案的更具體的描述,其將在附圖中進(jìn)行闡明。這些附圖僅示出典型的實(shí)施方案,因此不得被認(rèn)為是限制其范圍。
[0019]圖1示出可如何創(chuàng)建重復(fù)數(shù)據(jù)包的實(shí)例;
[0020]圖2示出可如何創(chuàng)建重復(fù)數(shù)據(jù)包的另一實(shí)例;
[0021]圖3示出根據(jù)一些實(shí)施方案的數(shù)據(jù)包交換裝置;
[0022]圖4示出根據(jù)一些實(shí)施方案的可通過圖3所示數(shù)據(jù)包交換裝置進(jìn)行的方法;
[0023]圖5示出根據(jù)一些實(shí)施方案的具有可通過圖3所示數(shù)據(jù)包交換裝置接收的IPv4報(bào)頭的數(shù)據(jù)包;
[0024]圖6A示出根據(jù)一些實(shí)施方案的具有可通過圖3所示數(shù)據(jù)包交換裝置接收的UDP報(bào)頭的數(shù)據(jù)包;
[0025]圖6B示出根據(jù)一些實(shí)施方案的具有可通過圖3所示數(shù)據(jù)包交換裝置接收的TCP報(bào)頭的數(shù)據(jù)包;
[0026]圖7示出根據(jù)一些實(shí)施方案的可通過圖3所示數(shù)據(jù)包交換裝置進(jìn)行的另一方法;
[0027]圖8示出根據(jù)一些實(shí)施方案的圖3所示數(shù)據(jù)包交換的實(shí)施方式的實(shí)例;
[0028]圖9示出根據(jù)一些實(shí)施方案的通過圖8所示數(shù)據(jù)包交換裝置進(jìn)行的示例性數(shù)據(jù)包處理過程;以及
[0029]圖10示出根據(jù)一些實(shí)施方案的在網(wǎng)絡(luò)環(huán)境中圖3所示網(wǎng)絡(luò)交換裝置的配置實(shí)例?!揪唧w實(shí)施方式】
[0030]下面將參考附圖描述各實(shí)施方案。應(yīng)注意的是,附圖不是按比例繪制的,且在所有的附圖中通過相同的參考數(shù)字表示具有類似結(jié)構(gòu)或功能的元件。應(yīng)注意的是,附圖僅用于便于描述實(shí)施方案。其不得被用作本發(fā)明的詳盡描述或用于限制本發(fā)明的范圍。此外,一個(gè)圖示實(shí)施方案不需要具有所示的所有方面或優(yōu)點(diǎn)。結(jié)合特定實(shí)施方案所描述的一個(gè)方面或優(yōu)點(diǎn)不一定僅限于該實(shí)施方案,且可在任何其他的實(shí)施方案中予以實(shí)施,即使是未如此示出。
[0031]在網(wǎng)絡(luò)中,可在不同的情況下創(chuàng)建重復(fù)數(shù)據(jù)包。當(dāng)數(shù)據(jù)包與另一個(gè)為網(wǎng)絡(luò)云中兩個(gè)端點(diǎn)之間特定會話中的完全相同的塊時(shí),數(shù)據(jù)包被認(rèn)為是另一個(gè)的副本。重復(fù)數(shù)據(jù)包不需要從頭到腳都具有與另一數(shù)據(jù)包相同的信息,但重復(fù)數(shù)據(jù)包至少具有與另一數(shù)據(jù)包相同的有效載荷。因此,如在本說明書中所使用的,術(shù)語“重復(fù)數(shù)據(jù)包”或類似的短語(如“復(fù)制的數(shù)據(jù)包”、“副本”、“拷貝”等)指至少具有與另一數(shù)據(jù)包相同的有效載荷的數(shù)據(jù)包。在一些情況下,重復(fù)數(shù)據(jù)包也可具有與另一數(shù)據(jù)包的報(bào)頭中相應(yīng)一個(gè)(些)相同的報(bào)頭中一個(gè)或多個(gè)域中的信息。
[0032]圖1示出可如何創(chuàng)建重復(fù)數(shù)據(jù)包的實(shí)例。在圖1所示的實(shí)例中,將源自端口 A、B和C的數(shù)據(jù)包發(fā)送至WAN端口。SPAN端口被配置成分接端口 A以及還對所有進(jìn)出WAN端口的流量進(jìn)行鏡像處理。在這種情況下,從端口 A發(fā)送至WAN端口的數(shù)據(jù)包將被復(fù)制兩次以達(dá)到SPAN端口。
[0033]圖2示出可如何創(chuàng)建重復(fù)數(shù)據(jù)包的另一實(shí)例。為了監(jiān)控包括許多交換機(jī)和路由器的網(wǎng)絡(luò),可能需要對所有這些聯(lián)網(wǎng)裝置進(jìn)行分接。這是因?yàn)樵趦蓚€(gè)端點(diǎn)之間的流量可通過不同路徑且無法保證所有的流量都將通過單個(gè)節(jié)點(diǎn)。在所示實(shí)例中,從因特網(wǎng)發(fā)送至計(jì)算機(jī)X的流量可通過三個(gè)不同的路由器R1-R3。分接成三個(gè)路由器的網(wǎng)絡(luò)交換設(shè)備將看到三個(gè)將相同信息發(fā)送至計(jì)算機(jī)X的情況。
[0034]當(dāng)對網(wǎng)絡(luò)進(jìn)行錯(cuò)誤配置時(shí),也可產(chǎn)生重復(fù)數(shù)據(jù)包。例如,網(wǎng)絡(luò)交換設(shè)備的用戶可通過連接相同或不同交換機(jī)的兩個(gè)以太網(wǎng)端口創(chuàng)建物理環(huán)路,而不用正確配置生成樹協(xié)議。用戶也可能對VLAN域進(jìn)行錯(cuò)誤配置,這會導(dǎo)致數(shù)據(jù)包泄漏。此外,網(wǎng)絡(luò)裝置可能出現(xiàn)故障并隨機(jī)創(chuàng)建數(shù)據(jù)包拷貝。重復(fù)數(shù)據(jù)包是不合需要的,這是因?yàn)楫?dāng)重復(fù)數(shù)據(jù)包被傳輸至網(wǎng)絡(luò)監(jiān)控工具時(shí),網(wǎng)絡(luò)監(jiān)控工具可能對已經(jīng)分析過的重復(fù)數(shù)據(jù)包進(jìn)行不必要的分析。
[0035]圖3示出根據(jù)一些實(shí)施方案的被配置成進(jìn)行重復(fù)數(shù)據(jù)包標(biāo)識和數(shù)據(jù)包冗余清除的網(wǎng)絡(luò)交換裝置300。網(wǎng)絡(luò)交換裝置300包括第一網(wǎng)絡(luò)端口 312、第二網(wǎng)絡(luò)端口 314、第一儀器端口 328和第二儀器端口 329。裝置300還包括數(shù)據(jù)包交換機(jī)340和用于包含數(shù)據(jù)包交換機(jī)340的網(wǎng)絡(luò)交換殼體342。在所示的實(shí)施方案中,裝置300還包括其他組件,如被耦合至各端口 312和314中每一個(gè)的網(wǎng)絡(luò)PHY(未示出),其中網(wǎng)絡(luò)PHY可被認(rèn)為是數(shù)據(jù)包交換機(jī)340的部分??商娲?,網(wǎng)絡(luò)PHY可被認(rèn)為是與集成電路340相分開的組件。PHY被配置成將鏈路層裝置連接至物理介質(zhì),如光纖、銅電纜等。在其他實(shí)施方案中,裝置300可包括光收發(fā)器或SERDES (串行解串器)等以代替PHY。殼體342允許將裝置300作為單個(gè)單元進(jìn)行攜帶、運(yùn)輸、銷售和/或操作。端口 312、314、328和329位于殼體342的周邊。在其他實(shí)施方案中,端口 312、314、328和329可位于相對于殼體342的其他位置。雖然示出了兩個(gè)網(wǎng)絡(luò)端口 312和314,但在其他實(shí)施方案中,裝置300可包括兩個(gè)以上的網(wǎng)絡(luò)端口。并且,雖然示出了兩個(gè)儀器端口 328和329,但在其他實(shí)施方案中,裝置300可僅包括一個(gè)儀器端口或兩個(gè)以上的儀器端口。
[0036]在使用中,裝置300的第一網(wǎng)絡(luò)端口 312以通信方式被耦合至第一節(jié)點(diǎn)360,且第二端口 314以通信方式被耦合至第二節(jié)點(diǎn)362。裝置300被配置成經(jīng)網(wǎng)絡(luò)端口 312和314在第一和第二節(jié)點(diǎn)360和362之間進(jìn)行數(shù)據(jù)包的通信。并且,在使用中,裝置300的儀器端口 328和329以通信方式被耦合至各自的儀器370和372。儀器370和372可被直接耦合至裝置300或通過網(wǎng)絡(luò)(例如:因特網(wǎng))以通信方式被耦合至裝置300。在一些情況中,裝置300可通過兩個(gè)節(jié)點(diǎn)360和362的span端口接收為副本的數(shù)據(jù)包。在該等情況中,裝置300被配置成進(jìn)行數(shù)據(jù)包冗余清除以在將數(shù)據(jù)包轉(zhuǎn)發(fā)送至儀器370和/或儀器372前清除副本。在一些情況中,作為單個(gè)單元提供裝置300,這允許沿通信路徑在單點(diǎn)配置裝置300。在所示的實(shí)施方案中,數(shù)據(jù)包交換機(jī)340被配置成經(jīng)網(wǎng)絡(luò)端口 312和314從節(jié)點(diǎn)360和362接收數(shù)據(jù)包并根據(jù)預(yù)定方案處理數(shù)據(jù)包。例如,數(shù)據(jù)包交換機(jī)340可將從一個(gè)或多個(gè)節(jié)點(diǎn)接收的數(shù)據(jù)包傳遞至被連接至各自儀器端口 328和329的一個(gè)或多個(gè)儀器。
[0037]在實(shí)施方案的任一個(gè)中,數(shù)據(jù)包交換機(jī)340可以是按預(yù)先確定的傳輸方案提供數(shù)據(jù)包傳輸?shù)娜魏谓粨Q模塊。在一些實(shí)施方案中,數(shù)據(jù)包交換機(jī)340可以是用戶可配置的,從而可按I對I的配置傳輸數(shù)據(jù)包(即,從一個(gè)網(wǎng)絡(luò)端口至一個(gè)儀器端口)。如在本說明書中所使用的,術(shù)語“儀器端口 ”指被配置成將數(shù)據(jù)包傳輸至儀器的任何端口,其中儀器可以是非直通裝置(即,其只能接收要在兩個(gè)節(jié)點(diǎn)間通信的數(shù)據(jù)包,且不能向下游傳輸該等數(shù)據(jù)包),如嗅探器、網(wǎng)絡(luò)監(jiān)控系統(tǒng)、應(yīng)用監(jiān)控系統(tǒng)、入侵檢測系統(tǒng)、取證存儲系統(tǒng)、應(yīng)用安全系統(tǒng)等,或儀器可以是直通裝置(即,其能夠接收數(shù)據(jù)包且在已處理數(shù)據(jù)包后將數(shù)據(jù)包傳輸回裝置300),如入侵防御系統(tǒng)。在其他實(shí)施方案中,數(shù)據(jù)包交換機(jī)340可進(jìn)行配置以按I對多的配置傳輸數(shù)據(jù)包(即,從一個(gè)網(wǎng)絡(luò)端口至多個(gè)儀器端口)。在其他實(shí)施方案中,數(shù)據(jù)包交換機(jī)340可進(jìn)行配置以多對多的配置傳輸數(shù)據(jù)包(即,從多個(gè)網(wǎng)絡(luò)端口至多個(gè)儀器端口)。在另外的實(shí)施方案中,數(shù)據(jù)包交換機(jī)340可進(jìn)行配置以按多對I的配置傳輸數(shù)據(jù)包(即,從多個(gè)網(wǎng)絡(luò)端口至一個(gè)儀器端口)。在一些實(shí)施方案中,I對1、I對多、多對多和多對I的配置均可用于使用戶選擇性地配置裝置300,從而根據(jù)這些配置中的任一個(gè)對數(shù)據(jù)包(或某些類型的數(shù)據(jù)包)進(jìn)行路由。在一些實(shí)施方案中,對數(shù)據(jù)包移動配置進(jìn)行預(yù)先確定,以當(dāng)裝置300接收數(shù)據(jù)包時(shí),裝置300將基于預(yù)先確定的數(shù)據(jù)包移動配置(例如:1對1、I對多、多對多和多對I)自動把數(shù)據(jù)包轉(zhuǎn)發(fā)送至端口,而無需分析數(shù)據(jù)包(例如:無需檢查報(bào)頭、確定數(shù)據(jù)包的類型等)。
[0038]可用于實(shí)現(xiàn)本文所述特征的數(shù)據(jù)包交換機(jī)340的實(shí)例包括市售網(wǎng)絡(luò)交換裝置中的任一個(gè),如可在 Gigamon LLC購得的 GigaVUE?。第 12/148,481,12/255, 561,11/123, 273、11/123,465和11/123,377號的美國專利申請中描述了可用于實(shí)現(xiàn)本文所述特征的數(shù)據(jù)包交換機(jī)340的其他實(shí)例,所有專利的全部內(nèi)容均以引用方式明確地并入本文。
[0039]根據(jù)一些實(shí)施方案,數(shù)據(jù)包交換機(jī)340除了提供對網(wǎng)絡(luò)中各部件的可見性外,可具有傳統(tǒng)數(shù)據(jù)包交換機(jī)的功能。因此,數(shù)據(jù)包交換機(jī)340的實(shí)施方案可像傳統(tǒng)受管制的數(shù)據(jù)包交換機(jī)一樣進(jìn)行操作,但卻可提供數(shù)據(jù)包監(jiān)控功能。這可通過配置數(shù)據(jù)包交換機(jī)340以在某些情況下用作電路交換機(jī)而予以實(shí)現(xiàn)。在一些實(shí)施方案中,可使用交換機(jī)的CPU接口修改交換機(jī)中適當(dāng)?shù)募拇嫫鲗κ芄苤频臄?shù)據(jù)包交換機(jī)進(jìn)行配置,從而允許進(jìn)行所需的操作。
[0040]應(yīng)注意的是,可與裝置300 —同使用的數(shù)據(jù)包交換機(jī)340不限于上述實(shí)例,也可使用具有不同配置的其他數(shù)據(jù)包交換機(jī)340。此外,在本文所述實(shí)施方案的任一個(gè)中,可使用集成電路,如處理器(例如:通用處理器、網(wǎng)絡(luò)處理器、ASIC處理器、FPGA處理器等)實(shí)現(xiàn)數(shù)據(jù)包交換機(jī)340。
[0041]在所示實(shí)施方案中,網(wǎng)絡(luò)交換裝置300還包括集成電路380,其用于根據(jù)一些實(shí)施方案確定在網(wǎng)絡(luò)交換裝置300接收的數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包,且進(jìn)行數(shù)據(jù)包冗余清除。在所示的實(shí)施方案中,集成電路380被示作數(shù)據(jù)包交換機(jī)340的組件。在其他實(shí)施方案中,集成電路380可以是與數(shù)據(jù)包交換機(jī)340相分開的組件??墒褂锰幚砥?,如通用處理器、網(wǎng)絡(luò)處理器、ASIC處理器、FPGA處理器等實(shí)現(xiàn)集成電路380。并且,在一些實(shí)施方案中,用于實(shí)現(xiàn)數(shù)據(jù)包交換機(jī)340的相同處理器還可用于實(shí)現(xiàn)集成電路380的功能。在使用中,第一網(wǎng)絡(luò)端口 312從第一網(wǎng)絡(luò)端口 312的第一節(jié)點(diǎn)360接收數(shù)據(jù)包,處理數(shù)據(jù)包以確定其是否為重復(fù)數(shù)據(jù)包,并將數(shù)據(jù)包傳遞至儀器端口 328/329以向下游傳輸至工具370/372。當(dāng)裝置300 (例如:組件380)確定數(shù)據(jù)包為重復(fù)數(shù)據(jù)包時(shí),那么裝置300將防止把數(shù)據(jù)包傳輸至儀器端口 328和329和/或第二網(wǎng)絡(luò)端口 314。例如,可對裝置300進(jìn)行配置以丟棄重復(fù)數(shù)據(jù)包。
[0042]圖4示出根據(jù)一些實(shí)施方案的進(jìn)行數(shù)據(jù)包冗余清除的方法400。首先,接收數(shù)據(jù)包(步驟402)。這可通過圖3所示的網(wǎng)絡(luò)交換裝置300而完成,且該網(wǎng)絡(luò)交換裝置300通過第一網(wǎng)絡(luò)端口 312接收數(shù)據(jù)包。
[0043]所接收的數(shù)據(jù)包括報(bào)頭和有效載荷,其中報(bào)頭包括多個(gè)域。圖5示出根據(jù)一些實(shí)施方案的數(shù)據(jù)包500結(jié)構(gòu)的實(shí)例。數(shù)據(jù)包500包括報(bào)頭502和有效載荷數(shù)據(jù)504。報(bào)頭502包括多個(gè)域510-536。特別地,報(bào)頭502包括版本域510、IHL域512、服務(wù)類型域514、總長度域516、標(biāo)識域518、標(biāo)志域520、分段偏移域522、生存時(shí)間域524、協(xié)議域526、報(bào)頭校驗(yàn)和域528、源IP地址530、目的地IP地址532、IP選項(xiàng)域534和填充域536。
[0044]版本域510:1P數(shù)據(jù)包中的第一報(bào)頭域?yàn)?位版本域。對于IPv4而言,其值為4。
[0045]因特網(wǎng)報(bào)頭長度(IHL)域512:第二域(4位)為告知報(bào)頭中32位字的數(shù)量的因特網(wǎng)報(bào)頭長度(IHL)。由于IPv4報(bào)頭可能包含可變數(shù)量的選項(xiàng),該域規(guī)定了報(bào)頭的大小(這也與數(shù)據(jù)的偏移相一致)。該域的最小值為5(RFC791),其長度為5X32 = 160位=20字節(jié)。作為4位值,其最大長度為15個(gè)字(15X32位)或480位=60字節(jié)。
[0046]服務(wù)類型域514:該域也被稱為差分服務(wù)代碼點(diǎn)(DSCP),其由用于差分服務(wù)的RFC2474所限定。一些傳輸可能需要實(shí)時(shí)的數(shù)據(jù)流且因此可以利用DSCP域。一個(gè)實(shí)例為用于交互數(shù)據(jù)語音交換的IP電話(VoIP)。
[0047]總長度域516:該16位域限定了整個(gè)數(shù)據(jù)報(bào)大小,包括以字節(jié)為單位的報(bào)頭和數(shù)據(jù)。最小長度的數(shù)據(jù)報(bào)為20字節(jié)(20字節(jié)報(bào)頭+0字節(jié)數(shù)據(jù))且最大為65,535,其為16位
字的最大值。
[0048]標(biāo)識域518:該域?yàn)闃?biāo)識域且主要用于唯一地標(biāo)識原始IP數(shù)據(jù)報(bào)的分段。
[0049]標(biāo)志域520:接著是3位域,且其用于控制或標(biāo)識分段。(按順序,從高階到低階)他們是:
[0050]位O:保留;必須為零。
[0051]位1:不分段(DF)
[0052]位2:更多分段(MF)
[0053]如果設(shè)置DF標(biāo)志且需要進(jìn)行分段以對數(shù)據(jù)包進(jìn)行路由,那么數(shù)據(jù)包則將被丟棄。這可用在將數(shù)據(jù)包發(fā)送至不具有足夠資源以處理分段的主機(jī)時(shí)。
[0054]分段偏移域522:以8字節(jié)塊為單位測得的分段偏移域?yàn)?3位長且規(guī)定了特定分段相對于原始未分段的IP數(shù)據(jù)報(bào)開始時(shí)的偏移。第一分段的偏移為零。這允許為(213-1) X8 = 65,528字節(jié)的最大偏移,其可能超過包括報(bào)頭長度的為65,535字節(jié)的最大IP數(shù)據(jù)包長度(65,528+20 = 65,548字節(jié))。
[0055]生存時(shí)間域(TTL)524:8位生存時(shí)間域有助于防止數(shù)據(jù)報(bào)在因特網(wǎng)上繼續(xù)存在(例如:在兜圈子)。該域限制數(shù)據(jù)報(bào)的生存時(shí)間。其以秒為單位進(jìn)行規(guī)定,但小于I秒的時(shí)間間隔需四舍五入為I。在實(shí)踐中典型的恢復(fù)時(shí)間中,其已成為跳躍計(jì)數(shù)域。數(shù)據(jù)報(bào)越過的每個(gè)路由器對TTL域以I進(jìn)行遞減。當(dāng)TTL域降為零時(shí),不再通過數(shù)據(jù)包交換機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)包并將其丟棄。
[0056]協(xié)議域526:該域限定用在IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分中的協(xié)議。
[0057]報(bào)頭校驗(yàn)和域528:16位校驗(yàn)和域528用于報(bào)頭的錯(cuò)誤檢查。在每次跳躍,都必須將報(bào)頭的校驗(yàn)和與該域的值進(jìn)行比較。如果發(fā)現(xiàn)報(bào)頭校驗(yàn)和不匹配,則丟棄該數(shù)據(jù)包。要注意的是數(shù)據(jù)域中的錯(cuò)誤由封裝的協(xié)議來處理。
[0058]源地址530:1Pv4地址為用于共32位的一組四個(gè)八位字節(jié)。用于該域的值是通過取得每個(gè)八位字節(jié)的二進(jìn)制值并將他們連結(jié)在一起以構(gòu)造單個(gè)32位值而確定的。例如,地址10.9.8.7為00001010000010010000100000000111。該地址為數(shù)據(jù)包發(fā)送方的地址。要注意的是,由于網(wǎng)絡(luò)地址轉(zhuǎn)換,該地址可能不是數(shù)據(jù)包“真實(shí)的”發(fā)送方。相反,將由網(wǎng)絡(luò)地址轉(zhuǎn)換機(jī)將源地址轉(zhuǎn)換成其自己的地址。因此,接收方發(fā)送的應(yīng)答數(shù)據(jù)包被路由至網(wǎng)絡(luò)地址轉(zhuǎn)換機(jī),其將目的地地址轉(zhuǎn)換成原始的發(fā)送方地址。
[0059]目的地地址532:與源地址域相類似,但其表示的是數(shù)據(jù)包的接收方。
[0060]選項(xiàng)域534:這可能是跟在目的地地址域后面的一個(gè)或多個(gè)額外的報(bào)頭域。有時(shí),不使用選項(xiàng)域534。
[0061]填充域536:這用于將報(bào)頭與32位邊界相對齊。如果將選項(xiàng)添加至IP報(bào)頭,那么該域則可能是必要的。
[0062]圖6A示出根據(jù)一些實(shí)施方案的數(shù)據(jù)包600的另一實(shí)例。在所示的實(shí)施方案中,數(shù)據(jù)包600為UDP數(shù)據(jù)包,其為最小面向報(bào)文的傳輸層協(xié)議。如圖所示,LIDP報(bào)頭包括4個(gè)域,所有的均為2字節(jié)(16位)。源端口號域602標(biāo)識發(fā)送方的端口。如果不使用該域,那么其值則為O。如果源主機(jī)為客戶端,那么端口號則可能是臨時(shí)端口號。目的地端口號域604標(biāo)識接收方的端口。如果客戶端是目的地主機(jī),那么端口號將可能是臨時(shí)端口號。如果目的地主機(jī)是服務(wù)器,那么端口號將可能是知名端口號。長度域606以字節(jié)為單位規(guī)定了整個(gè)數(shù)據(jù)報(bào),即報(bào)頭和數(shù)據(jù)的長度。由于其是報(bào)頭的長度,其最小長度為8字節(jié)。域大小設(shè)置用于Μ)Ρ數(shù)據(jù)報(bào)的為65,535字節(jié)(8字節(jié)報(bào)頭加65,527字節(jié)數(shù)據(jù))的理論極限。校驗(yàn)和域608用于報(bào)頭和數(shù)據(jù)的錯(cuò)誤檢查。如果在IPv4中省略校驗(yàn)和,那么該域則使用為全零的值。
[0063]圖6B示出根據(jù)一些實(shí)施方案的可通過網(wǎng)絡(luò)交換裝置300接收的數(shù)據(jù)包650的另一實(shí)例。在所示實(shí)例中,數(shù)據(jù)包650為傳輸控制協(xié)議(TCP)數(shù)據(jù)包。TCP報(bào)頭包括源端口域652、目的地端口域654、序列號域656、確認(rèn)號域658、數(shù)據(jù)偏移域660、保留域662、標(biāo)志域664、窗口域666、校驗(yàn)和域668、緊急指針域670和選項(xiàng)域672。源端口域652標(biāo)識發(fā)送端口。目的地端口域654標(biāo)識接收端口。如果設(shè)置了 SYN標(biāo)志,序列號域656則標(biāo)識初始序列號,且如果SYN標(biāo)志清零,序列號域656則標(biāo)識用于當(dāng)前會話的數(shù)據(jù)包的第一數(shù)據(jù)字節(jié)的累積序列號。確認(rèn)號域658用于確認(rèn)收到前面的字節(jié)(如有的話)。數(shù)據(jù)偏移域660規(guī)定了在32位字中TCP報(bào)頭的大小。保留域662用于任何指定的用途且可被設(shè)置為零。標(biāo)志域664允許設(shè)置各種標(biāo)志(CWR、ECE、URG、ACK、PSH、RST、SYN和FIN標(biāo)志)。窗口域666標(biāo)識接收窗口的大小,其為超過在確認(rèn)域中接收方當(dāng)前愿意接收的序列號的字節(jié)數(shù)量。校驗(yàn)和域668為用于報(bào)頭和數(shù)據(jù)的錯(cuò)誤檢查的16位校驗(yàn)和域。緊急指針域670為16位域。如果設(shè)置了 URG標(biāo)志,那么該域則是從表示上一個(gè)緊急數(shù)據(jù)字節(jié)的序列號的偏移。選項(xiàng)域672允許設(shè)置各種選項(xiàng)。
[0064]應(yīng)注意的是可通過裝置300接收的數(shù)據(jù)包的類型不限于前面描述的實(shí)例,且裝置300可接收具有不同報(bào)頭配置的其他類型的數(shù)據(jù)包。
[0065]返回至圖4的方法400,接著,網(wǎng)絡(luò)交換裝置300根據(jù)預(yù)先確定的域檢查層次確定所接收的數(shù)據(jù)包是否為使用數(shù)據(jù)包報(bào)頭中多個(gè)域中的一個(gè)或多個(gè)的重復(fù)數(shù)據(jù)包(步驟404)。在所示的實(shí)施方案中,預(yù)先確定的域檢查層次規(guī)定在統(tǒng)計(jì)學(xué)上具有相對較低變化率的其他域之前對報(bào)頭中多個(gè)域中在統(tǒng)計(jì)學(xué)上具有相對較高變化率的某些域進(jìn)行檢查。
[0066]在一些實(shí)施方案中,裝置300被配置成針對在其他域之前較早接收的數(shù)據(jù)包的另一報(bào)頭中的另一 IPID域先檢查報(bào)頭中的IPID域(例如:域518)。該功能是有利的,這是因?yàn)榕c其他域相比,從數(shù)據(jù)包至數(shù)據(jù)包IPID域的值在統(tǒng)計(jì)學(xué)上具有最高的變化率(即,其變化地最頻繁)。因此,如果兩個(gè)數(shù)據(jù)包具有相同的IPID域值,那么兩個(gè)數(shù)據(jù)包之一則有很大的機(jī)會是重復(fù)數(shù)據(jù)包。在一些實(shí)施方案中,裝置300被配置成通過確定用于所接收的數(shù)據(jù)包報(bào)頭中標(biāo)識域的標(biāo)識值并確定數(shù)據(jù)包的標(biāo)識值是否與較早接收的另一數(shù)據(jù)包報(bào)頭中的標(biāo)識值相匹配而檢查IPID域。
[0067]在一些實(shí)施方案中,裝置300還被配置成針對較早接收的數(shù)據(jù)包的另一報(bào)頭中的前64位檢查報(bào)頭中的前64位,以確定數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。對于TCP報(bào)頭而言,前64位包括源端口、目的地端口和序列號。對于UDP報(bào)頭而言,前64位包括源端口、目的地端口、長度和校驗(yàn)和。在其他實(shí)施方案中,代替報(bào)頭中的前64位,裝置300還被配置成檢查報(bào)頭中其他規(guī)定數(shù)量(N)的位(例如,其可多于64位或少于64位)以確定數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。規(guī)定數(shù)量N可以是大于O的任何值。
[0068]另外,在一些實(shí)施方案中,裝置300被配置成針對較早接收的數(shù)據(jù)包報(bào)頭中相應(yīng)目的地/源IP地址檢查報(bào)頭中目的地IP地址和/或源IP地址,以確定數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。
[0069]在另外的實(shí)施方案中,裝置300被配置成針對較早接收的數(shù)據(jù)包的另一報(bào)頭中的分段偏移檢查報(bào)頭中的分段偏移。在IPID的值滾動(IPID的值循環(huán)利用)的情況下,這有益于加強(qiáng)重復(fù)檢測的可靠性。
[0070]在一個(gè)實(shí)施方式中,裝置300被配置成根據(jù)預(yù)定確定的域檢查層次針對在較早接收的數(shù)據(jù)包的另一報(bào)頭中的相應(yīng)域檢查報(bào)頭中的不同域,其規(guī)定了下面檢查報(bào)頭中域的順序:IPID、報(bào)頭中前64位(或其他數(shù)量的位)、源IP地址、目的地IP地址和分段偏移。在另一實(shí)施方式中,預(yù)先確定的域檢查層次可規(guī)定下面檢查報(bào)頭中域的順序:IPID、源IP地址和分段偏移。在其他實(shí)施方案中,裝置300可被配置成從報(bào)頭檢查額外的域。此外,在其他實(shí)施方案中,只要在域中具有較低變化率的另一個(gè)之前檢查域中具有較高變化率的一個(gè),那么檢查上述項(xiàng)目的順序就可能有所不同。例如,在其他實(shí)施方案中,檢查的順序可如下所述:報(bào)頭中前64位(或其他數(shù)量的位)、IPID、源IP地址、目的地IP地址和分段偏移。此外,在另外的實(shí)施方案中,可同時(shí)檢查上述項(xiàng)目的任何組合。另外,在本文所述實(shí)施方案的任一個(gè)中,可能不需要檢查分段偏移以標(biāo)識重復(fù)數(shù)據(jù)包,且因此可能無需進(jìn)行檢查分段偏移的行為。
[0071]在本文所述實(shí)施方案的任一個(gè)中,網(wǎng)絡(luò)交換裝置300被配置成針對在規(guī)定時(shí)間窗口(段)內(nèi)接收的較早數(shù)據(jù)包檢查數(shù)據(jù)包。在這種情況下,當(dāng)數(shù)據(jù)包報(bào)頭中的某些域與另一數(shù)據(jù)包(較早接收的數(shù)據(jù)包)報(bào)頭中的相應(yīng)域相匹配且在規(guī)定時(shí)間段內(nèi)接收到數(shù)據(jù)包和較早數(shù)據(jù)包時(shí),裝置300確定數(shù)據(jù)包為重復(fù)數(shù)據(jù)包。確定是否在規(guī)定時(shí)間段內(nèi)接收到兩個(gè)數(shù)據(jù)包以標(biāo)識重復(fù)數(shù)據(jù)包的方式是有利的,這是因?yàn)椋袝r(shí)節(jié)點(diǎn)可能會在兩個(gè)各自不同的時(shí)間有意地傳輸兩個(gè)完全相同的數(shù)據(jù)包。從節(jié)點(diǎn)有意地傳輸兩個(gè)完全相同的數(shù)據(jù)包不同于在網(wǎng)絡(luò)傳輸或監(jiān)控過程中無意地復(fù)制數(shù)據(jù)包的情況。特別地,由于在網(wǎng)絡(luò)傳輸過程中無意生成的重復(fù)數(shù)據(jù)包發(fā)生在與原始數(shù)據(jù)包時(shí)間非常接近的時(shí)間(與此相反,節(jié)點(diǎn)有意傳輸?shù)膬蓚€(gè)完全相同的數(shù)據(jù)包發(fā)生在相對分開較遠(yuǎn)的各時(shí)間上),在接收兩個(gè)數(shù)據(jù)包之間所流逝的時(shí)間量可用于區(qū)分兩種不同的情形。特別地,裝置300是在假定在規(guī)定時(shí)間段內(nèi)接收到兩個(gè)數(shù)據(jù)包(其具有在某些報(bào)頭域中相同的值)的條件下進(jìn)行操作的,那么數(shù)據(jù)包之一則為在網(wǎng)絡(luò)傳輸過程中生成的重復(fù)數(shù)據(jù)包(且其不是由兩次發(fā)送同一數(shù)據(jù)包的節(jié)點(diǎn)而嚴(yán)生的)。規(guī)定時(shí)間段可以是裝置300的用戶所設(shè)置的任何值。例如,在一些實(shí)施方案中,規(guī)定時(shí)間段可以是100毫秒或更少,更優(yōu)選為80毫秒或更少。在其他實(shí)施方案中,規(guī)定時(shí)間段可具有其他值。
[0072]在一些實(shí)施方案中,可使用散列技術(shù)進(jìn)行報(bào)頭中域的檢查。在這種情況下,數(shù)據(jù)包之間的比較是基于對數(shù)據(jù)包的某些規(guī)定部分應(yīng)用函數(shù)(例如:散列函數(shù))所生成的函數(shù)值(例如:散列)。如果比較的結(jié)果為匹配,數(shù)據(jù)包交換裝置300聲明該數(shù)據(jù)包為重復(fù)數(shù)據(jù)包并丟棄重復(fù)數(shù)據(jù)包。在一個(gè)實(shí)施方式中,裝置300基于用戶想開始進(jìn)行比較的某些偏移(例如:從數(shù)據(jù)包開始進(jìn)行計(jì)數(shù)的字節(jié)數(shù)量)計(jì)算每個(gè)數(shù)據(jù)包的散列值。通過數(shù)據(jù)包交換裝置300轉(zhuǎn)發(fā)具有新散列值的第一數(shù)據(jù)包以向下游進(jìn)行傳輸。任何具有相同散列值的在時(shí)間窗口(即從接收到具有新散列值的第一數(shù)據(jù)包開始的規(guī)定時(shí)間段)內(nèi)的后續(xù)數(shù)據(jù)包均要被丟棄。
[0073]在一些實(shí)施方案中,對要進(jìn)行檢查的報(bào)頭中域中的每一個(gè)單獨(dú)進(jìn)行散列。例如,可分別為IPID值、報(bào)頭中前64位、源IP地址、目的地IP地址和分段偏移確定不同的散列值。在這種情況下,當(dāng)檢查數(shù)據(jù)包以確定其是否為重復(fù)數(shù)據(jù)包時(shí),網(wǎng)絡(luò)交換裝置300被配置成將域的散列值與較早接收的數(shù)據(jù)包的域的相應(yīng)散列值進(jìn)行比較。例如,如果規(guī)定的檢查順序包括先檢查IPID,那么裝置300將使用之前接收的數(shù)據(jù)包的相應(yīng)IPID散列值檢查IPID散列值。
[0074]在其他實(shí)施方案中,如果要檢查多個(gè)域,那么則可使用報(bào)頭中的多個(gè)域以計(jì)算散列值。例如,假定要先檢查IPID值、報(bào)頭中的前64位以及目的地/源IP地址,那么網(wǎng)絡(luò)交換裝置300將使用IPID值、報(bào)頭中的前64位(或其子集)以及目的地/源IP地址(或目的地/源IP地址中的子集位)計(jì)算散列值。接著,裝置300將該散列值與使用之前接收的數(shù)據(jù)包中相同域所確定的相應(yīng)散列值進(jìn)行比較。在其他實(shí)施方案中,要先檢查的域可以是IPID值、源IP地址和分段偏移。
[0075]在另外的實(shí)施方案中,可先對報(bào)頭中多個(gè)域進(jìn)行散列,且使用散列值以獲得可能匹配的清單。然后,根據(jù)該可能匹配的清單,可使用之前所討論的預(yù)定確定的域檢查層次進(jìn)行線性查找以確定數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。該技術(shù)允許較快地進(jìn)行查找,這是因?yàn)樯⒘兄悼s小了可能匹配的數(shù)量。在該技術(shù)中,對于散列公式而言,輸入可包括源自一個(gè)或多個(gè)域的字節(jié)的子集。無需在每個(gè)域中包括所有的字節(jié),這是因?yàn)闊o論如何稍晚都將進(jìn)行精確的匹配。例如,在一些實(shí)施方案中,可使用最頻繁變化的域,例如使用IPID值、分段偏移、源IP地址的較低2個(gè)字節(jié)以及目的地IP地址的較低2個(gè)字節(jié)生成散列值。然后,使用數(shù)據(jù)包的散列值比較在查找表中之前存儲的散列值(以類似的方式計(jì)算得到的)。由于不是所有的在所有規(guī)定域中的字節(jié)都用于計(jì)算散列值,所以可能具有可能匹配的清單。在這種情況下,裝置300隨后使用預(yù)先確定的域檢查層次針對在可能匹配清單中數(shù)據(jù)包報(bào)頭中的相應(yīng)域檢查在報(bào)頭中的不同域。如果發(fā)現(xiàn)匹配,那么則確定數(shù)據(jù)包為重復(fù)數(shù)據(jù)包。在一些實(shí)施方案中,對于TCP數(shù)據(jù)包而言,裝置300被配置成包括用于生成散列值的源端口和校驗(yàn)和。這有益于減少散列碰撞(具有相同散列值的數(shù)據(jù)包)的數(shù)量。
[0076]在一些實(shí)施方案中,裝置300處(或以通信方式被耦合至裝置300)的存儲器可存儲表格,其包含用于比較的之前接收的數(shù)據(jù)包的部分的拷貝。在其他實(shí)施方案中,該表格可存儲通過對要進(jìn)行比較的之前接收的數(shù)據(jù)包的那些部分應(yīng)用函數(shù)(例如:散列函數(shù))而生成的值。在一些情況下,生成新散列值的第一數(shù)據(jù)包被自動地從裝置300轉(zhuǎn)發(fā)出去。在時(shí)間窗口內(nèi),丟棄具有相同散列值的任何后續(xù)數(shù)據(jù)包。一旦時(shí)間窗口到期,則消除該序列數(shù)據(jù)包的散列值,且再次開始進(jìn)行該過程。該技術(shù)有益于防止表格變得太大以及丟棄重復(fù)數(shù)據(jù)包標(biāo)識過程不再需要的信息。在一些實(shí)施方案中,為了記錄裝置300是何時(shí)接收數(shù)據(jù)包的,使用表格,該表格具有用于每個(gè)數(shù)據(jù)包的一行和兩列,一列用于時(shí)間戳且第二列具有數(shù)據(jù)包的散列簽名。
[0077]返回至圖4所示方法400,當(dāng)裝置300 (例如:組件380)標(biāo)識重復(fù)數(shù)據(jù)包時(shí),那么裝置300則丟棄重復(fù)數(shù)據(jù)包(步驟408)。否則,裝置300允許非重復(fù)數(shù)據(jù)包繼續(xù)作為數(shù)據(jù)包流的一部分。在這種情況下,裝置300接著將數(shù)據(jù)包(或由裝置300生成的其拷貝)發(fā)送至被耦合至儀器端口的分析工具(步驟410)。在其他實(shí)施方案中,除了或代替通過儀器端口將數(shù)據(jù)包發(fā)送至分析工具,裝置300可被配置成路由數(shù)據(jù)包、過濾數(shù)據(jù)包、對數(shù)據(jù)包進(jìn)行分片、修改數(shù)據(jù)包、復(fù)制數(shù)據(jù)包和/或?qū)?shù)據(jù)包進(jìn)行流控制。
[0078]在一些實(shí)施方案中,當(dāng)進(jìn)行數(shù)據(jù)包冗余清除時(shí),裝置300被配置成在假定所有的分接流量均為相同的L3網(wǎng)絡(luò)的條件下進(jìn)行操作。這表示IP地址空間是相同的,且IP地址被綁定至單個(gè)節(jié)點(diǎn)。該假定允許裝置300忽略用于所有IP數(shù)據(jù)包的L2報(bào)頭(VLAN)以及L2.5報(bào)頭(MPLS)操作。因此,在一些實(shí)施方案中,即使在對數(shù)據(jù)包進(jìn)行VLAN/MPLS標(biāo)記操作時(shí),裝置300仍可檢測重復(fù)數(shù)據(jù)包。在其他實(shí)施方案中,裝置300無需基于上述假定進(jìn)行操作。
[0079]此外,在一些實(shí)施方案中,裝置300被配置成檢查源自L3(層3,網(wǎng)絡(luò)層)報(bào)頭和L4(層4,傳輸層)報(bào)頭,但非L2(層2,數(shù)據(jù)鏈路層)報(bào)頭的域。這是有利的,這是因?yàn)長2報(bào)頭可被改變?yōu)橥ㄟ^網(wǎng)絡(luò)(例如:通過各種網(wǎng)絡(luò)裝置)傳播的數(shù)據(jù)包。另一方面,裝置300所使用的用于檢查數(shù)據(jù)包重復(fù)L3和L4報(bào)頭中的域未發(fā)生改變,從而允許裝置300可靠地確定數(shù)據(jù)包重復(fù)。在一些實(shí)施方案中,在冗余清除過程中由裝置300所處理的數(shù)據(jù)包包括L3IPv4報(bào)頭或L3IPv6報(bào)頭。[0080]在本文所述實(shí)施方案中的任一個(gè)中,可根據(jù)裝置300處的工作負(fù)荷量調(diào)節(jié)標(biāo)識重復(fù)數(shù)據(jù)包的過程。特別地,在一些實(shí)施方案中,裝置300可被配置成監(jiān)控裝置300處的工作負(fù)荷。在這種情況下,當(dāng)裝置300確定要完成的工作負(fù)荷量超過規(guī)定閾值時(shí),裝置300則停止重復(fù)數(shù)據(jù)包的標(biāo)識過程,從而可使用裝置資源進(jìn)行優(yōu)先級較高的其他任務(wù)。圖7示出根據(jù)一些實(shí)施方案的可通過裝置300 (例如:通過集成電路380、數(shù)據(jù)包交換機(jī)340或另外組件,如另一處理器等)進(jìn)行的方法700。首先,裝置300確定用于裝置300的工作負(fù)荷量(步驟702)。這可通過裝置300訪問與裝置300相關(guān)聯(lián)的隊(duì)列以確定工作負(fù)荷量而予以完成??商娲?,這可通過裝置300確定資源利用的數(shù)量(其與工作負(fù)荷相關(guān)聯(lián))而予以完成。因此,如在本說明書中所使用的,術(shù)語“工作負(fù)荷”不限于工作量,且可指資源利用或其他與工作負(fù)荷相關(guān)聯(lián)的變量。接下來,裝置300將工作負(fù)荷與規(guī)定閾值進(jìn)行比較(步驟704)。在一些實(shí)施方案中,規(guī)定閾值可以是用戶設(shè)置的任意值。當(dāng)確定的工作負(fù)荷超過規(guī)定閾值時(shí),那么裝置300則停止進(jìn)行重復(fù)數(shù)據(jù)包的標(biāo)識過程(步驟706)。在另一方面,當(dāng)確定的工作負(fù)荷位于規(guī)定閾值以下時(shí),裝置300繼續(xù)進(jìn)行重復(fù)數(shù)據(jù)包的標(biāo)識過程(步驟708)。該功能允許裝置300集中處理優(yōu)先級可能高于重復(fù)數(shù)據(jù)包標(biāo)識的任務(wù)。例如,優(yōu)先級較高的任務(wù)可將數(shù)據(jù)包傳遞至儀器端口或網(wǎng)絡(luò)端口。在這種情況下,無論冗余清除的任務(wù)是否是由裝置300所執(zhí)行的,都可進(jìn)行將數(shù)據(jù)包傳遞至儀器端口的行為和/或?qū)?shù)據(jù)包傳遞至網(wǎng)絡(luò)端口的行為。因此,第二任務(wù)的停止不會影響在裝置300處將數(shù)據(jù)包傳遞至儀器端口和/或網(wǎng)絡(luò)端口的功能。
[0081]在本文所述實(shí)施方案中的任一個(gè)中,停止任務(wù)的特征可利用兩個(gè)閾值,其中第一閾值用于停止冗余清除的過程,且第二閾值用于重新開始冗余清除的過程。在一個(gè)實(shí)施方式中,第一閾值可用于停止冗余清除的任務(wù),其中當(dāng)工作負(fù)荷超過該第一閾值時(shí),裝置300將停止冗余清除的過程。第二閾值具有小于第一閾值的值且用于重新開始冗余清除的過程。在這種情況下,其中當(dāng)工作負(fù)荷下降至第二閾值以下時(shí),裝置將開始冗余清除的過程。該功能是有利的,這是因?yàn)樗鼘⒎乐够蛑辽贉p少反彈效果,否則,如果僅使用一個(gè)閾值,可能會出現(xiàn)該反彈效果。
[0082]在本文所述實(shí)施方案中的任一個(gè)中,可根據(jù)裝置300處的資源數(shù)量(例如:存儲器)調(diào)節(jié)標(biāo)識重復(fù)數(shù)據(jù)包的過程。特別地,在一些實(shí)施方案中,裝置300可被配置成在裝置300處監(jiān)控資源。在這種情況下,當(dāng)裝置300確定剩余資源的數(shù)量下降至規(guī)定閾值以下時(shí),那么裝置300則停止重復(fù)數(shù)據(jù)包的標(biāo)識過程,從而可使用裝置資源進(jìn)行具有較高優(yōu)先級的其他任務(wù)。在一個(gè)實(shí)施方式中,裝置300 (例如:集成電路380、數(shù)據(jù)包交換機(jī)340或另一組件,如另一處理器等)可被配置成根據(jù)一些實(shí)施方案進(jìn)行下述方法。首先,裝置300確定用于裝置300的資源數(shù)量。這可通過裝置300訪問與裝置300相關(guān)聯(lián)的一個(gè)或多個(gè)組件(例如:存儲器)以確定可用資源的數(shù)量而予以完成。接下來,裝置300將資源與規(guī)定閾值進(jìn)行比較。在一些實(shí)施方案中,規(guī)定閾值可以是用戶設(shè)置的任意值。當(dāng)確定的資源位于規(guī)定閾值以下時(shí),那么裝置300則停止進(jìn)行重復(fù)數(shù)據(jù)包的標(biāo)識過程。該功能允許裝置300集中處理優(yōu)先級可能高于重復(fù)數(shù)據(jù)包標(biāo)識的任務(wù)。例如,優(yōu)先級較高的任務(wù)可將數(shù)據(jù)包傳遞至儀器端口或網(wǎng)絡(luò)端口。在這種情況下,無論冗余清除的任務(wù)是否是由裝置300所執(zhí)行的,都可進(jìn)行將數(shù)據(jù)包傳遞至儀器端口的行為和/或?qū)?shù)據(jù)包傳遞至網(wǎng)絡(luò)端口的行為。因此,第二任務(wù)的停止不會影響在裝置300處將數(shù)據(jù)包傳遞至儀器端口和/或網(wǎng)絡(luò)端口的功能。[0083]在本文所述實(shí)施方案中的任一個(gè)中,停止任務(wù)的特征可利用兩個(gè)閾值,其中第一閾值用于停止冗余清除的過程,且第二閾值用于重新開始冗余清除的過程。在一個(gè)實(shí)施方式中,第一閾值可用于停止冗余清除的任務(wù),其中當(dāng)剩余的資源下降至該第一閾值以下時(shí),裝置300將停止冗余清除的過程。第二閾值具有大于第一閾值的值且用于重新開始冗余清除的過程。在這種情況下,其中當(dāng)剩余資源高于第二閾值時(shí),裝置將開始冗余清除的過程。該功能是有利的,這是因?yàn)樗鼘⒎乐够蛑辽贉p少反彈效果,否則,如果僅使用一個(gè)閾值,可能會出現(xiàn)該反彈效果。
[0084]在另外的實(shí)施方案中,裝置300可被配置成檢查工作負(fù)荷和剩余資源以確定是否要進(jìn)行數(shù)據(jù)包冗余清除的過程。在一些實(shí)施方案中,當(dāng)工作負(fù)荷超過規(guī)定工作負(fù)荷閾值且當(dāng)剩余資源位于規(guī)定資源閾值以下時(shí),那么裝置300則停止數(shù)據(jù)包冗余清除的過程。另外,在一些實(shí)施方案中,當(dāng)工作負(fù)荷位于規(guī)定工作負(fù)荷閾值以下且當(dāng)剩余資源位于規(guī)定資源閾值以上時(shí),那么裝置300則重新開始數(shù)據(jù)包冗余清除的過程。在其他實(shí)施方案中,在為工作負(fù)荷和資源中的每一個(gè)使用兩個(gè)閾值的情況下,當(dāng)工作負(fù)荷位于低于第一規(guī)定工作負(fù)荷閾值(用于停止冗余清除過程)的第二規(guī)定工作負(fù)荷閾值以下時(shí)且當(dāng)資源位于高于第一規(guī)定資源閾值(用于停止冗余清除過程)的第二規(guī)定資源閾值以上時(shí),裝置重新開始數(shù)據(jù)包冗余清除的過程。
[0085]應(yīng)注意的是當(dāng)工作負(fù)荷(或資源利用)變高和/或當(dāng)裝置的剩余資源變低時(shí)停止任務(wù)的功能不限于確定數(shù)據(jù)包重復(fù)的任務(wù)。在其他實(shí)施方案中,可使用該功能停止優(yōu)先級相對低于其他的其他任務(wù)。例如,在一些實(shí)施方案中,將數(shù)據(jù)包從一個(gè)網(wǎng)絡(luò)端口傳遞至另一網(wǎng)絡(luò)端口的任務(wù)可被列為優(yōu)先級高于其他任務(wù)(例如:進(jìn)行將數(shù)據(jù)包傳遞至網(wǎng)絡(luò)端口的行為所不必要的任務(wù)),在這種情況下,可在使用裝置300的過程中停止該等任務(wù)中的任一個(gè)。在其他實(shí)施方案中,將數(shù)據(jù)包從一個(gè)網(wǎng)絡(luò)端口傳遞至儀器端口的任務(wù)可被列為優(yōu)先級高于其他任務(wù)(例如:進(jìn)行將數(shù)據(jù)包傳遞至儀器端口的任務(wù)所不必要的任務(wù)),在這種情況下,可在使用裝置300的過程中停止該等任務(wù)中的任一個(gè)。藉由非限制性實(shí)例,可停止的任務(wù)包括數(shù)據(jù)包過濾、數(shù)據(jù)包分片、數(shù)據(jù)包修改(例如:移除、添加或改變數(shù)據(jù)包的一個(gè)或多個(gè)部分)以及數(shù)據(jù)包的流控制中的一個(gè)或多個(gè)。
[0086]圖8示出根據(jù)一些實(shí)施方案的圖3所示網(wǎng)絡(luò)交換裝置300的實(shí)施方式的實(shí)例。在所示實(shí)施方案中,網(wǎng)絡(luò)交換裝置300包括主板802,其為用于網(wǎng)絡(luò)交換裝置300的中央或主電路板。主板802包括系統(tǒng)的CPU(中央處理器)804、網(wǎng)絡(luò)交換芯片806和連接器808。CPU804被配置成在其他功能之間解釋編程指令和過程數(shù)據(jù)。網(wǎng)絡(luò)交換芯片806,也被稱為“以太網(wǎng)交換芯片”或“芯片上交換機(jī)”,在集成電路芯片或微芯片設(shè)計(jì)中提供數(shù)據(jù)包交換和過濾能力。連接器808為主板802提供了可拆卸式接受外圍裝置或額外的板或卡的能力。在一些實(shí)施方案中,連接器808允許裝置,如子板或擴(kuò)展板直接連接至主板的802的電路。主板802還可包括許多其它組件,如但不限于易失性計(jì)算機(jī)可讀存儲介質(zhì)和/或非易失性計(jì)算機(jī)可讀存儲介質(zhì)(兩者都可被視為非臨時(shí)性介質(zhì))、顯示處理器和/或額外的外圍連接器。網(wǎng)絡(luò)交換裝置300還可被配置有一個(gè)或多個(gè)硬件端口或連接器以將服務(wù)器、終端、IP電話、網(wǎng)絡(luò)儀器或其他裝置連接至網(wǎng)絡(luò)交換裝置300。
[0087]網(wǎng)絡(luò)交換芯片806設(shè)置有多個(gè)端口且還可設(shè)置有一個(gè)或多個(gè)過濾器。每個(gè)端口可以是半雙工或全雙工??蓪⒍丝谥械拿恳粋€(gè)單獨(dú)或組合配置成網(wǎng)絡(luò)端口、儀器端口、傳輸端口或環(huán)回端口。網(wǎng)絡(luò)端口被配置成用于至和/源自網(wǎng)絡(luò)的連接。儀器端口被配置成用于至和/或源自網(wǎng)絡(luò)儀器,如數(shù)據(jù)包嗅探器、入侵檢測系統(tǒng)等的連接。傳輸端口被配置成用于至和/或源自另一網(wǎng)絡(luò)交換芯片、另一交換裝置(設(shè)備)或處理器單元的連接。
[0088]在一些實(shí)施方案中,網(wǎng)絡(luò)交換裝置300可包括用于配置單或雙端口的環(huán)回端口的存儲在計(jì)算機(jī)可讀介質(zhì)上的指令??稍贑PU804上執(zhí)行指令。每個(gè)環(huán)回端口減少了可通過至少一個(gè)被配置成網(wǎng)絡(luò)、儀器或傳輸端口的端口數(shù)量。
[0089]另外,在一些實(shí)施方案中,網(wǎng)絡(luò)交換芯片806端口中的每一個(gè)可與基于標(biāo)準(zhǔn)而丟棄或轉(zhuǎn)發(fā)數(shù)據(jù)包的一個(gè)或多個(gè)數(shù)據(jù)包過濾器相關(guān)聯(lián)。
[0090]在圖8所示的實(shí)施方案中,網(wǎng)絡(luò)交換裝置300可包括子板810,其被配置成經(jīng)連接器808而被可拆卸地連接至主板802。如圖所示,子板810可被并行連接至主板802或與主板802相同的平面上。在并行配置中,子板810還可被稱為夾層板。可替代地,子板810的方向可垂直于主板802的平面或可在不同的方向連接主板802。除了數(shù)據(jù)包分發(fā)能力外,子板810提供了其他數(shù)據(jù)包處理能力。子板810具有處理器單元814和存儲器816。和主板802 —樣,子板810還包括許多其他組件(如參照主板802所討論的那些)。處理器單元814可以是能夠路由和處理數(shù)據(jù)包,如進(jìn)行本文所述的重復(fù)數(shù)據(jù)包標(biāo)識和數(shù)據(jù)包冗余清除的任何集成電路。在一些實(shí)施方案中,子板810可用于實(shí)施集成電路380以進(jìn)行數(shù)據(jù)包冗余清除。在其他實(shí)施方案中,主板802可用于實(shí)施集成電路380以進(jìn)行數(shù)據(jù)包冗余清除。在另外的實(shí)施方案中,主板802和子板810均可用于實(shí)施集成電路380以進(jìn)行數(shù)據(jù)包冗余清除。
[0091]在其他實(shí)施方案中,處理單元814和存儲器816為刀片服務(wù)器的部件、主板802的部件或網(wǎng)絡(luò)交換芯片中模塊的部件。
[0092]圖9邏輯上示出根據(jù)一些實(shí)施方案的圖8所示網(wǎng)絡(luò)交換裝置300中數(shù)據(jù)包流的實(shí)例。在一些情況下,可將數(shù)據(jù)包從入端口路由至出端口,該入端口和出端口均位于網(wǎng)絡(luò)交換芯片806上。假定端口 902a為網(wǎng)絡(luò)交換芯片806上的網(wǎng)絡(luò)端口,端口 902b為網(wǎng)絡(luò)交換芯片806上的儀器端口,端口 904a和904b為網(wǎng)絡(luò)交換芯片806上的傳輸端口且連接912a和912b為網(wǎng)絡(luò)交換芯片806和處理器單元814之前的連接。進(jìn)一步假定數(shù)據(jù)包交換裝置300被配置成將所有的數(shù)據(jù)包從網(wǎng)絡(luò)端口 902a路由至儀器端口 902b。在網(wǎng)絡(luò)端口 902a接收的入口數(shù)據(jù)包被路由至傳輸端口 904a以通過網(wǎng)絡(luò)交換芯片806出去。經(jīng)連接912a通過處理器單元814接收數(shù)據(jù)包。在其他實(shí)施方案中,入口數(shù)據(jù)包經(jīng)傳輸端口 904b進(jìn)行路由且在連接912b處予以接收。數(shù)據(jù)包通過連接912a和傳輸端口 904a被路由回網(wǎng)絡(luò)交換芯片806以從儀器端口 902b出去??赏ㄟ^子板810處的組件,主板802處的組件或主板802和子板810處的組件實(shí)現(xiàn)本文所述的數(shù)據(jù)包冗余清除的功能。
[0093]應(yīng)注意的是,數(shù)據(jù)包交換裝置300不限于前面所述的配置,且在其他實(shí)施方案中,數(shù)據(jù)包交換裝置300可能具有不同的配置。例如,在其他實(shí)施方案中,裝置300可能不具有任何子板。在這種情況下,可通過處理器或位于主板802上的另一集成電路實(shí)現(xiàn)本文所述的數(shù)據(jù)包冗余清除的功能。
[0094]圖10示出根據(jù)一些實(shí)施方案的在網(wǎng)絡(luò)環(huán)境1000中網(wǎng)絡(luò)交換裝置300的配置。經(jīng)路由器1006a-b和防火墻1068a-b將因特網(wǎng)1004耦合至兩個(gè)交換機(jī)IOlOa和1010b。交換機(jī)IOlOa被耦合至服務(wù)器1012a-b和IP電話1014a_c。交換機(jī)IOlOb被耦合至服務(wù)器1012c-e。嗅探器1016、IDS1018和取證記錄器1020 (統(tǒng)稱為“非直通儀器”)被耦合至裝置300。如圖10所示,與傳統(tǒng)配置(其中在路由器1066a和防火墻1068a之間具有一個(gè)或多個(gè)非直通儀器,在防火墻1068a和交換機(jī)IOlOa之間具有一個(gè)或多個(gè)非直通儀器,且在路由器1066b和防火墻1068b,以及防火墻1068b和交換機(jī)IOlOb之間具有一個(gè)或多個(gè)非直通儀器)相比,這減少了該配置中非直通儀器的數(shù)量,這是因?yàn)橄嗤姆侵蓖▋x器能夠通過裝置300在網(wǎng)絡(luò)環(huán)境1000中的任何地方訪問信息。根據(jù)本文所述的不同實(shí)施方案,用戶在使用系統(tǒng)的任一至任一,任一至多和多至任一的能力通過儀器將任何流量引導(dǎo)至任何儀器或非直通儀器組的方面具有完全的靈活性。例如,IP電話1014a-c的所有會話可被輕易地被配置成被發(fā)送至IDS1018。也可將特定IP電話1014a-c連接中的流量經(jīng)一至多功能同時(shí)發(fā)送至嗅探器1016、入侵檢測系統(tǒng)1018和取證記錄器1020。本文所述的裝置300的數(shù)據(jù)包冗余清除的功能允許裝置300檢測從源中任一個(gè)傳輸至裝置300的重復(fù)數(shù)據(jù)包并允許裝置300丟棄重復(fù)數(shù)據(jù)包,從而不從該裝置300向下游傳輸重復(fù)數(shù)據(jù)包。
[0095]在一些實(shí)施方案中,當(dāng)使用裝置300時(shí),可將一個(gè)或多個(gè)非直通儀器(如IDS、嗅探器、取證記錄器等)連接至儀器端口,且可將一個(gè)或多個(gè)直通儀器140a和140b (例如:IPS)連接至其他儀器端口(例如:內(nèi)聯(lián)端口)。這種配置允許非直通儀器和直通儀器同時(shí)監(jiān)控網(wǎng)絡(luò)流量。每個(gè)非直通儀器都處于接聽模式(即,其接收要在兩個(gè)節(jié)點(diǎn)間進(jìn)行通信的數(shù)據(jù)包),且每個(gè)直通儀器都處于直通模式(即,其接收要在兩個(gè)節(jié)點(diǎn)間進(jìn)行通信的數(shù)據(jù)包、對其進(jìn)行處理并隨后將數(shù)據(jù)包向下游傳遞至意向接收節(jié)點(diǎn))。在一些情況下,通過具有被連接至裝置300的IDS和IPS,裝置300可比較IDS或IPS是否看到更多威脅,和/或可具有冗余保護(hù),以便在如果IPS錯(cuò)過任何威脅的情況下,IDS可將其撿起。
[0096]應(yīng)注意的是,當(dāng)在本申請中描述“數(shù)據(jù)包”時(shí),應(yīng)理解的是其可指從節(jié)點(diǎn)或其拷貝傳輸出的原始數(shù)據(jù)包。
[0097]應(yīng)注意的是,術(shù)語“第一”(如在“第一數(shù)據(jù)包”中一樣)以及術(shù)語“第二”(如在“第二數(shù)據(jù)包”中一樣)用于指不同的事物,且不一定是指事物的順序。因此,術(shù)語“第一數(shù)據(jù)包”不一定是指“第一”接收的數(shù)據(jù)包且可指不同于“第二”數(shù)據(jù)包的任意數(shù)據(jù)包。同樣,術(shù)語“第二數(shù)據(jù)包”不一定是指“第二”順序接收的數(shù)據(jù)包且可指不同于“第一”數(shù)據(jù)包的任意數(shù)據(jù)包。
[0098]雖然已經(jīng)示出和描述了特定實(shí)施方案,將理解的是他們并不旨在限制本發(fā)明,且對于本領(lǐng)域的技術(shù)人員而言,將顯而易見的是可在不脫離本發(fā)明的精神和范圍的情況下做出各種變化和修改。相應(yīng)地,說明書和附圖被視為說明性的而非限制性的意義。本發(fā)明旨在涵蓋可包括在權(quán)利要求所限定的本發(fā)明的精神和范圍中的替代方式、修改和等同物。
【權(quán)利要求】
1.一種數(shù)據(jù)包處理方法,包括: 接收包括報(bào)頭的第一數(shù)據(jù)包,所述報(bào)頭具有多個(gè)域;以及 根據(jù)預(yù)先確定的域檢查層次使用所述多個(gè)域中的第一個(gè)確定所述第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包; 其中所述預(yù)先確定的域檢查層次規(guī)定在所述多個(gè)域中的第二個(gè)之前檢查所述多個(gè)域中的所述第一個(gè),所述多個(gè)域中的所述第一個(gè)具有在統(tǒng)計(jì)學(xué)上相對高于所述多個(gè)域中的所述第二個(gè)的變化率;以及 其中當(dāng)所述多個(gè)域中的所述第一個(gè)與在所述第一數(shù)據(jù)包前接收的第二數(shù)據(jù)包中域中相應(yīng)一個(gè)相匹配且當(dāng)從接收到所述第二數(shù)據(jù)包開始的規(guī)定時(shí)間段內(nèi)接收到所述第一數(shù)據(jù)包時(shí),確定所述第一數(shù)據(jù)包為所述重復(fù)數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的方法,其中所述多個(gè)域中的所述一個(gè)包括用于標(biāo)識所述第一數(shù)據(jù)包的標(biāo)識域。
3.根據(jù)權(quán)利要求1所述的方法,還包括使用所述報(bào)頭中規(guī)定數(shù)量的位確定所述第一數(shù)據(jù)包是否為所述重復(fù)數(shù)據(jù)包。
4.根據(jù)權(quán)利要求1所述的方法,還包括: 確定目的地IP地址;以及 使用所述目的地IP地址確定所述第一數(shù)據(jù)包是否為所述重復(fù)數(shù)據(jù)包。
5.根據(jù)權(quán)利要求1所述的方法,還包括: 確定源IP地址;以及 使用所述源IP地址確定所述第一數(shù)據(jù)包是否為所述重復(fù)數(shù)據(jù)包。
6.根據(jù)權(quán)利要求1所述的方法,還包括: 確定與所述第一數(shù)據(jù)包相關(guān)聯(lián)的分段偏移;以及 使用所述分段偏移確定所述第一數(shù)據(jù)包是否為所述重復(fù)數(shù)據(jù)包。
7.根據(jù)權(quán)利要求1所述的方法,還包括確定設(shè)備中的工作負(fù)荷量,其中所述確定所述第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包的行為是當(dāng)所述工作負(fù)荷量低于規(guī)定閾值時(shí)而進(jìn)行的。
8.根據(jù)權(quán)利要求1所述的方法,其中所述規(guī)定時(shí)間段為100毫秒或更少。
9.根據(jù)權(quán)利要求1所述的方法,其中所述第一數(shù)據(jù)包的所述報(bào)頭包括L3IPv4或L3IPv6報(bào)頭。
10.一種數(shù)據(jù)包交換系統(tǒng),包括: 第一端口,其被配置成接收包括報(bào)頭的第一數(shù)據(jù)包,所述報(bào)頭具有多個(gè)域;以及 集成電路,其被配置成: 根據(jù)預(yù)先確定的域檢查層次使用所述多個(gè)域中的第一個(gè)確定所述第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包; 其中所述預(yù)先確定的域檢查層次規(guī)定在所述多個(gè)域中的第二個(gè)之前檢查所述多個(gè)域中的所述第一個(gè),所述多個(gè)域中的所述第一個(gè)具有在統(tǒng)計(jì)學(xué)上相對高于所述多個(gè)域中的所述第二個(gè)的變化率;以及 其中所述集成電路被配置成當(dāng)所述多個(gè)域中的所述第一個(gè)與在所述第一數(shù)據(jù)包前接收的第二數(shù)據(jù)包中域中相應(yīng)一個(gè)相匹配且當(dāng)從接收到所述第二數(shù)據(jù)包開始的規(guī)定時(shí)間段內(nèi)接收到所述第一數(shù)據(jù)包時(shí),確定所述第一數(shù)據(jù)包為所述重復(fù)數(shù)據(jù)包。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述多個(gè)域中的所述一個(gè)包括用于標(biāo)識所述第一數(shù)據(jù)包的標(biāo)識域。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述集成電路還被配置成使用所述報(bào)頭中規(guī)定數(shù)量的位確定所述第一數(shù)據(jù)包是否為所述重復(fù)數(shù)據(jù)包。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述集成電路還被配置成: 確定目的地IP地址;以及 使用所述目的地IP地址確定所述第一數(shù)據(jù)包是否為所述重復(fù)數(shù)據(jù)包。
14.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述集成電路還被配置成: 確定源IP地址;以及 使用所述源IP地址確定所述第一數(shù)據(jù)包是否為所述重復(fù)數(shù)據(jù)包。
15.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述集成電路還被配置成: 確定與所述第一數(shù)據(jù)包相關(guān)聯(lián)的分段偏移;以及 使用所述分段偏移確定所述第一數(shù)據(jù)包是否為所述重復(fù)數(shù)據(jù)包。
16.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述集成電路還被配置成確定設(shè)備中的工作負(fù)荷量,且其中所述集成電路被配置成當(dāng)所述工作負(fù)荷量低于規(guī)定閾值時(shí)確定所述第一數(shù)據(jù)包是否為所述重復(fù)數(shù)據(jù)包。
17.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述規(guī)定時(shí)間段為100毫秒或更少。
18.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述第一數(shù)據(jù)包的所述報(bào)頭包括L3IPv4或L3IPv6 報(bào)頭。
19.一種計(jì)算機(jī)程序產(chǎn)品,其具有存儲一組指令的非臨時(shí)性介質(zhì),其執(zhí)行可進(jìn)行一種數(shù)據(jù)包處理方法,所述方法包括: 接收包括報(bào)頭的第一數(shù)據(jù)包,所述報(bào)頭具有多個(gè)域;以及 根據(jù)預(yù)先確定的域檢查層次使用所述多個(gè)域中的第一個(gè)確定所述第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包; 其中所述預(yù)先確定的域檢查層次規(guī)定在所述多個(gè)域中的第二個(gè)之前檢查所述多個(gè)域中的所述第一個(gè),所述多個(gè)域中的所述第一個(gè)具有在統(tǒng)計(jì)學(xué)上相對高于所述多個(gè)域中的所述第二個(gè)的變化率;以及 其中當(dāng)所述多個(gè)域中的所述第一個(gè)與在所述第一數(shù)據(jù)包前接收的第二數(shù)據(jù)包中域中相應(yīng)一個(gè)相匹配且當(dāng)從接收到所述第二數(shù)據(jù)包開始的規(guī)定時(shí)間段內(nèi)接收到所述第一數(shù)據(jù)包時(shí),確定所述第一數(shù)據(jù)包為所述重復(fù)數(shù)據(jù)包。
20.一種數(shù)據(jù)包處理方法,包括: 接收包括報(bào)頭的第一數(shù)據(jù)包,所述報(bào)頭具有多個(gè)域,所述多個(gè)域中的一個(gè)為標(biāo)識域; 確定用于所述第一數(shù)據(jù)包的所述報(bào)頭中所述標(biāo)識域的標(biāo)識值; 確定所述第一數(shù)據(jù)包的所述標(biāo)識值是否與第二數(shù)據(jù)包報(bào)頭中的標(biāo)識值相匹配;以及使用所述第一數(shù)據(jù)包的所述報(bào)頭中所述域中的另一個(gè)以當(dāng)所述第一數(shù)據(jù)包的所述標(biāo)識值與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配時(shí)確定所述第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。
21.根據(jù)權(quán)利要求20所述的方法,其中所述使用所述域中所述另一個(gè)的行為包括: 在所述確定用于所述第一數(shù)據(jù)包的所述報(bào)頭中所述標(biāo)識域的所述標(biāo)識值的行為后,且在所述確定所述第一數(shù)據(jù)包的所述標(biāo)識值是否與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配的行為后,確定所述第一數(shù)據(jù)包的所述報(bào)頭中的前N個(gè)位是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的前N個(gè)位相匹配,N為大于零的值。
22.根據(jù)權(quán)利要求21所述的方法,還包括: 在所述確定所述第一數(shù)據(jù)包的所述報(bào)頭中的所述前N個(gè)位是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的所述前N個(gè)位相匹配的行為后,確定所述第一數(shù)據(jù)包的所述報(bào)頭中的目的地IP地址是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的目的地IP地址相匹配。
23.根據(jù)權(quán)利要求22所述的方法,還包括檢查所述第一數(shù)據(jù)包的分段偏移是否與所述第二數(shù)據(jù)包的分段偏移相匹配。
24.根據(jù)權(quán)利要求21所述的方法,還包括: 在所述確定所述第一數(shù)據(jù)包的所述報(bào)頭中的所述前N個(gè)位是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的所述前N個(gè)位相匹配的行為后,確定所述第一數(shù)據(jù)包的所述報(bào)頭中的源IP地址是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的源IP地址相匹配。
25.根據(jù)權(quán)利要求24所述的方法,還包括檢查所述第一數(shù)據(jù)包的分段偏移是否與所述第二數(shù)據(jù)包的分段偏移相匹配。
26.根據(jù)權(quán)利要求20所述的方法,其中所述確定所述第一數(shù)據(jù)包的所述標(biāo)識值是否與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配的行為包括使用散列函數(shù)。
27.根據(jù)權(quán)利要求20所述的方法,還包括確定設(shè)備中的工作負(fù)荷量,其中所述確定的行為是當(dāng)所述工作負(fù)荷量 低于規(guī)定閾值時(shí)而進(jìn)行的。
28.根據(jù)權(quán)利要求20所述的方法,還包括在所述確定的行為前檢查所述域中的另一個(gè)或多個(gè)。
29.根據(jù)權(quán)利要求20所述的方法,在滿足下列條件時(shí)確定所述第一數(shù)據(jù)包為所述重復(fù)數(shù)據(jù)包: 當(dāng)所述第一數(shù)據(jù)包的所述標(biāo)識值與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配時(shí), 當(dāng)所述第一數(shù)據(jù)包的所述報(bào)頭中所述多個(gè)域中的所述另一個(gè)與所述第二數(shù)據(jù)包的所述報(bào)頭中域的相應(yīng)一個(gè)相匹配時(shí),以及 當(dāng)從接收到所述第二數(shù)據(jù)包開始的規(guī)定時(shí)間段內(nèi)接收到所述第一數(shù)據(jù)包時(shí)。
30.根據(jù)權(quán)利要求29所述的方法,其中所述規(guī)定時(shí)間段為100毫秒或更少。
31.一種數(shù)據(jù)包交換系統(tǒng),包括: 第一端口,其被配置成接收包括報(bào)頭的第一數(shù)據(jù)包,所述報(bào)頭具有多個(gè)域,所述多個(gè)域中的一個(gè)為標(biāo)識域;以及 集成電路,其被配置成: 確定用于所述第一數(shù)據(jù)包的所述報(bào)頭中所述標(biāo)識域的標(biāo)識值; 確定所述第一數(shù)據(jù)包的所述標(biāo)識值是否與第二數(shù)據(jù)包報(bào)頭中的標(biāo)識值相匹配;以及 使用所述域中的另一個(gè)以當(dāng)所述第一數(shù)據(jù)包的所述標(biāo)識值與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配時(shí)確定所述第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。
32.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述集成電路被配置成通過下列方式使用所述域中的所述另一個(gè): 在所述確定用于所述第一數(shù)據(jù)包的所述報(bào)頭中所述標(biāo)識域的所述標(biāo)識值的行為后,且在所述確定所述第一數(shù)據(jù)包的所述標(biāo)識值是否與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配的行為后,確定所述第一數(shù)據(jù)包的所述報(bào)頭中的前N個(gè)位是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的前N個(gè)位相匹配,N為大于零的值。
33.根據(jù)權(quán)利要求32所述的系統(tǒng),其中所述集成電路還被配置成: 在所述確定所述第一數(shù)據(jù)包的所述報(bào)頭中的所述前N個(gè)位是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的所述前N個(gè)位相匹配的行為后,確定所述第一數(shù)據(jù)包的所述報(bào)頭中的目的地IP地址是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的目的地IP地址相匹配。
34.根據(jù)權(quán)利要求33所述的系統(tǒng),其中所述集成電路還被配置成檢查所述第一數(shù)據(jù)包的分段偏移是否與所述第二數(shù)據(jù)包的分段偏移相匹配。
35.根據(jù)權(quán)利要求32所述的系統(tǒng),其中所述集成電路還被配置成: 在所述確定所述第一數(shù)據(jù)包的所述報(bào)頭中的所述前N個(gè)位是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的所述前N個(gè)位相匹配的行為后,確定所述第一數(shù)據(jù)包的所述報(bào)頭中的源IP地址是否與所述第二數(shù)據(jù)包的所述報(bào)頭中的源IP地址相匹配。
36.根據(jù)權(quán)利要求35所述的系統(tǒng),其中所述集成電路還被配置成檢查所述第一數(shù)據(jù)包的分段偏移是否與所述第二數(shù)據(jù)包的分段偏移相匹配。
37.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述集成電路被配置成通過使用散列函數(shù)確定所述第一數(shù)據(jù)包的所述標(biāo)識值是否與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配。
38.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述集成電路還被配置成確定設(shè)備中的工作負(fù)荷量,其中所述集成電路被配置成當(dāng)所述工作負(fù)荷量低于規(guī)定閾值時(shí)進(jìn)行確定的行為。`
39.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述集成電路還被配置成在進(jìn)行所述確定的行為前檢查所述域中另外的一個(gè)或多個(gè)。
40.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述集成電路被配置成在滿足下列條件時(shí)確定所述第一數(shù)據(jù)包為所述重復(fù)數(shù)據(jù)包: 當(dāng)所述第一數(shù)據(jù)包的所述標(biāo)識值與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配時(shí), 當(dāng)所述第一數(shù)據(jù)包的所述報(bào)頭中所述多個(gè)域中的所述另一個(gè)與所述第二數(shù)據(jù)包的所述報(bào)頭中域的相應(yīng)一個(gè)相匹配時(shí),以及 當(dāng)從接收到所述第二數(shù)據(jù)包開始的規(guī)定時(shí)間段內(nèi)接收到所述第一數(shù)據(jù)包時(shí)。
41.根據(jù)權(quán)利要求40所述的系統(tǒng),其中所述規(guī)定時(shí)間段為100毫秒或更少。
42.一種計(jì)算機(jī)程序產(chǎn)品,其具有存儲一組指令的非臨時(shí)性介質(zhì),其執(zhí)行可進(jìn)行一種數(shù)據(jù)包處理方法,所述方法包括: 接收包括報(bào)頭的第一數(shù)據(jù)包,所述報(bào)頭具有多個(gè)域,所述多個(gè)域中的一個(gè)為標(biāo)識域; 確定用于所述第一數(shù)據(jù)包的所述報(bào)頭中所述標(biāo)識域的標(biāo)識值; 確定所述第一數(shù)據(jù)包的所述標(biāo)識值是否與第二數(shù)據(jù)包報(bào)頭中的標(biāo)識值相匹配;以及 使用所述域中的另一個(gè)以當(dāng)所述第一數(shù)據(jù)包的所述標(biāo)識值與所述第二數(shù)據(jù)包的所述標(biāo)識值相匹配時(shí)確定所述第一數(shù)據(jù)包是否為重復(fù)數(shù)據(jù)包。
【文檔編號】H04L12/26GK103609068SQ201180071527
【公開日】2014年2月26日 申請日期:2011年8月4日 優(yōu)先權(quán)日:2011年4月8日
【發(fā)明者】H·阮, S·達(dá)希亞, M·博瑪納 申請人:吉蓋蒙公司