本發(fā)明屬于數(shù)據(jù)通信技術(shù)領(lǐng)域,具體涉及一種面向工業(yè)sdn的動態(tài)網(wǎng)絡(luò)資源預(yù)留qos保障方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,軟件定義網(wǎng)絡(luò)(sdn)的應(yīng)用越來越廣泛。與傳統(tǒng)網(wǎng)絡(luò)不同,軟件定義網(wǎng)絡(luò)采用控制和轉(zhuǎn)發(fā)分離的結(jié)構(gòu),可以在不變動硬件設(shè)備的前提下,以中心控制的方式,用程序重新規(guī)劃網(wǎng)絡(luò)。從而降低了網(wǎng)絡(luò)部署成本,減輕了網(wǎng)絡(luò)運(yùn)營和維護(hù)負(fù)擔(dān)。
網(wǎng)絡(luò)數(shù)據(jù)在傳輸過程中,對帶寬、時延等往往有一定義要求,特別是一些周期性業(yè)務(wù),通常對帶寬、時延的要求相對固定。突發(fā)的數(shù)據(jù)業(yè)務(wù)往往會對網(wǎng)絡(luò)造成沖擊,使網(wǎng)絡(luò)短時間內(nèi)處于阻塞狀態(tài),影響了部分重要數(shù)據(jù)的傳輸。
針對以上問題,現(xiàn)有的解決辦法就是采用資源預(yù)留策略,為固定的數(shù)據(jù)業(yè)務(wù)預(yù)留一定帶寬,保障該業(yè)務(wù)數(shù)據(jù)的通信。但是由于缺乏對數(shù)據(jù)業(yè)務(wù)流量變化的適應(yīng)能力,其技術(shù)手段在sdn網(wǎng)絡(luò)中也并不適用。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明目的在于提供一種面向工業(yè)sdn的動態(tài)網(wǎng)絡(luò)資源預(yù)留qos保障方法,采用網(wǎng)絡(luò)與終端協(xié)商的方式,動態(tài)分配網(wǎng)絡(luò)資源,滿足業(yè)務(wù)數(shù)據(jù)對帶寬、時延要求。
本發(fā)明為實現(xiàn)上述目的所采用的技術(shù)方案是:一種面向工業(yè)sdn的動態(tài)網(wǎng)絡(luò)資源預(yù)留qos保障方法,包括預(yù)留資源申請過程、預(yù)留資源轉(zhuǎn)發(fā)過程和預(yù)留資源釋放過程;
所述預(yù)留資源申請過程,終端節(jié)點根據(jù)業(yè)務(wù)需要,發(fā)送預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包至所連接的交換機(jī);交換機(jī)通過網(wǎng)絡(luò)控制通道將所述資源協(xié)商數(shù)據(jù)包發(fā)送至sdn網(wǎng)絡(luò)控制器;sdn網(wǎng)絡(luò)控制器根據(jù)鏈路的負(fù)載信息,對業(yè)務(wù)路徑上的預(yù)留資源進(jìn)行計算,并將規(guī)劃結(jié)果以流表項的形式反饋至路徑上的各個交換 機(jī);交換機(jī)按照執(zhí)行控制器流表操作,向發(fā)起請求的終端節(jié)點反饋申請結(jié)果;
所述預(yù)留資源轉(zhuǎn)發(fā)過程,由路徑上的各個交換機(jī)根據(jù)流表進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)和隊列控制;
所述預(yù)留資源釋放過程,當(dāng)終端節(jié)點向sdn網(wǎng)絡(luò)控制器發(fā)送釋放帶寬資源的請求時,sdn網(wǎng)絡(luò)控制器刪除交換機(jī)中資源預(yù)留的流表項,釋放帶寬資源;當(dāng)流表項未被匹配達(dá)設(shè)定時間時,由交換機(jī)通知sdn網(wǎng)絡(luò)控制器,由sdn網(wǎng)絡(luò)控制器決定釋放帶寬資源。
所述預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包,包括以下信息:
數(shù)據(jù)流使用到的軟件定義網(wǎng)絡(luò)匹配元組;
帶寬要求bp,時延要求τp;
數(shù)據(jù)流最大數(shù)據(jù)包長度l。
所述sdn網(wǎng)絡(luò)控制器根據(jù)鏈路的負(fù)載信息,對業(yè)務(wù)路徑上的預(yù)留資源進(jìn)行計算,包括以下步驟:
若預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包中申請的數(shù)據(jù)流最大數(shù)據(jù)包長度l大于網(wǎng)絡(luò)容納最大長度lmax,則將資源申請狀態(tài)設(shè)置為失敗,否則將資源申請狀態(tài)設(shè)置為成功;
sdn網(wǎng)絡(luò)控制器使用預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包中的數(shù)據(jù)流使用到的軟件定義網(wǎng)絡(luò)匹配元組信息計算數(shù)據(jù)流路徑,并計算路徑上每條鏈路的可分配帶寬:
bkr=αbk0-∑bki
其中,bkr為鏈路k上可分配帶寬;bk0表示鏈路k總帶寬;α為帶寬系數(shù),表示預(yù)留帶寬總量占全部帶寬的百分比;bki表示鏈路k上為第i個數(shù)據(jù)流分配的帶寬,∑bki表示已分配給其他數(shù)據(jù)流帶寬總和;
若申請占用資源中帶寬要求bp小于路徑上所有鏈路可分配帶寬bkr的最小值bmr,則帶寬資源可以滿足帶寬要求;否則表示帶寬資源無法滿足帶寬要求,將資源申請狀態(tài)由成功設(shè)置為失敗,結(jié)束預(yù)留資源的計算;
根據(jù)數(shù)據(jù)流時延要求τp求數(shù)據(jù)流在鏈路k上的分段時延:
根據(jù)數(shù)據(jù)流在鏈路k上的分段時延τkp計算所需時延保障預(yù)留帶寬:
取bkp'和bp中較大的作為鏈路k上為該數(shù)據(jù)流預(yù)留帶寬bkp;比較所有鏈路k上的預(yù)留帶寬bkp和鏈路剩余帶寬bkr,若鏈路k上的預(yù)留帶寬bkp小于鏈路剩余帶寬bkr,則表示可以滿足時延要求;否則將資源申請狀態(tài)由成功設(shè)置為失敗。
所述資源申請狀態(tài)設(shè)置為成功后,sdn網(wǎng)絡(luò)控制器進(jìn)行如下操作:
將申請信息存入數(shù)據(jù)庫;
向提交請求的交換機(jī)下發(fā)流表,指定交換機(jī)將收到的申請信息保持原樣返還至申請的終端節(jié)點,并指定該交換機(jī)在執(zhí)行一次后將流表刪除;
向路徑上所有交換機(jī)發(fā)送流表,為預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包中匹配元組的數(shù)據(jù)流建立帶寬隊列并規(guī)定轉(zhuǎn)發(fā)規(guī)則。
所述資源申請狀態(tài)設(shè)置為失敗后,sdn網(wǎng)絡(luò)控制器進(jìn)行如下操作:
若申請的數(shù)據(jù)流最大數(shù)據(jù)包長度l大于網(wǎng)絡(luò)容納最大長度lmax,則向提交請求的交換機(jī)下發(fā)流表,指定交換機(jī)用lmax替換l填入預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包的最大長度字段后將數(shù)據(jù)包返還至終端節(jié)點,并指定該交換機(jī)在執(zhí)行一次后將該流表項刪除;
若申請的帶寬要求bp大于可分配帶寬bmr,則向提交請求的交換機(jī)下發(fā)流表,指定交換機(jī)用bmr替換bp填入預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包的帶寬要求字bp后將數(shù)據(jù)包返還至終端節(jié)點,并指定該交換機(jī)在執(zhí)行一次后將該流表項刪除;
若申請時延要求τp無法滿足,則向提交請求的交換機(jī)下發(fā)流表,指定交換機(jī)將預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包的時延要求字段置零后將數(shù)據(jù)包返還至終端節(jié)點,并指定該交換機(jī)在執(zhí)行一次后將該流表項刪除。
所述終端節(jié)點的申請失敗,終端節(jié)點根據(jù)反饋結(jié)果重新發(fā)起預(yù)留資源申請過程。
所述當(dāng)終端節(jié)點向sdn網(wǎng)絡(luò)控制器發(fā)送釋放帶寬資源的請求時,sdn網(wǎng)絡(luò)控制器刪除交換機(jī)中資源預(yù)留的流表項,釋放帶寬資源,包括以下步驟:
終端節(jié)點通過資源協(xié)商以太網(wǎng)數(shù)據(jù)包發(fā)送釋放資源申請至所連接的交換機(jī);
所述交換機(jī)通過網(wǎng)絡(luò)控制通道將資源協(xié)商以太網(wǎng)數(shù)據(jù)包發(fā)送至sdn網(wǎng)絡(luò)控制器;
sdn網(wǎng)絡(luò)控制器根據(jù)請求發(fā)送者和匹配元組查找數(shù)據(jù)庫,若未找到相應(yīng)的資源預(yù)留項,則結(jié)束且不進(jìn)行任何操作;否則,將匹配內(nèi)容從數(shù)據(jù)庫中刪除,向所述交換機(jī)下發(fā)流表,指定交換機(jī)回復(fù)申請成功信息并刪除路徑上的交換機(jī)中的相關(guān)轉(zhuǎn)發(fā)流表項。
所述當(dāng)流表項未被匹配達(dá)設(shè)定時間時,由交換機(jī)通知sdn網(wǎng)絡(luò)控制器,由sdn網(wǎng)絡(luò)控制器決定釋放帶寬資源,包括以下步驟:
交換機(jī)經(jīng)過周期t檢查流表使用情況,當(dāng)流表在一個周期內(nèi)未使用時,則通知sdn網(wǎng)絡(luò)控制器;
sdn網(wǎng)絡(luò)控制器接收到一個預(yù)留資源路徑上所有交換機(jī)的通知時,則從數(shù)據(jù)庫中找到匹配項,并刪除路徑上的交換機(jī)中的轉(zhuǎn)發(fā)流表項。
所述終端設(shè)備采用指定以太網(wǎng)類型字段的數(shù)據(jù)包,申請預(yù)留/釋放帶寬資源,當(dāng)交換機(jī)收到這個數(shù)據(jù)包時,不識別該數(shù)據(jù)包,然后發(fā)送給控制器。
本發(fā)明具有以下優(yōu)點及有益效果:
(1)本發(fā)明很好的將資源預(yù)留融入sdn架構(gòu),使sdn網(wǎng)絡(luò)可以滿足終端設(shè)備的帶寬、時延要求。
(2)本發(fā)明采用協(xié)商的方式實現(xiàn)預(yù)留/釋放網(wǎng)絡(luò)資源,可以滿足終端設(shè)備變化的帶寬、時延要求。
(3)本發(fā)明利用sdn網(wǎng)絡(luò)的控制通道和下發(fā)流表功能實現(xiàn)終端設(shè)備和控制器信息交互的同時,對終端設(shè)備隱藏了控制器的存在,增強(qiáng)網(wǎng)絡(luò)的安全性。
附圖說明
圖1是本發(fā)明網(wǎng)絡(luò)拓?fù)涫疽鈭D;
圖2是本發(fā)明設(shè)備內(nèi)部結(jié)構(gòu)和通信示意圖;
圖3是本發(fā)明申請預(yù)留/釋放資源數(shù)據(jù)格式示意圖;
圖4是本發(fā)明預(yù)留資源過程中控制器執(zhí)行流程圖;
圖5是本發(fā)明終端主動釋放預(yù)留資源流程圖。
具體實施方式
下面結(jié)合附圖及實施例對本發(fā)明做進(jìn)一步的詳細(xì)說明。
參照圖1,本發(fā)明的一種面向工業(yè)sdn的動態(tài)網(wǎng)絡(luò)資源預(yù)留qos保障方法,包括預(yù)留資源申請過程、預(yù)留資源轉(zhuǎn)發(fā)過程和預(yù)留資源釋放過程。預(yù)留/釋放資源由終端設(shè)備發(fā)起,申請信息通過與終端連接的交換機(jī)由sdn網(wǎng)絡(luò)控制通道進(jìn)入網(wǎng)絡(luò)控制器,并在控制器中進(jìn)行資源調(diào)度規(guī)劃,通過流表將反饋結(jié)果返還到終端設(shè)備。圖中粗線表示預(yù)留/釋放資源協(xié)商數(shù)據(jù)走向,虛線表示控制通道數(shù)據(jù)。
參照圖3,一種面向工業(yè)sdn的動態(tài)網(wǎng)絡(luò)資源預(yù)留qos保障方法,終端設(shè)備采用指定以太網(wǎng)類型字段的數(shù)據(jù)包申請預(yù)留/釋放網(wǎng)絡(luò)資源,sdn網(wǎng)絡(luò)控制器和交換機(jī)嚴(yán)格區(qū)分以太網(wǎng)類型字段。數(shù)據(jù)發(fā)送端或者接收端向交換機(jī)發(fā)送資源申請采用的預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包包括以下信息:
(1)數(shù)據(jù)流使用到的軟件定義網(wǎng)絡(luò)匹配元組;
(2)帶寬要求bp,時延要求τp;
(3)數(shù)據(jù)流最大數(shù)據(jù)包長度l;
參照圖2,所述預(yù)留資源申請過程包括以下步驟:
步驟1:數(shù)據(jù)發(fā)送端采用預(yù)留資源協(xié)商以太網(wǎng)數(shù)據(jù)包發(fā)送資源申請至所連接的交換機(jī)。
步驟2:交換機(jī)通過網(wǎng)絡(luò)控制通道將資源協(xié)商數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò)控制器。
步驟3:參照圖4,控制器進(jìn)行預(yù)留資源計算:
步驟3-1:若申請最大數(shù)據(jù)包長度l大于網(wǎng)絡(luò)容納最大長度lmax,將資源申 請狀態(tài)設(shè)置為失敗,否則將資源申請狀態(tài)設(shè)置為成功。
步驟3-2:控制器使用申請預(yù)留資源數(shù)據(jù)包中的匹配元組信息計算數(shù)據(jù)流路徑,并計算路徑上每條鏈路的可分配帶寬:
bkr=αbk0-∑bki
其中bkr為鏈路k上可分配帶寬;bk0表示鏈路k總帶寬;α為帶寬系數(shù),表示預(yù)留帶寬總量占全部帶寬的百分比;bki表示鏈路k上為第i個數(shù)據(jù)流分配的帶寬,∑bki表示已分配給其他數(shù)據(jù)流帶寬總和。
步驟3-3:若申請占用資源中帶寬要求bp小于路徑上所有鏈路可分配帶寬bkr的最小值bmr,則帶寬資源可以滿足帶寬要求;否則表示帶寬資源無法滿足帶寬要求,將資源申請狀態(tài)設(shè)置為失敗,將資源申請狀態(tài)設(shè)置為失?。?/p>
步驟3-4:根據(jù)數(shù)據(jù)流時延τp求數(shù)據(jù)流在鏈路k上的分段時延:
步驟3-5:根據(jù)鏈路分段時延τp計算所需時延保障預(yù)留帶寬:
其中l(wèi)為數(shù)據(jù)流最大數(shù)據(jù)包長度;
步驟3-6:取bkp'和bp中較大的作為鏈路k上為該數(shù)據(jù)流預(yù)留帶寬bkp;比較所有鏈路k上的預(yù)留帶寬bkp和鏈路剩余帶寬bkr,若鏈路k上的預(yù)留帶寬bkp小于鏈路剩余帶寬bkr,則表示可以滿足時延要求;否則將資源申請狀態(tài)設(shè)置為失敗。
步驟4:參照圖4,資源申請狀態(tài)設(shè)置為成功后,控制器進(jìn)行如下操作:
步驟4-1:將申請信息存入數(shù)據(jù)庫;
步驟4-2:向提交請求的交換機(jī)下發(fā)流表,指定交換機(jī)將收到的申請信息保持原樣返還至申請的終端節(jié)點,并指定該交換機(jī)在執(zhí)行一次后將該流表項刪除;
步驟4-3:向路徑上所有交換機(jī)發(fā)送流表,為申請預(yù)留資源數(shù)據(jù)包中匹配元組的數(shù)據(jù)流建立帶寬隊列并規(guī)定轉(zhuǎn)發(fā)規(guī)則;
步驟5:參照圖4,資源申請狀態(tài)設(shè)置為失敗后,控制器進(jìn)行如下操作:
步驟5-1:若申請最大數(shù)據(jù)包長度l大于網(wǎng)絡(luò)容納最大長度lmax,則向提交請求的交換機(jī)下發(fā)流表:指定交換機(jī)用lmax替換l填入申請數(shù)據(jù)包的最大長度字段后將數(shù)據(jù)包返還至終端節(jié)點,并指定該交換機(jī)在執(zhí)行一次后將該流表項刪除;
步驟5-2:若申請帶寬bp大于可分配帶寬bmr,則向提交請求的交換機(jī)下發(fā)流表:指定交換機(jī)用bmr替換bp填入申請數(shù)據(jù)包的帶寬要求字段后將數(shù)據(jù)包返還至終端節(jié)點,并指定該交換機(jī)在執(zhí)行一次后將該流表項刪除;
步驟5-3:若申請時延要求無法滿足,則向提交請求的交換機(jī)下發(fā)流表:指定交換機(jī)將申請數(shù)據(jù)包的時延要求字段置零后將數(shù)據(jù)包返還至終端節(jié)點,并指定該交換機(jī)在執(zhí)行一次后將該流表項刪除。
步驟6:交換機(jī)按照執(zhí)行控制器流表操作,向請求終端反饋申請結(jié)果。
步驟7:若申請預(yù)留資源失敗,終端可以根據(jù)回饋結(jié)果重新申請預(yù)留資源。
參照圖2,所述的預(yù)留資源轉(zhuǎn)發(fā)過程,由路徑上的各個交換機(jī)根據(jù)流表進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)和隊列控制,。
所述的面向工業(yè)sdn的動態(tài)網(wǎng)絡(luò)資源預(yù)留qos保障方法,其特征在于所述預(yù)留資源釋放過程包括以下方式:
方式1:參照圖5,終端設(shè)備不再需要預(yù)留資源或者預(yù)留資源有變化時時,通過以下步驟釋放現(xiàn)有預(yù)留資源:
步驟1:終端設(shè)備采用資源協(xié)商以太網(wǎng)數(shù)據(jù)包發(fā)送釋放資源申請至所連接的交換機(jī)。
步驟2:交換機(jī)通過網(wǎng)絡(luò)控制通道將資源協(xié)商信息發(fā)送至網(wǎng)絡(luò)控制器。
步驟3:控制器根據(jù)請求發(fā)送者和匹配元組查找數(shù)據(jù)庫,若未找到相應(yīng)的資源預(yù)留項則結(jié)束不進(jìn)行任何操作;否則,將匹配內(nèi)容從數(shù)據(jù)庫中刪除,向與終端相連的交換機(jī)發(fā)送一次性執(zhí)行流表,回復(fù)申請成功信息并刪除路徑上的交換機(jī)中的相關(guān)轉(zhuǎn)發(fā)流表項。
方式2:終端設(shè)備不使用預(yù)留資源并且沒有主動釋放時,網(wǎng)絡(luò)通過以下步驟 釋放預(yù)留資源:
步驟1:交換機(jī)經(jīng)過周期t檢查流表使用情況,當(dāng)流表在一個周期內(nèi)未使用時,則通知控制器。
步驟2:控制器接收到一個預(yù)留資源路徑上所有交換機(jī)的通知時,則從數(shù)據(jù)庫中找到匹配項,并刪除路徑上的交換機(jī)中的轉(zhuǎn)發(fā)流表項。