本發(fā)明屬于通信技術(shù)領(lǐng)域,更進(jìn)一步涉及多個(gè)軟件定義網(wǎng)絡(luò)(SoftwareDefinedNetworkSDN)互聯(lián)技術(shù)領(lǐng)域中的一種大規(guī)模軟件定義網(wǎng)絡(luò)(SoftwareDefinedNetworkSDN)中滿足多約束參數(shù)的路由方法。本發(fā)明可以在軟件定義網(wǎng)絡(luò)(SoftwareDefinedNetworkSDN)中獲取一條具有服務(wù)質(zhì)量(QualityofServiceQoS)保障的域內(nèi)和域間路由。
背景技術(shù):隨著互聯(lián)網(wǎng)的高速發(fā)展,出現(xiàn)了各種非傳統(tǒng)數(shù)據(jù)應(yīng)用。例如IP語音以及視頻會(huì)議等,這種新的應(yīng)用對網(wǎng)絡(luò)的服務(wù)質(zhì)量(QualityofServiceQoS)提出了更高的要求,傳統(tǒng)的盡力而為的網(wǎng)絡(luò)服務(wù)已不能滿足新型業(yè)務(wù)的要求?;ヂ?lián)網(wǎng)工程任務(wù)組(InternetEngineeringTaskForceIETF)為支持服務(wù)質(zhì)量(QualityofServiceQoS)需求,提出了多種服務(wù)模型和機(jī)制。其中服務(wù)質(zhì)量(QualityofServiceQoS)路由是解決服務(wù)質(zhì)量問題的一項(xiàng)關(guān)鍵技術(shù)?,F(xiàn)有網(wǎng)絡(luò)架構(gòu)的互聯(lián)網(wǎng)在提供給用戶服務(wù)質(zhì)量方面存在著各種重大缺陷。例如,綜合業(yè)務(wù)模型和區(qū)分業(yè)務(wù)模型兩種方法。對于前者,每個(gè)路由器都要參與決策,導(dǎo)致復(fù)雜度過高和路由器負(fù)擔(dān)太重:對于后者,流的控制粒度過于粗放和不精細(xì),導(dǎo)致端到端的控制效果不佳,所以也沒用實(shí)用的價(jià)值。在軟件定義網(wǎng)絡(luò)中,這一情況得到了根本的改變。軟件定義網(wǎng)絡(luò)將控制邏輯集中在了中央控制器,普通的路由器結(jié)點(diǎn)只保留轉(zhuǎn)發(fā)邏輯。這種集中控制架構(gòu)正適合實(shí)現(xiàn)控制邏輯較為復(fù)雜的服務(wù)質(zhì)量控制。軟件定義網(wǎng)絡(luò)中若要解決服務(wù)質(zhì)量問題,其中服務(wù)質(zhì)量(QualityofServiceQoS)路由則是一項(xiàng)關(guān)鍵技術(shù)。HilmiEnesEgilmez等人在其論文“AdistributedQoSroutingarchitectureforscalablevideostreamingovermulti-domainOpenFlownetworks”(ImageProcessing,201219thIEEEInternationalConferenceon)中公開了一種網(wǎng)絡(luò)虛擬化的方法。該方法利用各個(gè)域控制器來把本域網(wǎng)絡(luò)虛擬化,通過和其他域控制器間交互這些信息來獲得全網(wǎng)的虛擬拓?fù)湫畔?。再通過基于拉格朗日松弛的服務(wù)質(zhì)量(LagrangeRelaxationBasedMethodfortheQoSRoutingProblemLARAC)路由算法,獲得源端到目的端的滿足多約束路由。該方法存在的不足是,每個(gè)域網(wǎng)絡(luò)的控制器都需要收集全網(wǎng)虛擬后的網(wǎng)絡(luò)拓?fù)湫畔?,并且需要保證這些信息的實(shí)時(shí)性和準(zhǔn)確性,這樣就導(dǎo)致網(wǎng)絡(luò)的負(fù)載過重。西安電子科技大學(xué)擁有的專利技術(shù)“用于支持端到端時(shí)延保證的動(dòng)態(tài)資源分配系統(tǒng)及分配方法”(申請?zhí)朇N201010013728.X,授權(quán)號CN101729430)公開了一種用于支持端到端時(shí)延保證的動(dòng)態(tài)資源分配方法。該方法根據(jù)邊界路由器發(fā)送的業(yè)務(wù)請求信息中的時(shí)延上限要求,結(jié)合網(wǎng)絡(luò)負(fù)載信息中的鏈路負(fù)載度和各段鏈路端口處各PHB的時(shí)延估計(jì)值,計(jì)算端到端傳輸路徑各段鏈路上的時(shí)延分配值,在相關(guān)的核心路由器上,根據(jù)本地的可用資源狀態(tài),通過時(shí)延分配值和帶寬要求的匹配,動(dòng)態(tài)選擇最佳PHB進(jìn)行資源配置和分組轉(zhuǎn)發(fā)。該方法存在的不足是,首先,它不能解決多約束條件下的服務(wù)質(zhì)量問題。其次,核心路由器負(fù)擔(dān)重,容易成為整個(gè)系統(tǒng)性能的瓶頸。南京郵電大學(xué)申請的專利“基于選擇探測的多約束QoS路由方法”(公開號CN101969406,申請?zhí)朇N201010527712.0)公開了一種傳統(tǒng)網(wǎng)絡(luò)中獲取滿足多約束QoS的路由方法。該方法利用選擇性向網(wǎng)絡(luò)中發(fā)送探測包來探測可行性路徑,整個(gè)路由方法分為路由探測和路由確認(rèn)兩個(gè)過程,在探測過程中,每個(gè)節(jié)點(diǎn)重新計(jì)算約束參數(shù),降低參數(shù)計(jì)算復(fù)雜度,然后依據(jù)新參數(shù)繼續(xù)探測符合約束參數(shù)要求的可行路由;在確認(rèn)過程選取可行路由并在各個(gè)節(jié)點(diǎn)上進(jìn)行資源預(yù)留,從而建立符合約束要求的可達(dá)路由。該方法存在的不足是,首先,探測過程中有路徑重復(fù)探測的問題,造成網(wǎng)絡(luò)中有大量探測包,網(wǎng)絡(luò)開銷大。其次,該方法僅僅考慮了時(shí)延和帶寬因素,并沒有考慮抖動(dòng)和丟包率對服務(wù)質(zhì)量的影響,所以并不是真正意義上多約束條件下的服務(wù)質(zhì)量問題。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的不足,提出了一種大規(guī)模軟件定義網(wǎng)絡(luò)中滿足多約束參數(shù)的路由方法。本發(fā)明采用了啟發(fā)式基于多約束的最優(yōu)路徑算法(HeuristicMulti-ConstrainedOptimalPathH_MCOP)和探測法相結(jié)合的一種方法,并且也結(jié)合了資源預(yù)留技術(shù)。在域內(nèi)網(wǎng)絡(luò)運(yùn)用啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP的算法求出最優(yōu)路徑,在域間網(wǎng)絡(luò)中有選擇的發(fā)送探測包,最終源主機(jī)所在的控制器能夠獲得到目的網(wǎng)絡(luò)中滿足多約束服務(wù)質(zhì)量參數(shù)的可行性路徑。由于探測包所走的路徑大部分都是轉(zhuǎn)發(fā)器和控制器間的控制路徑,故不會(huì)占用網(wǎng)絡(luò)中數(shù)據(jù)鏈路的帶寬資源,同時(shí)只在域間網(wǎng)絡(luò)中有選擇發(fā)送探測包。這樣做能夠有效地減少網(wǎng)絡(luò)中探測包的個(gè)數(shù),減低網(wǎng)絡(luò)中數(shù)據(jù)鏈路帶寬的消耗,同時(shí)可以解決軟件定義網(wǎng)絡(luò)中尋找滿足多約束參數(shù)路由的問題。本發(fā)明實(shí)現(xiàn)上述目的的具體思路是:源主機(jī)所在網(wǎng)絡(luò)的域網(wǎng)絡(luò)控制器生成探測包,向其他軟件定義網(wǎng)絡(luò)進(jìn)行選擇性發(fā)送探測包。在探測過程中不斷判定子路徑上累加起來的服務(wù)質(zhì)量參數(shù)是否滿足約束,若滿足,則將探測包繼續(xù)向下游網(wǎng)絡(luò)發(fā)送,否則,直接丟棄探測包。待目的主機(jī)所在網(wǎng)絡(luò)的控制器收到后,生成確認(rèn)包,同時(shí)沿包中的路徑信息反向發(fā)送確認(rèn)包。源主機(jī)所在網(wǎng)絡(luò)的控制器從收集多條路徑中選取一條最優(yōu)路徑,并且預(yù)留鏈路的網(wǎng)絡(luò)資源。能夠解決軟件定義網(wǎng)絡(luò)中尋找滿足多約束參數(shù)路由的問題。本發(fā)明實(shí)現(xiàn)上述目的的步驟包括如下:(1)初始化探測包:(1a)域網(wǎng)絡(luò)控制器接受源主機(jī)發(fā)送的路由請求,路由請求信息中包括時(shí)延、帶寬、丟包率和抖動(dòng)的服務(wù)質(zhì)量參數(shù)值、源主機(jī)地址、目的主機(jī)地址;(1b)將探測包中路由請求服務(wù)質(zhì)量值字段和域內(nèi)約束值字段,均標(biāo)記為服務(wù)質(zhì)量參數(shù)值;(1c)將探測包中的類型字段標(biāo)記為探測包類型;將路由請求標(biāo)示符字段標(biāo)記為源主機(jī)地址、目的主機(jī)地址和控制器生成的隨機(jī)數(shù);將路徑記錄字段和子路徑服務(wù)質(zhì)量累加值字段標(biāo)記為零;(1d)域網(wǎng)絡(luò)控制器啟動(dòng)定時(shí)器,將定時(shí)器的時(shí)間值設(shè)為路由請求信息要求時(shí)延的2倍;(2)生成探測包:(2a)域網(wǎng)絡(luò)控制器運(yùn)行啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP的算法,將探測包中域內(nèi)約束值字段內(nèi)容作為該算法的參數(shù),得到從域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器到所有域網(wǎng)絡(luò)邊界出口轉(zhuǎn)發(fā)器之間的域內(nèi)最優(yōu)路徑;(2b)將域內(nèi)最優(yōu)路徑和與出口轉(zhuǎn)發(fā)器相連的域間路徑連接成新子路徑;(2c)判定新子路徑的服務(wù)質(zhì)量參數(shù)和探測包中子路徑服務(wù)質(zhì)量累加值字段的累加和是否小于探測包要求的服務(wù)質(zhì)量參數(shù)值,若是,則執(zhí)行步驟(2d);否則,刪除該新子路徑,執(zhí)行步驟(2g);(2d)運(yùn)用探測包記錄方法,在域網(wǎng)絡(luò)控制器中記錄探測包信息;(2e)在域網(wǎng)絡(luò)控制器中預(yù)留域內(nèi)網(wǎng)絡(luò)帶寬資源,其預(yù)留時(shí)間設(shè)為路由請求信息要求時(shí)延的2倍;(2f)域網(wǎng)絡(luò)控制器生成一個(gè)探測包副本,運(yùn)用探測包修改方法,修改探測包的內(nèi)容;(2g)判定所有新子路徑是否都處理完畢,若是,則執(zhí)行步驟(3);否則,執(zhí)行步驟(2c);(3)探測路徑:(3a)計(jì)算探測包在域網(wǎng)絡(luò)控制器上的等待時(shí)間Δt;(3b)域網(wǎng)絡(luò)控制器在等待時(shí)間Δt過后,將探測包發(fā)送到探測包標(biāo)記的網(wǎng)絡(luò)中;(3c)判定域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器之前是否收到過同樣路由請求標(biāo)示符的探測包,若是,則執(zhí)行步驟(3d);否則,執(zhí)行步驟(4);(3d)運(yùn)用探測包記錄方法,將探測包信息記錄到域網(wǎng)絡(luò)控制器中,作為待拼接子路徑,丟棄探測包,繼續(xù)執(zhí)行步驟(3c);(4)域網(wǎng)絡(luò)控制器判斷探測包是否到達(dá)目的主機(jī)所在網(wǎng)絡(luò),若是,則執(zhí)行步驟(5);否則,轉(zhuǎn)向步驟(2);(5)生成完整路徑:(5a)域網(wǎng)絡(luò)控制器通過啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP的算法,得到域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器到域網(wǎng)絡(luò)出口轉(zhuǎn)發(fā)器之間的域內(nèi)最優(yōu)路徑;(5b)判定域內(nèi)最優(yōu)路徑的服務(wù)質(zhì)量參數(shù)和探測包中子路徑服務(wù)質(zhì)量累加值字段的累加和是否小于探測包要求的服務(wù)質(zhì)量參數(shù),若是,則執(zhí)行步驟(5c);否則,丟棄探測包,繼續(xù)執(zhí)行步驟(5a);(5c)運(yùn)用探測包記錄方法,在域網(wǎng)絡(luò)控制器中記錄探測包信息;(5d)將探測包中子路徑服務(wù)質(zhì)量累加值字段標(biāo)記為域內(nèi)最優(yōu)路徑的服務(wù)質(zhì)量參數(shù)和探測包中子路徑服務(wù)質(zhì)量累加值字段的累加和,將域網(wǎng)絡(luò)控制器在全網(wǎng)中的序號添加到探測包中路徑記錄字段;(5e)將探測包中的類型字段標(biāo)記為確認(rèn)包類型;(6)發(fā)送確認(rèn)包:(6a)域網(wǎng)絡(luò)控制器判定確認(rèn)包是否到達(dá)源主機(jī)所在網(wǎng)絡(luò),若是,執(zhí)行步驟(6h);否則,執(zhí)行步驟(6b);(6b)域網(wǎng)絡(luò)控制器通過讀取確認(rèn)包中路徑記錄字段信息,得出確認(rèn)包在本域網(wǎng)絡(luò)中的出口轉(zhuǎn)發(fā)器信息;(6c)在控制器中對應(yīng)的出口轉(zhuǎn)發(fā)器位置,判定是否有與確認(rèn)包中路由請求標(biāo)示符相同的待拼接子路徑,若有,則執(zhí)行步驟(6d);否則,執(zhí)行步驟(6g);(6d)將確認(rèn)包路徑記錄字段中控制器序號集合與保存在控制器的路徑記錄中控制器序號集合做差集運(yùn)算,得出后續(xù)子路徑,域網(wǎng)絡(luò)控制器將后續(xù)子路徑和待拼接子路徑連接成新完整路徑;(6e)判定新完整路徑的服務(wù)質(zhì)量參數(shù)值是否小于或者等于確認(rèn)包中要求的服務(wù)質(zhì)量參數(shù)值,若是,則執(zhí)行步驟(6f);否則,刪除該新完整路徑,繼續(xù)執(zhí)行步驟(6e);(6f)域網(wǎng)絡(luò)控制器生成新完整路徑對應(yīng)的確認(rèn)包;(6g)依據(jù)確認(rèn)包中路徑記錄字段的信息,域網(wǎng)絡(luò)控制器發(fā)送確認(rèn)包到上游域網(wǎng)絡(luò)控制器,執(zhí)行步驟(6a);(6h)域網(wǎng)絡(luò)控制器保存確認(rèn)包中攜帶的路徑信息,丟棄確認(rèn)包;(6i)當(dāng)步驟(1d)啟動(dòng)的定時(shí)器到時(shí)后,執(zhí)行步驟(7);(7)選取最優(yōu)路徑:(7a)運(yùn)用最優(yōu)路徑選擇方法,域網(wǎng)絡(luò)控制器從探測到的多條路徑中選取最優(yōu)路徑;(7b)將最優(yōu)路徑對應(yīng)確認(rèn)包中的類型字段修改為選路類型,得到選路包;(7c)域網(wǎng)絡(luò)控制器啟動(dòng)一個(gè)選路定時(shí)器,該選路定時(shí)器的時(shí)間設(shè)為路由請求信息要求時(shí)延的2倍;(8)判定域間路徑是否滿足約束:對于域網(wǎng)絡(luò)控制器和選路包中標(biāo)記的下游域網(wǎng)絡(luò)控制器之間的域間路徑,判定其服務(wù)質(zhì)量參數(shù)值是否小于或者等于記錄在域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器中保存的域間路徑服務(wù)質(zhì)量參數(shù)值,若是,則執(zhí)行步驟(9);否則,將選路包中類型字段標(biāo)記為失敗類型,執(zhí)行步驟(11);(9)確認(rèn)最優(yōu)路徑:(9a)域網(wǎng)絡(luò)控制器下發(fā)流表到域內(nèi)最優(yōu)路徑經(jīng)過的域網(wǎng)絡(luò)轉(zhuǎn)發(fā)器中,預(yù)留域內(nèi)最優(yōu)路徑和域間路徑的帶寬資源;(9b)沿選路包路徑記錄字段中的路徑,域網(wǎng)絡(luò)控制器發(fā)送選路包到下游域網(wǎng)絡(luò)控制器;(10)判定選路包是否到達(dá)目的主機(jī)所在網(wǎng)絡(luò),若是,則執(zhí)行步驟(15);否則,執(zhí)行步驟(8);(11)發(fā)送失敗包;沿失敗包路徑記錄字段中的路徑,域網(wǎng)絡(luò)控制器反向發(fā)送該失敗包到上游域網(wǎng)絡(luò)控制器;(12)判定失敗包是否到達(dá)源主機(jī)所在網(wǎng)絡(luò),若是,從域網(wǎng)絡(luò)控制器中刪除最優(yōu)路徑和選路定時(shí)器,執(zhí)行步驟(7);否則,執(zhí)行步驟(13);(13)釋放預(yù)留資源:(13a)域網(wǎng)絡(luò)控制器刪除下發(fā)到域內(nèi)最優(yōu)路徑上域網(wǎng)絡(luò)轉(zhuǎn)發(fā)器中的流表,釋放域內(nèi)最優(yōu)路徑和域間路徑的帶寬資源;(13b)沿失敗包路徑記錄字段中的路徑,域網(wǎng)絡(luò)控制器反向發(fā)送該失敗包到上游域網(wǎng)絡(luò)控制器;(14)判定失敗包是否到達(dá)源主機(jī)所在網(wǎng)絡(luò),若是,從域網(wǎng)絡(luò)控制器中刪除最優(yōu)路徑和選路定時(shí)器,執(zhí)行步驟(7);否則,執(zhí)行步驟(13);(15)探測過程結(jié)束:當(dāng)步驟(7c)啟動(dòng)的選路定時(shí)器到時(shí)后,選路成功。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):第一、本發(fā)明采用了探測包記錄方法,克服了現(xiàn)有技術(shù)中探測包過多帶來開銷大的問題,使得本發(fā)明具有在軟件定義網(wǎng)絡(luò)中,通過發(fā)送少量探測包就能夠獲取路徑信息的優(yōu)點(diǎn)。第二、本發(fā)明采用了計(jì)算探測包在域網(wǎng)絡(luò)控制器上的等待時(shí)間Δt的方法,克服了現(xiàn)有技術(shù)中路徑重復(fù)探測的問題,使得本發(fā)明具有探測效率高的優(yōu)點(diǎn)。第三、本發(fā)明采用了源路由策略和分布式路由策略相結(jié)合的方法,克服了現(xiàn)有技術(shù)中域網(wǎng)絡(luò)控制器收集全網(wǎng)拓?fù)湫畔ⅲ瑤砭W(wǎng)絡(luò)開銷大的問題,使得本發(fā)明具有網(wǎng)絡(luò)開銷小的優(yōu)點(diǎn)。第四、本發(fā)明采用了域內(nèi)直接計(jì)算和域間探測相結(jié)合的方法,克服了現(xiàn)有技術(shù)中不能解決大規(guī)模軟件定義網(wǎng)絡(luò)中尋中滿足多個(gè)服務(wù)質(zhì)量參數(shù)約束的路徑問題,使得本發(fā)明具有能夠在軟件定義網(wǎng)絡(luò)中,尋找滿足多個(gè)服務(wù)質(zhì)量參數(shù)約束最優(yōu)路徑的優(yōu)點(diǎn)。附圖說明圖1是本發(fā)明的流程圖;圖2是本發(fā)明的實(shí)施例圖。具體實(shí)施方式下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)描述。參照附圖1,本發(fā)明的具體步驟詳細(xì)描述如下。步驟1,初始化探測包。(1a)域網(wǎng)絡(luò)控制器接受源主機(jī)發(fā)送的路由請求,路由請求信息中包括時(shí)延、帶寬、丟包率和抖動(dòng)的服務(wù)質(zhì)量參數(shù)值、源主機(jī)地址、目的主機(jī)地址。(1b)將探測包中路由請求服務(wù)質(zhì)量值字段和域內(nèi)約束值字段,均標(biāo)記為服務(wù)質(zhì)量參數(shù)值。(1c)將探測包中的類型字段標(biāo)記為探測包類型;將路由請求標(biāo)示符字段標(biāo)記為源主機(jī)地址、目的主機(jī)地址和控制器生成的隨機(jī)數(shù);將路徑記錄字段和子路徑服務(wù)質(zhì)量累加值字段標(biāo)記為零。(1d)域網(wǎng)絡(luò)控制器啟動(dòng)定時(shí)器,將定時(shí)器的時(shí)間值設(shè)為路由請求信息要求時(shí)延的2倍。步驟2,生成探測包。(2a)域網(wǎng)絡(luò)控制器運(yùn)行啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP的算法,將探測包中域內(nèi)約束值字段內(nèi)容作為該算法的參數(shù),得到從域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器到所有域網(wǎng)絡(luò)邊界出口轉(zhuǎn)發(fā)器之間的域內(nèi)最優(yōu)路徑。啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP算法是一種能解決NP完全問題的啟發(fā)式算法。它首先假設(shè)網(wǎng)絡(luò)的實(shí)際狀態(tài)對于每個(gè)節(jié)點(diǎn)都是可以利用的,然后利用每個(gè)節(jié)點(diǎn)的信息來計(jì)算點(diǎn)到點(diǎn)的路徑。設(shè)p為一條從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的路徑,稱其中λ≥1,c1、c2…cK是給定的K個(gè)約束值,他們存儲(chǔ)在探測包中域內(nèi)約束值字段中,w1(p)、w2(p)…wK(p)是路徑p對應(yīng)的K個(gè)服務(wù)質(zhì)量參數(shù)值,為非線性代價(jià)函數(shù)。每個(gè)域網(wǎng)絡(luò)轉(zhuǎn)發(fā)器的節(jié)點(diǎn)信息主要包括:s:源節(jié)點(diǎn)t:目的節(jié)點(diǎn)r[u]、從u到t的最短路徑RK[u]、從t到u的每個(gè)權(quán)重的累積值πr[u]、從t到u在節(jié)點(diǎn)u以前所選的所有點(diǎn)g[u]、從s到u非線性函數(shù)的值Gk[u]、從s到u每個(gè)權(quán)重代價(jià)函數(shù)的累積值πg(shù)[u]、從s到u在節(jié)點(diǎn)u以前所選的所有點(diǎn)c[u]、從s到u代價(jià)函數(shù)。在以上域網(wǎng)絡(luò)轉(zhuǎn)發(fā)器節(jié)點(diǎn)信息形成后,算法開始運(yùn)行,算法主要由兩部分組成。這兩個(gè)部分也可以說成是兩個(gè)方向,即正向和反向。第一部分:這部分是有t到s的反向?qū)ぢ愤^程。這部分主要是以λ=1時(shí)的非線性函數(shù)為度量函數(shù)來尋找最短路徑,應(yīng)用的是Dijkstra算法。當(dāng)λ=1時(shí),若能找到最短路徑,則可能存在滿足多約束條件的路徑,但是并不一定存在,若不能找到最短路徑,則一定不存在滿足多約束條件的路徑,更談不上最優(yōu)路徑。所以,這部分尋路過程目的并不是尋找最理想的路徑,而是要檢測出在網(wǎng)絡(luò)中有么有符合多約束條件的路徑存在。這部分應(yīng)用的節(jié)點(diǎn)信息包括r[u]、RK[u]和πr[u]。第二部分:這部分是由s到t的正向?qū)ぢ愤^程。這部分主要是以λ>1時(shí)的非線性函數(shù)為度量來尋找最短路徑,應(yīng)用的也是最基本的Dijkstra算法。這部分尋路過程就是在反向?qū)ぢ烦晒?,尋找理想路徑的尋路過程。若尋到理想路徑則返回該路徑,若沒有尋找理想路徑,則這個(gè)網(wǎng)絡(luò)中沒有可行性路徑。尋路失敗。這部分應(yīng)用的節(jié)點(diǎn)信息包括g[u]、Gk[u]、πg(shù)[u]和c[u]。該算法按下列步驟進(jìn)行:第一步,從目的主機(jī)到源主機(jī)的反向?qū)ぢ罚瑢⑾禂?shù)λ=1時(shí)的非線性函數(shù)作為迪杰斯特拉Dijkstra的參數(shù),通過迪杰斯特拉Dijkstra算法,得出反向?qū)ぢ纷疃搪窂?。第二步,判定反向?qū)ぢ纷疃搪窂降木€性函數(shù)值是否大于服務(wù)質(zhì)量參數(shù)的個(gè)數(shù),若是,返回給域控制器一個(gè)尋路失敗信息,執(zhí)行第五步;否則,執(zhí)行第三步。第三步,從源主機(jī)到目的主機(jī)的正向?qū)ぢ?,將系?shù)λ>1時(shí)的非線性函數(shù)作為迪杰斯特拉Dijkstra的參數(shù),通過迪杰斯特拉Dijkstra算法,得出正向?qū)ぢ纷疃搪窂?。第四步,判定正向?qū)ぢ纷疃搪窂降姆?wù)質(zhì)量參數(shù)是否小于或者等于路徑請求信息中的服務(wù)質(zhì)量參數(shù)值,若是,則返回給域控制器正向?qū)ぢ纷疃搪窂降男畔?;否則,返回給域控制器一個(gè)尋路失敗信息。第五步,結(jié)束啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP算法。(2b)將域內(nèi)最優(yōu)路徑和與出口轉(zhuǎn)發(fā)器相連的域間路徑連接成新子路徑。(2c)判定新子路徑的服務(wù)質(zhì)量參數(shù)和探測包中子路徑服務(wù)質(zhì)量累加值字段的累加和是否小于探測包要求的服務(wù)質(zhì)量參數(shù)值,若是,則執(zhí)行步驟(2d);否則,刪除該新子路徑,執(zhí)行步驟(2g)。(2d)運(yùn)用探測包記錄方法,在域網(wǎng)絡(luò)控制器中記錄探測包信息,探測包記錄方法按下列步驟進(jìn)行。第一步,在域網(wǎng)絡(luò)控制器的信息表中找見探測包的入口轉(zhuǎn)發(fā)器位置。第二步,根據(jù)探測包中內(nèi)容,在入口轉(zhuǎn)發(fā)器位置記錄以下信息:入口轉(zhuǎn)發(fā)器號、路由請求標(biāo)示符、路徑記錄、子路徑服務(wù)質(zhì)量參數(shù)值、域內(nèi)路徑記錄、下一跳和域間路徑服務(wù)質(zhì)量參數(shù)值。第三步,再在入口轉(zhuǎn)發(fā)器位置的路徑記錄字段,添加本網(wǎng)絡(luò)中域控制器的序號。(2e)在域網(wǎng)絡(luò)控制器中預(yù)留域內(nèi)網(wǎng)絡(luò)帶寬資源,其預(yù)留時(shí)間設(shè)為路由請求信息要求時(shí)延的2倍。(2f)域網(wǎng)絡(luò)控制器生成一個(gè)探測包副本,運(yùn)用探測包修改方法,修改探測包的內(nèi)容,探測包修改方法按下列步驟進(jìn)行:第一步,將探測包中子路徑服務(wù)質(zhì)量累加值字段標(biāo)記為新子路徑的服務(wù)質(zhì)量參數(shù)和探測包中子路徑服務(wù)質(zhì)量累加值字段的累加和。第二步,將探測包中域內(nèi)約束值字段標(biāo)記為原有值與新子路徑的服務(wù)質(zhì)量參數(shù)之差。第三步,將域網(wǎng)絡(luò)控制器在全網(wǎng)中的序號添加到探測包中路徑記錄字段。(2g)判定所有新子路徑是否都處理完畢,若是,則執(zhí)行步驟3;否則,執(zhí)行步驟(2c)。步驟3,探測路徑。(3a)計(jì)算探測包在域網(wǎng)絡(luò)控制器上的等待時(shí)間Δt。一對源和目的控制器間任意兩條不重合路徑,如果探測包在探測路徑上傳輸時(shí)間加上在控制器節(jié)點(diǎn)中停留時(shí)間與實(shí)際數(shù)據(jù)鏈路的合成服務(wù)質(zhì)量參數(shù)值成固定比例c,則最先到目的網(wǎng)絡(luò)的探測包中攜帶的路徑信息是最有可能滿足路由請求約束。因?yàn)樵撀窂叫畔⒌暮铣煞?wù)質(zhì)量參數(shù)值最小。在計(jì)算這個(gè)等待時(shí)間Δt時(shí),將n個(gè)服務(wù)質(zhì)量加性參數(shù)d1(p)、d2(p)…dn(p)合成一個(gè)值,記為d(p)。其中,D1、D2…Dn為路由請求的n個(gè)約束服務(wù)質(zhì)量參數(shù)值。例如,有兩條從源網(wǎng)絡(luò)控制器s到目的網(wǎng)絡(luò)控制器t的不重合路徑,p1(s,...,i,...,t),p2(s,...,k,...,t),d(p1)<d(p2),如果則t1<t2。在需要確定探測包在控制器中額外停留時(shí)間Δt和比例c,其中tij是入口轉(zhuǎn)發(fā)器到控制器i的時(shí)間、包在控制器i中正常處理時(shí)間、控制器i到出口轉(zhuǎn)發(fā)的器時(shí)間和到控制器j域間鏈路傳播時(shí)延的累加值,dij是對應(yīng)于前者的入口轉(zhuǎn)發(fā)器到出口轉(zhuǎn)發(fā)器以及域間鏈路的合成服務(wù)質(zhì)量參數(shù)。在選擇Δt和比例c,Δt>0,如果能找見合適的c值,則一定能保證Δt>0。c值的計(jì)算如下:由于網(wǎng)絡(luò)建立之初,網(wǎng)絡(luò)中兩相鄰控制器之間的傳輸時(shí)間在網(wǎng)絡(luò)設(shè)計(jì)之時(shí)就可以確定的,而兩轉(zhuǎn)發(fā)器之間最小合成服務(wù)質(zhì)量參數(shù)值也可以計(jì)算出來的。所以每個(gè)域網(wǎng)絡(luò)控制器先計(jì)算出本域的c值,再和相鄰控制器交互這些信息并且取較大的c值,待收斂后,每個(gè)控制器都取得同一個(gè)c值。然后再利用Δt=c*dij-tij計(jì)算出在該控制器中的等待時(shí)間Δt,該控制器中的等待時(shí)間就是該標(biāo)示符類型探測包在沿路徑轉(zhuǎn)發(fā)出去之前需要在該控制器中等待的時(shí)間。等待時(shí)間Δt按照下列步驟得到。第一步,按照下式,計(jì)算每個(gè)域網(wǎng)絡(luò)的控制器常數(shù)c值:其中,c表示一個(gè)域網(wǎng)絡(luò)的控制器常數(shù),txy表示該域網(wǎng)絡(luò)的一個(gè)入口轉(zhuǎn)發(fā)器x到該域網(wǎng)絡(luò)的控制器的傳播時(shí)延、探測包在域網(wǎng)絡(luò)控制器處理時(shí)間、該域網(wǎng)絡(luò)的控制器到該域網(wǎng)絡(luò)的一個(gè)出口轉(zhuǎn)發(fā)器y的傳播時(shí)延和與域網(wǎng)絡(luò)出口轉(zhuǎn)發(fā)器相連域間鏈路傳播時(shí)延的累加值,dxy表示該域網(wǎng)絡(luò)的一個(gè)入口轉(zhuǎn)發(fā)器x到該域網(wǎng)絡(luò)的一個(gè)出口轉(zhuǎn)發(fā)器y的最短路徑和域間鏈路的合成服務(wù)質(zhì)量參數(shù)值。第二步,域網(wǎng)絡(luò)控制器與其他域網(wǎng)絡(luò)控制器通過發(fā)送消息的方式,獲得對方的域網(wǎng)絡(luò)控制器常數(shù)c值。第三步,對于每個(gè)域網(wǎng)絡(luò)的控制器常數(shù)c值,在其中選擇最大者作為最終域網(wǎng)絡(luò)控制器的常數(shù)c1值。第四步,按照下式,計(jì)算探測包等待時(shí)間Δt值:Δt=c1*dij-tij其中,Δt表示探測包等待時(shí)間,c1表示最終域網(wǎng)絡(luò)控制器的常數(shù),dij表示域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器到域網(wǎng)絡(luò)出口轉(zhuǎn)發(fā)器的最優(yōu)路徑以及域間鏈路的合成服務(wù)質(zhì)量參數(shù)值,tij表示域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器到域網(wǎng)絡(luò)控制器i傳播時(shí)延、探測包在域網(wǎng)絡(luò)控制器i中正常處理時(shí)間、域網(wǎng)絡(luò)控制器i到域網(wǎng)絡(luò)出口轉(zhuǎn)發(fā)器傳播時(shí)延和與域網(wǎng)絡(luò)控制器j相連域間鏈路傳播時(shí)延的累加值。(3b)域網(wǎng)絡(luò)控制器在等待時(shí)間Δt過后,將探測包發(fā)送到探測包標(biāo)記的網(wǎng)絡(luò)中。(3c)判定域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器之前是否收到過同樣路由請求標(biāo)示符的探測包,若是,則執(zhí)行步驟(3d);否則,執(zhí)行步驟4。(3d)運(yùn)用探測包記錄方法,將探測包信息記錄到域網(wǎng)絡(luò)控制器中,作為待拼接子路徑,丟棄探測包,繼續(xù)執(zhí)行步驟(3c),其中探測包記錄方法和步驟(2d)中一樣。步驟4,域網(wǎng)絡(luò)控制器判斷探測包是否到達(dá)目的主機(jī)所在網(wǎng)絡(luò),若是,則執(zhí)行步驟5;否則,轉(zhuǎn)向步驟2。步驟5,生成完整路徑。(5a)域網(wǎng)絡(luò)控制器通過啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP的算法,得到域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器到域網(wǎng)絡(luò)出口轉(zhuǎn)發(fā)器之間的域內(nèi)最優(yōu)路徑,其中啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP的算法和步驟(2a)中的一樣。(5b)判定域內(nèi)最優(yōu)路徑的服務(wù)質(zhì)量參數(shù)和探測包中子路徑服務(wù)質(zhì)量累加值字段的累加和是否小于探測包要求的服務(wù)質(zhì)量參數(shù),若是,則執(zhí)行步驟(5c);否則,丟棄探測包,繼續(xù)執(zhí)行步驟(5a)。(5c)運(yùn)用探測包記錄方法,在域網(wǎng)絡(luò)控制器中記錄探測包信息,其中探測包記錄方法和步驟(2d)中一樣。(5d)將探測包中子路徑服務(wù)質(zhì)量累加值字段標(biāo)記為域內(nèi)最優(yōu)路徑的服務(wù)質(zhì)量參數(shù)和探測包中子路徑服務(wù)質(zhì)量累加值字段的累加和,將域網(wǎng)絡(luò)控制器在全網(wǎng)中的序號添加到探測包中路徑記錄字段。(5e)將探測包中的類型字段標(biāo)記為確認(rèn)包類型。步驟6,發(fā)送確認(rèn)包。(6a)域網(wǎng)絡(luò)控制器判定確認(rèn)包是否到達(dá)源主機(jī)所在網(wǎng)絡(luò),若是,執(zhí)行步驟(6h);否則,執(zhí)行步驟(6b)。(6b)域網(wǎng)絡(luò)控制器通過讀取確認(rèn)包中路徑記錄字段信息,得出確認(rèn)包在本域網(wǎng)絡(luò)中的出口轉(zhuǎn)發(fā)器信息。(6c)在控制器中對應(yīng)的出口轉(zhuǎn)發(fā)器位置,判定是否有與確認(rèn)包中路由請求標(biāo)示符相同的待拼接子路徑,若有,則執(zhí)行步驟(6d);否則,執(zhí)行步驟(6g)。(6d)將確認(rèn)包路徑記錄字段中控制器序號集合與保存在控制器的路徑記錄中控制器序號集合做差集運(yùn)算,得出后續(xù)子路徑,域網(wǎng)絡(luò)控制器將后續(xù)子路徑和待拼接子路徑連接成新完整路徑。(6e)判定新完整路徑的服務(wù)質(zhì)量參數(shù)值是否小于或者等于確認(rèn)包中要求的服務(wù)質(zhì)量參數(shù)值,若是,則執(zhí)行步驟(6f);否則,刪除該新完整路徑,繼續(xù)執(zhí)行步驟(6e)。(6f)域網(wǎng)絡(luò)控制器生成新完整路徑對應(yīng)的確認(rèn)包。(6g)依據(jù)確認(rèn)包中路徑記錄字段的信息,域網(wǎng)絡(luò)控制器發(fā)送確認(rèn)包到上游域網(wǎng)絡(luò)控制器,執(zhí)行步驟(6a)。(6h)域網(wǎng)絡(luò)控制器保存確認(rèn)包中攜帶的路徑信息,丟棄確認(rèn)包。(6i)當(dāng)步驟(1d)啟動(dòng)的定時(shí)器到時(shí)后,執(zhí)行步驟7。步驟7,選取最優(yōu)路徑。(7a)運(yùn)用最優(yōu)路徑選擇方法,域網(wǎng)絡(luò)控制器從探測到的多條路徑中選取最優(yōu)路徑。(7b)將最優(yōu)路徑對應(yīng)確認(rèn)包中的類型字段修改為選路類型,得到選路包。(7c)域網(wǎng)絡(luò)控制器啟動(dòng)一個(gè)選路定時(shí)器,該選路定時(shí)器的時(shí)間設(shè)為路由請求信息要求時(shí)延的2倍。步驟8,判定域間路徑是否滿足約束。對于域網(wǎng)絡(luò)控制器和選路包中標(biāo)記的下游域網(wǎng)絡(luò)控制器之間的域間路徑,判定其服務(wù)質(zhì)量參數(shù)值是否小于或者等于記錄在域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器中保存的域間路徑服務(wù)質(zhì)量參數(shù)值,若是,則執(zhí)行步驟9;否則,將選路包中類型字段標(biāo)記為失敗類型,執(zhí)行步驟11。步驟9,確認(rèn)最優(yōu)路徑。域網(wǎng)絡(luò)控制器下發(fā)流表到域內(nèi)最優(yōu)路徑經(jīng)過的域網(wǎng)絡(luò)轉(zhuǎn)發(fā)器中,預(yù)留域內(nèi)最優(yōu)路徑和域間路徑的帶寬資源。沿選路包路徑記錄字段中的路徑,域網(wǎng)絡(luò)控制器發(fā)送選路包到下游域網(wǎng)絡(luò)控制器。步驟10,判定選路包是否到達(dá)目的主機(jī)所在網(wǎng)絡(luò),若是,則執(zhí)行步驟15;否則,執(zhí)行步驟8。步驟11,發(fā)送失敗包。沿失敗包路徑記錄字段中的路徑,域網(wǎng)絡(luò)控制器反向發(fā)送該失敗包到上游域網(wǎng)絡(luò)控制器。步驟12,判定失敗包是否到達(dá)源主機(jī)所在網(wǎng)絡(luò),若是,從域網(wǎng)絡(luò)控制器中刪除最優(yōu)路徑和選路定時(shí)器,執(zhí)行步驟7;否則,執(zhí)行步驟13。步驟13,釋放預(yù)留資源。域網(wǎng)絡(luò)控制器刪除下發(fā)到域內(nèi)最優(yōu)路徑上域網(wǎng)絡(luò)轉(zhuǎn)發(fā)器中的流表,釋放域內(nèi)最優(yōu)路徑和域間路徑的帶寬資源。沿失敗包路徑記錄字段中的路徑,域網(wǎng)絡(luò)控制器反向發(fā)送該失敗包到上游域網(wǎng)絡(luò)控制器。步驟14,判定失敗包是否到達(dá)源主機(jī)所在網(wǎng)絡(luò),若是,從域網(wǎng)絡(luò)控制器中刪除最優(yōu)路徑和選路定時(shí)器,執(zhí)行步驟7;否則,執(zhí)行步驟13。步驟15,探測過程結(jié)束。當(dāng)步驟(7c)啟動(dòng)的選路定時(shí)器到時(shí)后,選路成功。下面結(jié)合實(shí)施例對本發(fā)明的尋找路徑過程進(jìn)行詳細(xì)說明。實(shí)施例參照圖2。圖2中的CE1、CE2…CE7分別標(biāo)記為各個(gè)軟件定義網(wǎng)絡(luò)中的控制器,s和t分別標(biāo)記為源主機(jī)和目的主機(jī),線段標(biāo)記為鏈路,線段上數(shù)字標(biāo)記為該鏈路的服務(wù)質(zhì)量參數(shù)值,小空心圓圈標(biāo)記為轉(zhuǎn)發(fā)器,小空心圓圈中數(shù)字標(biāo)記為轉(zhuǎn)發(fā)器的序號。步驟1,初始化探測包。在CE1控制器控制的軟件定義網(wǎng)絡(luò)中,源主機(jī)s經(jīng)過與其直連的轉(zhuǎn)發(fā)器1向控制器CE1發(fā)送一個(gè)路由請求消息,路由請求信息中包括源主機(jī)地址ip1、目的主機(jī)地址ip2和服務(wù)質(zhì)量參數(shù)值(19,17)。其中服務(wù)質(zhì)量參數(shù)分別是時(shí)延和抖動(dòng)。為了便于說明,故僅考慮兩個(gè)可加性服務(wù)質(zhì)量參數(shù)且取值均為正整數(shù)的情況。對于帶寬,控制器可以在收到探測包后,立即檢測鏈路可用帶寬是否滿足約束;對于丟包率,則可以采用對數(shù)法,使其變成加性服務(wù)質(zhì)量參數(shù)來考慮。所以,該方法可以應(yīng)用于多個(gè)服務(wù)質(zhì)量參數(shù)的路由問題。控制器CE1接受源主機(jī)發(fā)送的路由請求后,生成一個(gè)探測包,其中類型字段標(biāo)記為探測類型;路由請求標(biāo)示符字段標(biāo)記為一個(gè)三元組<ip1,ip2,id1>,其中id1是系統(tǒng)隨機(jī)生成數(shù);路徑記錄字段和子路徑服務(wù)質(zhì)量累加值字段均標(biāo)記為零;路由請求服務(wù)質(zhì)量值字段和域內(nèi)約束值字段均標(biāo)記為(19,17)??刂破鰿E1啟動(dòng)一個(gè)路由請求標(biāo)示符為<ip1,ip2,id1〉的定時(shí)器,初值是該源端請求時(shí)延的2倍,即2*19=38。步驟2,生成探測包??刂破鰿E1運(yùn)用啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP的算法,以探測包中的域內(nèi)約束字段(19,17)為算法參數(shù),得出入口轉(zhuǎn)發(fā)器1到所有出口轉(zhuǎn)發(fā)器的最優(yōu)路徑和服務(wù)質(zhì)量參數(shù)值。因?yàn)榈睫D(zhuǎn)發(fā)器3的情況和到轉(zhuǎn)發(fā)器2的情況類似,故只對到轉(zhuǎn)發(fā)器2的路徑加以說明。得出的到轉(zhuǎn)發(fā)器2的域內(nèi)最優(yōu)路徑為轉(zhuǎn)發(fā)器1、轉(zhuǎn)發(fā)器2,記為1-2。域內(nèi)最優(yōu)路徑的服務(wù)質(zhì)量值為(2,3)。由于邊界轉(zhuǎn)發(fā)器2連接了CE2控制器的網(wǎng)絡(luò)和CE3控制器的網(wǎng)絡(luò),故分別判定域內(nèi)服務(wù)質(zhì)量參數(shù)為(2,3)和域間(1,1)、(6,6)累加后是否小于或者等于路由請求服務(wù)質(zhì)量參數(shù)值,累加后子路徑服務(wù)質(zhì)量參數(shù)分別為(3,4)與(8,9)。均小于路由請求要求的(19,17),故兩個(gè)新子路徑都滿足約束條件。對于第一條新子路徑而言,運(yùn)行探測包記錄方法,控制器CE1中記錄探測包信息,記錄如下表:對于第二條新子路徑的也在控制器中記錄探測包中信息,如上表所示??刂破鰿E1預(yù)留域內(nèi)鏈路1-2上的網(wǎng)絡(luò)帶寬資源,其預(yù)留時(shí)間設(shè)為路由請求信息要求時(shí)延的2倍。對于到控制器CE2的新子路徑,控制器CE1生成一個(gè)探測包副本,運(yùn)用探測包修改方法,修改探測包中以下字段,將路徑記錄字段標(biāo)記為CE1,子路徑服務(wù)質(zhì)量累加值字段標(biāo)記為(3,4),域內(nèi)約束值字段標(biāo)記為(16,13)。對于到控制器CE3的新子路徑,控制器CE1也生成一個(gè)探測包副本,運(yùn)用探測包修改方法,修改探測包中以下字段,將路徑記錄字段標(biāo)記為CE1,子路徑服務(wù)質(zhì)量累加值字段標(biāo)記為(8,9),域內(nèi)約束值字段標(biāo)記為(11,8)。步驟3,探測路徑。在CE1控制器的網(wǎng)絡(luò)中,控制器CE1分別計(jì)算兩個(gè)探測包需要在控制器中的等待時(shí)間Δt1和Δt2。由于每個(gè)控制器的常數(shù)c值是已知的,故只需知道路徑合成度量值就可以計(jì)算出等待時(shí)間Δt。由可知,Δt1=0.39c,Δt2=0.95c。因?yàn)樘綔y包在CE1中被處理需要時(shí)間和在鏈路傳輸有時(shí)延,故上述的Δt1和Δt2還需要減去這兩個(gè)時(shí)間,才是在控制器中真正需要停留的時(shí)間。為了便于說明和計(jì)算姑且忽略之,因此探測包到CE2網(wǎng)絡(luò)中要比到CE3網(wǎng)絡(luò)中早。對于先發(fā)送出去到控制器CE2中的探測包而言,控制器CE2判定入口轉(zhuǎn)發(fā)器3之前沒有收到過過標(biāo)識(shí)符為<ip1,ip2,id1>的探測包,執(zhí)行步驟4。步驟4,CE2控制器判定探測包沒有到達(dá)目的主機(jī)所在網(wǎng)絡(luò),進(jìn)而在CE2控制器中繼續(xù)執(zhí)行步驟2。各個(gè)域網(wǎng)絡(luò)控制器處理過程如下。在控制器CE2控制的軟件定義網(wǎng)絡(luò)中,控制器CE2運(yùn)行啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP算法,得出從該域中轉(zhuǎn)發(fā)器3到其他所有邊界轉(zhuǎn)發(fā)器的最優(yōu)路徑。由于到其它出口轉(zhuǎn)發(fā)器的情況與到轉(zhuǎn)發(fā)器4的情況類似,故只說明到轉(zhuǎn)發(fā)器4的情況。計(jì)算出的域內(nèi)最優(yōu)路徑為轉(zhuǎn)發(fā)器3-1-2-4。其服務(wù)質(zhì)量值為(4,3)。把該段路徑(4,3)和其相應(yīng)的域間路徑(2,4)以及探測包中子路徑服務(wù)質(zhì)量累加值字段相加,結(jié)果為(9,11)。小于路由請求(19,17),故滿足約束。然后控制器CE2運(yùn)用探測包記錄方法,在域網(wǎng)絡(luò)控制器中記錄探測包信息,同時(shí)預(yù)留域內(nèi)鏈路3-1-2-4的帶寬資源??刂破鰿E2生成一個(gè)探測包副本,運(yùn)用探測包修改方法,修改探測包的內(nèi)容如下:將探測包中路徑記錄字段標(biāo)記為CE1、CE2;將子路徑服務(wù)質(zhì)量值字段標(biāo)記為(9,11);將域內(nèi)約束值字段標(biāo)記為(10,6);計(jì)算在控制器中等待的時(shí)間,最后發(fā)送到CE4控制器的網(wǎng)絡(luò)中,等待時(shí)間的計(jì)算方法類似于CE1網(wǎng)絡(luò)中的計(jì)算。故不再作說明。在控制器CE3控制的軟件定義網(wǎng)絡(luò)中,處理類似于控制器CE2控制的軟件定義網(wǎng)絡(luò)。處理結(jié)果為:控制器CE3啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP的算法,得出從轉(zhuǎn)發(fā)器1到所有邊界轉(zhuǎn)發(fā)器的最優(yōu)路徑,只說明到邊界轉(zhuǎn)發(fā)器3的情況,其他邊界轉(zhuǎn)發(fā)器的情況與其類似。其域內(nèi)最優(yōu)路徑為轉(zhuǎn)發(fā)器1-2-3,服務(wù)質(zhì)量值為(3,2),因?yàn)榇藭r(shí)的邊界轉(zhuǎn)發(fā)器3可以到兩個(gè)網(wǎng)絡(luò),故把探測包中的子路徑服務(wù)質(zhì)量累加值字段(8,9)、域內(nèi)服務(wù)質(zhì)量值(3,2)和域間服務(wù)質(zhì)量值(3,2)、(1,2)分別累加,結(jié)果為(14,13)與(12,13)。均小于約束(19,17)。對于前者,即新子路徑服務(wù)質(zhì)量參數(shù)值為(14,13)。控制器CE3運(yùn)用探測包記錄方法,在控制器中記錄探測包中信息,同時(shí)預(yù)留域內(nèi)鏈路1-2-3的帶寬資源??刂破鰿E3生成一個(gè)探測包副本,運(yùn)用探測包修改方法,修改探測包的內(nèi)容如下:將路徑記錄字段標(biāo)記為CE1、CE3;將子路徑服務(wù)質(zhì)量累加值字段標(biāo)記為(14,13);將域內(nèi)約束值字段標(biāo)記為(5,4)。計(jì)算在控制器中等待的時(shí)間,最后發(fā)送到CE4控制器的網(wǎng)絡(luò)中,等待時(shí)間的計(jì)算方法類似于CE1網(wǎng)絡(luò)中的計(jì)算。故不再作說明。對于后者,即新子路徑服務(wù)質(zhì)量參數(shù)值為(12,13)。處理類似前者,故也不再說明。在控制器CE4控制的軟件定義網(wǎng)絡(luò)中,在入口轉(zhuǎn)發(fā)器1處將收到兩個(gè)探測包,其包內(nèi)的子路徑服務(wù)質(zhì)量累加值字段的值分別為(9,11)與(14,13)。所以前者的探測包先到,對先到的探測包的處理類似于控制器CE2控制的軟件定義網(wǎng)絡(luò)。故不再說明。對后者探測包的處理過程如下:判定入口轉(zhuǎn)發(fā)器1之前收到過路由請求標(biāo)示符為<ip1,ip2,id1>的探測包,控制器CE4運(yùn)用探測包記錄方法,將探測包信息記錄到域網(wǎng)絡(luò)控制器中,作為待拼接子路徑,丟棄探測包。在控制器CE6、CE7控制的軟件定義網(wǎng)絡(luò)中,其處理流程類似于上面。故不再重復(fù)說明。步驟5,生成完整路徑。在控制器CE5控制的軟件定義網(wǎng)絡(luò)中,有兩個(gè)入口邊界轉(zhuǎn)發(fā)器。對于邊界入口轉(zhuǎn)發(fā)器1而言,其要收到三個(gè)路由請求標(biāo)示符為<ip1,ip2,id1>的探測包,這些探測包中子路徑服務(wù)質(zhì)量累加值字段分別為(12,16)、(11,12)、(15,15)??芍虚g這個(gè)探測包最先到達(dá),其他兩個(gè)探測包的處理都是在控制器中記錄子路徑信息,作為待拼接子路徑,然后丟棄探測包。對中間這個(gè)探測包的處理如下:利用啟發(fā)式基于多約束的最優(yōu)路徑H_MCOP的算法,得出從入口轉(zhuǎn)發(fā)器1到目的轉(zhuǎn)發(fā)器3的最優(yōu)路徑為轉(zhuǎn)發(fā)器1-3,其服務(wù)質(zhì)量值為(2,1)。然后把包中的子路徑服務(wù)質(zhì)量累加值字段(11,12)和該(2,1)累加,結(jié)果為(13,13)。小于約束(19,17),所以在控制器中記錄相關(guān)信息,同時(shí)修改探測中的路徑記錄字段為CE1、CE2、CE4、CE5,子路徑服務(wù)質(zhì)量累加值字段為(13,13)。最后修改該包類型字段為確認(rèn)類型。對于邊界入口轉(zhuǎn)發(fā)器2而言,情況比較簡單,其服務(wù)質(zhì)量累加值最后為(11,18),不滿足約束(19,17)。故丟棄該包。步驟6,發(fā)送確認(rèn)包。控制器CE5判定確認(rèn)包沒有到達(dá)源主機(jī)所在的網(wǎng)絡(luò),查看入口轉(zhuǎn)發(fā)器1處記錄的子路徑信息,拼接成新的兩條完整路徑,其累加后的服務(wù)質(zhì)量值分別為(14,17)與(17,16),均滿足約束。故生成相應(yīng)的兩個(gè)確認(rèn)包,依據(jù)確認(rèn)包中路徑記錄字段的信息,控制器CE5發(fā)送確認(rèn)包到上游域網(wǎng)絡(luò)控制器,上游網(wǎng)絡(luò)控制器有CE4、CE6和CE7。由于其他上游網(wǎng)絡(luò)控制器的處理過程與控制器CE4控制的軟件定義網(wǎng)絡(luò)中的處理過程類似,故只對控制器CE4控制的軟件定義網(wǎng)絡(luò)中的處理過程說明。在控制器CE4控制的軟件定義網(wǎng)絡(luò)中,當(dāng)控制器CE4收到來自于控制器CE5的確認(rèn)包后,判定確認(rèn)包還沒有到達(dá)源主機(jī)所在網(wǎng)絡(luò),再查看確認(rèn)包的出口轉(zhuǎn)發(fā)器1中有待拼接的子路徑,其路徑p為CE1、CE3、CE4。子路徑服務(wù)質(zhì)量值為(14,13)。同時(shí)在控制器中也可看出確認(rèn)包中攜帶路徑的子路徑在該控制器出的子路徑服務(wù)質(zhì)量值為(9,11),而確認(rèn)包中的路徑服務(wù)質(zhì)量累加值為(14,17),所以后續(xù)子路徑的務(wù)質(zhì)量值為(5,6),拼接后的路徑的服務(wù)質(zhì)量值為(14,13)累加上(5,6),即為(19,19)。由于其不能滿足約束(19,17),故丟棄該拼接后形成的完整路徑。對于來自控制器CE5的確認(rèn)包。依據(jù)確認(rèn)包中路徑記錄字段的信息,控制器CE4繼續(xù)發(fā)送確認(rèn)包到上游域網(wǎng)絡(luò)。而控制器CE2、CE7和CE6控制的軟件定義網(wǎng)絡(luò)中,對確認(rèn)包的處理類型,都是沒有子路徑信息,故都是繼續(xù)沿確認(rèn)包中的路徑反向發(fā)送。直到源控制器CE1。在控制器CE1控制器的軟件定義網(wǎng)絡(luò)中,控制器CE1收到確認(rèn)包后,就把包中攜帶的路徑信息保存在該控制器中,丟棄確認(rèn)包。控制器CE1在定時(shí)器到時(shí)間后,執(zhí)行步驟7。步驟7,選取最優(yōu)路徑。源主機(jī)所在域網(wǎng)絡(luò)中,控制器CE1把收到的標(biāo)示符為<ip1,ip2,id1>的路徑信息按其跨域的軟件定義網(wǎng)絡(luò)數(shù)目來升序排列,源控制器CE1收到了3個(gè)確認(rèn)包,即3條路徑。其路徑記錄排序后分別為:路徑CE1、CE6、CE5,其服務(wù)質(zhì)量值為(13,13);路徑CE1、CE2、CE4、CE5,其服務(wù)質(zhì)量值為(14,17);路徑CE1、CE3、CE7、CE5,其服務(wù)質(zhì)量值為(17,16)。選取跨域軟件定義網(wǎng)絡(luò)數(shù)目最小的路徑,即路徑CE1、CE6、CE5,其服務(wù)質(zhì)量值為(13,13)。生成該路徑對應(yīng)選路包。控制器CE1啟動(dòng)一個(gè)選路定時(shí)器,該選路定時(shí)器的時(shí)間設(shè)為路由請求信息要求時(shí)延的2倍。步驟8,判定域間路徑是否滿足約束。對于域網(wǎng)絡(luò)控制器CE1和選路包中標(biāo)記的下游域網(wǎng)絡(luò)控制器CE6之間的域間路徑,判定其服務(wù)質(zhì)量參數(shù)值小于記錄在域網(wǎng)絡(luò)入口轉(zhuǎn)發(fā)器中保存的域間路徑服務(wù)質(zhì)量參數(shù)值。執(zhí)行步驟9。步驟9,確認(rèn)最優(yōu)路徑。控制器CE1下發(fā)流表到域內(nèi)最優(yōu)路徑經(jīng)過的域網(wǎng)絡(luò)轉(zhuǎn)發(fā)器1、3中,預(yù)留域內(nèi)最優(yōu)路徑和域間路徑的帶寬資源;沿選路包路徑記錄字段中的路徑,控制器CE1發(fā)送選路包到下游域網(wǎng)絡(luò)控制器CE6;步驟10,判定選路包沒有到達(dá)目的主機(jī)所在網(wǎng)絡(luò)。繼續(xù)執(zhí)行步驟8,直到選路包到達(dá)控制器CE5。步驟11,探測過程結(jié)束。在標(biāo)示符為<ip1,ip2,id1>的選路定時(shí)器到時(shí)后,則選路成功。之后各個(gè)域網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)器就可以根據(jù)流表來轉(zhuǎn)發(fā)相應(yīng)的流。由于實(shí)施例圖中數(shù)據(jù)的特殊性,故權(quán)利要求書中的步驟11、12、13和14,,沒有被執(zhí)行。