用于軟件定義網(wǎng)絡(luò)的轉(zhuǎn)發(fā)規(guī)則配置方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件定義網(wǎng)絡(luò)領(lǐng)域,特別是涉及一種用于軟件定義網(wǎng)絡(luò)的轉(zhuǎn)發(fā)規(guī)則配置方法及裝置。
【背景技術(shù)】
[0002]軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN)將控制平面與轉(zhuǎn)發(fā)平面分離開,打破了傳統(tǒng)網(wǎng)絡(luò)交換機(jī)/路由器設(shè)計的封閉性,提高了網(wǎng)絡(luò)管理的可編程性,降低了網(wǎng)絡(luò)交換機(jī)/路由器的復(fù)雜性??刂破骺梢苑謩e通過兩個不同的接口與交換機(jī)和管理應(yīng)用進(jìn)行通信。與管理應(yīng)用進(jìn)行通信的接口為上層應(yīng)用提供網(wǎng)絡(luò)功能調(diào)用,與交換機(jī)進(jìn)行通信的接口能夠屏蔽不同交換機(jī)之間的差異性。
[0003]其中,流表的差異是不同交換機(jī)的主要差異之一。流表的差異體現(xiàn)在流表的數(shù)量、類型、大小和查詢速度等方面。例如,F(xiàn)ulcrum Monaco Reference僅支持硬件流表,OpenvSwitch on Xeon X3210 僅支持軟件流表,HP ProCurve J9451A 和 Quanta LB4G 既支持軟件流表又支持硬件流表;HP ProCurve J9451A的硬件流表可以存儲1500條規(guī)則,F(xiàn)ulcrumMonaco Reference的硬件流表僅可存儲511條規(guī)則。此外,為了擴(kuò)展交換機(jī)的存儲空間,可以將軟件交換機(jī)和硬件交換機(jī)組合使用,在邏輯上使它們被看作是一個交換機(jī)。
[0004]在目前的網(wǎng)絡(luò)應(yīng)用中,不同的業(yè)務(wù),例如網(wǎng)頁瀏覽、電子郵件、IP語音、視頻點(diǎn)播、視頻會議等,對網(wǎng)絡(luò)的時延、吞吐量、丟包率等性能指標(biāo)都有不同的需求。對于同一業(yè)務(wù),由于資金等方面的原因,不同用戶對網(wǎng)絡(luò)需求也存在一定差異。在現(xiàn)有的SDN中,與傳統(tǒng)網(wǎng)絡(luò)類似,仍然主要是通過選擇不同的路徑和隊(duì)列區(qū)分實(shí)現(xiàn)不同用戶和業(yè)務(wù)的不同需求,沒有根據(jù)每個流表的時延采用不同的流表存儲數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則,這會導(dǎo)致具有低時延需求的數(shù)據(jù)流的規(guī)則因快速查詢流表耗盡而被放置到慢速查詢流表中,而慢速查詢流表中存儲了大量能夠容忍較高時延的數(shù)據(jù)流的規(guī)則,從而導(dǎo)致網(wǎng)絡(luò)服務(wù)質(zhì)量較低。因此,為了提高網(wǎng)絡(luò)服務(wù)質(zhì)量,如何根據(jù)每個流表的時延,為不同的業(yè)務(wù)選擇數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則所需放置的流表,是一個亟待解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例的目的在于提供一種用于軟件定義網(wǎng)絡(luò)的轉(zhuǎn)發(fā)規(guī)則配置方法及裝置,以提高網(wǎng)絡(luò)服務(wù)質(zhì)量。具體技術(shù)方案如下:
[0006]第一方面,本發(fā)明提供了一種用于軟件定義網(wǎng)絡(luò)的轉(zhuǎn)發(fā)規(guī)則配置方法,應(yīng)用于服務(wù)器,所述方法包括:
[0007]獲得所述軟件定義網(wǎng)絡(luò)中各交換機(jī)的所有流表的特征信息,并根據(jù)所有流表的特征信息確定各流表的流表優(yōu)先級;
[0008]獲得所述軟件定義網(wǎng)絡(luò)中所有數(shù)據(jù)流,并根據(jù)所有數(shù)據(jù)流的用戶和/或業(yè)務(wù)需求,確定各數(shù)據(jù)流的數(shù)據(jù)流優(yōu)先級;
[0009]根據(jù)所述各數(shù)據(jù)流的數(shù)據(jù)流優(yōu)先級和所述各流表的流表優(yōu)先級,將各數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則放置到相應(yīng)的流表中。
[0010]進(jìn)一步地,所述根據(jù)所述各數(shù)據(jù)流的數(shù)據(jù)流優(yōu)先級和所述各流表的流表優(yōu)先級,將各數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則放置到相應(yīng)的流表中,包括:
[0011]按照預(yù)設(shè)配置順序和配置規(guī)則,依次為各數(shù)據(jù)流配置其轉(zhuǎn)發(fā)規(guī)則在對應(yīng)各數(shù)據(jù)流需經(jīng)過的各個交換機(jī)中的目的流表;
[0012]根據(jù)各數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則在對應(yīng)各交換機(jī)中標(biāo)記的目的流表,將各數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則放置到相應(yīng)的流表中。
[0013]進(jìn)一步地,所述按照預(yù)設(shè)配置順序和配置規(guī)則,依次為各數(shù)據(jù)流配置其轉(zhuǎn)發(fā)規(guī)則在對應(yīng)各數(shù)據(jù)流需經(jīng)過的各個交換機(jī)中的目的流表,包括:
[0014]從未被配置的各數(shù)據(jù)流中,選擇數(shù)據(jù)流優(yōu)先級最高的數(shù)據(jù)流為當(dāng)前數(shù)據(jù)流;
[0015]從所述當(dāng)前數(shù)據(jù)流所需經(jīng)過的各個交換機(jī)中,選擇一個未被標(biāo)記的交換機(jī)作為當(dāng)前交換機(jī);
[0016]確定所述當(dāng)前數(shù)據(jù)流所經(jīng)過的當(dāng)前交換機(jī)中,流表優(yōu)先級最高的流表為當(dāng)前流表;
[0017]判斷所述當(dāng)前流表是否有空閑資源;
[0018]若是,則將所述當(dāng)前流表標(biāo)記為所述當(dāng)前數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則在當(dāng)前交換機(jī)的目的流表,并繼續(xù)執(zhí)行從所述當(dāng)前數(shù)據(jù)流所需經(jīng)過的各個交換機(jī)中,選擇一個未被標(biāo)記的交換機(jī)作為當(dāng)前交換機(jī)的步驟,直至所述當(dāng)前數(shù)據(jù)流在所需經(jīng)過的各個交換機(jī)中均被標(biāo)記完成或當(dāng)前交換機(jī)中的流表均被判斷出未有空閑資源,再繼續(xù)執(zhí)行從未被配置的各數(shù)據(jù)流中,選擇數(shù)據(jù)流優(yōu)先級最高的數(shù)據(jù)流為當(dāng)前數(shù)據(jù)流的步驟,直至所有的數(shù)據(jù)流均被配置完成;
[0019]否則,判斷所述當(dāng)前流表是否為所述當(dāng)前交換機(jī)中流表優(yōu)先級最低的流表,當(dāng)所述當(dāng)前流表不是所述當(dāng)前交換機(jī)中流表優(yōu)先級最低的流表時,將所述當(dāng)前交換機(jī)中流表優(yōu)先級僅低于所述當(dāng)前流表的流表替換為當(dāng)前流表,并返回執(zhí)行判斷所述當(dāng)前流表是否有空閑資源。
[0020]進(jìn)一步地,所述特征信息為:查詢速度。
[0021]第二方面,本發(fā)明提供了一種用于軟件定義網(wǎng)絡(luò)的轉(zhuǎn)發(fā)規(guī)則配置裝置,應(yīng)用于服務(wù)器,所述裝置包括:
[0022]獲得模塊,用于獲得所述軟件定義網(wǎng)絡(luò)中各交換機(jī)的所有流表的特征信息,并根據(jù)所有流表的特征信息確定各流表的流表優(yōu)先級;
[0023]執(zhí)行模塊,用于獲得所述軟件定義網(wǎng)絡(luò)中所有數(shù)據(jù)流,并根據(jù)所有數(shù)據(jù)流的用戶和/或業(yè)務(wù)需求,確定各數(shù)據(jù)流的數(shù)據(jù)流優(yōu)先級;
[0024]配置模塊,用于根據(jù)所述各數(shù)據(jù)流的數(shù)據(jù)流優(yōu)先級和所述各流表的流表優(yōu)先級,將各數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則放置到相應(yīng)的流表中。
[0025]進(jìn)一步地,所述配置模塊包括:
[0026]配置子模塊,用于按照預(yù)設(shè)配置順序和配置規(guī)則,依次為各數(shù)據(jù)流配置其轉(zhuǎn)發(fā)規(guī)則在對應(yīng)各數(shù)據(jù)流需經(jīng)過的各個交換機(jī)中的目的流表;
[0027]處理子模塊,用于根據(jù)各數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則在對應(yīng)各交換機(jī)中標(biāo)記的目的流表,將各數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則放置到相應(yīng)的流表中。
[0028]進(jìn)一步地,所述配置子模塊具體用于:
[0029]從未被配置的各數(shù)據(jù)流中,選擇數(shù)據(jù)流優(yōu)先級最高的數(shù)據(jù)流為當(dāng)前數(shù)據(jù)流;
[0030]從所述當(dāng)前數(shù)據(jù)流所需經(jīng)過的各個交換機(jī)中,選擇一個未被標(biāo)記的交換機(jī)作為當(dāng)前交換機(jī);
[0031]確定所述當(dāng)前數(shù)據(jù)流所經(jīng)過的當(dāng)前交換機(jī)中,流表優(yōu)先級最高的流表為當(dāng)前流表;
[0032]判斷所述當(dāng)前流表是否有空閑資源;
[0033]若是,則將所述當(dāng)前流表標(biāo)記為所述當(dāng)前數(shù)據(jù)流的轉(zhuǎn)發(fā)規(guī)則在當(dāng)前交換機(jī)的目的流表,并繼續(xù)執(zhí)行從所述當(dāng)前數(shù)據(jù)流所需經(jīng)過的各個交換機(jī)中,選擇一個未被標(biāo)記的交換機(jī)作為當(dāng)前交換機(jī)的步驟,直至所述當(dāng)前數(shù)據(jù)流在所需經(jīng)過的各個交換機(jī)中均被標(biāo)記完成或當(dāng)前交換機(jī)中的流表均被判斷出未有空閑資源,再繼續(xù)執(zhí)行從未被配置的各數(shù)據(jù)流中,選擇數(shù)據(jù)流優(yōu)先級最高的數(shù)據(jù)流為當(dāng)前數(shù)據(jù)流的步驟,直至所有的數(shù)據(jù)流均被配置完成;
[0034]否則,判斷所述當(dāng)前流表是否為所述當(dāng)前交換機(jī)中流表優(yōu)先級最低的流表,當(dāng)所述當(dāng)前流表不是所述當(dāng)前交換機(jī)中流表優(yōu)先級最低的流表時,將所述當(dāng)前交換機(jī)中流表優(yōu)先級僅低于所述當(dāng)前流表的流表替換為當(dāng)前流表,并返回執(zhí)行判斷所述當(dāng)前流表是否有空閑資源。
[0035]進(jìn)一步地,所述特征信息為:查