專利名稱:數據流的檢測處理方法、中央處理器及交換機的制作方法
技術領域:
本發明涉及數據交換技術,尤其涉及一種數據流的檢測處理方法、中央 處理器及交換機。
背景技術:
目前,交換機的硬件結構由專用集成電路(Application Specific IntegratedCircuits, ASIC)和CPU組成,如圖1。 ASIC芯片1用于在不同 端口如端口 Pl、端口 P2、端口 Pn之間高速的轉發數據包,CPU 2承擔更為
復雜的事務,比如對整個交換機的管理和監控;對網絡管理方面任務和請 求進行處理;以及接收從端口上進入各種需要軟件處理的報文等等。
交換機轉發報文時,通過提取數據特征信息對轉發的報文進行記錄。報 文的數據特征信息是指從所有報文中都具有的字段中提取出的信息,具有相 同數據特征信息的報文流屬于相同的報文。例如,對于常見的地址解析協議 (ARP )沖艮文,如果數據特征選擇目的介質訪問控制(Media Access Control, MAC )地址、源MAC地址這兩種,如果對于源MAC地址為A,目的MAC地址為 B和源MAC地址為C,目的MAC地址為D的兩個l艮文,交換機就會根據目的 MAC地址,源MAC地址作為特征信息分別記錄這兩個才艮文。
當交換機軟件處理的報文超過一定流量時,往往造成交換機CPU 2的負 載升高,甚至導致交換機工作的癱瘓。因此,需要在軟件上將接收到的這些 報文進行限速。
現有技術中,交換機對數據流的限速是利用CPU2的定時器功能實現的。 如圖2所示,限速過程包括
步驟2Q1、定時器到期時,CPU 2遍歷所有數據特征信息;步驟202、判斷具有某個數據特征信息的報文是否超過限速水線,若是, 則進^"限速處理;
步驟203、判斷具有該數據特征信息的報文是否需要告警,若是,則進 行告警處理;
步驟204、重新啟動定時器。
但是,由于網絡中存在大量不確定的數據流,這樣交換機就可能收到大 量具有不同數據特征信息的報文,而定時器到期后就會觸發CPU 2在極短的 時間內對這些大量具有不同數據特征信息的報文進行統計。例如,當需要對 網絡中每一個具有相同數據特征信息的送CPU 2處理的報文流量進行限速時, 定時器到期后,CPU 2就需要將所有具有相同數據特征信息的報文的流量進 行統計,不同的數據特征信息越多,CPU 2每次在定時器到期后的信息計算 量就越大;如果要求統計的時間周期越短,則定時器啟動的頻率就越高,同 樣會大大加重交換機CPU 2的處理負擔。
發明內容
本發明的目的在于提出一種數據流的檢測處理方法、中央處理器及交 換機,以提高交換機的檢測處理能力。
為實現上述目的,本發明提供了一種數據流的檢測處理方法,包括
根據接收到的當前報文,獲取與所述當前報文具有相同數據特征信息 的前一個報文的記錄時間;
在所述前一個報文的記錄時間與當前記錄時間的差值小于預定的檢 測周期時,將報文計數加1;
在所述報文計數加1后的值超過預定水線的情況下,執行相應的處理 操作。
為實現上述目的,本發明還提供了一種中央處理器,包括 時間獲取單元,用于根據接收到的當前報文,獲取與所述當前報文具有相同數據特征信息的前 一 個報文的記錄時間;
才艮文計數單元,用于在所述前一個報文的記錄時間與當前記錄時間的
差值小于預定的檢測周期時,將報文計數加1;
檢測處理單元,用于在所述報文計數加1后的值超過預定水線的情況 下,執行相應的處理操作。
為實現上述目的,本發明還提供了一種設置有上述中央處理器的交換 機,通過統計相同報文之間的時間差實時對交換機接收的數據流進行檢測處 理(包括限速和告警等),解決了現有交換機的CPU瞬間進行大量計算導致 交換機性能降低的問題,大大減輕了交換機CPU的限速及告警處理負荷,提 高了交換機的檢測處理效率以及抗攻擊的能力。
下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。
圖1為現有技術中交換機的硬件結構示意圖2為現有技術中數據流的限速處理流程圖3為本發明數據流的檢測處理方法實施例一的流程圖4為本發明數據流的檢測處理方法實施例二的流程圖5為本發明數據流的檢測處理方法實施例三的流程圖6為本發明中央處理器實施例一的結構示意圖7為本發明中央處理器實施例二的結構示意圖。
具體實施例方式
本發明數據流的檢測處理方法實施例包括
根據接收到的當前報文,獲取與所述當前報文具有相同數據特征信息 的前一個凈艮文的記錄時間;
在所述前一個報文的記錄時間與當前記錄時間的差值小于預定的檢測周期時,將才艮文計^:加1;
在所述報文計數加1后的值超過預定水線的情況下,執行相應的處理 操作。
檢測處理包括限速和告警等,下面分別進行詳細說明。
圖3為本發明數據流的檢測處理方法實施例一的流程圖,本實施例中, ;險測處理為限速,具體包括
步驟301、根據接收到的當前報文,獲取與所述當前報文具有相同數 據特征信息的前一個報文的記錄時間;假設將當前報文記為A2,記錄當前 報文A2之前還記錄有與當前報文屬于相同報文A的前一個報文Al,則獲 取前一個報文A1的記錄時間。
步驟302、在所述前一個報文的記錄時間與當前記錄時間的差值小于 預定的限速周期時,將報文計數加1;即通過比較當前報文A2與前一個報 文A1的記錄時間,可獲知報文A或數據流A的流速;假設當前報文A2的 記錄時間為T2,前一個報文Al的記錄時間為Tl,當T2-Tl小于限速周期 時,則統計限速周期內數據流A的流量,即將報文計數加1。
步驟303、在所述報文計數加1后的值超過限速水線的情況下,丟棄 所述當前報文。也就是在一定時間即限速周期內,統計的數據流的流量大 于交換機可承受的流量時,丟棄當前報文,實現對數據流的限速。
本實施例通過統計相同報文之間的時間差實時對交換機接收的數據流進 行限速處理,解決了現有交換機的CPU瞬間進行大量計算導致交換機性能降 低的問題,大大減輕了交換機CPU的處理負荷,提高了交換機的限速效率以 及抗攻擊的能力。
圖4為本發明數據流的檢測處理方法實施例二的流程圖,本實施例中, 檢測處理為限速,交換機CPU第一次接收到某一數據流記為B的第一個報 文Bl后,記錄該數據流B的數據特征信息以及報文Bl的接收時刻,并對 接收到的報文Bl及數據流B的后續報文進行計數,對數據流B的限速過程包括
步驟401、記錄當前接收的報文,假設將當前報文記為B2,且根據記 錄的數據特征信息,可知與第一個報文Bl屬于數據流B中相鄰的兩個報
文;
步驟402、判斷第一個報文Bl的記錄時間即接收時刻Tl,與當前報 文B2的接收時刻T2的差值是否小于預定的限速周期如ls,即是否達到限 速周期ls,若是,執行步驟405;如果達到限速周期,表示數據流B的流 速及流量符合要求,執行步驟403;
步驟403、記錄當前時間,以備下一次判斷限速周期; 步驟404、將記錄的報文計數即報文統計值cur-pkt清零; 步驟405、將記錄的報文計數累加,即統計值cur_pkt + l; 步驟406、判斷統計值cur —pkt + l是否超過限速水線10PPS (即只允 許每秒10個報文),如果超過,則執行步驟408;否則,執行步驟407;
步驟407 、允許當前報文B2通過,完成當前限速周期內對數據流B 的限速處理。
步驟408、丟棄當前報文B2,實現了對數據流B的實時檢測限速處理。
本實施例利用接收到的數據流之間的時間差統計流量, 一 方面由于只 有接收到報文才觸發對記錄的相應數據流的計算,避免了計算不需要統計 的計數,另一方面避免了瞬時處理大量的信息,對于這些信息的處理能夠 實現較平坦的處理。
需要說明的是本實施例中,限速水線和告警水線的周期不限于ls, 可以為其他值,如2s、 3s等。
圖5為本發明數據流的檢測方法實施例三的流程圖,本實施例中,檢 測處理為對不正常的數據流情況進行告警,可包括
步驟501、記錄當前接收的報文,假設將當前報文記為C2,且根據記 錄的數據特征信息,可知與之前的一個報文Cl屬于數據流C中相鄰的兩個報文;
步驟5 02、判斷第一個報文Cl的記錄時間即接收時刻T3,與當前報 文C2的接收時刻T4的差值,即T4-T3是否小于預定的告警水線周期;告 警水線周期指數據流流量達到告警值的檢測周期,如ls,如果告警水線為 IOPPS,表示檢測周期1秒內流量值達到10個屬于數據流C的報文需要告 警,即本步驟判斷檢測周期是否未達到告警水線周期ls,若是,執行步驟 505;如果達到告警水線周期,表示數據流C的流速及流量符合要求,執 行步驟503;
步驟503、記錄當前時間,以備下一次判斷告警水線周期;
步驟504、將記錄的報文計數即報文統計值cur-pkt清零;
步驟505、將記錄的報文計數累加,即統計值cur —pkt + l;
步驟506、判斷統計值cur_pkt + l是否超過告警水線如10PPS,如果
超過,則執行步驟5 07;否則,執行步驟511;
步驟507、記錄當前超限時間,以備下次檢測使用;
步驟5 08 、判斷當前超限時間即當前報文C2的記錄時間T4與上一次
超限的時間間隔是否超過重新告警周期如3s,以減少告警次數;若是,則
表示交換機受到間歇性攻擊,執行步驟510;否則,說明交換機受到的攻
擊為持續性攻擊,執行步驟509;
步驟509、判斷當前超限時間即當前報文C2的記錄時間T4與上一次
告警的時間間隔是否超過告警周期,如10秒,以更進一步減少告警次數;
若是,執行步驟510;否則,執行步驟511;
步驟510、記錄當前告警時間,以備下次告警檢測使用;同時進行告
警處理,完成當前告警檢測。
步驟511、不做告警處理,繼續統計報文。
本實施例中,為了減少告警次數,分別針對間歇性攻擊和持續性攻擊 設置了重新告警周期和告警周期,若此次超限時間與上次超限時間的間隔超過重新告警周期,則認為是間歇性攻擊,即時進行告警,若沒超過重新
告警周期,則認為是持續性攻擊,利用告警周期來限制告警次數;假設重 新告警周期為3s,告警周期為10s, t-0時超限并告警,若t:2時第二 次超限,由于2<3,則認為是持續性攻擊,進一步判斷2<10,暫不告警, 繼續統計報文,若t = 6時第三次超限,由于(6-2)〉3,則認為是間歇性 攻擊,即時告警。在實際應用中,步驟507 ~步驟510可省去,直接進行 告警處理。
本實施例通過統計相同數據流的報文的接收時間差對數據流進行告 警處理,大大降低了告警對交換機CPU負載帶來的不良影響,提高了交換 機的告警處理能力。
上述方法實施例利用接收到的數據流之間的時間差統計流量,降低了 由于限速和告警可能對交換機CPU負載的影響,提高了交換機限速和告警 處理能力。
中央處理器可包括時間獲取單元、報文計數單元及檢測處理單元。 其中,時間獲取單元用于根據接收到的當前報文,獲取與當前接收的報文 具有相同數據特征信息的前一個報文的記錄時間;報文計數單元用于在所 述前一個報文的記錄時間與當前記錄時間的差值小于預定的檢測周期時, 將報文計數加1;檢測處理單元用于在所述報文計數加1后的值超過預定 水線的情況下,執行相應的處理操作。本實施例中,檢測處理單元可為限 速單元,也可為告警單元,下面分別進行詳細說明。
圖6為本發明中央處理器實施例一的結構示意圖,本實施例中,檢測 處理單元為限速單元,這種情況下,中央處理器CPU包括時間獲取單元61、 限速周期判斷單元62、當前時間設置單元63、報文計數單元64、限速水 線判斷單元65及限速單元66;時間獲取單元61用于獲取與當前接收的報 文具有相同數據特征信息的前一個報文的記錄時間;限速周期判斷單元62 利用時間獲取單元61獲取的時間,判斷所述前一個報文的記錄時間與當前記錄時間的差值是否小于預定的限速周期;當前時間設置單元63根據 限速周期判斷單元62的判斷結果,在所述前一個報文的記錄時間與當前 記錄時間的差值大于所述限速周期的情況下,記錄當前時間;報文計數單 元64根據限速周期判斷單元62的判斷結果,在所述前一個報文的記錄時 間與當前記錄時間的差值小于所述限速周期時,將報文計數加1;限速水 線判斷單元65根據報文計數單元64的統計結果,判斷所述報文計數加1 后的值是否超過限速水線;限速單元66根據限速水線判斷單元65的判斷 結果,在所述報文計數加1后的值超過限速水線的情況下,丟棄所述當前 報文。
本實施例中,CPU通過時間獲取單元、限速周期判斷單元、報文技術 單元等單元,實現了對數據流的實時限速處理,降低了CPU的處理負載, 大大提高了 CPU的限速處理能力。
圖7為本發明中央處理器實施例二的結構示意圖,本實施例中,檢測 處理單元為告警單元,這種情況下,CPU包括時間獲取單元71、告警水 線周期判斷單元72、報文計數單元73、告警水線判斷單元74、告警單元 75及當前時間設置單元76;其中,時間獲取單元71用于獲取與當前接收 的報文具有相同數據特征信息的前 一 個報文的記錄時間;告警水線周期判 斷單元72根據時間獲取單元71獲取的時間,判斷所述前一個報文的記錄 時間與當前記錄時間的差值是否大于所述告警水線周期;報文計數單元73
根據告警水線周期判斷單元72的判斷結果,在所述前一個報文的記錄時 間與當前記錄時間的差值小于預定的告警水線周期時,將報文計數加1; 告警水線判斷單元74根據報文計數單元73的統計結果,判斷所述報文計 數加1后的值是否超過告警水線;告警單元75根據告警水線判斷單元74 的判斷結果,在所述報文計數加l后的值超過告警水線的情況下,進行告 警。當前時間設置單元76用于在所述前一個報文的記錄時間與當前記錄 時間的差值大于所述告警水線周期的情況下,記錄當前時間;在所述報文計數加1后的值超過告警水線的情況下,記錄當前超限時間。
本實施例中,CPU還可進一步包括重新告警周期判斷單元、告警周期 判斷單元,重新告警周期判斷單元用于在所述報文計數加l后的值超過告 警水線的情況下,判斷當前超限時間與上一次超限時間的差值是否大于預
定的重新告警周期;告警周期判斷單元根據重新告警周期判斷單元的判斷 結果,在所述當前超限時間與上一次超限時間的差值小于預定的重新告警 周期的情況下,判斷當前超限時間與上一次告警時間的差值是否大于預定
的告警周期;告警單元還用于在當前超限時間與上一次超限時間的差值大 于預定的重新告警周期或所述當前超限時間與上一次告警時間的差值大 于預定的告警周期的情況下,進行告警。當前時間設置單元還用于在當前 超限時間與上一次超限時間的差值大于預定的重新告警周期或當前超限 時間與上一次告警時間的差值大于預定的告警周期的情況下,記錄當前告
警時間。減少了告警次數,進一步降低了 CPU的處理負載,提高了 CPU的
告警處理性能。
交換機包括上述中央處理器實施例中的任一 CPU,通過利用上述中央 處理器實施例中的CPU進行數據流的限速和告警處理,大大提高了交換機 的限速和告警處理性能以及抗攻擊的能力。
本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟 可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀 取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述 的存儲介質包括R0M、 RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
最后應說明的是以上實施例僅用以說明本發明的技術方案,而非對其 限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術 人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或 者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技 術方案的本質脫離本發明各實施例技術方案的精神和范圍。
權利要求
1、一種數據流的檢測處理方法,其特征在于,包括根據接收到的當前報文,獲取與所述當前報文具有相同數據特征信息的前一個報文的記錄時間;在所述前一個報文的記錄時間與當前記錄時間的差值小于預定的檢測周期時,將報文計數加1;在所述報文計數加1后的值超過預定水線的情況下,執行相應的處理操作。
2、 根據權利要求1所述的數據流的檢測處理方法,其特征在于,所 述檢測周期為限速周期,所述預定水線為限速水線,執行相應的處理操作 具體為丟棄所述當前報文。
3、 根據權利要求2所述的數據流的檢測處理方法,其特征在于,還 包括判斷所述前 一 個報文的記錄時間與當前記錄時間的差值是否小于所 述限速周期,若否,記錄當前時間,同時將記錄的報文計數清零。
4、 根據權利要求2所述的數據流的檢測處理方法,其特征在于,還 包括判斷所述報文計數加1后的值是否超過限速水線,若未超過,則允 "i午所述當前才艮文通過。
5、 根據權利要求1所述的數據流的檢測處理方法,其特征在于,所 述檢測周期為告警周期,所述預定水線為告警水線,執行相應的處理操作 具體為進行告警。
6、 根據權利要求5所述的數據流的檢測處理方法,其特征在于,還 包括判斷所述前 一 個報文的記錄時間與當前記錄時間的差值是否小于所 述告警水線周期,若否,記錄當前時間,同時將記錄的報文計數清零。
7、 根據權利要求5所述的數據流的檢測處理方法,其特征在于,所述執行相應的處理操作進一步包括記錄當前超過告警水線的時間,判斷所述當前超限時間與上 一 次超限時間的差值是否大于預定的重新告警周期;若是,則進行告警,記錄當前 告警時間;若未超過所述重新告警周期,則繼續判斷當前超限時間與上一次告警 時間的差值是否小于預定的告警周期,若是,暫不告警;否則,進行告警, 記錄當前告警時間。
8、 一種中央處理器,其特征在于,包括時間獲取單元,用于根據接收到的當前報文,獲取與所述當前報文具有相同數據特征信息的前 一 個報文的記錄時間;報文計數單元,用于在所述前一個報文的記錄時間與當前記錄時間的 差值小于預定的檢測周期時,將報文計數加1;檢測處理單元,用于在所述報文計數加1后的值超過預定水線的情況 下,執行相應的處理操作。
9、 根據權利要求8所述的中央處理器,其特征在于,所述檢測處理 單元為限速單元,用于在所述報文計數加1后的值超過限速水線的情況下, 丟棄所述當前報文;所述中央處理器還包括限速周期判斷單元,用于判斷所述前一個報文的記錄時間與當前記錄 時間的差值是否小于預定的限速周期;當前時間設置單元,用于在所述前一個報文的記錄時間與當前記錄時 間的差值大于所述限速周期的情況下,記錄當前時間;限速水線判斷單元,用于判斷所述報文計數加l后的值是否超過限速 水線;報文計數單元還用于在所述前一個報文的記錄時間與當前記錄時間 的差值小于所述限速周期的情況下,將報文計數加1 。
10、 根據權利要求8所述的中央處理器,其特征在于,所述檢測處理單元為告警單元,用于在所述報文計數加l后的值超過告警水線的情況下,進行告警;所述中央處理器還包括告警水線周期判斷單元,用于判斷所述前一個報文的記錄時間與當前 記錄時間的差值是否大于所述告警水線周期;告警水線判斷單元,用于判斷所述報文計數加l后的值是否超過告警 水線;當前時間設置單元,用于在所述前一個報文的記錄時間與當前記錄時 間的差值大于所述告警水線周期的情況下,記錄當前時間;在所述報文計 數加1后的值超過告警水線的情況下,記錄當前超限時間;報文計數單元還用于在所述前一個報文的記錄時間與當前記錄時間 的差值小于預定的告警水線周期的情況下,將報文計數加1。
11、 根據權利要求10所述的中央處理器,其特征在于,還包括 重新告警周期判斷單元,用于在所述報文計數加l后的值超過告警水線的情況下,判斷當前超限時間與上 一 次超限時間的差值是否大于預定的 重新告警周期;告警周期判斷單元,用于在所述當前超限時間與上一次超限時間的差 值小于預定的重新告警周期的情況下,判斷當前超限時間與上一次告警時 間的差值是否大于預定的告警周期;當前時間設置單元還用于在當前超限時間與上一次超限時間的差值 大于預定的重新告警周期或當前超限時間與上一次告警時間的差值大于 預定的告警周期的情況下,記錄當前告警時間;告警單元還用于在所述當前超限時間與上一次超限時間的差值大于 預定的重新告警周期或當前超限時間與上一次告警時間的差值大于預定 的告警周期的情況下,進行告警。
12、 一種交換機,其特征在于,包括上述權利要求8-11中任一項所 述的中央處理器。
全文摘要
本發明涉及一種數據流的檢測處理方法、中央處理器及交換機,方法包括根據接收到的當前報文,獲取與當前報文具有相同數據特征信息的前一個報文的記錄時間;在所述前一個報文的記錄時間與當前記錄時間的差值小于預定的檢測周期時,將報文計數加1;在所述報文計數加1后的值超過預定水線的情況下,執行相應的處理操作。中央處理器包括時間獲取單元、當前時間設置單元、報文計數單元及檢測處理單元;設置有上述中央處理器的交換機,通過統計相同報文之間的時間差實時對交換機接收的數據流進行限速處理,減輕了交換機CPU的檢測處理負荷,提高了交換機的檢測處理效率以及抗攻擊的能力。
文檔編號H04L12/26GK101299719SQ20081011436
公開日2008年11月5日 申請日期2008年6月4日 優先權日2008年6月4日
發明者黃米青 申請人:北京星網銳捷網絡技術有限公司