本發(fā)明涉及一種報(bào)文丟棄策略技術(shù)領(lǐng)域,特別是涉及一種基于SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))的WRED(Weighted Random Early Detection,加權(quán)隨機(jī)先期檢測)報(bào)文丟棄方法及系統(tǒng)。
背景技術(shù):
Tail-drop(尾部丟棄)是傳統(tǒng)的丟包策略,當(dāng)隊(duì)列的長度達(dá)到最大值后,所有新到來的報(bào)文都將被丟棄。這種丟棄策略會(huì)引發(fā)TCP(Transmission Control Protocol,傳輸控制協(xié)議)全局同步現(xiàn)象,具體地,當(dāng)隊(duì)列同時(shí)丟棄多個(gè)TCP連接的報(bào)文時(shí),將造成多個(gè)TCP連接同時(shí)進(jìn)入擁塞避免和慢啟動(dòng)狀態(tài)以降低并調(diào)整流量,而后又會(huì)在某個(gè)時(shí)間同時(shí)出現(xiàn)流量高峰,如此反復(fù),使網(wǎng)絡(luò)流量不停震蕩。多個(gè)TCP流同時(shí)進(jìn)入TCP慢啟動(dòng)的過程被稱為全局同步(global synchronization)或者TCP同步。當(dāng)TCP同步發(fā)生時(shí),連接的帶寬不能充分利用,從而造成了帶寬的浪費(fèi)。
為避免TCP全局同步現(xiàn)象,可使用WRED。WRED是將隨機(jī)先期檢測與優(yōu)先級(jí)排隊(duì)結(jié)合起來,這種結(jié)合為高優(yōu)先級(jí)分組提供了優(yōu)先通信處理能力。當(dāng)某個(gè)接口開始出現(xiàn)擁塞時(shí),它有選擇地丟棄較低優(yōu)先級(jí)的通信,而不是簡單地隨機(jī)丟棄分組。
通過隨機(jī)丟棄低優(yōu)先級(jí)報(bào)文避免了TCP的全局同步現(xiàn)象,使得當(dāng)某個(gè)TCP連接的報(bào)文被丟棄、開始減速發(fā)送的時(shí)候,其他的TCP連接仍然有較高的發(fā)送速度。這樣,無論什么時(shí)候,總有TCP連接在進(jìn)行較快的發(fā)送,提高了線路帶寬的利用率。
但傳統(tǒng)的WRED流量控制算法是基于某一臺(tái)轉(zhuǎn)發(fā)設(shè)備,如圖1所示,WRED算法集成于轉(zhuǎn)發(fā)設(shè)備(例如交換機(jī)S1、S2)中,且丟包策略是固定的,整個(gè)配置是分布式的,即人工地在每一臺(tái)交換機(jī)(如交換機(jī)S1、S2)中配置WRED算法及其相關(guān)參數(shù),由于每一臺(tái)交換機(jī)都需要進(jìn)行相同的配置,所以配置操作繁瑣復(fù)雜,而且,由于需要人工地對每一臺(tái)交換機(jī)進(jìn)行相同的配置,所以極易出現(xiàn)人工配置錯(cuò)誤,即人工配置出錯(cuò)率高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中的WRED流量控制算法丟包策略是固定的、配置復(fù)雜且容易出錯(cuò)的缺陷,提供一種基于SDN的WRED報(bào)文丟棄方法及系統(tǒng)。
本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:
本發(fā)明提供一種基于SDN的WRED報(bào)文丟棄方法,其特點(diǎn)在于,其包括以下步驟:
S1、SDN控制器中配置有WRED算法;
S2、該SDN控制器從入口交換機(jī)獲取未匹配流表的報(bào)文,創(chuàng)建WRED表項(xiàng);
S3、該SDN控制器從出口交換機(jī)接收上報(bào)的Experimenter報(bào)文,并根據(jù)該Experimenter報(bào)文獲取該出口交換機(jī)的出端口的實(shí)際負(fù)載和不同流量的優(yōu)先級(jí);
S4、該SDN控制器根據(jù)出端口的實(shí)際負(fù)載情況和不同流量的優(yōu)先級(jí)動(dòng)態(tài)生成當(dāng)前鏈路的流量的WRED流表,并下發(fā)給該入口交換機(jī),該WRED流表包含WRED丟包策略;
S5、該入口交換機(jī)根據(jù)該WRED流表調(diào)整入端口的數(shù)據(jù)包的進(jìn)入或丟包。
較佳地,在步驟S4中,該SDN控制器判斷當(dāng)前流量的優(yōu)先級(jí)是否大于一第一設(shè)定閾值,若是則當(dāng)前流量為第一優(yōu)先級(jí)別,沒有WRED丟包策略,該SDN控制器并不下發(fā)WRED流表給該入口交換機(jī);
該SDN控制器判斷出當(dāng)前流量的優(yōu)先級(jí)小于該第一設(shè)定閾值時(shí),再判斷當(dāng)前流量的優(yōu)先級(jí)是否小于一第二設(shè)定閾值,若是則當(dāng)前流量為第三優(yōu)先級(jí)別,該SDN控制器下發(fā)第一WRED流表給該入口交換機(jī);
該SDN控制器判斷出當(dāng)前流量的優(yōu)先級(jí)大于該第二設(shè)定閾值且小于該第一設(shè)定閾值時(shí),則當(dāng)前流量為第二優(yōu)先級(jí)別,該SDN控制器下發(fā)第二WRED流表給該入口交換機(jī)。
較佳地,在當(dāng)前流量為該第三優(yōu)先級(jí)別時(shí),該SDN控制器判斷當(dāng)前鏈路的實(shí)際負(fù)載,在該實(shí)際負(fù)載超過最大門限值時(shí),隨機(jī)丟包率為一第一設(shè)定值,在該實(shí)際負(fù)載超過最小門限值時(shí),隨機(jī)丟包率為一第二設(shè)定值,其中,該第一設(shè)定值大于該第二設(shè)定值。
較佳地,在當(dāng)前流量為該第二優(yōu)先級(jí)別時(shí),該SDN控制器判斷當(dāng)前鏈路的實(shí)際負(fù)載,在該實(shí)際負(fù)載超過最大門限值時(shí),隨機(jī)丟包率為一第三設(shè)定值,在該實(shí)際負(fù)載超過最小門限值時(shí),隨機(jī)丟包率為一第四設(shè)定值,其中,該第三設(shè)定值大于該第四設(shè)定值。
本發(fā)明還提供一種基于SDN的WRED報(bào)文丟棄系統(tǒng),其特點(diǎn)在于,其包括一SDN控制器、一入口交換機(jī)和一出口交換機(jī);
該SDN控制器用于配置有WRED算法;
該SDN控制器用于從入口交換機(jī)獲取未匹配流表的報(bào)文,創(chuàng)建WRED表項(xiàng);
該SDN控制器用于從出口交換機(jī)接收上報(bào)的Experimenter報(bào)文,并根據(jù)該Experimenter報(bào)文獲取該出口交換機(jī)的出端口的實(shí)際負(fù)載和不同流量的優(yōu)先級(jí);
該SDN控制器用于根據(jù)出端口的實(shí)際負(fù)載情況和不同流量的優(yōu)先級(jí)動(dòng)態(tài)生成當(dāng)前鏈路的流量的WRED流表,并下發(fā)給該入口交換機(jī),該WRED流表包含WRED丟包策略;
該入口交換機(jī)用于根據(jù)該WRED流表調(diào)整入端口的數(shù)據(jù)包的進(jìn)入或丟包。
較佳地,該SDN控制器用于判斷當(dāng)前流量的優(yōu)先級(jí)是否大于一第一設(shè)定閾值,若是則當(dāng)前流量為第一優(yōu)先級(jí)別,沒有WRED丟包策略,該SDN控制器用于不下發(fā)WRED流表給該入口交換機(jī);
該SDN控制器用于在判斷出當(dāng)前流量的優(yōu)先級(jí)小于該第一設(shè)定閾值時(shí),再判斷當(dāng)前流量的優(yōu)先級(jí)是否小于一第二設(shè)定閾值,若是則當(dāng)前流量為第三優(yōu)先級(jí)別,該SDN控制器用于下發(fā)第一WRED流表給該入口交換機(jī);
該SDN控制器用于在判斷出當(dāng)前流量的優(yōu)先級(jí)大于該第二設(shè)定閾值且小于該第一設(shè)定閾值時(shí),則當(dāng)前流量為第二優(yōu)先級(jí)別,該SDN控制器用于下發(fā)第二WRED流表給該入口交換機(jī)。
較佳地,在當(dāng)前流量為該第三優(yōu)先級(jí)別時(shí),該SDN控制器用于判斷當(dāng)前鏈路的實(shí)際負(fù)載,在該實(shí)際負(fù)載超過最大門限值時(shí),隨機(jī)丟包率為一第一設(shè)定值,在該實(shí)際負(fù)載超過最小門限值時(shí),隨機(jī)丟包率為一第二設(shè)定值,其中,該第一設(shè)定值大于該第二設(shè)定值。
較佳地,在當(dāng)前流量為該第二優(yōu)先級(jí)別時(shí),該SDN控制器用于判斷當(dāng)前鏈路的實(shí)際負(fù)載,在該實(shí)際負(fù)載超過最大門限值時(shí),隨機(jī)丟包率為一第三設(shè)定值,在該實(shí)際負(fù)載超過最小門限值時(shí),隨機(jī)丟包率為一第四設(shè)定值,其中,該第三設(shè)定值大于該第四設(shè)定值。
在符合本領(lǐng)域常識(shí)的基礎(chǔ)上,上述各優(yōu)選條件,可任意組合,即得本發(fā)明各較佳實(shí)例。
本發(fā)明的積極進(jìn)步效果在于:
本發(fā)明基于SDN架構(gòu),SDN控制器進(jìn)行統(tǒng)一調(diào)度,出端口的發(fā)送情況將實(shí)時(shí)反饋到SDN控制器,SDN控制器根據(jù)出端口的擁塞情況,在入端口采用WRED丟包策略。
而且,本發(fā)明所有的配置都集中于SDN控制器,配置方便而簡單,流量控制的策略是端對端的,由SDN控制器統(tǒng)一控制,并且根據(jù)出端口的流量和擁塞情況,動(dòng)態(tài)調(diào)整丟包策略。
附圖說明
圖1為傳統(tǒng)的WRED流量控制方法的流程圖。
圖2為本發(fā)明較佳實(shí)施例的基于SDN的WRED報(bào)文丟棄系統(tǒng)的示意圖。
圖3為本發(fā)明較佳實(shí)施例的基于SDN的WRED報(bào)文丟棄方法的流程圖。
圖4為本發(fā)明較佳實(shí)施例的SDN控制器邏輯處理流程圖。
圖5為本發(fā)明較佳實(shí)施例的模擬測試環(huán)境的示意圖。
具體實(shí)施方式
下面結(jié)合附圖給出本發(fā)明較佳實(shí)施例,以詳細(xì)說明本發(fā)明的技術(shù)方案,但并不因此將本發(fā)明限制在所述的實(shí)施例范圍之中。
本實(shí)施例提供一種基于SDN的WRED報(bào)文丟棄系統(tǒng),其包括一SDN控制器、一入口交換機(jī)和一出口交換機(jī)。
如圖2所示,若數(shù)據(jù)包是由客戶端傳輸至服務(wù)器,則圖2中的S1為入口交換機(jī),S3為出口交換機(jī);若數(shù)據(jù)包是由服務(wù)器傳輸至客戶端,則圖2中的S3為入口交換機(jī),S1為出口交換機(jī)。SDN控制器是針對網(wǎng)絡(luò)的整體控制,即圖2中的S0-S3都會(huì)向SDN控制器上報(bào)私有報(bào)文,然后SDN控制器配置流表下發(fā)到各個(gè)交換機(jī),其后根據(jù)報(bào)文的發(fā)起地址和目的地址的鏈路來控制入口交換機(jī)的丟包。
SDN控制器支持基于SDN的WRED控制算法配置任務(wù)序列,包括:動(dòng)態(tài)WRED表和基于SDN的WRED控制算法功能打開或關(guān)閉。具體配置項(xiàng)和對應(yīng)含義見表1:
表1
私有的動(dòng)態(tài)WRED表可動(dòng)態(tài)創(chuàng)建(交換機(jī)上報(bào)未匹配流表報(bào)文的時(shí)刻,創(chuàng)建WRED表項(xiàng)),出口交換機(jī)上報(bào)Experimenter報(bào)文的時(shí)刻,決定流量的WRED優(yōu)先級(jí)別,用戶僅可以做修改。動(dòng)態(tài)WRED表中的字段及其含義如表2所示:
表2
從交換機(jī)到SDN控制器的私有擴(kuò)展Experimenter報(bào)文的格式如下表3所示。Experimenter值為255,需要向ONF組織申請。Experimenter type值為1表明是從交換機(jī)方向到控SDN制器。私有擴(kuò)展Experimenter報(bào)文由轉(zhuǎn)發(fā)路徑上的出口交換機(jī)上報(bào)給SDN控制器。交換機(jī)id為交換機(jī)MAC地址,源IP地址和目的IP地址確定一條流。報(bào)文優(yōu)先級(jí)可以確定WRED優(yōu)先級(jí)。
表3
由此,該SDN控制器中配置有WRED算法,下面具體介紹該WRED報(bào)文丟棄系統(tǒng)中各部件所具備的功能:
該SDN控制器用于從入口交換機(jī)獲取未匹配流表的報(bào)文,創(chuàng)建WRED表項(xiàng)。
該SDN控制器用于從出口交換機(jī)接收上報(bào)的Experimenter報(bào)文,并根據(jù)該Experimenter報(bào)文獲取該出口交換機(jī)的出端口的實(shí)際負(fù)載和不同流量的優(yōu)先級(jí)。
該SDN控制器用于根據(jù)出端口的實(shí)際負(fù)載情況和不同流量的優(yōu)先級(jí)動(dòng)態(tài)生成當(dāng)前鏈路的流量的WRED流表,并下發(fā)給該入口交換機(jī),該WRED流表包含WRED丟包策略。
該入口交換機(jī)用于根據(jù)該WRED流表調(diào)整入端口的數(shù)據(jù)包的進(jìn)入或丟包。
其中,該SDN控制器根據(jù)出端口的實(shí)際負(fù)載情況和不同流量的優(yōu)先級(jí)動(dòng)態(tài)生成當(dāng)前鏈路的流量的WRED流表具體包括:
該SDN控制器用于判斷當(dāng)前流量的優(yōu)先級(jí)是否大于一第一設(shè)定閾值(例如6),若是則當(dāng)前流量為第一優(yōu)先級(jí)別,沒有WRED丟包策略,該SDN控制器用于不下發(fā)WRED流表給該入口交換機(jī);該SDN控制器用于在判斷出當(dāng)前流量的優(yōu)先級(jí)小于該第一設(shè)定閾值時(shí),再判斷當(dāng)前流量的優(yōu)先級(jí)是否小于一第二設(shè)定閾值(例如3),若是則當(dāng)前流量為第三優(yōu)先級(jí)別,該SDN控制器用于下發(fā)第一WRED流表給該入口交換機(jī);該SDN控制器用于在判斷出當(dāng)前流量的優(yōu)先級(jí)大于該第二設(shè)定閾值且小于該第一設(shè)定閾值時(shí),則當(dāng)前流量為第二優(yōu)先級(jí)別,該SDN控制器用于下發(fā)第二WRED流表給該入口交換機(jī)。
在當(dāng)前流量為該第三優(yōu)先級(jí)別時(shí),該SDN控制器用于判斷當(dāng)前鏈路的實(shí)際負(fù)載,在該實(shí)際負(fù)載超過最大門限值時(shí),隨機(jī)丟包率為一第一設(shè)定值(例如80%),在該實(shí)際負(fù)載超過最小門限值時(shí),隨機(jī)丟包率為一第二設(shè)定值(例如20%),其中,該第一設(shè)定值大于該第二設(shè)定值。
在當(dāng)前流量為該第二優(yōu)先級(jí)別時(shí),該SDN控制器用于判斷當(dāng)前鏈路的實(shí)際負(fù)載,在該實(shí)際負(fù)載超過最大門限值時(shí),隨機(jī)丟包率為一第三設(shè)定值(例如50%),在該實(shí)際負(fù)載超過最小門限值時(shí),隨機(jī)丟包率為一第四設(shè)定值(例如10%),其中,該第三設(shè)定值大于該第四設(shè)定值。
其中,最大門限值默認(rèn)值為線路負(fù)載的80%,當(dāng)然,本領(lǐng)域的技術(shù)人員也可以根據(jù)實(shí)際需要設(shè)置最大門限的具體數(shù)值,最小門限值默認(rèn)值為線路負(fù)載的10%,當(dāng)然,本領(lǐng)域的技術(shù)人員也可以根據(jù)實(shí)際需要設(shè)置最小門限的具體數(shù)值。
如圖3所示,本實(shí)施例提供一種基于SDN的WRED報(bào)文丟棄方法,其包括以下步驟:
步驟101、在SDN控制器中,配置SDN的WRED算法;
步驟102、該SDN控制器從入口交換機(jī)獲取未匹配流表的報(bào)文,創(chuàng)建WRED表項(xiàng);
步驟103、該SDN控制器從出口交換機(jī)接收上報(bào)的Experimenter報(bào)文,確定WRED優(yōu)先級(jí);
步驟104、該SDN控制器下發(fā)流表給該入口交換機(jī),實(shí)現(xiàn)WRED功能,該入口交換機(jī)根據(jù)下發(fā)的流表調(diào)整入端口的數(shù)據(jù)包的進(jìn)入或丟包。
其中,如圖4所示,步驟102和103具體包括以下步驟:
該SDN控制器從入口交換機(jī)獲取未匹配流表的報(bào)文,創(chuàng)建WRED表項(xiàng)。
該SDN控制器從出口交換機(jī)接收上報(bào)的Experimenter報(bào)文,并根據(jù)該Experimenter報(bào)文獲取該出口交換機(jī)的出端口的實(shí)際負(fù)載和不同流量的優(yōu)先級(jí),Experimenter報(bào)文的優(yōu)先級(jí)分別來自于報(bào)文的VLAN優(yōu)先級(jí)。
該SDN控制器判斷當(dāng)前流量的優(yōu)先級(jí)(即VLAN優(yōu)先級(jí))是否大于一第一設(shè)定閾值(例如6),若是則當(dāng)前流量為第一優(yōu)先級(jí)別,沒有WRED丟包策略,該SDN控制器并不下發(fā)WRED流表給該入口交換機(jī)。
否則該SDN控制器判斷當(dāng)前流量的優(yōu)先級(jí)是否大于一第二設(shè)定閾值(例如3)且小于該第一設(shè)定閾值,若是則當(dāng)前流量為第二優(yōu)先級(jí)別,該SDN控制器判斷當(dāng)前鏈路的實(shí)際負(fù)載,在該實(shí)際負(fù)載超過最大門限值時(shí),隨機(jī)丟包率為一第三設(shè)定值(例如50%),在該實(shí)際負(fù)載超過最小門限值時(shí),隨機(jī)丟包率為一第四設(shè)定值(例如10%),其中,該第三設(shè)定值大于該第四設(shè)定值,該SDN控制器據(jù)此動(dòng)態(tài)生成當(dāng)前流量的WRED流表并下發(fā)給該入口交換機(jī),該WRED流表包含WRED丟包策略。
該SDN控制器判斷出當(dāng)前流量的優(yōu)先級(jí)小于該第二設(shè)定閾值時(shí),則當(dāng)前流量為第三優(yōu)先級(jí)別,該SDN控制器判斷當(dāng)前鏈路的實(shí)際負(fù)載,在該實(shí)際負(fù)載超過最大門限值時(shí),隨機(jī)丟包率為一第一設(shè)定值(例如80%),在該實(shí)際負(fù)載超過最小門限值時(shí),隨機(jī)丟包率為一第二設(shè)定值(例如20%),其中,該第一設(shè)定值大于該第二設(shè)定值,該SDN控制器據(jù)此動(dòng)態(tài)生成當(dāng)前流量的WRED流表并下發(fā)給該入口交換機(jī)。
此外,本實(shí)施例的交換機(jī)和SDN控制器需要支持?jǐn)U充流表,其定義如下表4所示:
表4
如圖5所示搭建模擬測試環(huán)境,其中FTP(文件傳輸協(xié)議)服務(wù)器是指在互聯(lián)網(wǎng)上提供文件存儲(chǔ)和訪問服務(wù)的計(jì)算機(jī),它們依照FTP協(xié)議提供服務(wù)。
見圖5,客戶端通過入口交換機(jī)S1和出口交換機(jī)S3將報(bào)文傳輸至FTP服務(wù)器,報(bào)文的優(yōu)先級(jí)別為1。假設(shè)出口交換機(jī)S3出端口的線路負(fù)載為85%,對應(yīng)的優(yōu)先級(jí)為第三優(yōu)先級(jí)別,線路負(fù)載超過最大門限值,所以隨機(jī)丟包率為80%;假設(shè)出口交換機(jī)S3出端口的線路負(fù)載為20%,對應(yīng)的優(yōu)先級(jí)為第三優(yōu)先級(jí)別,線路負(fù)載超過最小門限值,所以隨機(jī)丟包率為20%。
見圖5,F(xiàn)TP服務(wù)器通過入口交換機(jī)S3和出口交換機(jī)S1將另一報(bào)文傳輸至客戶端,報(bào)文的優(yōu)先級(jí)別為7。假設(shè)出口交換機(jī)S1出端口的線路負(fù)載為85%,對應(yīng)的優(yōu)先級(jí)為第一優(yōu)先級(jí)別,所以不丟包;假設(shè)出口交換機(jī)S1出端口的線路負(fù)載為20%,對應(yīng)的優(yōu)先級(jí)為第一優(yōu)先級(jí)別,所以不丟包。
雖然以上描述了本發(fā)明的具體實(shí)施方式,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這些僅是舉例說明,本發(fā)明的保護(hù)范圍是由所附權(quán)利要求書限定的。本領(lǐng)域的技術(shù)人員在不背離本發(fā)明的原理和實(shí)質(zhì)的前提下,可以對這些實(shí)施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護(hù)范圍。