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