亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)流轉發(fā)異常檢測方法、控制器和系統(tǒng)與流程

文檔序號:11292166閱讀:275來源:國知局
本發(fā)明涉及計算機網(wǎng)絡通信領域,尤其涉及一種數(shù)據(jù)流轉發(fā)異常檢測方法、控制器和系統(tǒng)。
背景技術
::參照圖1中所示,sdn(英文名稱:softwaredefinednetwork,中文名稱:軟件定義網(wǎng)絡)網(wǎng)絡是一種新型的網(wǎng)絡體系結構,其通過分離網(wǎng)絡的控制層面和轉發(fā)層面,將網(wǎng)絡的諸多控制功能集成在一臺控制器上,并且通過該控制器與交換設備的交互通信來下發(fā)控制信息,各交換設備依據(jù)該控制信息來進行數(shù)據(jù)流的處理。具體的,控制信息通過流表來下發(fā)。流表是由控制器下發(fā)到交換設備的數(shù)據(jù)流處理規(guī)則,交換設備內(nèi)部的流表由流表項構成,參照圖2所示,流表項的基本數(shù)據(jù)結構包括:matchfield(中文名稱:匹配域)、counters(中文名稱:計數(shù)項)和instructions(中文名稱:指令)三個部分。匹配域(即matchfield),包含了數(shù)據(jù)流入端口、源/目的mac(英文名稱:mediaaccesscontrol,中文名稱:媒體訪問控制)地址、源/目的ip(英文名稱:internetprotocol,中文名稱:互聯(lián)網(wǎng)協(xié)議)地址等數(shù)據(jù)包包頭信息。數(shù)據(jù)流到達交換設備時,交換設備根據(jù)數(shù)據(jù)包的特征信息(例如包頭信息、入端口等)來與交換設備內(nèi)部的流表項進行匹配,一旦匹配到某條流表項,則按照流表項中的指令(即instructions)中所指定的操作處理數(shù)據(jù)包,包括例如丟棄、轉發(fā)、修改數(shù)據(jù)包等。同時,當數(shù)據(jù)包匹配到流表項后,交換設備會更新該流表項對應的計數(shù)項(即counters)。也就是說,通過計數(shù)項,交換設備可以獲取每條流表項匹配的數(shù)據(jù)流的數(shù)量,也即實際流量。對于如圖1中所示的sdn架構的網(wǎng)絡,當出現(xiàn)攻擊者(例如,圖1中的攻擊者14)篡改一臺交換設備(例如,圖1中的s5)的流表項或者該交換設備自身流表項異常,導致由控制器(例如,圖1中 的控制器11)下發(fā)的從源主機(例如,圖1中的host1)至目的主機(例如,圖1中的host5)的正確路徑(例如,圖1中的host1->s1->s5->s9->s7->s3->host5)被篡改為錯誤路徑(例如,圖1中的host1->s1->s5->s10->s7->s3->host5),其中,交換設備s9可能是一臺安全設備,例如防火墻、ips(英文名稱:intrusionpreventionsystem,中文名稱:入侵防御系統(tǒng)),攻擊者的這種篡改導致數(shù)據(jù)流繞過安全設備的檢查。其根本原因在于,控制器下發(fā)的數(shù)據(jù)流轉發(fā)規(guī)則與數(shù)據(jù)流實際轉發(fā)情況不一致,現(xiàn)有技術沒有技術手段來檢測這種不一致。技術實現(xiàn)要素:本發(fā)明的實施例提供一種數(shù)據(jù)流轉發(fā)異常檢測方法、控制器和系統(tǒng),用于解決對由于流表異常導致數(shù)據(jù)流轉發(fā)規(guī)則與數(shù)據(jù)流實際轉發(fā)情況不一致進行檢測的問題。為達到上述目的,本發(fā)明的實施例采用如下技術方案:第一方面,提供一種數(shù)據(jù)流轉發(fā)異常檢測方法,具體包括如下步驟:控制器確定待檢測的數(shù)據(jù)流所經(jīng)過的交換設備;控制器獲取交換設備中與數(shù)據(jù)流匹配的至少一個流表項;流表項包含實際流量和匹配域;控制器根據(jù)交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組;控制器根據(jù)超定方程組確定至少一個流表項是否發(fā)生異常。本發(fā)明提供的數(shù)據(jù)流轉發(fā)異常檢測方法,控制器確定待檢測的數(shù)據(jù)流所經(jīng)過的交換設備;獲取交換設備中與數(shù)據(jù)流匹配的至少一個流表項;流表項包含實際流量和匹配域;根據(jù)超定方程組確定至少一個流表項是否發(fā)生異常。本發(fā)明的實施例通過數(shù)學的方法,通過將控制器下發(fā)的流表項中的匹配域與交換設備中存儲的流表項中的匹配域相對應,將數(shù)據(jù)流在該交換設備上的理論流量與實際流量抽象成超定方程組,通過超定方程組的最小二乘解得到誤差二范數(shù)來判斷是否發(fā) 生流表項異常,并且定位發(fā)生異常的流表項,解決對由于流表被篡改導致數(shù)據(jù)流轉發(fā)規(guī)則與數(shù)據(jù)流實際轉發(fā)情況不一致進行檢測的問題。結合第一方面,在第一種可能的實現(xiàn)方式中,數(shù)據(jù)流轉發(fā)異常檢測方法包括:將超定方程組的最小二乘解代入超定方程組的未知數(shù)向量一側得到更新的常數(shù)項向量;根據(jù)超定方程組的常數(shù)項向量與更新的常數(shù)項向量得到誤差二范數(shù);將誤差二范數(shù)與第一閾值進行比較來確定是否有流表項發(fā)生異常。結合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,數(shù)據(jù)流轉發(fā)異常檢測方法包括:將更新的常數(shù)項向量與超定方程組的常數(shù)項向量作差生成差值向量,將差值向量中的每一項差值與第二閾值進行比較,從差值中超過第二閾值的一項或多項所對應的流表項中確定發(fā)生異常的流表項。結合第一方面,在第三種可能的實現(xiàn)方式中,數(shù)據(jù)流轉發(fā)異常檢測方法包括:流表項還包含聚合標志,聚合標志用于指示流表項是否為聚合流表項;計算單元還用于:根據(jù)聚合標志判斷流表項是否為聚合流表項;根據(jù)流表項的判斷結果,通過交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量相等建立方程;將根據(jù)多個匹配域建立的方程整合生成超定方程組。結合第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,數(shù)據(jù)流轉發(fā)異常檢測方法包括:在能夠通過匹配域找到相匹配的數(shù)據(jù)流的情況下,如果確定流表項不是聚合流表項,則匹配域匹配一個數(shù)據(jù)流;通過交換設備上與匹配域相匹配的一個數(shù)據(jù)流的理論流量與實際流量相等來建立方程;如果確定流表項是聚合流表項,則匹配域匹配多個數(shù)據(jù)流;通過交換設備上與匹配域相匹配的多個數(shù)據(jù)流的理論流量之和與實際流量相等來建立方程。結合第一方面以及第一方面的第一至第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,數(shù)據(jù)流轉發(fā)異常檢測方法包括:超定方程組為第二方面,提供了一種控制器,用于執(zhí)行第一方面或第一方面的任一種可能的實現(xiàn)方式所述的方法,包括:檢測單元,用于確定待檢測的數(shù)據(jù)流所經(jīng)過的交換設備;獲取單元,用于獲取檢測單元確定的交換設備中與數(shù)據(jù)流匹配的至少一個流表項;流表項包含實際流量和匹配域;計算單元,用于根據(jù)檢測單元確定的交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組;確定單元,用于根據(jù)計算單元建立的超定方程組確定至少一個流表項是否發(fā)生異常。由于本發(fā)明中的控制器可以用于執(zhí)行第一方面的方法流程,因此,其所能獲得的技術效果也可參考第一方面的方法,本發(fā)明在此不再贅述。結合第二方面,在第一種可能的實現(xiàn)方式中,計算單元還用于:將超定方程組的最小二乘解代入超定方程組的未知數(shù)向量一側得到更新的常數(shù)項向量;根據(jù)超定方程組的常數(shù)項向量與更新的常數(shù)項向量得到誤差二范數(shù);將誤差二范數(shù)與第一閾值進行比較來確定是否有流表項發(fā)生異常。結合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,確定單元還用于:將更新的常數(shù)項向量與超定方程組的常數(shù)項向量作差生成差值向量,將差值向量中的每一項差值與第二閾值進行比較,從差值中超過第二閾值的一項或多項所對應的流表項中確定發(fā)生異常的流表項。結合第二方面,在第三種可能的實現(xiàn)方式中:流表項還包含聚合標志,聚合標志用于指示流表項是否為聚合流表項;計算單元,還用于:根據(jù)交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組,包括:根據(jù)聚合標志判斷流表項是否為聚合流表項;根據(jù)流表項的判斷結果,通過交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量相等建立方程;將根據(jù)多個匹配域建立的方程整合生成超定方程組。結合第二方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,計算單元還用于:在能夠通過匹配域找到相匹配的數(shù)據(jù)流的情況下,如果確定流表項不是聚合流表項,則匹配域匹配一個數(shù)據(jù)流;通過交換設備上與匹配域相匹配的一個數(shù)據(jù)流的理論流量與實際流量相等來建立方程;如果確定流表項是聚合流表項,則匹配域匹配多個數(shù)據(jù)流;通過交換設備上與匹配域相匹配的多個數(shù)據(jù)流的理論流量之和與實際流量相等來建立方程。結合第二方面或第二方面的任一種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,計算單元,還用于:建立超定方程組為第三方面,提供了一種控制器,用于執(zhí)行第一方面或第一方面的 任一種可能的實現(xiàn)方式的方法,包括處理器、存儲器和總線;處理器、存儲器通過總線連接并完成相互間的通信;處理器用于執(zhí)行存儲器中的程序代碼以執(zhí)行以下操作:確定待檢測的數(shù)據(jù)流所經(jīng)過的交換設備;獲取交換設備中與數(shù)據(jù)流匹配的至少一個流表項;流表項包含實際流量和匹配域;根據(jù)交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組;根據(jù)超定方程組確定至少一個流表項是否發(fā)生異常。由于本發(fā)明中的控制器可以用于執(zhí)行第一方面的方法流程,因此,其所能獲得的技術效果也可參考第一方面的方法,本發(fā)明在此不再贅述。結合第三方面,在第一種可能的實現(xiàn)方式中,處理器還用于:將超定方程組的最小二乘解代入超定方程組的未知數(shù)向量一側得到更新的常數(shù)項向量;根據(jù)超定方程組的常數(shù)項向量與更新的常數(shù)項向量得到誤差二范數(shù);將誤差二范數(shù)與第一閾值進行比較來確定是否有流表項發(fā)生異常。結合第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,處理器還用于:將更新的常數(shù)項向量與超定方程組的常數(shù)項向量作差生成差值向量,將差值向量中的每一項差值與第二閾值進行比較,從差值中超過第二閾值的一項或多項所對應的流表項中確定發(fā)生異常的流表項。結合第三方面,在第三種可能的實現(xiàn)方式中,處理器還用于:流表項還包含聚合標志,聚合標志用于指示流表項是否為聚合流表項;根據(jù)交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組,包括:根據(jù)聚合標志判斷流表項是否為聚合流表項;根據(jù)流表項的判斷結果,通過交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量相等建立方程;將根據(jù)多個匹配域建立的方程整合生成超定方程組。結合第三方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,處理器還用于:在能夠通過匹配域找到相匹配的數(shù)據(jù)流的情況下,如果確定流表項不是聚合流表項,則匹配域匹配一個數(shù)據(jù)流;通過交換設備上與匹配域相匹配的一個數(shù)據(jù)流的理論流量與實際流量相等來建立方程;如果確定流表項是聚合流表項,則匹配域匹配多個數(shù)據(jù)流;通過交換設備上與匹配域相匹配的多個數(shù)據(jù)流的理論流量之和與實際流量相等來建立方程。結合第三方面或第三方面的任一種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,超定方程組為第四方面,提供了一種數(shù)據(jù)流轉發(fā)異常檢測系統(tǒng),包括如上述第二方面或第二方面中可能的實現(xiàn)方式中提供的任意一種控制器,或者,包括如上述第三方面或第三方面中可能的實現(xiàn)方式中提供的任意一種控制器。由于本發(fā)明實施例提供的數(shù)據(jù)流轉發(fā)異常檢測系統(tǒng)包括如上述第二方面或第二方面中可能的實現(xiàn)方式中提供的任意一種控制器,或者,包括如上述第三方面或第三方面中可能的實現(xiàn)方式中提供的任意一種控制器,因此,其所能獲得的技術效果可參考上述控制器的技術效果,此處不再贅述。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明的實施例提供的一種流表項被篡改的sdn架構網(wǎng)絡的結構示意圖;圖2為本發(fā)明的實施例提供的流表項的數(shù)據(jù)結構示意圖;圖3為本發(fā)明的實施例提供的sdn架構網(wǎng)絡的簡化示意圖;圖4為本發(fā)明的實施例提供的一種數(shù)據(jù)流轉發(fā)異常檢測方法的流程示意圖;圖5為本發(fā)明的實施例提供的另一種數(shù)據(jù)流轉發(fā)異常檢測方法的流程示意圖;圖6為本發(fā)明的實施例提供的通過同一匹配域的數(shù)據(jù)流的理論流量與實際流量建立方程的流程示意圖;圖7為本發(fā)明的實施例提供的根據(jù)流表項的判斷結果建立方程的流程示意圖;圖8為本發(fā)明的實施例提供的根據(jù)超定方程組確定至少一個流表項是否發(fā)生異常的流程示意圖;圖9為本發(fā)明的實施例提供的流表項異常仿真結果示意圖;圖10為本發(fā)明的實施例提供的控制器的結構示意圖;圖11為本發(fā)明的實施例提供的另一種控制器的結構示意圖。具體實施方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明的實施例提供了一種數(shù)據(jù)流轉發(fā)異常檢測系統(tǒng),參照圖1中所示,包括:控制器11、交換設備12、主機13。本發(fā)明的實施例主要應用于在sdn/openflow(中文名稱:開放流)網(wǎng)絡中,要求一條數(shù)據(jù)流所經(jīng)過的路徑上,至少有一臺交換設備沒有被攻擊能夠正常運行;網(wǎng)絡的流量入口能夠精確匹配所有數(shù)據(jù)流,即在入口交換設備上不聚合流表項;同時,網(wǎng)絡中交換設備的時鐘都是同步的,以保證讀取到的流表信息是一致的。下面為簡化說明,參照圖3中所示,以具有一個控制器、兩個交換機、兩個主機的sdn架構網(wǎng)絡中為例,說明其中的數(shù)據(jù)流傳輸方式。首先,控制器、第一交換設備、第二交換設備之間通過網(wǎng)絡互相連接,該網(wǎng)絡可以為互聯(lián)網(wǎng)或局域網(wǎng),第一主機與第二主機之間并不直接連接,而是通過第一交換設備和第二交換設備進行連接,另外,控制器與主機之間并不直接通信??刂破髦芯哂刑幚韱卧屯ㄐ艈卧?,第一交換設備和第二交換設備也具有處理單元和通信單元,第一主機和第二主機同樣具有處理單元和通信單元,各個設備通過通信單元接入網(wǎng)絡,各個設備的處理單元用于處理數(shù)據(jù)流信息。在第一主機向第二主機發(fā)送數(shù)據(jù)流之前,控制器首先向第一交換設備和第二交換設備下發(fā)流表,指示數(shù)據(jù)流路由的路徑,然后第一主機發(fā)送的數(shù)據(jù)流首先發(fā)送給第一交換設備,然后根據(jù)第一交換設備中的流表轉發(fā)給第二交換設備,然后根據(jù)第二交換設備中的流表轉發(fā)至第二主機,以此完成整個數(shù)據(jù)流的轉發(fā)過程。本發(fā)明的主要思想在于:由于攻擊者不可能獲取每一臺網(wǎng)絡設備的控制權限,因此攻擊者篡改的交換設備數(shù)量應該為控制器下發(fā)的正確路徑上的一部分,因此,對于圖1中所示的較復雜的網(wǎng)絡,若交換設備沒有被篡改,數(shù)據(jù)流流經(jīng)路徑s1->s5->s9->s7->s3時,各臺交換設備上對于該數(shù)據(jù)流的統(tǒng)計值應具有一致性,而當交換設備s5被篡改,數(shù)據(jù)流實際流經(jīng)的路徑為s1->s5->s10->s7->s3時,那么原正確路徑s1->s5->s9->s7->s3上各臺交換設備對于該數(shù)據(jù)流的統(tǒng)計值則會出現(xiàn)流量偏差。本方案提出一種通過分析各種情況下,數(shù)據(jù)流在每個路徑上各交換設備的流量偏差,從而定位到交換設備和流表項出現(xiàn)異常的方法。本發(fā)明的實施例提供了一種數(shù)據(jù)流轉發(fā)異常檢測方法,參照圖4所示,包括以下步驟:s101、控制器確定待檢測的數(shù)據(jù)流所經(jīng)過的交換設備。控制器根據(jù)下發(fā)的與每個數(shù)據(jù)流對應的流表,可以獲知每個待檢測的數(shù)據(jù)流理論上流經(jīng)的每個交換設備。s102、控制器獲取交換設備中與上述數(shù)據(jù)流匹配的至少一個流表項,流表項包含實際流量和匹配域,其中,實際流量為與匹配域對應的數(shù)據(jù)流在交換設備上對應計數(shù)器的數(shù)值。流表中包含至少一個流表項,控制器從交換設備中獲取本地存儲的流表,從而獲取了流表中的至少一個流表項,相應的獲取至少一個流表項中的匹配域以及計數(shù)項,如圖2中所示,每一個流表項與一個匹配域以及一個計數(shù)項對應,因此通過計數(shù)項可以獲知對應匹配域所匹配到的數(shù)據(jù)流在交換設備上的實際流量。因為數(shù)據(jù)流的個數(shù)一般要小于流表項的個數(shù),所以通過匹配域可以找到零個、一個或多個對應的數(shù)據(jù)流。如果沒有與匹配域對應的數(shù)據(jù)流流經(jīng)交換設備,則通過匹配域可以找到零個對應的數(shù)據(jù)流,如果確定有與匹配域對應的數(shù)據(jù)流流經(jīng)交換設備,則分為兩種情況:對于非聚合流表項中的匹配域來說,通過一個匹配域可以找到一個對應的數(shù)據(jù)流;而對于聚合流表項中的匹配域來說,通過同一匹配域可以找到多個對應的數(shù)據(jù)流,例如,假設聚合流表項中的匹配域的ip地址為10.0.0.0/8時,則所有數(shù)據(jù)包包頭中包含10.*.*.*ip地址的數(shù)據(jù)流均可匹配到該匹配域。將匹配域對應的零個、一個或多個對應的數(shù)據(jù)流在該交換設備上產(chǎn)生的實際流量設為c。s103、控制器根據(jù)交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組;其中,理論流量構成超定方程組的未知數(shù)向量,實際流量構成超定方程組的常數(shù)項向量??刂破飨掳l(fā)的流表中包含流表項,流表項中包含匹配域。在交換設備未受篡改攻擊的正常情況下,一個數(shù)據(jù)流對應一個流表項中的匹配域,相應的該數(shù)據(jù)流在所流經(jīng)的所有交換設備上對應的匹配域應該相同。同時假設一個數(shù)據(jù)流的理論流量為m,則該數(shù)據(jù)流在其理論上所流經(jīng)的每個交換設備上產(chǎn)生的理論流量同樣為m。通過匹配域可以找到對應的數(shù)據(jù)流以及該數(shù)據(jù)流在各個交換設備上的理論流量m??刂破鲗τ诮粨Q設備上的每一個流表項,都可以通過該流表項的匹配域,來查找下發(fā)的流表的流表項中的相同的匹配域,并且根據(jù)該匹配域找到對應的數(shù)據(jù)流,進而找到該數(shù)據(jù)流在交換設備上的理論流量m,令理論流量m與實際流量c相等來建立一個方程。具體的,如果通過一個匹配域找不到對應的數(shù)據(jù)流,則可以列出方程0*m=c;如果在非聚合流表項情況下,通過一個匹配域可以找到一個對應的數(shù)據(jù)流時,則可以列出方程m=c;如果在聚合流表項情況下,通過一個匹配域可以找到多個對應的數(shù)據(jù)流時,則可以列出方程m1+m2+......+mk=c,其中,k表示通過一個匹配域可以找到k個對應的數(shù)據(jù)流。示例性的,可以列出如下至少一個方程:0*m1=c1m1+m2+......+mk=c2......由于每一個流表項對應一個匹配域,所以每一個流表項對應一個方程??刂破鲗⑺蟹匠虡嫿ǔ煞匠探M,將所有方程的理論流量m1、m2……作為方程組的未知數(shù)部分,將所有方程的實際流量c1、c2……作為方程組的常數(shù)項部分,以向量的方式可以表示為am=c,其中,a為該方程組的系數(shù)矩陣,m為理論流量構成的未知數(shù)向量,c為實際流量構成的常數(shù)項向量。因為數(shù)據(jù)流的個數(shù)一般要小于流表項的個數(shù),所以該方程組為超定方程組。s104、控制器根據(jù)超定方程組確定上述至少一個流表項是否發(fā)生異常。由于超定方程組沒有固定的解,所以對上述超定方程組求解得到的是最小二乘解m*,最小二乘解m*為近似解。將最小二乘解m*代入原超定方程組的未知數(shù)向量一側,得到更新的常數(shù)項向量c*,根據(jù)更新的常數(shù)項向量c*和原常數(shù)項向量c得到誤差二 范數(shù),如果該誤差二范數(shù)大于第一閾值即可以從整體上判斷構建方程的上述流表項發(fā)生異常。進一步的,將c*和c作差,得到差值向量c*-c,根據(jù)該差值向量c*-c的各差值,超過第二閾值的且差值較大的一項或多項所對應的流表項為最有可能發(fā)生異常的流表項。本發(fā)明提供的數(shù)據(jù)流轉發(fā)異常檢測方法,控制器確定待檢測的數(shù)據(jù)流所經(jīng)過的交換設備;獲取交換設備中與數(shù)據(jù)流匹配的至少一個流表項;流表項包含實際流量和匹配域;其中,實際流量為與匹配域對應計數(shù)器的值;根據(jù)交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組;其中,理論流量構成超定方程組的未知數(shù)向量,實際流量構成超定方程組的常數(shù)項向量;根據(jù)超定方程組確定至少一個流表項是否發(fā)生異常。本發(fā)明的實施例通過數(shù)學的方法,通過將控制器下發(fā)的流表項中的匹配域與交換設備中存儲的流表項中的匹配域相對應,將數(shù)據(jù)流在該交換設備上的理論流量與實際流量抽象成超定方程組,通過超定方程組的最小二乘解得到誤差二范數(shù)來判斷是否發(fā)生流表項異常,并且定位發(fā)生異常的流表項,解決對由于流表被篡改導致數(shù)據(jù)流轉發(fā)規(guī)則與數(shù)據(jù)流實際轉發(fā)情況不一致進行檢測的問題。參照圖5所示,本發(fā)明的實施例提供的數(shù)據(jù)流轉發(fā)異常檢測方法,具體包括以下步驟:s201、控制器確定待檢測的數(shù)據(jù)流所經(jīng)過的交換設備,生成表1中所示的流信息表??刂破鞲鶕?jù)下發(fā)的與每個數(shù)據(jù)流對應的流表得到每個數(shù)據(jù)流理論上流經(jīng)的每個交換設備??刂破鳛橥瓿蓛蓚€站點之間通信,會和鏈路上的每個交換機進行通信,完成流表添加,因此控制器可以提前獲知數(shù)據(jù)流流經(jīng)鏈路上所有交換設備。控制器根據(jù)與每個數(shù)據(jù)流對應的流表以及理論上經(jīng)過的至少一個交換設備生成表1中所示的流信息表(英文名稱:flowinfotable),并且根據(jù)流表的動態(tài)變化實時更新流信息表中的各表項,該流信息表包含每個數(shù)據(jù)流在所流經(jīng)的每個交換設備上對應的匹配域(表1中的匹配域)、每個數(shù)據(jù)流在所流經(jīng)的每個交換設備上的理論流量(表1中的理論流量)。另外,在表1中,流序號指數(shù)據(jù)流的序號;理論流量表示每個數(shù)據(jù)流 的理論流量,不同的數(shù)據(jù)流的理論流量值以m1、m2、m3等表示;匹配域表示圖2中所示的流表項的匹配域,其中,srcip指源ip地址,dstip指目的ip地址;路徑表示數(shù)據(jù)流經(jīng)過的各交換設備的名稱,用s1、s5等表示;流表項中的交換機號表示流經(jīng)的各個交換設備的名稱,流表項中的流表項內(nèi)容表示圖2中所示的流表項的指令中的內(nèi)容,表中的省略號……表示省略的其他內(nèi)容。從中可以看出:一個數(shù)據(jù)流對應一個流表項中的匹配域;相應的該數(shù)據(jù)流在所流經(jīng)的所有交換設備上對應的匹配域相同;該數(shù)據(jù)流在所流經(jīng)的每個交換設備上產(chǎn)生的理論流量均相同。示例性的,流序號為1的數(shù)據(jù)流對應的匹配域為srcip:10.0.0.1,dstip:10.0.0.4,……;該數(shù)據(jù)流在所流經(jīng)的交換設備s1、s5、s9、s7、s3上對應的匹配域相同;該數(shù)據(jù)流在在所流經(jīng)的交換設備s1、s5、s9、s7、s3上產(chǎn)生的理論流量均相同,為m1。表1s202、控制器獲取交換設備中與上述數(shù)據(jù)流匹配的至少一個流表 項,流表項包含實際流量和匹配域,其中,實際流量為與匹配域對應的數(shù)據(jù)流在交換設備上對應計數(shù)器的數(shù)值,并根據(jù)上述至少一個流表項生成如表2中所示的計數(shù)表(英文名稱:countertable)。生成的計數(shù)表中包含圖2中所示流表項的主要內(nèi)容,具體的包含其中的計數(shù)項和匹配域。其中,計數(shù)項的數(shù)值用c1、c2等表示,計數(shù)表中的匹配域與流信息表中的匹配域格式相同,以便能夠通過計數(shù)表中的匹配域查找流信息表中的匹配域,表中的省略號……表示省略的其他內(nèi)容。表2中的流表項還包括聚合標志,用于指示該流表項是否是聚合流表項。聚合標志的值包括:false(中文名稱:否),表示該流表項不是聚合流表項;true(中文名稱:是),表示該流表項是聚合流表項。表2s203、根據(jù)交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組,其中,計數(shù)表中的每一個流表項對應超定方 程組中的一個方程。控制器對于計數(shù)表中的每一個流表項,都可以通過該流表項的匹配域,來查找流信息表的流表項中的相同的匹配域,并且根據(jù)該匹配域找到對應的數(shù)據(jù)流,進而找到該數(shù)據(jù)流在交換設備上的理論流量m,令理論流量m與實際流量c相等來建立一個方程。具體的,參照圖6所示,步驟s203包括步驟s2031至步驟s2034:s2031、讀取計數(shù)表中一個流表項的匹配域、計數(shù)項以及聚合標志。示例性的,讀取計數(shù)表中的第一個流表項,即交換設備s1的匹配域為srcip:10.0.0.1,dstip:10.0.0.4,……,計數(shù)項即實際流量為c1,聚合標志為false。而下一次循環(huán)讀取計數(shù)表中的第二個流表項時,即讀取交換設備s1的匹配域為:“srcip:10.0.0.2,dstip:10.0.0.3,……”,計數(shù)項即實際流量為c2,聚合標志為true。s2032、根據(jù)聚合標志判斷該流表項是否為聚合流表項。示例性的:由于計數(shù)表中的第一個流表項的聚合標志為false,因此該流表項不是聚合流表項,而計數(shù)表中的第二個流表項的聚合標志為true,因此該流表項是聚合流表項。s2033、根據(jù)上述流表項的判斷結果,通過交換設備上匹配域對應的數(shù)據(jù)流的理論流量與實際流量相等建立方程。具體的,參照圖7所示,步驟s2033包括步驟s20331至步驟s20334。如果流表項不是聚合流表項,則進行步驟s20331,否則進行步驟s20333。s20331、在能夠通過匹配域找到對應數(shù)據(jù)流的情況下,如果確定流表項不是聚合流表項,則匹配域最多對應一個數(shù)據(jù)流,讀取流信息表中與該匹配域對應的一個數(shù)據(jù)流的理論流量。示例性的,在本實施例中可以通過匹配域“srcip:10.0.0.1,dstip:10.0.0.4,……”在流信息表中找到對應的流序號為1的一個數(shù)據(jù)流,該數(shù)據(jù)流的理論流量為m1。另外,在不能通過匹配域找到對應數(shù)據(jù)流的情況下,令此時的理論流量m前的系數(shù)為0,即0*m,后續(xù)在生成方程組時會對此處的m 進行展開。s20332、如果確定流表項不是聚合流表項,通過交換設備上與匹配域相匹配的一個數(shù)據(jù)流的理論流量與實際流量相等來建立方程,然后跳轉至步驟s2034。具體的,令流信息表中的理論流量與計數(shù)表中對應的計數(shù)項(即實際流量)相等來建立方程。示例性的,在本實施例中可以通過匹配域“srcip:10.0.0.1,dstip:10.0.0.4,……”建立方程m1=c1。另外,在不能通過匹配域“srcip:10.0.0.1,dstip:10.0.0.4,……”找到對應數(shù)據(jù)流的情況下,則會列出方程0*m=c1。s20333、在能夠通過匹配域找到對應數(shù)據(jù)流的情況下,如果確定流表項是聚合流表項,則匹配域匹配多個數(shù)據(jù)流,讀取流信息表中與該匹配域匹配的多個數(shù)據(jù)流的理論流量。示例性的,在能夠通過匹配域找到對應數(shù)據(jù)流的情況下,在本實施例中可以通過匹配域“srcip:10.0.0.2,dstip:10.0.0.3,……”在流信息表中找到對應的流序號為2和3的兩個數(shù)據(jù)流,這兩個數(shù)據(jù)流的理論流量分別為m2、m3。另外,在不能通過匹配域找到對應數(shù)據(jù)流的情況下,令此時的理論流量m前的系數(shù)為0,即0*m,后續(xù)在生成方程組時會對此處的m進行展開。s20334、如果確定流表項是聚合流表項,通過交換設備上匹配域對應的多個數(shù)據(jù)流的理論流量之和與實際流量相等來建立方程,然后跳轉至步驟s2034。示例性的,在能夠通過匹配域找到對應數(shù)據(jù)流的情況下,在本實施例中可以通過匹配域“srcip:10.0.0.2,dstip:10.0.0.3,……”建立方程m2+m3=c2。另外,在不能通過匹配域“srcip:10.0.0.2,dstip:10.0.0.3,……”找到對應數(shù)據(jù)流的情況下,則會列出方程0*m=c2。s2034、控制器將上述根據(jù)多個匹配域建立的方程整合生成超定 方程組,其中理論流量構成超定方程組的未知數(shù)向量,實際流量構成超定方程組的常數(shù)項向量。假設上述步驟除了得到示例中的兩個方程m1=c1,m2+m3=c2以外,還得到第三個方程0*m=c3以及第四個方程m3=c4。此時將第三個方程0*m=c3根據(jù)能找到的理論流量m1、m2、m3進行擴展,擴展為0*m1+0*m2+0*m3=c3。其中a為取值僅為0或1的系數(shù),m為表示理論流量的未知數(shù)向量,c為表示實際流量的常數(shù)項向量,p為數(shù)據(jù)流的個數(shù),q為流表項的個數(shù),一般情況下q>=p。然后將這四個方程的理論流量m1、m2、m3作為方程組的未知數(shù)部分,將所有方程的實際流量c1、c2、c3、c4作為方程組的常數(shù)項部分,以向量的方式可以表示為am=c,其中,a為該方程組的系數(shù)矩陣,m為理論流量構成的未知數(shù)向量,c為實際流量構成的常數(shù)項向量,具體參照公式(1)。將上述四個方程表示為向量形式的方程組:s204、根據(jù)上述超定方程組確定上述至少一個流表項是否發(fā)生異常。具體的,參照圖8中所示,步驟s204包括步驟s2041至s2045:s2041、求解超定方程組得到最接近最小二乘解m*。超定方程組沒有固定的解,所以對上述超定方程組求解得到的是最小二乘解m*,其為近似解。s2042、將超定方程組的最小二乘解m*代入超定方程組的未知數(shù) 向量一側得到更新的常數(shù)項向量c*。也就是說,將得到的最小二乘解m*代入公式1所示的方程組的左側,得到該方程組的新的右側向量c*。s2043、根據(jù)超定方程組的常數(shù)項向量c與更新的常數(shù)項向量c*得到誤差二范數(shù)ε,如公式(2)所示。其中,q為流表項的個數(shù),ci*為c*中的一項,ci為c中的一項。s2044、將誤差二范數(shù)與第一閾值進行比較來確定是否有流表項發(fā)生異常。當誤差二范數(shù)ε大于第一閾值時,則認為網(wǎng)絡中的實際轉發(fā)情況與控制器下發(fā)的規(guī)則出現(xiàn)了不一致的情況,即交換設備中有流表項發(fā)生異常。s2045、將更新的常數(shù)項向量c*與超定方程組的常數(shù)項向量c作差生成差值向量c*-c,將差值向量c*-c中的每一項差值與第二閾值進行比較,從差值向量c*-c的差值中超過第二閾值的一項或多項所對應的流表項中確定發(fā)生異常的流表項,然后定位到對應的交換設備及交換設備的流表項上。具體的,參照圖9所示,為流表項異常仿真結果示意圖,其中,橫坐標為交換設備的編號,縱坐標為差值向量c*-c中的差值,從中可以看出交換設備8、30、42所對應的差值e1、e2、e3較大,可以推斷這三個交換設備中的流表項最有可能發(fā)生異常,可以通過手動檢查的方式來進一步核查。本發(fā)明提供的數(shù)據(jù)流轉發(fā)異常檢測方法,控制器確定待檢測的數(shù)據(jù)流所經(jīng)過的交換設備;獲取交換設備中與數(shù)據(jù)流匹配的至少一個流表項;流表項包含實際流量和匹配域;其中,實際流量為與匹配域對 應計數(shù)器的值;根據(jù)交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組;其中,理論流量構成超定方程組的未知數(shù)向量,實際流量構成超定方程組的常數(shù)項向量;根據(jù)超定方程組確定至少一個流表項是否發(fā)生異常。本發(fā)明的實施例通過數(shù)學的方法,通過將控制器下發(fā)的流表項中的匹配域與交換設備中存儲的流表項中的匹配域相對應,將數(shù)據(jù)流在該交換設備上的理論流量與實際流量抽象成超定方程組,通過超定方程組的最小二乘解得到誤差二范數(shù)來判斷是否發(fā)生流表項異常,并且定位發(fā)生異常的流表項,解決對由于流表被篡改導致數(shù)據(jù)流轉發(fā)規(guī)則與數(shù)據(jù)流實際轉發(fā)情況不一致進行檢測的問題。本發(fā)明提供了一種控制器,用于執(zhí)行上述數(shù)據(jù)流轉發(fā)異常檢測方法,參照圖10所示,包括:檢測單元111,用于確定待檢測的數(shù)據(jù)流所經(jīng)過的交換設備;獲取單元112,用于獲取交換設備中與數(shù)據(jù)流匹配的至少一個流表項;流表項包含實際流量和匹配域;其中,實際流量為與匹配域對應計數(shù)器的值;計算單元113,用于根據(jù)交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量建立超定方程組;其中,理論流量構成超定方程組的未知數(shù)向量,實際流量構成超定方程組的常數(shù)項向量;確定單元114,用于根據(jù)超定方程組確定至少一個流表項是否發(fā)生異常。由于本發(fā)明實施例中的控制器可以用于執(zhí)行上述方法流程,因此,其所能獲得的技術效果也可參考上述方法實施例,本發(fā)明實施例在此不再贅述。提供一種示例,計算單元113還用于:將超定方程組的最小二乘解代入超定方程組的未知數(shù)向量一側得到更新的常數(shù)項向量;根據(jù)超定方程組的常數(shù)項向量與更新的常數(shù)項向量得到誤差二范數(shù);將誤差二范數(shù)與第一閾值進行比較來確定是否有流表項發(fā)生異常。提供一種示例,確定單元114還用于:將更新的常數(shù)項向量與超定方程組的常數(shù)項向量作差生成差值向量,將差值向量中的每一項差值與第二閾值進行比較,從差值中超過第二閾值的一項或多項所對應的流表項中確定發(fā)生異常的流表項。提供一種示例:流表項還包含聚合標志,聚合標志用于指示流表項是否為聚合流表項;計算單元113還用于:根據(jù)聚合標志判斷流表項是否為聚合流表項;根據(jù)流表項的判斷結果,通過交換設備上與匹配域相匹配的數(shù)據(jù)流的理論流量與實際流量相等建立方程;將根據(jù)多個匹配域建立的方程整合生成超定方程組。提供一種示例,計算單元113還用于:在能夠通過匹配域找到相匹配的數(shù)據(jù)流的情況下,如果確定流表項不是聚合流表項,則匹配域匹配一個數(shù)據(jù)流;通過交換設備上與匹配域相匹配的一個數(shù)據(jù)流的理論流量與實際流量相等來建立方程;如果確定流表項是聚合流表項,則匹配域匹配多個數(shù)據(jù)流;通過交換設備上與匹配域相匹配的多個數(shù)據(jù)流的理論流量之和與實際流量相等來建立方程。提供一種示例,計算單元113還用于:建立超定方程組為其中a為取值僅為0或1的系數(shù),m為表示理論流量的未知數(shù)向量,c為表示計數(shù)項的常數(shù)項向量,p為數(shù)據(jù)流的個數(shù),q為流表項的個數(shù)。由于本發(fā)明實施例中的控制器可以用于執(zhí)行上述方法流程,因 此,其所能獲得的技術效果也可參考上述方法實施例,本發(fā)明實施例在此不再贅述。其中,需要說明的是,檢測單元、獲取單元、計算單元和確定單元可以為單獨設立的處理器,也可以集成在控制器的某一個處理器中實現(xiàn),此外,也可以以程序代碼的形式存儲于控制器的存儲器中,由控制器的某一個處理器調(diào)用并執(zhí)行以上檢測單元、獲取單元、計算單元和確定單元的功能。這里所述的處理器可以是一個中央處理器(英文全稱:centralprocessingunit,英文簡稱:cpu),或者是特定集成電路(英文全稱:applicationspecificintegratedcircuit,英文簡稱:asic),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。本發(fā)明提供了一種控制器,用于執(zhí)行上述數(shù)據(jù)流轉發(fā)異常檢測方法,參照圖11所示,該裝置可以為sdn網(wǎng)絡中的控制器,其可以包括:處理器1101存儲器1102和總線1103;處理器1101、存儲器1102通過總線1103連接并完成相互間的通信。需要說明的是,這里的處理器1101可以是一個處理器,也可以是多個處理元件的統(tǒng)稱。例如,該處理器可以是中央處理器cpu,也可以是特定集成電路asic,或者是被配置成實施本發(fā)明實施例的一個或多個集成電路,例如:一個或多個微處理器(英文全稱:digitalsingnalprocessor,英文簡稱:dsp),或,一個或者多個現(xiàn)場可編程門陣列(英文全稱:fieldprogrammableaatearray,英文簡稱:fpga)。存儲器1102可以是一個存儲裝置,也可以是多個存儲元件的統(tǒng)稱,且用于存儲可執(zhí)行程序代碼或接入網(wǎng)管理設備運行所需要參數(shù)、數(shù)據(jù)等。且存儲器1102可以包括隨機存儲器(英文全稱:random-accessmemory,英文簡稱:ram),也可以包括非易失性存儲器(英文全稱:non-volatilememory,英文簡稱:nvram),例如磁盤存儲器,閃存(flash)等??偩€1103可以是工業(yè)標準體系結構(英文全稱:industrystandardarchitecture,英文簡稱:isa)總線、外部設備互連(英文全稱:peripheralcomponent,英文簡稱:pci)總線或擴展工業(yè)標準體系結構(英文全稱:extendedindustrystandardarchitecture,英文簡稱:eisa)總線等。該總線1103可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便 于表示,圖11中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。處理器1101用于執(zhí)行存儲其中的程序代碼,以執(zhí)行上述方法實施例中所提供的方法。具體的,處理器1101用于執(zhí)行存儲器中的程序執(zhí)行上述實施例中控制器的檢測單元、獲取單元、計算單元和確定單元的功能,在此不再贅述。由于本發(fā)明實施例中的控制器可以用于執(zhí)行上述方法流程,因此,其所能獲得的技術效果也可參考上述方法實施例,本發(fā)明實施例在此不再贅述。本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng)、設備和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的設備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,設備或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(英文全稱:read-onlymemory,英文簡稱:rom)、隨機存取存儲器(英文全稱:randomaccessmemory,英文簡稱:ram)、磁碟或者光盤等各種可以存儲程序代碼的介質。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術領域
:的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。當前第1頁12當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1