軟件定義網(wǎng)絡(luò)中探測(cè)數(shù)據(jù)流傳輸路徑的方法及其裝置的制造方法
【專利摘要】本發(fā)明的實(shí)施例提供了一種軟件定義網(wǎng)絡(luò)SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的方法和裝置。該方法包括:獲取數(shù)據(jù)流的包頭字段、SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表;根據(jù)數(shù)據(jù)流的包頭字段、網(wǎng)絡(luò)拓?fù)浜兔總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定數(shù)據(jù)流的傳輸路徑。本發(fā)明實(shí)施例在軟件定義網(wǎng)絡(luò)SDN下使用SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表對(duì)數(shù)據(jù)流的傳輸路徑進(jìn)行探測(cè),這樣可以確定數(shù)據(jù)流的真實(shí)傳輸路徑。
【專利說明】
軟件定義網(wǎng)絡(luò)中探測(cè)數(shù)據(jù)流傳輸路徑的方法及其裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信領(lǐng)域,并且更具體地,涉及一種軟件定義網(wǎng)絡(luò)(Software DefinedNetwork, SDN)中探測(cè)數(shù)據(jù)流傳輸路徑的方法及其裝置。
【背景技術(shù)】
[0002]軟件定義網(wǎng)絡(luò)是一種控制與轉(zhuǎn)發(fā)相分離的網(wǎng)絡(luò)架構(gòu),其核心思想是通過控制器和轉(zhuǎn)發(fā)器將網(wǎng)絡(luò)中的數(shù)據(jù)面和控制面解耦。在SDN中,控制器根據(jù)網(wǎng)絡(luò)的全局視圖制定控制策略,決策交換機(jī)上報(bào)文的轉(zhuǎn)發(fā)路徑,來實(shí)現(xiàn)對(duì)全網(wǎng)的數(shù)據(jù)流傳輸路徑的集中式控制。交換機(jī)接收控制器下發(fā)的控制策略(例如流表),并根據(jù)控制策略對(duì)主機(jī)或虛擬機(jī)發(fā)送的數(shù)據(jù)流進(jìn)行處理,比如對(duì)數(shù)據(jù)流的轉(zhuǎn)發(fā)、修改、丟棄等操作。
[0003]開放流(OpenFlow,OF)協(xié)議是當(dāng)前主流的SDN的控制協(xié)議。交換機(jī)可以通過OF協(xié)議連接到外部的控制器,由控制器完成傳輸路徑的控制,控制器可以基于OF協(xié)議下發(fā)各種控制策略給交換機(jī)?;贠F協(xié)議的SDN,在主機(jī)或虛擬機(jī)發(fā)起數(shù)據(jù)傳輸請(qǐng)求的過程中,請(qǐng)求由開放流交換機(jī)(Open Flow Switch,0FS)將數(shù)據(jù)流上報(bào)給開放流控制器(Open FlowController,0FC)。OFC會(huì)針對(duì)該請(qǐng)求生成流表項(xiàng)下發(fā)到對(duì)應(yīng)路徑上的0FS。SDN中的數(shù)據(jù)流是基于流轉(zhuǎn)發(fā)的,每個(gè)OFS都有流表,進(jìn)行數(shù)據(jù)流的查找和轉(zhuǎn)發(fā)。流表中包括多個(gè)流表項(xiàng),流表項(xiàng)可以指示需要處理的數(shù)據(jù)流以及相應(yīng)的操作。
[0004]SDN中的數(shù)據(jù)流均有各自的傳輸路徑。那么,如何獲得數(shù)據(jù)流的真實(shí)傳輸路徑,是亟待解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種軟件定義網(wǎng)絡(luò)下探測(cè)數(shù)據(jù)流傳輸路徑的方法及其裝置,從而能夠確定數(shù)據(jù)流的真實(shí)傳輸路徑。
[0006]第一方面,提供了一種軟件定義網(wǎng)絡(luò)SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的方法,包括:獲取所述數(shù)據(jù)流的包頭字段、所述SDN的網(wǎng)絡(luò)拓?fù)浜退鼍W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表;根據(jù)所述數(shù)據(jù)流的包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑。
[0007]結(jié)合第一方面,在第一方面的一種實(shí)現(xiàn)方式中,所述根據(jù)所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑包括:根據(jù)所述包頭字段確定所述數(shù)據(jù)流的傳輸路徑的源節(jié)點(diǎn)S。和目的節(jié)點(diǎn);根據(jù)所述包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑的中間節(jié)點(diǎn)Sk,其中,k為正整數(shù);根據(jù)所述網(wǎng)絡(luò)拓?fù)浯_定與最后一個(gè)中間節(jié)點(diǎn)連接的目的節(jié)點(diǎn)。
[0008]結(jié)合第一方面及其上述實(shí)現(xiàn)方式,在第一方面的另一種實(shí)現(xiàn)方式中,所述網(wǎng)絡(luò)拓?fù)浒ü?jié)點(diǎn)連接信息和端口連接信息,所述根據(jù)所述包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑的中間節(jié)點(diǎn)Sk包括:對(duì)每個(gè)節(jié)點(diǎn)S ;執(zhí)行下列操作,其中節(jié)點(diǎn)S1為所述源節(jié)點(diǎn)S。和所述中間節(jié)點(diǎn)Sk之一,i為非負(fù)整數(shù):根據(jù)所述節(jié)點(diǎn)連接信息確定與所述節(jié)點(diǎn)3;連接的下一節(jié)點(diǎn)Si+1J|據(jù)所述端口連接信息確定所述節(jié)點(diǎn)S i+1的輸入端口 ;根據(jù)所述包頭字段和所述節(jié)點(diǎn)S1+1的輸入端口,確定所述節(jié)點(diǎn)S 1+1對(duì)應(yīng)的流表中與所述數(shù)據(jù)流相匹配的流表項(xiàng)S1+1」,j為正整數(shù);根據(jù)所述流表項(xiàng)S1+1,,改寫或保留所述包頭字段。
[0009]結(jié)合第一方面及其上述實(shí)現(xiàn)方式,在第一方面的另一種實(shí)現(xiàn)方式中,所述根據(jù)所述流表項(xiàng)改寫或保留所述包頭字段包括:如果所述流表項(xiàng)S1+1」中包括對(duì)所述包頭字段的改寫操作,則根據(jù)所述改寫操作修改所述包頭字段;或者,如果所述流表項(xiàng)S1+1」中不包括對(duì)所述包頭字段的改寫操作,則保留所述包頭字段。
[0010]結(jié)合第一方面及其上述實(shí)現(xiàn)方式,在第一方面的另一種實(shí)現(xiàn)方式中,獲取防火墻的安全策略;根據(jù)所述源節(jié)點(diǎn)確定源地址,并根據(jù)所述目的節(jié)點(diǎn)確定目的地址;根據(jù)所述源地址、所述目的地址和所述防火墻的安全策略確定所述數(shù)據(jù)流的傳輸路徑是否合法。
[0011]結(jié)合第一方面及其上述實(shí)現(xiàn)方式,在第一方面的另一種實(shí)現(xiàn)方式中,當(dāng)所述數(shù)據(jù)流的傳輸路徑非法時(shí),丟棄所述數(shù)據(jù)流。
[0012]第二方面,提供了一種軟件定義網(wǎng)絡(luò)SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的裝置,包括第一獲取單元和第一確定單元。其中,第一獲取單元用于獲取所述數(shù)據(jù)流的包頭字段、所述SDN的網(wǎng)絡(luò)拓?fù)浜退鼍W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表;第一確定單元用于在所述數(shù)據(jù)流的傳輸之前,根據(jù)所述第一獲取單元獲取的所述數(shù)據(jù)流的包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑。
[0013]結(jié)合第二方面,在第二方面的一種實(shí)現(xiàn)方式中,所述第一確定單元具體用于獲取所述數(shù)據(jù)流的包頭字段,根據(jù)所述包頭字段確定所述數(shù)據(jù)流的傳輸路徑的源節(jié)點(diǎn)S。,并根據(jù)所述包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑的中間節(jié)點(diǎn)Sk,其中,k為正整數(shù),并根據(jù)所述網(wǎng)絡(luò)拓?fù)浯_定與最后一個(gè)中間節(jié)點(diǎn)連接的目的節(jié)點(diǎn)。
[0014]結(jié)合第二方面及其上述實(shí)現(xiàn)方式,在第二方面的另一種實(shí)現(xiàn)方式中,所述網(wǎng)絡(luò)拓?fù)浒ü?jié)點(diǎn)連接信息和端口連接信息,節(jié)點(diǎn)S1為所述源節(jié)點(diǎn)S。和所述中間節(jié)點(diǎn)Sk中的任意一個(gè),i為非負(fù)整數(shù),所述第一確定單元具體用于對(duì)每個(gè)節(jié)點(diǎn)Si執(zhí)行下列操作,其中節(jié)點(diǎn)S1為所述源節(jié)點(diǎn)S?;蛩鲋虚g節(jié)點(diǎn)Sk之一,i為非負(fù)整數(shù):根據(jù)所述節(jié)點(diǎn)連接信息確定與所述節(jié)點(diǎn)3;連接的下一節(jié)點(diǎn)S i+1,根據(jù)所述端口連接信息確定所述節(jié)點(diǎn)Si+1的輸入端口,根據(jù)所述包頭字段和所述節(jié)點(diǎn)S1+1的輸入端口,確定所述節(jié)點(diǎn)S 1+1對(duì)應(yīng)的流表中與所述數(shù)據(jù)流相匹配的流表項(xiàng)S1+1,,,并根據(jù)所述流表項(xiàng)S1+1,,改寫或保留所述包頭字段,其中,j為正整數(shù)。
[0015]結(jié)合第二方面及其上述實(shí)現(xiàn)方式,在第二方面的另一種實(shí)現(xiàn)方式中,所述第一確定單元還用于在所述流表項(xiàng)S1+u ]中包括對(duì)所述包頭字段的改寫操作的情況下,根據(jù)所述改寫操作修改所述包頭字段,或者,在所述流表項(xiàng)S1+1」中不包括對(duì)所述包頭字段的改寫操作的情況下,保留所述包頭字段。
[0016]結(jié)合第二方面及其上述實(shí)現(xiàn)方式,在第二方面的另一種實(shí)現(xiàn)方式中,所述裝置還包括第二獲取單元、第二確定單元和第三確定單元。其中,第二獲取單元用于獲取防火墻的安全策略;第二確定單元用于根據(jù)所述源節(jié)點(diǎn)確定源地址,并根據(jù)所述目的節(jié)點(diǎn)確定目的地址;第三確定單元用于根據(jù)所述源地址、所述目的地址和所述防火墻的安全策略確定所述數(shù)據(jù)流的傳輸路徑是否合法。
[0017]結(jié)合第二方面及其上述實(shí)現(xiàn)方式,在第二方面的另一種實(shí)現(xiàn)方式中,所述第三確定單元還用于當(dāng)所述數(shù)據(jù)流的傳輸路徑非法時(shí),丟棄所述數(shù)據(jù)流。
[0018]本發(fā)明實(shí)施例在軟件定義網(wǎng)絡(luò)SDN下使用數(shù)據(jù)流的包頭字段、SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表對(duì)數(shù)據(jù)流的傳輸路徑進(jìn)行探測(cè),這樣可以確定數(shù)據(jù)流的真實(shí)傳輸路徑。
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)本發(fā)明實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0020]圖1是本發(fā)明實(shí)施例的可應(yīng)用的SDN場(chǎng)景示意圖。
[0021]圖2是本發(fā)明一個(gè)實(shí)施例的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的方法的示意性流程圖。
[0022]圖3是本發(fā)明另一實(shí)施例的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的方法的示意性流程圖。
[0023]圖4是本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)流的傳輸路徑的示意性流程圖。
[0024]圖5是本發(fā)明一個(gè)實(shí)施例的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的裝置的框圖。
[0025]圖6是本發(fā)明另一實(shí)施例的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的裝置的框圖。
【具體實(shí)施方式】
[0026]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都應(yīng)屬于本發(fā)明保護(hù)的范圍。
[0027]圖1是本發(fā)明實(shí)施例的可應(yīng)用的SDN場(chǎng)景示意圖。
[0028]如圖1所示,SDN網(wǎng)絡(luò)拓?fù)浒ㄔ垂?jié)點(diǎn)(例如101A、101B)、目的節(jié)點(diǎn)(例如102A、102B)、開放流控制器(例如103)、交換機(jī)(例如104A、104B、104C、104D、104E)。圖1僅以探測(cè)兩個(gè)源節(jié)點(diǎn)101A、1lB和兩個(gè)目的節(jié)點(diǎn)102A、102B之間的三個(gè)數(shù)據(jù)流DpD2、D3的傳輸路徑為例對(duì)本發(fā)明的應(yīng)用場(chǎng)景進(jìn)行示例性的說明。圖1中以虛線表示交換機(jī)104A、104B、104CU04D分別與開放流控制器103之間的連接關(guān)系,以實(shí)線表示源節(jié)點(diǎn)、目的節(jié)點(diǎn)和交換機(jī)中任意兩者之間的連接關(guān)系。
[0029]本發(fā)明實(shí)施例可以根據(jù)數(shù)據(jù)包的包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲薪粨Q機(jī)對(duì)應(yīng)的流表來確定數(shù)據(jù)流的傳輸路徑。例如,對(duì)于源節(jié)點(diǎn)1lA的數(shù)據(jù)流D1,源節(jié)點(diǎn)1lA可以首先根據(jù)網(wǎng)絡(luò)拓?fù)渲械倪B接關(guān)系確定數(shù)據(jù)流Djf輸時(shí)與源節(jié)點(diǎn)1lA相連接的交換機(jī)104A ;接著,根據(jù)網(wǎng)絡(luò)拓?fù)浜蛿?shù)據(jù)流包頭字段確定交換機(jī)104A中與數(shù)據(jù)流DJg匹配的流表項(xiàng);然后,根據(jù)相匹配的流表項(xiàng)對(duì)數(shù)據(jù)流01進(jìn)行相應(yīng)的操作,例如,對(duì)數(shù)據(jù)流的轉(zhuǎn)發(fā)、修改、丟棄等操作;按照上面方法依次預(yù)測(cè)數(shù)據(jù)流D1傳輸?shù)南乱粋€(gè)交換機(jī)(如圖1中的104B)直至最后確定邊緣節(jié)點(diǎn)(如圖1中的104C),經(jīng)邊緣節(jié)點(diǎn)(如圖1中的104C)到達(dá)目的節(jié)點(diǎn)(如圖1中的102A)。這樣,可以預(yù)測(cè)得到源節(jié)點(diǎn)1lA的數(shù)據(jù)流隊(duì)的傳輸路徑通過交換機(jī)104A、104B、104C到達(dá)目的節(jié)點(diǎn)102A。如圖1的虛線的箭頭示出了探測(cè)得到的數(shù)據(jù)流D1的傳輸路徑。
[0030]同樣,可以預(yù)測(cè)得到源節(jié)點(diǎn)1lA的數(shù)據(jù)流隊(duì)的傳輸路徑通過交換機(jī)104A、104D、104E到達(dá)目的節(jié)點(diǎn)102B。圖1的實(shí)線箭頭示出了探測(cè)得到的數(shù)據(jù)流D2的傳輸路徑??梢灶A(yù)測(cè)得到源節(jié)點(diǎn)1lB的數(shù)據(jù)流隊(duì)的傳輸路徑通過交換機(jī)104D、104B、104E到達(dá)目的節(jié)點(diǎn)102B。為避免混淆,圖中未標(biāo)出D3的傳輸路徑。
[0031]本發(fā)明實(shí)施例對(duì)網(wǎng)絡(luò)拓?fù)渲械脑垂?jié)點(diǎn)數(shù)目、交換機(jī)數(shù)目、目的節(jié)點(diǎn)數(shù)目和每個(gè)源節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)流的數(shù)目均不做限定。一個(gè)源節(jié)點(diǎn)可以包括不止一個(gè)數(shù)據(jù)流,如圖1中源節(jié)點(diǎn)1lA包括兩個(gè)數(shù)據(jù)流DjP D 2,源節(jié)點(diǎn)1lB包括數(shù)據(jù)流D3。本發(fā)明實(shí)施例可以對(duì)一個(gè)源節(jié)點(diǎn)的一條或多條數(shù)據(jù)流傳輸路徑進(jìn)行探測(cè),也可以對(duì)多個(gè)源節(jié)點(diǎn)的多條數(shù)據(jù)流路徑進(jìn)行探測(cè)。
[0032]本發(fā)明實(shí)施例可以在數(shù)據(jù)流傳輸之前根據(jù)數(shù)據(jù)流的包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲薪粨Q機(jī)對(duì)應(yīng)的流表來確定數(shù)據(jù)流的傳輸路徑,也可以在數(shù)據(jù)流的傳輸之后根據(jù)數(shù)據(jù)流的包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲薪粨Q機(jī)對(duì)應(yīng)的流表來確定數(shù)據(jù)流的傳輸路徑。
[0033]圖2是本發(fā)明一個(gè)實(shí)施例的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的方法的示意性流程圖。
[0034]201,獲取數(shù)據(jù)流的包頭字段、SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表。
[0035]202,根據(jù)數(shù)據(jù)流的包頭字段、網(wǎng)絡(luò)拓?fù)浜兔總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表確定數(shù)據(jù)流的傳輸路徑。
[0036]本發(fā)明實(shí)施例在軟件定義網(wǎng)絡(luò)SDN下使用數(shù)據(jù)流的包頭字段、SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表對(duì)任意一個(gè)數(shù)據(jù)流的傳輸路徑進(jìn)行探測(cè),這樣可以確定數(shù)據(jù)流的真實(shí)傳輸路徑。
[0037]控制設(shè)備可以從控制器獲取SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表。具體地,該網(wǎng)絡(luò)拓?fù)淇梢允穷A(yù)先獲知的,也可以是在網(wǎng)絡(luò)中部署控制器,由該控制器執(zhí)行網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn)過程得到的。SDN網(wǎng)絡(luò)拓?fù)淇梢允侨鏘所示的網(wǎng)絡(luò)拓?fù)?。SDN網(wǎng)絡(luò)拓?fù)浒〝?shù)據(jù)流傳輸?shù)脑垂?jié)點(diǎn)(如圖1中的101A、101B)、中間節(jié)點(diǎn)(如圖中的交換機(jī)104A、104B、104C、104D、104E)和目的節(jié)點(diǎn)(如圖1 中的 102A、102B)。
[0038]流表可以從控制器中獲取已存儲(chǔ)或備份的流表,也可以由控制器將流表下發(fā)到SDN交換機(jī)中,從每個(gè)交換機(jī)中獲取與每個(gè)交換機(jī)相對(duì)應(yīng)的流表。
[0039]本發(fā)明實(shí)施例可以在數(shù)據(jù)流的傳輸之前,根據(jù)數(shù)據(jù)流的包頭字段、網(wǎng)絡(luò)拓?fù)浜兔總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表來確定該數(shù)據(jù)流的傳輸路徑。也可以在數(shù)據(jù)流傳輸之后根據(jù)數(shù)據(jù)流的包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲薪粨Q機(jī)對(duì)應(yīng)的流表來確定數(shù)據(jù)流的傳輸路徑。
[0040]在本發(fā)明的一個(gè)實(shí)施例中,根據(jù)數(shù)據(jù)流的包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表確定數(shù)據(jù)流的傳輸路徑包括:根據(jù)包頭字段確定數(shù)據(jù)流傳輸路徑的源節(jié)點(diǎn),根據(jù)包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表確定數(shù)據(jù)流傳輸路徑中的中間交換機(jī)節(jié)點(diǎn)Sk,其中,k為正整數(shù),根據(jù)網(wǎng)絡(luò)拓?fù)浯_定與最后一個(gè)中間節(jié)點(diǎn)連接的目的節(jié)點(diǎn)。
[0041]數(shù)據(jù)流的包頭字段攜帶用于指示數(shù)據(jù)流的傳輸路徑的源節(jié)點(diǎn)的信息,因此,可以根據(jù)數(shù)據(jù)流的包頭字段探測(cè)該數(shù)據(jù)流進(jìn)行傳輸?shù)脑垂?jié)點(diǎn)。
[0042]可選地,作為一個(gè)實(shí)施例,可以根據(jù)包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定數(shù)據(jù)流的傳輸路徑的中間節(jié)點(diǎn)Sk。網(wǎng)絡(luò)拓?fù)浒ü?jié)點(diǎn)連接信息和端口連接信息。對(duì)于每個(gè)節(jié)點(diǎn)Syi為非負(fù)整數(shù),S1可以為源節(jié)點(diǎn)S?;蛑虚g節(jié)點(diǎn)Sk之一,均可以根據(jù)節(jié)點(diǎn)連接信息可以得到與節(jié)點(diǎn)3;連接的下一節(jié)點(diǎn)S i+1。接著,根據(jù)端口連接信息可以得到節(jié)點(diǎn)S1+1的輸入端口。然后,根據(jù)數(shù)據(jù)流的包頭字段和節(jié)點(diǎn)S 1+1的輸入端口,可以得到所述節(jié)點(diǎn)S1+1對(duì)應(yīng)的流表中與數(shù)據(jù)流相匹配的流表項(xiàng)S1+u],其中,j為正整數(shù)。最后,根據(jù)流表項(xiàng)s1+1]改寫或保留數(shù)據(jù)流的包頭字段。這樣,對(duì)于任一節(jié)點(diǎn)Si都可以根據(jù)網(wǎng)絡(luò)拓?fù)湟来握业接糜趥鬏斀o定數(shù)據(jù)流的下一節(jié)點(diǎn)S1+1和節(jié)點(diǎn)S 1+1中與數(shù)據(jù)流相匹配的流表項(xiàng)S 1+1」,并將流表項(xiàng)s1+1」計(jì)入該數(shù)據(jù)流傳輸路徑的中間交換機(jī)列表中。按照上述方法,直至確定最后一個(gè)邊緣節(jié)點(diǎn)及其對(duì)應(yīng)的與數(shù)據(jù)流相匹配的流表項(xiàng),并將所有匹配的流表項(xiàng)計(jì)入該數(shù)據(jù)流的中間交換機(jī)列表中。
[0043]流表項(xiàng)包括匹配域和執(zhí)行域。匹配域用于匹配數(shù)據(jù)流。執(zhí)行域用于對(duì)數(shù)據(jù)流進(jìn)行處理。流表項(xiàng)中對(duì)數(shù)據(jù)流的進(jìn)行處理的操作可以是對(duì)數(shù)據(jù)流進(jìn)行轉(zhuǎn)發(fā)、對(duì)數(shù)據(jù)流進(jìn)行丟棄、對(duì)數(shù)據(jù)流進(jìn)行修改(例如對(duì)數(shù)據(jù)流進(jìn)行封裝或者解封裝)、對(duì)數(shù)據(jù)流進(jìn)行承諾接入速率(committed access rate,CAR)操作或者對(duì)數(shù)據(jù)流執(zhí)行計(jì)數(shù)(counter)操作。其中,對(duì)數(shù)據(jù)流進(jìn)行轉(zhuǎn)發(fā)可以具體包括確定查找關(guān)鍵字(search key)、查找路由表、獲得下一跳的IP地址、確定所述下一跳的IP地址對(duì)應(yīng)的物理出端口以及對(duì)生存時(shí)間(time to live,TTL)域的值減I。
[0044]在本發(fā)明的一個(gè)實(shí)施例中,根據(jù)流表項(xiàng)S1+u ]改寫或保留數(shù)據(jù)流的包頭字段包括:如果流表項(xiàng)S1+u ]中包括對(duì)包頭字段的改寫操作,則根據(jù)改寫操作修改包頭字段;或者,如果流表項(xiàng)S1+1」中不包括對(duì)包頭字段的改寫操作,則保留包頭字段。
[0045]在確定最后一個(gè)中間節(jié)點(diǎn)之后,可以根據(jù)網(wǎng)絡(luò)拓?fù)渲械墓?jié)點(diǎn)連接信息來確定目的節(jié)點(diǎn)。
[0046]按照上述方法可以得到數(shù)據(jù)流的源節(jié)點(diǎn)、中間節(jié)點(diǎn)和目的節(jié)點(diǎn)。這樣就可以得到數(shù)據(jù)流完整的傳輸路徑。
[0047]本發(fā)明實(shí)施例的探測(cè)數(shù)據(jù)流的傳輸路徑可以在數(shù)據(jù)流傳輸之前探測(cè),也可以在數(shù)據(jù)流傳輸之后探測(cè)。本發(fā)明僅以在數(shù)據(jù)流的傳輸之前探測(cè)傳輸路徑為例進(jìn)行示例性說明,但本發(fā)明并不限定于此。
[0048]本發(fā)明的一個(gè)實(shí)施例可以在數(shù)據(jù)流的傳輸之后探測(cè)數(shù)據(jù)流的傳輸路徑,這樣可以通過統(tǒng)計(jì)網(wǎng)絡(luò)中數(shù)據(jù)流的傳輸路徑,得到不同節(jié)點(diǎn)的傳輸負(fù)載。然后,通過比較網(wǎng)絡(luò)中不同節(jié)點(diǎn)的傳輸負(fù)載,對(duì)后續(xù)的數(shù)據(jù)流傳輸路徑進(jìn)行合理分配,以實(shí)現(xiàn)負(fù)載均衡等功能。
[0049]本發(fā)明的一個(gè)實(shí)施例可以在數(shù)據(jù)流的傳輸之前探測(cè)數(shù)據(jù)流的傳輸路徑,這樣可以在數(shù)據(jù)流的傳輸之前對(duì)數(shù)據(jù)流進(jìn)行操作。例如,在數(shù)據(jù)流的傳輸之前,將真實(shí)傳輸路徑的源地址、目的地址與防火墻的安全策略相比較,進(jìn)而能夠確定該數(shù)據(jù)流的傳輸是否合法。當(dāng)數(shù)據(jù)流的傳輸路徑非法時(shí),可以丟棄該數(shù)據(jù)流。
[0050]流表項(xiàng)中可以包括重寫數(shù)據(jù)包的包頭字段。重寫可能會(huì)修改數(shù)據(jù)包的某些信息,例如可以修改源/目的硬件(Media Access Control,MAC)地址、源/目的網(wǎng)際協(xié)議(Internet Protocol Address,IP)地址、源 / 目的傳輸控制協(xié)議(Transmiss1n ControlProtocol, TCP)/ 用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol, UDP)端口號(hào)等。這樣,重寫可使得數(shù)據(jù)包和傳輸路徑的真實(shí)性受到很大的挑戰(zhàn)。例如,若有安全策略:Isrc IP = A,dst IP = B0操作:拒絕訪問},對(duì)于數(shù)據(jù)流X,如果源/目的IP地址分別為src IP = A,dst IP = B,那么X與安全策略發(fā)生了沖突,應(yīng)當(dāng)丟棄X。而有了數(shù)據(jù)包的重寫規(guī)則,惡意的攻擊者(可能為惡意的第三方應(yīng)用部署于控制器上,并獲取了下發(fā)流表的權(quán)限)可以通過修改數(shù)據(jù)包的包頭字段達(dá)到傳輸非法數(shù)據(jù)流(例如X)的目的。例如,在第一個(gè)交換機(jī)上下發(fā)流表1,流表I將源IP修改為C,或者,在第二個(gè)交換機(jī)上下發(fā)流表2,流表2將目的IP修改為D,則X可以繞過防火墻的安全策略進(jìn)行非法傳輸。因此,若要檢測(cè)網(wǎng)絡(luò)數(shù)據(jù)流的傳輸是否為非法傳輸,則需要找到真實(shí)的網(wǎng)絡(luò)數(shù)據(jù)流的傳輸路徑。如果數(shù)據(jù)流的傳輸路徑的流表項(xiàng)S1+u ]中包括對(duì)包頭字段的改寫操作,則可以在數(shù)據(jù)流傳輸之前探測(cè)該數(shù)據(jù)流的真實(shí)傳輸路徑,并結(jié)合防火墻的安全策略判斷該數(shù)據(jù)流的傳輸路徑是否合法。
[0051]本發(fā)明實(shí)施例可以應(yīng)用在上述存在安全策略的場(chǎng)景中,確定數(shù)據(jù)流的傳輸路徑。但本發(fā)明對(duì)確定數(shù)據(jù)流的傳輸路徑的具體應(yīng)用場(chǎng)景不做限定。
[0052]可選地,作為一個(gè)實(shí)施例,可以獲取防火墻的安全策略,根據(jù)源節(jié)點(diǎn)確定源地址,并根據(jù)目的節(jié)點(diǎn)確定目的地址。然后,根據(jù)源地址、目的地址和防火墻的安全策略確定數(shù)據(jù)流的傳輸路徑是否合法。
[0053]例如,當(dāng)源地址和目的地址與防火墻的安全策略沖突時(shí),可以確定數(shù)據(jù)流的傳輸路徑為非法的。當(dāng)數(shù)據(jù)流的傳輸路徑非法時(shí),可以執(zhí)行相應(yīng)的操作,例如,可以丟棄該數(shù)據(jù)流。
[0054]當(dāng)源地址和目的地址與防火墻的安全策略不沖突時(shí),可以確定數(shù)據(jù)流的傳輸路徑為合法的。判斷數(shù)據(jù)流合法時(shí),可以進(jìn)行數(shù)據(jù)流的正常傳輸。
[0055]網(wǎng)絡(luò)拓?fù)渲锌梢园ㄖ辽僖粋€(gè)源節(jié)點(diǎn)和至少一個(gè)目的節(jié)點(diǎn)。每個(gè)源節(jié)點(diǎn)可以包括至少一個(gè)數(shù)據(jù)流。這樣,可以對(duì)每個(gè)數(shù)據(jù)流的傳輸路徑的進(jìn)行探測(cè),最終得到所有源節(jié)點(diǎn)的所有數(shù)據(jù)流的傳輸路徑。
[0056]根據(jù)上述探測(cè)數(shù)據(jù)流的傳輸路徑的方法,可以得到網(wǎng)絡(luò)拓?fù)渲兴性垂?jié)點(diǎn)的任意一個(gè)數(shù)據(jù)流的傳輸路徑。如圖1所示,源節(jié)點(diǎn)101A的數(shù)據(jù)流01的傳輸路徑可以依次經(jīng)交換104A、交換機(jī)104B、交換機(jī)104C到達(dá)目的節(jié)點(diǎn)102A。源節(jié)點(diǎn)101A的數(shù)據(jù)流D2的傳輸路徑可以依次經(jīng)交換104A、交換機(jī)104D、交換機(jī)104E到達(dá)目的節(jié)點(diǎn)102B。源節(jié)點(diǎn)101B的數(shù)據(jù)流D3的傳輸路徑可以依次經(jīng)交換104D、交換機(jī)104B、交換機(jī)104E到達(dá)目的節(jié)點(diǎn)102B。
[0057]應(yīng)理解,本發(fā)明的一個(gè)實(shí)施例中探測(cè)數(shù)據(jù)流的傳輸路徑的方法可以由獨(dú)立的控制設(shè)備執(zhí)行,也可以由控制器執(zhí)行。本發(fā)明實(shí)施例中僅以該方法由控制設(shè)備執(zhí)行為例進(jìn)行示例性說明,本發(fā)明對(duì)此不做限定。
[0058]本發(fā)明實(shí)施例對(duì)源節(jié)點(diǎn)、交換機(jī)和目的節(jié)點(diǎn)的具體設(shè)備不作限定。例如,本發(fā)明實(shí)施例中源節(jié)點(diǎn)可以是主機(jī),也可以是虛擬機(jī)。目的節(jié)點(diǎn)可以是主機(jī),也可以是虛擬機(jī)。交換機(jī)可以為硬件交換機(jī),也可以為軟件交換機(jī)。
[0059]下面將結(jié)合具體實(shí)施例對(duì)本發(fā)明的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的方法進(jìn)行示例性說明。
[0060]圖3是本發(fā)明另一實(shí)施例的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的方法的示意性流程圖。
[0061]301,獲取網(wǎng)絡(luò)拓?fù)浜土鞅怼?br>[0062]控制設(shè)備可以從控制器獲取SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表。具體地,該網(wǎng)絡(luò)拓?fù)淇梢允穷A(yù)先獲知的,也可以是在網(wǎng)絡(luò)中部署控制器,由該控制器執(zhí)行網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn)過程得到的。SDN網(wǎng)絡(luò)拓?fù)淇梢允侨鏘所示的網(wǎng)絡(luò)拓?fù)洹DN網(wǎng)絡(luò)拓?fù)浒〝?shù)據(jù)流傳輸?shù)脑垂?jié)點(diǎn)(如圖1中的101A、101B)、中間節(jié)點(diǎn)(如圖1中的交換機(jī)104A、104B、104C、104D、104E)和目的節(jié)點(diǎn)(如圖1 中的 102A、102B)。
[0063]流表可以從控制器中獲取已存儲(chǔ)或備份的流表,也可以由控制器將流表下發(fā)到SDN交換機(jī)中,從每個(gè)交換機(jī)中獲取與每個(gè)交換機(jī)相對(duì)應(yīng)的流表。
[0064]302,選擇一個(gè)源節(jié)點(diǎn)S。。
[0065]具體地,從網(wǎng)絡(luò)拓?fù)渲羞x擇一個(gè)需要進(jìn)行數(shù)據(jù)流的傳輸路徑探測(cè)的源節(jié)點(diǎn)S。。例如,圖1中的1IAUOIBo
[0066]數(shù)據(jù)流的包頭字段攜帶用于指示數(shù)據(jù)流的傳輸路徑的源節(jié)點(diǎn)S。。在探測(cè)數(shù)據(jù)流的傳輸路徑時(shí),可以根據(jù)包頭字段將數(shù)據(jù)流分配在不同的源節(jié)點(diǎn)。一個(gè)源節(jié)點(diǎn)可以包括多個(gè)數(shù)據(jù)流。從一個(gè)源節(jié)點(diǎn)出發(fā),逐個(gè)探測(cè)每個(gè)源節(jié)點(diǎn)中每個(gè)數(shù)據(jù)流的傳輸路徑。
[0067]303,獲取源節(jié)點(diǎn)S。的一個(gè)數(shù)據(jù)流,確定與該數(shù)據(jù)流的源節(jié)點(diǎn)S。相連接的交換機(jī)
S1O
[0068]源節(jié)點(diǎn)S。中可以包括不止一個(gè)數(shù)據(jù)流。步驟301獲取的網(wǎng)絡(luò)拓?fù)浒ü?jié)點(diǎn)連接信息和端口連接信息。從源節(jié)點(diǎn)S。出發(fā),根據(jù)節(jié)點(diǎn)連接信息可以找出與源節(jié)點(diǎn)S。連接的交換機(jī)S1O根據(jù)端口連接信息可以找出交換機(jī)輸入端口。
[0069]例如,圖1中源節(jié)點(diǎn)1lB包括數(shù)據(jù)流D3,源節(jié)點(diǎn)1lA包括數(shù)據(jù)流DnD2t3這里,以探測(cè)數(shù)據(jù)流D1的傳輸路徑為例進(jìn)行示例性說明。對(duì)于數(shù)據(jù)流D i,從源節(jié)點(diǎn)1lA出發(fā),根據(jù)網(wǎng)絡(luò)拓?fù)渲械墓?jié)點(diǎn)連接信息可以找出與源節(jié)點(diǎn)1lA連接的第一個(gè)交換機(jī)104A。根據(jù)端口連接信息可以找出與第一個(gè)交換機(jī)104A的輸入端口。
[0070]304,遍歷S1*流表項(xiàng),找出與數(shù)據(jù)流匹配的流表項(xiàng)S u,其中,j為正整數(shù)。
[0071]遍歷S1*流表項(xiàng),將數(shù)據(jù)流的包頭字段和交換機(jī)S:的輸入端口與S i中的每個(gè)流表項(xiàng)進(jìn)行匹配。如果流表項(xiàng)S。匹配成功,則將S u計(jì)入中間交換機(jī)列表信息中。
[0072]控制器將流表下發(fā)到交換機(jī)中,流表由多個(gè)流表項(xiàng)組成,每個(gè)流表項(xiàng)對(duì)應(yīng)一個(gè)轉(zhuǎn)發(fā)規(guī)則。數(shù)據(jù)流的目的節(jié)點(diǎn)是通過查詢流表來獲得的。流表項(xiàng)包括匹配域和執(zhí)行域。匹配域用于匹配數(shù)據(jù)流。執(zhí)行域用于對(duì)數(shù)據(jù)流進(jìn)行處理。其中處理可以是修改、封裝、解封裝、轉(zhuǎn)發(fā)或丟棄。
[0073]本發(fā)明實(shí)施例對(duì)流表項(xiàng)的查找和匹配方式不做限定。交換機(jī)既可以查看匹配域中的每一項(xiàng)去逐個(gè)匹配,也可以通過計(jì)算哈希值再匹配。例如,流表中的某些流表項(xiàng)可以通過匹配域的關(guān)鍵值計(jì)算得出相同的哈希值。交換機(jī)可以將具有共同特征(例如,相同的哈希值)的流表項(xiàng)放著在一個(gè)桶(Bucket)中。Buket中的元素以雙向哈希鏈表的形式組織在一起。流表查詢時(shí),先根據(jù)數(shù)據(jù)流中的以太幀的關(guān)鍵值和長度計(jì)算得出一個(gè)哈希值,進(jìn)而與具有相同哈希值的Buket中的流表項(xiàng)向匹配。通常情況下,Bucket中的元素?cái)?shù)目為一個(gè)或兩個(gè)。這樣,可以根據(jù)哈希值快速確定匹配的流表項(xiàng)。
[0074]如果遍歷S1*的流表項(xiàng)之后,每個(gè)流表項(xiàng)均不能與數(shù)據(jù)流的包頭字段和交換機(jī)S !的輸入端口相匹配,則該數(shù)據(jù)流的路徑不是一條完整的傳輸路徑。該數(shù)據(jù)流的傳輸路徑探測(cè)終止。
[0075]305,判斷流表項(xiàng)Sli j中是否包括改寫操作。
[0076]判斷匹配成功的交換機(jī)流表中的流表項(xiàng)S。中是否包括改寫操作。
[0077]306,確定下一跳交換機(jī)。
[0078]如果步驟305確定Sli j中不包括改寫操作,則執(zhí)行步驟306,確定下一跳交換機(jī)S 2。
[0079]由交換機(jī)S1確定交換機(jī)S 1+1的步驟同步驟303由源節(jié)點(diǎn)S。確定交換機(jī)S ^勺步驟,其中,i為非負(fù)整數(shù)。同一個(gè)交換機(jī)節(jié)點(diǎn)可以與不止一個(gè)交換機(jī)節(jié)點(diǎn)相連接。從節(jié)點(diǎn)Sia發(fā),根據(jù)S1的節(jié)點(diǎn)連接信息可以預(yù)測(cè)與節(jié)點(diǎn)S 1連接的用于傳輸所需探測(cè)傳輸路徑的數(shù)據(jù)流的下一跳交換機(jī)S1+1。根據(jù)S1的端口連接信息可以預(yù)測(cè)交換機(jī)S 1+1的輸入端口。
[0080]例如,圖1中對(duì)于數(shù)據(jù)流D1,根據(jù)步驟303可以探測(cè)得出與源節(jié)點(diǎn)1lA連接的第一個(gè)交換機(jī)104A和第一個(gè)交換機(jī)的輸入端口。交換機(jī)104A可以與交換機(jī)104B連接,也可以與104D連接。根據(jù)網(wǎng)絡(luò)拓?fù)淇梢蕴綔y(cè)數(shù)據(jù)流01的傳輸路徑中與節(jié)點(diǎn)104A連接的交換機(jī)是104B和104D中的具體哪一個(gè)。如圖1中預(yù)測(cè)得出與節(jié)點(diǎn)104A連接的用于傳輸數(shù)據(jù)流D1的下一跳交換機(jī)為104B。根據(jù)節(jié)點(diǎn)104A的端口連接信息可以預(yù)測(cè)交換機(jī)104B的輸入端口。同理,可以預(yù)測(cè)得出與節(jié)點(diǎn)104B連接的用于傳輸數(shù)據(jù)流D1的下一跳交換機(jī)為104C。
[0081]在預(yù)測(cè)得出下一跳交換機(jī)S1+1和S 1+1的輸入端口之后,遍歷交換機(jī)S 1+1流表中的流表項(xiàng),將數(shù)據(jù)流的包頭字段和交換機(jī)S1+1的輸入端口與交換機(jī)S 1+1流表中的每個(gè)流表項(xiàng)進(jìn)行匹配。如果流表項(xiàng)S1+li j匹配成功,則將S1+li j計(jì)入中間交換機(jī)列表信息中,其中,j為正整數(shù)。
[0082]應(yīng)注意,在數(shù)據(jù)流的包頭字段和交換機(jī)S1+1的輸入端口與交換機(jī)S 1+1流表中的每個(gè)流表項(xiàng)進(jìn)行匹配時(shí),使用的數(shù)據(jù)流的包頭字段如果上一跳流表的流表項(xiàng)中有改寫操作,則使用修改后的包頭字段。具體地,如果節(jié)點(diǎn)流表中流表項(xiàng)S u包括對(duì)數(shù)據(jù)流的包頭字段的改寫操作,在確定流表項(xiàng)S1J之后根據(jù)改寫操作修改數(shù)據(jù)流的包頭字段。在對(duì)下一跳交換機(jī)S1+1的流表項(xiàng)S i^進(jìn)行匹配時(shí),這里使用數(shù)據(jù)流的包頭字段和交換機(jī)S 1+1的輸入端口與交換機(jī)S1+1中的每個(gè)流表項(xiàng)進(jìn)行匹配,這里使用的數(shù)據(jù)流的包頭字段為已經(jīng)根據(jù)流表項(xiàng)S1J中的改寫操作對(duì)數(shù)據(jù)流的包頭字段進(jìn)行修改后的包頭字段。
[0083]如果遍歷S1*的流表項(xiàng)之后,每個(gè)流表項(xiàng)均不能與數(shù)據(jù)流的包頭字段和交換機(jī)S ,的輸入端口相匹配,則該數(shù)據(jù)流的路徑不是一條完整的傳輸路徑。該數(shù)據(jù)流的傳輸路徑探測(cè)終止。
[0084]如果節(jié)點(diǎn)流表中流表項(xiàng)S u不包括對(duì)數(shù)據(jù)流的包頭字段的改寫操作,則保留數(shù)據(jù)流的包頭字段,并接著執(zhí)行步驟306確定下一跳交換機(jī)S1+1。
[0085]307,修改數(shù)據(jù)流的包頭字段。
[0086]如果步驟305確定流表項(xiàng)Sli j中包括改寫操作,則執(zhí)行步驟307,修改數(shù)據(jù)流的包頭字段,并將修改后的數(shù)據(jù)流包的包頭字段保存在數(shù)據(jù)流中,替換原來的數(shù)據(jù)流的包頭字段。在修改數(shù)據(jù)流的包頭字段之后,接著執(zhí)行步驟306確定下一跳交換機(jī)S1+1。
[0087]308,判斷是否為邊緣交換機(jī)。
[0088]判斷交換機(jī)S1+1是否為邊緣交換機(jī)。可以根據(jù)控制器的網(wǎng)絡(luò)拓?fù)鋪砼袛嘟粨Q機(jī)S1+1是否為邊緣交換機(jī)。當(dāng)交換機(jī)出端口的下一跳連接的是主機(jī)或者虛擬機(jī)時(shí),該交換機(jī)認(rèn)為是邊緣交換機(jī)。
[0089]如果Si+1不是邊緣交換機(jī),則執(zhí)行步驟304,遍歷S i+1的流表項(xiàng),確定與數(shù)據(jù)流D丨匹配的流表項(xiàng)Si+1,.j。如果Si+1是邊緣交換機(jī),則執(zhí)行步驟309。
[0090]例如,圖1中對(duì)于數(shù)據(jù)流D1,判斷交換機(jī)104B是否為邊緣交換機(jī),如果不是,則執(zhí)行步驟304,遍歷104B的流表項(xiàng),找出104B的流表中與數(shù)據(jù)流D1-配的流表項(xiàng)。
[0091]309,確定目的節(jié)點(diǎn)。
[0092]如果由步驟308得到S1+1為邊緣交換機(jī),執(zhí)行步驟309確定目的節(jié)點(diǎn)??梢愿鶕?jù)網(wǎng)絡(luò)拓?fù)渲凶詈笠粋€(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)連接信息確定目的節(jié)點(diǎn)。
[0093]310,判斷該源節(jié)點(diǎn)是否還有其它未檢測(cè)的數(shù)據(jù)流。
[0094]判斷該源節(jié)點(diǎn)是否還有其它未檢測(cè)的數(shù)據(jù)流。如果該源節(jié)點(diǎn)沒有其它未檢測(cè)的數(shù)據(jù)流,則執(zhí)行步驟311。
[0095]如果該源節(jié)點(diǎn)還有其它未檢測(cè)的數(shù)據(jù)流,則執(zhí)行步驟303,獲取該源節(jié)點(diǎn)的未進(jìn)行流路徑探測(cè)的另一數(shù)據(jù)流。如果一個(gè)源節(jié)點(diǎn)中包括不止一個(gè)數(shù)據(jù)流,對(duì)每個(gè)數(shù)據(jù)流執(zhí)行步驟303-309,可以得到一個(gè)源節(jié)點(diǎn)的每個(gè)數(shù)據(jù)流的傳輸路徑。
[0096]例如,圖1中對(duì)于數(shù)據(jù)流D1,判斷交換機(jī)104C是否為邊緣交換機(jī),如果得出104C是邊緣交換機(jī),由邊緣交換機(jī)104C可以確定目的節(jié)點(diǎn)102A。確定源節(jié)點(diǎn)1lA的數(shù)據(jù)流D1的傳輸路徑之后,判斷源節(jié)點(diǎn)1lA是否還有未探測(cè)的數(shù)據(jù)流。如果源節(jié)點(diǎn)1lA還有未探測(cè)的數(shù)據(jù)流,比如圖1中的數(shù)據(jù)流D2的傳輸路徑還未探測(cè),那么執(zhí)行步驟303-309,對(duì)未進(jìn)行傳輸路徑探測(cè)的數(shù)據(jù)流進(jìn)行路徑探測(cè)。
[0097]對(duì)于圖1中的源節(jié)點(diǎn)101A,如果已經(jīng)探測(cè)得到源節(jié)點(diǎn)1lA中全部數(shù)據(jù)流的傳輸路徑,那么源節(jié)點(diǎn)1lA中沒有其它未檢測(cè)的數(shù)據(jù)流,則執(zhí)行步驟311。
[0098]311,判斷是否還有未檢測(cè)的源節(jié)點(diǎn)。
[0099]如果由步驟310得出該源節(jié)點(diǎn)沒有其它未檢測(cè)的數(shù)據(jù)流,則執(zhí)行步驟311,判斷是否還有未檢測(cè)的源節(jié)點(diǎn)。如果已經(jīng)檢測(cè)所有源節(jié)點(diǎn)的所有數(shù)據(jù)流的傳輸路徑,則結(jié)束該程序。
[0100]如果還有未檢測(cè)的源節(jié)點(diǎn),則執(zhí)行步驟302,找出未進(jìn)行數(shù)據(jù)流的傳輸路徑檢測(cè)的另一個(gè)源節(jié)點(diǎn)。如果網(wǎng)絡(luò)拓?fù)浒ㄖ辽僖粋€(gè)源節(jié)點(diǎn),對(duì)每個(gè)源節(jié)點(diǎn)執(zhí)行步驟302-310,可以得到每個(gè)源節(jié)點(diǎn)中每個(gè)數(shù)據(jù)流的傳輸路徑。
[0101]對(duì)于圖1中的源節(jié)點(diǎn)101A,如果已經(jīng)探測(cè)得到源節(jié)點(diǎn)1lA中全部數(shù)據(jù)流的傳輸路徑,則執(zhí)行步驟311,判斷是否還有未檢測(cè)的源節(jié)點(diǎn)。例如,如果圖1中還存在其他未進(jìn)行數(shù)據(jù)流傳輸路徑檢測(cè)的源節(jié)點(diǎn)101B。那么對(duì)源節(jié)點(diǎn)1lB中數(shù)據(jù)流的傳輸路徑進(jìn)行檢測(cè)。
[0102]圖4是本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)流的傳輸路徑的示意性流程圖。
[0103]圖4中數(shù)據(jù)流經(jīng)探測(cè)得到傳輸路徑為:從源節(jié)點(diǎn)出發(fā),經(jīng)過交換機(jī)401、交換機(jī)402、交換機(jī)403、……交換機(jī)N到達(dá)目的節(jié)點(diǎn)。具體地,數(shù)據(jù)流從源節(jié)點(diǎn)出發(fā),經(jīng)過交換機(jī)401,找到交換機(jī)401中與該數(shù)據(jù)流匹配的流表項(xiàng)401-2,并經(jīng)過流表項(xiàng)401-2中的出端口到達(dá)交換機(jī)402 ;接著,經(jīng)過交換機(jī)402,找到交換機(jī)402中與該數(shù)據(jù)流匹配的流表項(xiàng)402-3,并經(jīng)過流表項(xiàng)402-3中的出端口到達(dá)交換機(jī)403 ;然后,經(jīng)過交換機(jī)403,找到交換機(jī)403中與該數(shù)據(jù)流匹配的流表項(xiàng)403-1,并經(jīng)過流表項(xiàng)403-1中的出端口到達(dá)下一跳交換機(jī);……直至找到最后一跳交換機(jī)N,找到交換機(jī)N中與該數(shù)據(jù)流匹配的流表項(xiàng)N-2,并經(jīng)過流表項(xiàng)N-2中的出端口到達(dá)目的節(jié)點(diǎn)。
[0104]圖2、圖3和圖4從控制設(shè)備的角度詳細(xì)描述了 SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的方法,下面將結(jié)合圖5和圖6詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的
目.ο
[0105]圖5是本發(fā)明一個(gè)實(shí)施例的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的裝置的框圖。圖5的裝置50包括獲取單元51和確定單元52。
[0106]第一獲取單元50用于獲取數(shù)據(jù)流的包頭字段、SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表。
[0107]第一確定單元51用于根據(jù)第一獲取單元獲取的數(shù)據(jù)流的包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定數(shù)據(jù)流的傳輸路徑。
[0108]本發(fā)明實(shí)施例在軟件定義網(wǎng)絡(luò)SDN下使用數(shù)據(jù)流的包頭字段、SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表對(duì)任意一個(gè)數(shù)據(jù)流的傳輸路徑進(jìn)行探測(cè),這樣可以確定數(shù)據(jù)流的真實(shí)傳輸路徑。
[0109]圖5的裝置50可以執(zhí)行圖2、圖3、和圖4所示的方法的各個(gè)流程,為避免重復(fù),在此不再詳細(xì)描述。
[0110]可選地,在本發(fā)明的一個(gè)實(shí)施例中,第一確定單元51具體用于根據(jù)包頭字段確定數(shù)據(jù)流的傳輸路徑的源節(jié)點(diǎn)S。,根據(jù)包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定數(shù)據(jù)流的傳輸路徑的中間節(jié)點(diǎn)Sk,其中,k為正整數(shù),并根據(jù)網(wǎng)絡(luò)拓?fù)浯_定與最后一個(gè)中間節(jié)點(diǎn)連接的目的節(jié)點(diǎn)。
[0111]可選地,在本發(fā)明的一個(gè)實(shí)施例中,網(wǎng)絡(luò)拓?fù)浒ü?jié)點(diǎn)連接信息和端口連接信息,第一確定單元51具體用于對(duì)每個(gè)節(jié)點(diǎn)Si執(zhí)行下列操作,其中節(jié)點(diǎn)S ;為所述源節(jié)點(diǎn)S?;蛩鲋虚g節(jié)點(diǎn)Sk之一,i為非負(fù)整數(shù):根據(jù)節(jié)點(diǎn)連接信息確定與節(jié)點(diǎn)S ;連接的下一節(jié)點(diǎn)S i+1,根據(jù)端口連接信息確定所述節(jié)點(diǎn)S1+1的輸入端口,根據(jù)包頭字段和節(jié)點(diǎn)S 1+1的輸入端口,確定節(jié)點(diǎn)S1+1對(duì)應(yīng)的流表中與數(shù)據(jù)流相匹配的流表項(xiàng)S 1+1,,,并根據(jù)流表項(xiàng)S1+1,,改寫或保留包頭字段。
[0112]可選地,在本發(fā)明的一個(gè)實(shí)施例中,第一確定單元51具體用于在流表項(xiàng)Si+1」中包括對(duì)包頭字段的改寫操作的情況下,則根據(jù)改寫操作修改包頭字段,或者,在流表項(xiàng)不包括對(duì)包頭字段的改寫操作的情況下,則保留包頭字段。
[0113]可選地,在本發(fā)明的一個(gè)實(shí)施例中,裝置還包括第二獲取單元、第二確定單元和第三確定單元。其中,第二獲取單元用于獲取防火墻的安全策略。第二確定單元用于根據(jù)源節(jié)點(diǎn)確定源地址,并根據(jù)目的節(jié)點(diǎn)確定目的地址。第三確定單元用于根據(jù)源地址、目的地址和防火墻的安全策略確定數(shù)據(jù)流的傳輸路徑是否合法。
[0114]可選地,在本發(fā)明的一個(gè)實(shí)施例中,第三確定單元還用于當(dāng)數(shù)據(jù)流的傳輸路徑非法時(shí),丟棄數(shù)據(jù)流。
[0115]應(yīng)理解,本發(fā)明的一個(gè)實(shí)施例中探測(cè)數(shù)據(jù)流的傳輸路徑的裝置可以為獨(dú)立的控制設(shè)備,也可以為控制器。本發(fā)明對(duì)此不做限定。
[0116]圖6是本發(fā)明另一實(shí)施例的SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的裝置的框圖。
[0117]圖6裝置60包括處理器61、存儲(chǔ)器62和總線系統(tǒng)63。處理器61控制裝置60的操作。存儲(chǔ)器62可以包括只讀存儲(chǔ)器和隨機(jī)存取存儲(chǔ)器,并向處理器61提供指令和數(shù)據(jù)。存儲(chǔ)器62的一部分還可以包括非易失行隨機(jī)存取存儲(chǔ)器(NVRAM,Non-Volatile RandomAccess Memory)。裝置的各個(gè)組件通過總線系統(tǒng)63耦合在一起,其中總線系統(tǒng)63除包括數(shù)據(jù)總線之外,還包括電源總線、控制總線和狀態(tài)信號(hào)總線。但是為了清楚說明起見,在圖中將各種總線都標(biāo)為總線系統(tǒng)63。
[0118]上述本發(fā)明實(shí)施例揭示的方法可以應(yīng)用于處理器61中,或者由處理器61實(shí)現(xiàn)。在實(shí)現(xiàn)過程中,上述方法的各步驟可以通過處理器61中的硬件的集成邏輯電路或者軟件形式的指令完成。處理器61可以是通用處理器、數(shù)字信號(hào)處理器、專用集成電路、現(xiàn)場(chǎng)可編程門陣列或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件,可以實(shí)現(xiàn)或者執(zhí)行本發(fā)明實(shí)施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者任何常規(guī)的處理器等。結(jié)合本發(fā)明實(shí)施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲(chǔ)器,閃存、只讀存儲(chǔ)器,可編程只讀存儲(chǔ)器或者電可擦寫可編程存儲(chǔ)器、寄存器等本領(lǐng)域成熟的存儲(chǔ)介質(zhì)中。該存儲(chǔ)介質(zhì)位于存儲(chǔ)器62,處理器61讀取存儲(chǔ)器62中的信息,結(jié)合其硬件完成上述方法的步驟。
[0119]具體地,處理器61可以獲取存儲(chǔ)器62中存儲(chǔ)的數(shù)據(jù)流的包頭字段、SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,并根據(jù)數(shù)據(jù)流的包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定數(shù)據(jù)流的傳輸路徑。存儲(chǔ)器62存儲(chǔ)使得處理器61按照網(wǎng)絡(luò)拓?fù)浜土鞅韴?zhí)行程序的指令。
[0120]本發(fā)明實(shí)施例在軟件定義網(wǎng)絡(luò)SDN下使用SDN的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表對(duì)任意一個(gè)數(shù)據(jù)流的傳輸路徑進(jìn)行探測(cè),這樣可以確定數(shù)據(jù)流的真實(shí)傳輸路徑。
[0121]裝置60能夠?qū)崿F(xiàn)前述方法實(shí)施例中的步驟,為避免重復(fù),不再詳細(xì)描述。
[0122]可選地,在本發(fā)明的一個(gè)實(shí)施例中,處理器61可以根據(jù)包頭字段確定數(shù)據(jù)流的傳輸路徑的源節(jié)點(diǎn)S。和目的節(jié)點(diǎn),根據(jù)包頭字段、網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定數(shù)據(jù)流的傳輸路徑的中間節(jié)點(diǎn)Sk,其中,k為正整數(shù),并根據(jù)網(wǎng)絡(luò)拓?fù)浯_定與最后一個(gè)中間節(jié)點(diǎn)連接的目的節(jié)點(diǎn)。
[0123]可選地,在本發(fā)明的一個(gè)實(shí)施例中,網(wǎng)絡(luò)拓?fù)浒ü?jié)點(diǎn)連接信息和端口連接信息,處理器61可以對(duì)每個(gè)節(jié)點(diǎn)S1執(zhí)行下列操作,其中節(jié)點(diǎn)S1為所述源節(jié)點(diǎn)S?;蛩鲋虚g節(jié)點(diǎn)Sk之一,i為非負(fù)整數(shù):根據(jù)節(jié)點(diǎn)連接信息確定與節(jié)點(diǎn)S ;連接的下一節(jié)點(diǎn)S i+1,根據(jù)端口連接信息確定所述節(jié)點(diǎn)S1+1的輸入端口,根據(jù)包頭字段和節(jié)點(diǎn)S 1+1的輸入端口,確定節(jié)點(diǎn)S 1+1對(duì)應(yīng)的流表中與數(shù)據(jù)流相匹配的流表項(xiàng)S1+1」,并根據(jù)流表項(xiàng)S1+u ]改寫或保留包頭字段。
[0124]可選地,在本發(fā)明的一個(gè)實(shí)施例中,處理器61可以在流表項(xiàng)S1+li j中包括對(duì)包頭字段的改寫操作的情況下,則根據(jù)改寫操作修改包頭字段,或者,在流表項(xiàng)S1+1,,中不包括對(duì)包頭字段的改寫操作的情況下,則保留包頭字段。
[0125]可選地,在本發(fā)明的一個(gè)實(shí)施例中,處理器61可以用于獲取防火墻的安全策略。根據(jù)源節(jié)點(diǎn)確定源地址,根據(jù)目的節(jié)點(diǎn)確定目的地址。然后,根據(jù)源地址、目的地址和防火墻的安全策略確定數(shù)據(jù)流的傳輸路徑是否合法。
[0126]可選地,在本發(fā)明的一個(gè)實(shí)施例中,處理器61用于當(dāng)數(shù)據(jù)流的傳輸路徑非法時(shí),丟棄數(shù)據(jù)流。
[0127]本發(fā)明實(shí)施例對(duì)通信系統(tǒng)中源節(jié)點(diǎn)、目的節(jié)點(diǎn)和交換機(jī)的數(shù)量不作限定。本發(fā)明實(shí)施例可以對(duì)一個(gè)源節(jié)點(diǎn)的一個(gè)或多個(gè)數(shù)據(jù)流的傳輸路徑進(jìn)行探測(cè),也可以對(duì)多個(gè)源節(jié)點(diǎn)的多個(gè)數(shù)據(jù)流的傳輸路徑進(jìn)行探測(cè)。
[0128]本發(fā)明實(shí)施例對(duì)源節(jié)點(diǎn)、交換機(jī)和目的節(jié)點(diǎn)的具體設(shè)備不作限定。例如,本發(fā)明實(shí)施例中源節(jié)點(diǎn)可以是主機(jī),也可以是虛擬機(jī)。目的節(jié)點(diǎn)可以是主機(jī),也可以是虛擬機(jī)。交換機(jī)可以為硬件交換機(jī),也可以為軟件交換機(jī)。
[0129]本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例中描述的各方法步驟和單元,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各實(shí)施例的步驟及組成。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。本領(lǐng)域普通技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0130]結(jié)合本文中所公開的實(shí)施例描述的方法或步驟可以用硬件、處理器執(zhí)行的軟件程序,或者二者的結(jié)合來實(shí)施。軟件程序可以置于隨機(jī)存儲(chǔ)器(RAM,Random Access Memory)、內(nèi)存、只讀存儲(chǔ)器(ROM,Read-Only Memory)、可編程只讀存儲(chǔ)器(PROM,ProgrammableRead-Only Memory)、可擦除可編程只讀存儲(chǔ)器(EPR0M,Erasable Programmable Read OnlyMemory),、寄存器、硬盤、可移動(dòng)磁盤、CD-R0M、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0131]盡管通過參考附圖并結(jié)合優(yōu)選實(shí)施例的方式對(duì)本發(fā)明進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此。在不脫離本發(fā)明的精神和實(shí)質(zhì)的前提下,本領(lǐng)域普通技術(shù)人員可以對(duì)本發(fā)明的實(shí)施例進(jìn)行各種等效的修改或替換,而這些修改或替換都應(yīng)在本發(fā)明的涵蓋范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種軟件定義網(wǎng)絡(luò)SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的方法,其特征在于,包括: 獲取所述數(shù)據(jù)流的包頭字段、所述SDN的網(wǎng)絡(luò)拓?fù)浜退鼍W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表; 根據(jù)所述數(shù)據(jù)流的包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑。2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)流的包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑包括: 根據(jù)所述包頭字段確定所述數(shù)據(jù)流的傳輸路徑的源節(jié)點(diǎn)S。; 根據(jù)所述包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑的中間節(jié)點(diǎn)Sk,其中,k為正整數(shù); 根據(jù)所述網(wǎng)絡(luò)拓?fù)浯_定與最后一個(gè)中間節(jié)點(diǎn)連接的目的節(jié)點(diǎn)。3.如權(quán)利要求2所述的方法,其特征在于,所述網(wǎng)絡(luò)拓?fù)浒ü?jié)點(diǎn)連接信息和端口連接信息; 所述根據(jù)所述包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑的中間節(jié)點(diǎn)Sk包括: 對(duì)每個(gè)節(jié)點(diǎn)Si執(zhí)行下列操作,其中節(jié)點(diǎn)S i為所述源節(jié)點(diǎn)S。或所述中間節(jié)點(diǎn)S k之一,i為非負(fù)整數(shù): 根據(jù)所述節(jié)點(diǎn)連接信息確定與所述節(jié)點(diǎn)3;連接的下一節(jié)點(diǎn)S i+1; 根據(jù)所述端口連接信息確定所述節(jié)點(diǎn)Si+1的輸入端口 ; 根據(jù)所述包頭字段和所述節(jié)點(diǎn)S1+1的輸入端口,確定所述節(jié)點(diǎn)S 1+1對(duì)應(yīng)的流表中與所述數(shù)據(jù)流相匹配的流表項(xiàng)S1+1」,j為正整數(shù); 根據(jù)所述流表項(xiàng)S1+u ]改寫或保留所述包頭字段。4.如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述流表項(xiàng)S1+1」改寫或保留所述包頭字段包括: 如果所述流表項(xiàng)S1+1」中包括對(duì)所述包頭字段的改寫操作,則根據(jù)所述改寫操作修改所述包頭字段;或者, 如果所述流表項(xiàng)S1+u ]中不包括對(duì)所述包頭字段的改寫操作,則保留所述包頭字段。5.如權(quán)利要求2至4中任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 獲取防火墻的安全策略; 根據(jù)所述源節(jié)點(diǎn)確定源地址,并根據(jù)所述目的節(jié)點(diǎn)確定目的地址; 根據(jù)所述源地址、所述目的地址和所述防火墻的安全策略確定所述數(shù)據(jù)流的傳輸路徑是否合法。6.如權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 當(dāng)所述數(shù)據(jù)流的傳輸路徑非法時(shí),丟棄所述數(shù)據(jù)流。7.一種軟件定義網(wǎng)絡(luò)SDN下探測(cè)數(shù)據(jù)流的傳輸路徑的裝置,其特征在于,包括: 第一獲取單元,用于獲取所述數(shù)據(jù)流的包頭字段、所述SDN的網(wǎng)絡(luò)拓?fù)浜退鼍W(wǎng)絡(luò)拓?fù)渲忻總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表; 第一確定單元,用于根據(jù)所述第一獲取單元獲取的所述數(shù)據(jù)流的包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑。8.如權(quán)利要求7所述的裝置,其特征在于,所述第一確定單元具體用于根據(jù)所述包頭字段確定所述數(shù)據(jù)流的傳輸路徑的源節(jié)點(diǎn)S。,根據(jù)所述包頭字段、所述網(wǎng)絡(luò)拓?fù)浜退雒總€(gè)節(jié)點(diǎn)對(duì)應(yīng)的流表,確定所述數(shù)據(jù)流的傳輸路徑的中間節(jié)點(diǎn)Sk,其中,k為正整數(shù),并根據(jù)所述網(wǎng)絡(luò)拓?fù)浯_定與最后一個(gè)中間節(jié)點(diǎn)連接的目的節(jié)點(diǎn)。9.如權(quán)利要求8所述的裝置,其特征在于,所述網(wǎng)絡(luò)拓?fù)浒ü?jié)點(diǎn)連接信息和端口連接信息,所述第一確定單元具體用于對(duì)每個(gè)節(jié)點(diǎn)S1執(zhí)行下列操作,其中節(jié)點(diǎn)S i為所述源節(jié)點(diǎn)S?;蛩鲋虚g節(jié)點(diǎn)S k之一,i為非負(fù)整數(shù):根據(jù)所述節(jié)點(diǎn)連接信息確定與所述節(jié)點(diǎn)S 1連接的下一節(jié)點(diǎn)S1+1,根據(jù)所述端口連接信息確定所述節(jié)點(diǎn)s1+1的輸入端口,根據(jù)所述包頭字段和所述節(jié)點(diǎn)S1+1的輸入端口,確定所述節(jié)點(diǎn)S 1+1對(duì)應(yīng)的流表中與所述數(shù)據(jù)流相匹配的流表項(xiàng)S1+1」,并根據(jù)所述流表項(xiàng)S1+u]改寫或保留所述包頭字段S 1+1」,其中,j為正整數(shù)。10.如權(quán)利要求9所述的裝置,其特征在于,所述第一確定單元還用于在所述流表項(xiàng)s1+u]中包括對(duì)所述包頭字段的改寫操作的情況下,根據(jù)所述改寫操作修改所述包頭字段,或者,在所述流表項(xiàng)s1+1」中不包括對(duì)所述包頭字段的改寫操作的情況下,保留所述包頭字段。11.如權(quán)利要求8至10中任一項(xiàng)所述的裝置,其特征在于,其特征在于,所述裝置還包括: 第二獲取單元,用于獲取防火墻的安全策略; 第二確定單元,用于根據(jù)所述源節(jié)點(diǎn)確定源地址,并根據(jù)所述目的節(jié)點(diǎn)確定目的地址; 第三確定單元,用于根據(jù)所述源地址、所述目的地址和所述防火墻的安全策略確定所述數(shù)據(jù)流的傳輸路徑是否合法。12.如權(quán)利要求11所述的裝置,其特征在于,所述第三確定單元還用于當(dāng)所述數(shù)據(jù)流的傳輸路徑非法時(shí),丟棄所述數(shù)據(jù)流。
【文檔編號(hào)】H04L12/26GK105847072SQ201510019424
【公開日】2016年8月10日
【申請(qǐng)日】2015年1月15日
【發(fā)明人】王東暉, 李金明, 王娟
【申請(qǐng)人】華為技術(shù)有限公司