本申請(qǐng)涉及流量控制技術(shù)領(lǐng)域,更具體地說(shuō),涉及分布式流量調(diào)節(jié)技術(shù)。
背景技術(shù):
在網(wǎng)絡(luò)通信中,數(shù)據(jù)流從一個(gè)位置到另一個(gè)位置通常存在多條可能的路徑,因此,可以將數(shù)據(jù)流分配至多條可能的路徑中,以提高網(wǎng)絡(luò)資源的利用率。
為避免個(gè)別路徑擁塞,而其他路徑空閑的情況,需要對(duì)各路徑乃至鏈路的流量進(jìn)行調(diào)節(jié)。現(xiàn)有的一種流量調(diào)節(jié)方式是,收集網(wǎng)絡(luò)的擁塞狀態(tài)信息至某臺(tái)服務(wù)器,并在該臺(tái)服務(wù)器上統(tǒng)一進(jìn)行計(jì)算,服務(wù)器根據(jù)計(jì)算結(jié)果向各個(gè)節(jié)點(diǎn)下發(fā)流量調(diào)節(jié)指令。
然而,該種調(diào)節(jié)方式需要收集整個(gè)網(wǎng)絡(luò)的擁塞狀態(tài)后才能進(jìn)行調(diào)節(jié),實(shí)時(shí)性較差。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┝艘环N分布式流量調(diào)節(jié)方法,用以解決現(xiàn)有的流量調(diào)節(jié)方式實(shí)時(shí)性較差的技術(shù)問(wèn)題。
為實(shí)現(xiàn)所述目的,本申請(qǐng)?zhí)峁┑募夹g(shù)方案如下:
一方面,本申請(qǐng)的實(shí)施例提供一種分布式流量調(diào)節(jié)方法,用于調(diào)節(jié)流量域內(nèi)的流量分布。所述流量域內(nèi)的節(jié)點(diǎn)包括入口節(jié)點(diǎn)、中間節(jié)點(diǎn)及出口節(jié)點(diǎn);
流量域內(nèi)的任意節(jié)點(diǎn)所執(zhí)行的分布式流量調(diào)節(jié)方法包括:根據(jù)所述流量域的網(wǎng)絡(luò)拓?fù)湫畔?,確定本節(jié)點(diǎn)在所述流量域中針對(duì)聚合流的上下游鄰居節(jié)點(diǎn);確定本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值;在作為所述流量域中的非入口節(jié)點(diǎn)的情況下,將本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值向上游的鄰居節(jié)點(diǎn)發(fā)送;在作為所述流量域中的非出口節(jié)點(diǎn)且下游連接多個(gè)鄰居節(jié)點(diǎn)的情況下,使用本節(jié)點(diǎn)的所述節(jié)點(diǎn)負(fù)載度量值及接收到的下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值,確定每一所述下游鏈路的流量分配比例,并將所述聚合流中流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)流按照所述流量分配比例分配至各個(gè)所述下游鏈路。其中,聚合流為從流量域中的入口節(jié)點(diǎn)進(jìn)入從流量域出口節(jié)點(diǎn)流出的數(shù)據(jù)流;節(jié)點(diǎn)負(fù)載度量值表示本節(jié)點(diǎn)針對(duì)所述聚合流的所有分支子網(wǎng)的整體擁塞情況;分支子網(wǎng)包括從本節(jié)點(diǎn)開始經(jīng)過(guò)同一條下游鏈路到達(dá)出口節(jié)點(diǎn)的所有可用路徑;下游鏈路為本節(jié)點(diǎn)和下游鄰居節(jié)點(diǎn)之間的鏈路。通過(guò)本申請(qǐng)實(shí)施例提供的方案,流量域內(nèi)各節(jié)點(diǎn)(除出口節(jié)點(diǎn))可根據(jù)自身下游網(wǎng)絡(luò)的擁塞狀態(tài),對(duì)流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)流進(jìn)行獨(dú)立分布的流量調(diào)節(jié),在此過(guò)程中不必收集整個(gè)網(wǎng)絡(luò)的擁塞狀態(tài)后才能進(jìn)行調(diào)節(jié),實(shí)時(shí)性較好。同時(shí),流量域內(nèi)各節(jié)點(diǎn)獨(dú)立、分布調(diào)節(jié)的最終結(jié)果也可實(shí)現(xiàn)全網(wǎng)流量均衡,但需要通過(guò)網(wǎng)絡(luò)傳遞的信息量很少,幾乎不增加網(wǎng)絡(luò)負(fù)載。
在一個(gè)可能的設(shè)計(jì)中,流量域內(nèi)的任意節(jié)點(diǎn)在作為出口節(jié)點(diǎn)的情況下,可初始化本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值,例如可將節(jié)點(diǎn)負(fù)載度量值初始化為null,或者初始化為出口節(jié)點(diǎn)流量總和與出口鏈路帶寬總和的比值,或者初始化為下游的流量域傳遞過(guò)來(lái)的節(jié)點(diǎn)負(fù)載度量值。通過(guò)本申請(qǐng)實(shí)施例提供的方案,可以更好地確定本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值,并方便其他節(jié)點(diǎn)確定本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值。
在一個(gè)可能的設(shè)計(jì)中,流量域內(nèi)的任意節(jié)點(diǎn)在作為非出口節(jié)點(diǎn)且下游僅連接一個(gè)鄰居節(jié)點(diǎn)的情況下,可將本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值設(shè)置為下游鏈路的鏈路負(fù)載度量值與下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值中的較大值;其中,所述鏈路負(fù)載度量值表示相應(yīng)的下游鏈路的擁塞情況。在本申請(qǐng)實(shí)施例提供的方案中,從下游鏈路和下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值中選取的較大值,可以更好得反映本節(jié)點(diǎn)針對(duì)聚合流的分支子網(wǎng)的擁塞情況。
在一個(gè)可能的設(shè)計(jì)中,在作為非出口節(jié)點(diǎn)且下游連接多個(gè)鄰居節(jié)點(diǎn)的情況下,獲取各分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值,將本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值設(shè)置為所述各分支子網(wǎng)負(fù)載度量值的加權(quán)平均值;其中,所述分支子網(wǎng)負(fù)載度量值表示分支子網(wǎng)的擁塞情況。在本申請(qǐng)實(shí)施例提供的方案中,通過(guò)加權(quán)平均的方式,可更好得反映本節(jié)點(diǎn)針對(duì)聚合流的所有分支子網(wǎng)的整體擁塞情況。
在一個(gè)可能的設(shè)計(jì)中,上述使用本節(jié)點(diǎn)的所述節(jié)點(diǎn)負(fù)載度量值及接收到的下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值,確定每一所述下游鏈路的流量分配比例的具體實(shí)現(xiàn)步驟包括:將分支子網(wǎng)負(fù)載度量值高于本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值的分支子網(wǎng)所對(duì)應(yīng)的下游鏈路,確定為高溫鏈路;其中,所述分支網(wǎng)負(fù)載度量值是依據(jù)所述下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值得到的;將分支子網(wǎng)負(fù)載度量值低于本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值的分支子網(wǎng)所對(duì)應(yīng)的下游鏈路,確定為低溫鏈路;分別確定高溫鏈路的流量減少量和低溫鏈路的流量增加量;依據(jù)所述高溫鏈路的流量減少量,確定高溫鏈路的流量分配比例;根據(jù)所述低溫鏈路的流量增加量,確定低溫鏈路的流量分配比例。通過(guò)本申請(qǐng)實(shí)施例提供的方案,將下游鏈路區(qū)分為高溫鏈路和低溫鏈路,針對(duì)高溫鏈路減少流量,針對(duì)低溫鏈路增加流量,可使各條下游鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值趨于一致。
在一個(gè)可能的設(shè)計(jì)中,在確定流量減少量和流量增加量之前,還可先確定本次流量調(diào)節(jié)總量。然后,依據(jù)所述本次流量調(diào)節(jié)總量,確定所述高溫鏈路的流量減少量;并依據(jù)所述本次流量調(diào)節(jié)總量,確定所述低溫鏈路的流量增加量。在本申請(qǐng)實(shí)施例提供的方案,根據(jù)流量調(diào)節(jié)總量來(lái)確定流量減少量和流量增加量,可使得高溫鏈路的流量減少量的總和,與低溫鏈路的流量增加量的總和相一致,更好地使各條下游鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值趨于一致。
在一個(gè)可能的設(shè)計(jì)中,確定本次流量調(diào)節(jié)總量的具體實(shí)現(xiàn)方式可包括:確定低溫鏈路的可容納總流量;根據(jù)所述聚合流流經(jīng)本節(jié)點(diǎn)的當(dāng)前實(shí)際總流量及所述低溫鏈路的可容納總流量,確定本次流量調(diào)節(jié)總量。在本申請(qǐng)實(shí)施例提供的方案中,由于高溫鏈路需減少流量,低溫鏈路需增加流量,因此,須考慮低溫鏈路的可容納總流量。而根據(jù)當(dāng)前實(shí)際總流量及低溫鏈路的可容納總流量,確定本次流量調(diào)節(jié)總量,則綜合考慮了當(dāng)前實(shí)際總流量與可容納總流量?jī)蓚€(gè)方面,使得確定出的本次流量調(diào)節(jié)總量更合理。
在一個(gè)可能的設(shè)計(jì)中,本次流量調(diào)節(jié)總量的確定方式可包括:根據(jù)流量調(diào)節(jié)總量表達(dá)式z=k*s*(p-q),確定本次流量調(diào)節(jié)總量;其中,所述z為本次流量調(diào)節(jié)總量,所述k為調(diào)節(jié)率,所述s為本節(jié)點(diǎn)針對(duì)所述聚合流的當(dāng)前實(shí)際總流量與所述低溫鏈路的可容納總流量之間的較小值,所述p為所有高溫鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值的平均值,所述q為所有低溫鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值的平均值。在本申請(qǐng)實(shí)施例提供的方案中,選取了當(dāng)前實(shí)際總流量與所述低溫鏈路的可容納總流量之間的較小值,這樣可避免低溫鏈路的可容納總流量高于當(dāng)前實(shí)際總流量太多,而導(dǎo)致多節(jié)點(diǎn)獨(dú)立調(diào)整流量力量過(guò)大引起振蕩。另外,計(jì)算高溫鏈路與低溫鏈路分支子網(wǎng)負(fù)載度量值之間的差值,是為了按照分支子網(wǎng)負(fù)載度量值的差值,來(lái)確定流量調(diào)節(jié)的力度。
在一個(gè)可能的設(shè)計(jì)中,上述確定低溫鏈路的可容納總流量的具體實(shí)現(xiàn)方式包括:依據(jù)低溫鏈路的可容納流量表達(dá)式aj=(1-tj)*bj,確定每一低溫鏈路的可容納流量;將所有低溫鏈路的可容納流量加和,獲得所述低溫鏈路的可容納總流量。其中,j表示第j條低溫鏈路,aj為第j條低溫鏈路的可容納流量,tj為第j條低溫鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值,bj為第j條低溫鏈路所在分支子網(wǎng)的帶寬。在本申請(qǐng)實(shí)施例提供的方案中,綜合考慮了每條低溫鏈路的分支子網(wǎng)負(fù)載度量值及帶寬,使得確定出的低溫鏈路的可容納總流量更準(zhǔn)確、更合理。
在一個(gè)可能的設(shè)計(jì)中,所述依據(jù)所述本次流量調(diào)節(jié)總量,確定所述高溫鏈路的流量減少量的具體實(shí)現(xiàn)方式包括:依據(jù)高溫鏈路的流量減少量表達(dá)式
在一個(gè)可能的設(shè)計(jì)中,所述依據(jù)所述高溫鏈路的流量減少量,確定高溫鏈路的流量分配比例的具體實(shí)現(xiàn)方式包括:按照高溫鏈路流量分配比例表達(dá)式
在一個(gè)可能的設(shè)計(jì)中,所述依據(jù)所述本次流量調(diào)節(jié)總量,確定所述低溫鏈路的流量增加量的具體實(shí)現(xiàn)方式包括:依據(jù)低溫鏈路的流量增加量表達(dá)式
在一個(gè)可能的設(shè)計(jì)中,所述依據(jù)所述低溫鏈路的流量增加量,確定低溫鏈路的流量分配比例的具體實(shí)現(xiàn)方式包括:按照低溫鏈路流量分配比例表達(dá)式
在一個(gè)可能的設(shè)計(jì)中,各分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值的獲得方式是:將分支子網(wǎng)包含的下游鏈路的鏈路負(fù)載度量值與所述分支子網(wǎng)包含的下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值中的較大值,確定為所述分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值。在本申請(qǐng)實(shí)施例提供的方案中,從分支子網(wǎng)包含的下游鏈路和下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值中選取的較大值,可以更好地反映分支子網(wǎng)的擁塞情況。
在一個(gè)可能的設(shè)計(jì)中,所述將所述聚合流中流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)流按照所述流量分配比例分配至各個(gè)所述下游鏈路的具體實(shí)現(xiàn)方式包括:根據(jù)所述流量分配比例,設(shè)置每一所述下游鏈路在預(yù)設(shè)的實(shí)數(shù)區(qū)間中對(duì)應(yīng)的子區(qū)間;其中,各下游鏈路對(duì)應(yīng)的子區(qū)間連續(xù)、不遺漏且不重復(fù)得覆蓋所述實(shí)數(shù)區(qū)間;為所述聚合流中流經(jīng)本節(jié)點(diǎn)的傳輸數(shù)據(jù)單位生成隨機(jī)數(shù);確定所述隨機(jī)數(shù)所歸屬的子區(qū)間,并將所述傳輸數(shù)據(jù)單位分配至所述子區(qū)間所對(duì)應(yīng)的下游鏈路。在本申請(qǐng)實(shí)施例提供的方案中,使用隨機(jī)生成的隨機(jī)數(shù)及各分配比例對(duì)應(yīng)的子區(qū)間來(lái)實(shí)現(xiàn)分流,使得在一段時(shí)間內(nèi),各下游鏈路之間的實(shí)際流量比例趨近于前述計(jì)算得到的分配比例。
另一方面,本申請(qǐng)實(shí)施例提供了一種分布式流量調(diào)節(jié)裝置,該分布式流量調(diào)節(jié)裝置具有實(shí)現(xiàn)上述方法實(shí)際中任意節(jié)點(diǎn)行為的功能。所述功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的模塊。
在一個(gè)可能的設(shè)計(jì)中,分布式流量調(diào)節(jié)裝置的結(jié)構(gòu)中包括處理器和發(fā)射器,所述處理器被配置為支持流量域中任意節(jié)點(diǎn)執(zhí)行上述方法中相應(yīng)的功能。所述發(fā)射器用于支持分布式流量調(diào)節(jié)裝置與其他節(jié)點(diǎn)之間的通信,向其他節(jié)點(diǎn)發(fā)送上述方法中所涉及的數(shù)據(jù)。所述分布式流量調(diào)節(jié)裝置還可以包括存儲(chǔ)器,所述存儲(chǔ)器用于與處理器耦合,其保存分布式流量調(diào)節(jié)裝置必要的程序指令和數(shù)據(jù)。
再一方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),用于儲(chǔ)存為上述分布式流量調(diào)節(jié)裝置所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面所設(shè)計(jì)的程序。
與現(xiàn)有的集中式流量調(diào)節(jié)方式相比,本申請(qǐng)流量域內(nèi)的各個(gè)節(jié)點(diǎn)(除入口節(jié)點(diǎn))均可計(jì)算節(jié)點(diǎn)負(fù)載度量值并向上游傳播,并可以根據(jù)自身下游網(wǎng)絡(luò)的擁塞狀態(tài),對(duì)流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)流進(jìn)行獨(dú)立分布的流量調(diào)節(jié),不必收集整個(gè)網(wǎng)絡(luò)的擁塞狀態(tài)后才能進(jìn)行調(diào)節(jié),實(shí)時(shí)性較好。而流量域內(nèi)所有節(jié)點(diǎn)獨(dú)立、分布調(diào)節(jié)的最終結(jié)果也可實(shí)現(xiàn)全網(wǎng)流量均衡,但通過(guò)網(wǎng)絡(luò)傳遞的信息量很少,幾乎不增加網(wǎng)絡(luò)負(fù)載。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請(qǐng)?zhí)峁┑牧髁坑虻囊粋€(gè)示例圖;
圖2a-2b、圖4-5為本申請(qǐng)?zhí)峁┑姆植际搅髁空{(diào)節(jié)方法的一個(gè)示例圖;
圖3為本申請(qǐng)?zhí)峁┑牧髁坑騼?nèi)可用路徑的一個(gè)示例圖;
圖6-7為本申請(qǐng)?zhí)峁┑姆植际搅髁空{(diào)節(jié)裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
本申請(qǐng)所提供的技術(shù)方案適用于存在多路徑的通訊網(wǎng)絡(luò),通訊網(wǎng)絡(luò)可以是整個(gè)網(wǎng)絡(luò),也可以是網(wǎng)絡(luò)的一個(gè)局部部分。不論是整個(gè)還是局部網(wǎng)絡(luò),在本申請(qǐng)的應(yīng)用場(chǎng)景中,統(tǒng)稱為流量管理域,或者進(jìn)一步簡(jiǎn)稱為流量域。
對(duì)于中小型網(wǎng)絡(luò)如企業(yè)網(wǎng)、數(shù)據(jù)中心網(wǎng)絡(luò)等,可以直接把整個(gè)網(wǎng)絡(luò)作為一個(gè)流量域;對(duì)于大型網(wǎng)絡(luò)如廣域網(wǎng),可以依據(jù)路由協(xié)議的自治域劃分出整個(gè)網(wǎng)絡(luò)的一部分作為一個(gè)流量域(全球互聯(lián)網(wǎng)成很多個(gè)自治域,運(yùn)營(yíng)商、機(jī)構(gòu)甚至公司等都可以申請(qǐng)自治域號(hào)碼);或者,流量域還可以根據(jù)實(shí)際需要,選擇更小的范圍。
流量管理域可由網(wǎng)絡(luò)運(yùn)維人員人為劃分。
流量域中可包括多個(gè)節(jié)點(diǎn)。圖1示出了流量域的一個(gè)示例。在圖1所示的流量域中包含a、b、c、d、e和f六個(gè)節(jié)點(diǎn),其中,節(jié)點(diǎn)a及節(jié)點(diǎn)f為邊緣節(jié)點(diǎn),節(jié)點(diǎn)b、c、d及e為中間節(jié)點(diǎn)。
節(jié)點(diǎn)可以但不限定于是路由器,任一節(jié)點(diǎn)至少可用于接收來(lái)來(lái)自流量域內(nèi)其他節(jié)點(diǎn)或流量域外的網(wǎng)元的數(shù)據(jù)包,根據(jù)數(shù)據(jù)包所含的目的地址,決定轉(zhuǎn)發(fā)到下一個(gè)目的地址或節(jié)點(diǎn),此外,在本發(fā)明中,其還可執(zhí)行分布式流量調(diào)節(jié)裝置的所有操作。
邊緣節(jié)點(diǎn)可以作為入口節(jié)點(diǎn),也可以作為出口節(jié)點(diǎn)。一個(gè)流量域內(nèi)可以有多個(gè)入口節(jié)點(diǎn)-出口節(jié)點(diǎn)對(duì),在確定某一入口節(jié)點(diǎn)-出口節(jié)點(diǎn)對(duì)后,便可以定義出一個(gè)聚合流,聚合流包括從入口節(jié)點(diǎn)流入至出口節(jié)點(diǎn)流出的所有數(shù)據(jù)流。
以圖1所示的流量域?yàn)槔谝怨?jié)點(diǎn)a為入口節(jié)點(diǎn)、節(jié)點(diǎn)f為出口節(jié)點(diǎn)時(shí),可以定義出聚合流af(聚合流af包括從節(jié)點(diǎn)a進(jìn)入、從節(jié)點(diǎn)f流出的數(shù)據(jù)流)。需要說(shuō)明的是,聚合流af是單向的,聚合流af與聚合流fa是互相無(wú)關(guān)的兩個(gè)聚合流。聚合流fa是以節(jié)點(diǎn)f為入口節(jié)點(diǎn),以節(jié)點(diǎn)a為出口節(jié)點(diǎn),從節(jié)點(diǎn)f進(jìn)入,從節(jié)點(diǎn)a流出的數(shù)據(jù)流。
也即,對(duì)于一個(gè)邊緣節(jié)點(diǎn),針對(duì)某一聚合流,其可能作為入口節(jié)點(diǎn),而針對(duì)另一聚合流,其可能作為出口節(jié)點(diǎn)。
仍以聚合流af為例,聚合流af從節(jié)點(diǎn)a到節(jié)點(diǎn)f,存在多種可能的路徑。為了實(shí)現(xiàn)多條路徑的有效利用,本發(fā)明實(shí)施例提供了分布式流量調(diào)節(jié)方法及分布式流量調(diào)節(jié)裝置,用以根據(jù)網(wǎng)絡(luò)的擁塞情況,在多條可能的路徑中分配數(shù)據(jù)流。
該分布式流量調(diào)節(jié)裝置具體可為流量域中的節(jié)點(diǎn)(路由器)。
需要說(shuō)明的是,本分布式流量調(diào)節(jié)方法/裝置的應(yīng)用范圍是流量域。因此,無(wú)論流量域內(nèi)如何調(diào)節(jié)數(shù)據(jù)流在各條路徑中的傳遞流量,均不會(huì)影響其在本流量域之外的所經(jīng)路徑。以圖1所示的流量域?yàn)槔{(diào)節(jié)前,數(shù)據(jù)流從節(jié)點(diǎn)a進(jìn)入本流量域,并從節(jié)點(diǎn)f流出,調(diào)節(jié)后,數(shù)據(jù)流仍從節(jié)點(diǎn)a進(jìn)入且從節(jié)點(diǎn)f流出。
這樣,可以保證流量域內(nèi)的路由計(jì)算獨(dú)立于域間路由,流量域內(nèi)的路由優(yōu)化不影響域間路由,從而保證網(wǎng)絡(luò)的層次性控制不被破壞。
下面將基于上面所述的本發(fā)明涉及的共性方面,對(duì)本發(fā)明實(shí)施例進(jìn)一步詳細(xì)說(shuō)明。
本發(fā)明的一個(gè)實(shí)施例提供一種分布式流量調(diào)節(jié)方法,和基于這個(gè)方法的分布式流量調(diào)節(jié)裝置(節(jié)點(diǎn))。
圖2a和圖2b示出了針對(duì)某一聚合流,入口節(jié)點(diǎn)、出口節(jié)點(diǎn)以及中間節(jié)點(diǎn)的交互示意圖。
在200部分:流量域內(nèi)的每個(gè)節(jié)點(diǎn)(入口節(jié)點(diǎn)、出口節(jié)點(diǎn)、中間節(jié)點(diǎn))確定本節(jié)點(diǎn)在聚合流中的上下游鄰居節(jié)點(diǎn)。
在一個(gè)示例中,確定上下游鄰居節(jié)點(diǎn)可包括如下步驟:
步驟1:確定域內(nèi)的網(wǎng)絡(luò)拓?fù)湫畔ⅲ?/p>
在一個(gè)示例中,流量域內(nèi)的每個(gè)節(jié)點(diǎn)可以使用ospf(openshortestpathfirst,開放式最短路徑優(yōu)先)路由協(xié)議,將流量域內(nèi)的網(wǎng)絡(luò)拓?fù)湫畔U(kuò)散到本流量域內(nèi)的所有節(jié)點(diǎn)。
更具體的,域內(nèi)每一節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間交換網(wǎng)絡(luò)拓?fù)湫畔?,最終實(shí)現(xiàn)全域所有節(jié)點(diǎn)都掌握了域內(nèi)的網(wǎng)絡(luò)拓?fù)湫畔ⅰ?/p>
其中,網(wǎng)絡(luò)拓?fù)湫畔⒖梢园ǖ幌薅ㄓ阪溌愤B接關(guān)系、鏈路帶寬等。另外,節(jié)點(diǎn)擴(kuò)散網(wǎng)絡(luò)拓?fù)湫畔⑹褂玫穆酚蓞f(xié)議也并非局限于ospf路由協(xié)議,還可以是is-is(intermediatesystemtointermediatesystem,中間系統(tǒng)到中間系統(tǒng))等其他路由協(xié)議。
步驟2:獲取每一聚合流的可用路徑;
流量域內(nèi)的各個(gè)節(jié)點(diǎn)獲得本流量域的網(wǎng)絡(luò)拓?fù)湫畔⒑螅刹捎枚嗦窂剿惴?multiplepathalgorithm,簡(jiǎn)稱mpa)計(jì)算某一聚合流在本流量域內(nèi)的所有路徑,并可以選擇全部路徑或者衡量指標(biāo)較好的一部分路徑作為可用路徑(為了方便,以下可以將可用路徑簡(jiǎn)稱為路徑)。當(dāng)然,在計(jì)算路徑時(shí),還可以使用mpda(multipathprobabilitydataassociation,多路徑概率數(shù)據(jù)關(guān)聯(lián))等其他路徑算法。
以圖1所示的流量域?yàn)槔?,雖然聚合流af從入口節(jié)點(diǎn)a到出口節(jié)點(diǎn)f的路徑有多條,但是,本實(shí)施例可以選擇全部路徑或者衡量指標(biāo)較好的一部分路徑作為可用路徑,如圖3所示,聚合流af的可用路徑可以包括三條,分別是abdf、acdf、acef,路徑abdcef理論上可用,但由于跳數(shù)開銷較大,并未將其作為可用路徑。
需要說(shuō)明的是,每個(gè)節(jié)點(diǎn)獲得的網(wǎng)絡(luò)拓?fù)湫畔⑾嗤沂褂孟嗤穆窂剿惴?,因此,每個(gè)節(jié)點(diǎn)獲得的可用路徑是相同的,流量域內(nèi)不存在環(huán)路或者黑洞。
步驟3:根據(jù)可用路徑,獲取本節(jié)點(diǎn)針對(duì)聚合流的上游鄰居節(jié)點(diǎn)及下游鄰居節(jié)點(diǎn)。
在一流量域內(nèi),在確定出聚合流的可用路徑后,便可以確定本節(jié)點(diǎn)在該聚合流中的上下游位置關(guān)系,也便可以確定本節(jié)點(diǎn)針對(duì)聚合流的上游鄰居節(jié)點(diǎn)及下游鄰居節(jié)點(diǎn)(上游鄰居節(jié)點(diǎn)及下游鄰居節(jié)點(diǎn)可以合稱為上下游鄰居節(jié)點(diǎn))。
仍以圖3為例,假定確定出的聚合流af的可用路徑可以包括三條,分別是abdf、acdf、acef。對(duì)于節(jié)點(diǎn)b,其上游鄰居節(jié)點(diǎn)為節(jié)點(diǎn)a,其下游鄰居節(jié)點(diǎn)為節(jié)點(diǎn)d。
當(dāng)然,若本節(jié)點(diǎn)為入口節(jié)點(diǎn)(例如圖3中的節(jié)點(diǎn)a),其上游鄰居節(jié)點(diǎn)為空,若本節(jié)點(diǎn)為出口節(jié)點(diǎn)(例如圖3中的節(jié)點(diǎn)f),其下游鄰居節(jié)點(diǎn)為空。
此外,在確定出自身的下游鄰居節(jié)點(diǎn)后,還可確定出本節(jié)點(diǎn)的下游鏈路。其中,下游鏈路為本節(jié)點(diǎn)與其下游鄰居節(jié)點(diǎn)之間的鏈路。仍以圖3為例,對(duì)于節(jié)點(diǎn)a而言,其沒有上游鄰居節(jié)點(diǎn),但有兩個(gè)下游鄰居節(jié)點(diǎn),分別為節(jié)點(diǎn)b及節(jié)點(diǎn)c?;诖丝芍?,節(jié)點(diǎn)a的下游鏈路包括兩條,分別為ab及ac。
在確定出下游鏈路后,本節(jié)點(diǎn)還可以更進(jìn)一步確定出自身的分支子網(wǎng)。本實(shí)施例中,節(jié)點(diǎn)在調(diào)節(jié)流量時(shí),需要使用分支子網(wǎng)的網(wǎng)絡(luò)負(fù)載情況,為了防止由于概念混淆對(duì)本實(shí)施例方案的誤解,此處對(duì)分支子網(wǎng)這個(gè)名詞進(jìn)行詳細(xì)說(shuō)明。
分支子網(wǎng)是從某節(jié)點(diǎn)開始,到達(dá)出口節(jié)點(diǎn)的所有可用路徑的集合??梢岳斫獾氖牵隹诠?jié)點(diǎn)并不存在分支子網(wǎng)。因此,本實(shí)施例中,分支子網(wǎng)均是針對(duì)非出口節(jié)點(diǎn)而言的。
需要說(shuō)明的是,分支子網(wǎng)中的所有可用路徑,是經(jīng)過(guò)同一條下游鏈路達(dá)到出口節(jié)點(diǎn)的。因此,分支子網(wǎng)與下游鏈路是緊密關(guān)聯(lián)的。對(duì)于某節(jié)點(diǎn)而言,分支子網(wǎng)的個(gè)數(shù)與其下游鏈路的個(gè)數(shù)相同,簡(jiǎn)單而言,某節(jié)點(diǎn)存在幾條下游鏈路,便存在相應(yīng)個(gè)數(shù)的分支子網(wǎng)。
仍以圖3為例,對(duì)于節(jié)點(diǎn)a而言,其有兩條下游鏈路(ab及ac),因此,節(jié)點(diǎn)a有兩個(gè)分支子網(wǎng),其中一個(gè)分支子網(wǎng)包括可用路徑abdf,另一個(gè)分支子網(wǎng)包括可用路徑acdf及可用路徑acef。
對(duì)于節(jié)點(diǎn)b而言,其僅有一條下游鏈路,因此,節(jié)點(diǎn)b僅有一個(gè)分支子網(wǎng),即包括可用路徑bdf。
對(duì)于節(jié)點(diǎn)c而言,其有兩條下游鏈路(cd和ce),因此,節(jié)點(diǎn)c有兩個(gè)分支子網(wǎng),其中一個(gè)分支子網(wǎng)包括可用路徑cdf,另一個(gè)分支子網(wǎng)包括可用路徑cef。
在201部分:出口節(jié)點(diǎn)初始化本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值。
仍以圖3所示聚合流為例,出口節(jié)點(diǎn)f將確定出的節(jié)點(diǎn)負(fù)載度量值向上游鄰居節(jié)點(diǎn)d和節(jié)點(diǎn)e發(fā)送。
節(jié)點(diǎn)負(fù)載度量值可以反映本節(jié)點(diǎn)的所有分支子網(wǎng)整體的擁塞情況,更具體地,擁塞情況可以包括但不限定于:網(wǎng)絡(luò)局部可用性、負(fù)載程度、服務(wù)質(zhì)量、鏈路成本及與網(wǎng)絡(luò)運(yùn)行策略相關(guān)的狀態(tài)等。
在一個(gè)示例中,可將節(jié)點(diǎn)負(fù)載度量值的初始值設(shè)置為null(空值),或者設(shè)置其等于出口節(jié)點(diǎn)流量總和與出口鏈路帶寬總和的比值,或者設(shè)置其為下游的流量域傳遞過(guò)來(lái)的節(jié)點(diǎn)負(fù)載度量值。
在202部分:出口節(jié)點(diǎn)向所有上游鄰居節(jié)點(diǎn)傳遞節(jié)點(diǎn)負(fù)載度量值。
以圖3中的節(jié)點(diǎn)f為例,節(jié)點(diǎn)f向節(jié)點(diǎn)d和e傳遞節(jié)點(diǎn)負(fù)載度量值。
節(jié)點(diǎn)負(fù)載度量值可以是一個(gè)0-1之間的數(shù)值,長(zhǎng)度可以是一個(gè)字節(jié)或多個(gè)字節(jié),通常地,為1至4個(gè)字節(jié)。或者,節(jié)點(diǎn)負(fù)載度量值也可以是一組數(shù)值。
節(jié)點(diǎn)負(fù)載度量值可以被封裝在專用控制報(bào)文中發(fā)送,或者,也可以在現(xiàn)有的報(bào)文格式中增加或借用一個(gè)字段攜帶節(jié)點(diǎn)負(fù)載度量值。
節(jié)點(diǎn)負(fù)載度量值可以是按照固定間隔定時(shí)發(fā)送,如間隔1毫秒到1小時(shí)甚至更長(zhǎng)?;蛘?,也可以是基于觸發(fā)條件發(fā)送,觸發(fā)條件如本次的節(jié)點(diǎn)負(fù)載度量值與上次的變化幅度超過(guò)閾值。
在203部分:中間節(jié)點(diǎn)確定自身的節(jié)點(diǎn)負(fù)載度量值。
對(duì)于流量域內(nèi)的中間節(jié)點(diǎn)及入口節(jié)點(diǎn)而言,可以根據(jù)分支子網(wǎng)的網(wǎng)絡(luò)擁塞情況(可簡(jiǎn)稱為擁塞情況),來(lái)確定自身的節(jié)點(diǎn)負(fù)載度量值(或者,可以稱為節(jié)點(diǎn)溫度)。
根據(jù)實(shí)際的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),某節(jié)點(diǎn)的可能對(duì)應(yīng)一個(gè)分支子網(wǎng),也可能對(duì)應(yīng)多個(gè)分支子網(wǎng)。
在對(duì)應(yīng)一個(gè)分支子網(wǎng)的情況下,可以直接依據(jù)該分支子網(wǎng)的擁塞情況,確定該節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值。
而在對(duì)應(yīng)多個(gè)分支子網(wǎng)的情況下,則需要權(quán)衡每個(gè)分子子網(wǎng)的擁塞情況,來(lái)確定該節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值。確定節(jié)點(diǎn)負(fù)載度量值的具體實(shí)現(xiàn)方式,參見下文詳細(xì)說(shuō)明。
在204部分:中間節(jié)點(diǎn)將自身的節(jié)點(diǎn)負(fù)載度量值向上游的鄰居節(jié)點(diǎn)發(fā)送。
以圖3中的節(jié)點(diǎn)d為例,節(jié)點(diǎn)f向節(jié)點(diǎn)b和c傳遞節(jié)點(diǎn)負(fù)載度量值。
關(guān)于節(jié)點(diǎn)負(fù)載度量值的詳細(xì)內(nèi)容,以及發(fā)送時(shí)機(jī)請(qǐng)參見202部分的介紹,在此不作贅述。
在本實(shí)施例中,流量域內(nèi)的出口節(jié)點(diǎn)及中間節(jié)點(diǎn)(即非入口節(jié)點(diǎn))依次將自身的節(jié)點(diǎn)負(fù)載度量值向上游的鄰居節(jié)點(diǎn)發(fā)送,以使上游的鄰居節(jié)點(diǎn)根據(jù)自身的節(jié)點(diǎn)負(fù)載度量值及接收到的節(jié)點(diǎn)負(fù)載度量值,執(zhí)行后續(xù)的流量分配。
需要說(shuō)明的是,由于本流量域內(nèi)的入口節(jié)點(diǎn)并不存在上游的鄰居節(jié)點(diǎn),則其無(wú)需向上游的鄰居節(jié)點(diǎn)發(fā)送節(jié)點(diǎn)負(fù)載度量值。當(dāng)然,其他流量域中的出口節(jié)點(diǎn),若需要使用本流量域入口節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值作為初始的節(jié)點(diǎn)負(fù)載度量值,則該入口節(jié)點(diǎn)可以向其發(fā)送。
在205部分:中間節(jié)點(diǎn)使用本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值及接收到的下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值,確定每一下游鏈路的流量分配比例,并將聚合流中流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)流按照該流量分配比例分配至各個(gè)下游鏈路。
可以理解的是,若中間節(jié)點(diǎn)乃至后續(xù)207部分的入口節(jié)點(diǎn)只有一條下游鏈路,則流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)流只能通過(guò)該下游鏈路發(fā)送,無(wú)需執(zhí)行流量分配動(dòng)作。
在206部分:入口節(jié)點(diǎn)確定自身的節(jié)點(diǎn)負(fù)載度量值。
在207部分:入口節(jié)點(diǎn)使用本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值及接收到的下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值,確定每一下游鏈路的流量分配比例,并將聚合流中流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)流按照該流量分配比例分配至各個(gè)下游鏈路。
例如,本節(jié)點(diǎn)有三條下游鏈路,確定出流量分配比例分別是20%,30%,50%,則將本節(jié)點(diǎn)20%,30%及50%的流量分配至該三條下游鏈路。
無(wú)論是入口節(jié)點(diǎn)還是中間節(jié)點(diǎn),在對(duì)數(shù)據(jù)流分配至下游鏈路后,通常會(huì)返回確定自身的節(jié)點(diǎn)負(fù)載度量值的步驟。而若網(wǎng)絡(luò)拓?fù)浒l(fā)生變化,則返回確定本節(jié)點(diǎn)在聚合流中的上下游鄰居節(jié)點(diǎn)(或獲取每一聚合流的可用路徑)的步驟。
以上實(shí)施例中,在網(wǎng)絡(luò)中劃分出流量域,針對(duì)本流量域內(nèi)的某個(gè)聚合流,節(jié)點(diǎn)向該聚合流的上游鄰居節(jié)點(diǎn)發(fā)送自身的節(jié)點(diǎn)負(fù)載度量值,以使上游的鄰居節(jié)點(diǎn)根據(jù)該節(jié)點(diǎn)負(fù)載度量值,獨(dú)立執(zhí)行流量調(diào)節(jié)動(dòng)作,流量調(diào)節(jié)動(dòng)作的目標(biāo)是使本節(jié)點(diǎn)的每個(gè)分支子網(wǎng)的網(wǎng)絡(luò)負(fù)載度量值趨于一致。該聚合流的路徑上,多個(gè)節(jié)點(diǎn)執(zhí)行流量調(diào)節(jié),實(shí)現(xiàn)了本流量域針對(duì)聚合流的流量?jī)?yōu)化。
當(dāng)然,針對(duì)多個(gè)聚合流,每一個(gè)節(jié)點(diǎn)也可以按照上述實(shí)施例提供的方法分別進(jìn)行流量調(diào)節(jié)。針對(duì)該流量域內(nèi)的每個(gè)聚合流均執(zhí)行獨(dú)立的流量調(diào)節(jié)后,便可以實(shí)現(xiàn)該流量域的流量?jī)?yōu)化。而每個(gè)流量域均獨(dú)立執(zhí)行流量調(diào)節(jié)后,從而實(shí)現(xiàn)了全網(wǎng)的流量?jī)?yōu)化。
此種在流量域內(nèi)且針對(duì)聚合流執(zhí)行的流量調(diào)節(jié)方法,每個(gè)節(jié)點(diǎn)獨(dú)立調(diào)節(jié),并不需收集全網(wǎng)的網(wǎng)絡(luò)狀態(tài),每個(gè)節(jié)點(diǎn)的計(jì)算量小,調(diào)節(jié)動(dòng)作實(shí)時(shí)、高效。
根據(jù)上述實(shí)施例的說(shuō)明可知,每個(gè)節(jié)點(diǎn)均需要確定自身的節(jié)點(diǎn)負(fù)載度量值。但節(jié)點(diǎn)的類型不同,則確定節(jié)點(diǎn)負(fù)載度量值的方式也不同,圖4則示出了某一節(jié)點(diǎn)在作為入口節(jié)點(diǎn)、出口節(jié)點(diǎn)或中間節(jié)點(diǎn)時(shí),確定本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值的不同方式。
在400部分:判斷是否是出口節(jié)點(diǎn),如果是,進(jìn)入401部分,否則進(jìn)入402部分;
在401部分:初始化本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值。
401部分與前述201部分相類似,在此不作贅述。
在402部分:接收下游鄰居節(jié)點(diǎn)傳遞的節(jié)點(diǎn)負(fù)載度量值;
402部分與前述的202部分、204部分相對(duì)應(yīng),在此不作贅述。
在403部分:計(jì)算每個(gè)分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值;
在一個(gè)示例中,分支子網(wǎng)負(fù)載度量值的計(jì)算方式為:比較下游鏈路的鏈路負(fù)載度量值與下游鄰居節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)負(fù)載度量值兩者中的較大值,將較大值作為該分支子網(wǎng)負(fù)載度量值。從下游鏈路和下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值中選取的較大值,可以更好得反映各分支子網(wǎng)的擁塞情況。
舉例來(lái)講,對(duì)于圖3所示的節(jié)點(diǎn)b,其下游鏈路為bd,其下游鄰居節(jié)點(diǎn)為節(jié)點(diǎn)d,則從下游鏈路的鏈路負(fù)載度量值和節(jié)點(diǎn)d的節(jié)點(diǎn)負(fù)載度量值中取較大值,作為節(jié)點(diǎn)b對(duì)應(yīng)的分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值。
再以圖3中的節(jié)點(diǎn)d為例,其只有一條下游鏈路df,假設(shè)下游鏈路df的鏈路負(fù)載度量值為0.2,節(jié)點(diǎn)d接收到節(jié)點(diǎn)f發(fā)送的節(jié)點(diǎn)負(fù)載度量值為null,則可以直接將節(jié)點(diǎn)d的節(jié)點(diǎn)負(fù)載度量值設(shè)置為0.2。
其中,鏈路負(fù)載度量值可以表示下游鏈路的網(wǎng)絡(luò)擁塞情況,可選地,鏈路負(fù)載度量值可以具體為下游鏈路的帶寬占用率。需要指出的是,此處的帶寬占用率是下游鏈路上所有聚合流(而非本聚合流)的流量與本下游鏈路的鏈路帶寬的比值。
在404部分:判斷是否有多個(gè)下游鏈路;若是,進(jìn)入406部分,否則進(jìn)入405部分;
在405部分:將本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值設(shè)置為分支子網(wǎng)負(fù)載度量值;
在406部分:將各個(gè)分支子網(wǎng)負(fù)載度量值進(jìn)行加權(quán)平均后,作為本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值。
每條下游鏈路的權(quán)重可以為,該下游鏈路的流量與本節(jié)點(diǎn)的總流量的比值。需要說(shuō)明的是,此處的流量與總流量均是針對(duì)某一個(gè)聚合流的流量。
以圖3中的節(jié)點(diǎn)c為例,其存在兩條下游鏈路(cd及ce)。
對(duì)于下游鏈路cd而言,假設(shè)其鏈路負(fù)載度量值為0.2,且下游鄰居節(jié)點(diǎn)d發(fā)送的節(jié)點(diǎn)負(fù)載度量值為0.1,則下游鏈路cd對(duì)應(yīng)的分支子網(wǎng)cdf的分支子網(wǎng)負(fù)載度量值為0.2。
對(duì)于下游鏈路ce而言,假設(shè)其鏈路負(fù)載度量值為0.4,且下游鄰居節(jié)點(diǎn)e發(fā)送的節(jié)點(diǎn)負(fù)載度量值為0.5,則下游鏈路ce對(duì)應(yīng)的分支子網(wǎng)cef的分支子網(wǎng)負(fù)載度量值為0.5。
假定聚合流af流經(jīng)節(jié)點(diǎn)c的流量為10m,其中,4m流量經(jīng)過(guò)下游鏈路cd,6m流量經(jīng)過(guò)下游鏈路ce,則下游鏈路cd的權(quán)重為0.4,下游鏈路ce的權(quán)重為0.6。
則節(jié)點(diǎn)c的節(jié)點(diǎn)負(fù)載度量值=分支子網(wǎng)cdf的分支子網(wǎng)負(fù)載度量值*下游鏈路cd的權(quán)重+分支子網(wǎng)cef的分支子網(wǎng)負(fù)載度量值*下游鏈路ce的權(quán)重。用具體數(shù)值表示,節(jié)點(diǎn)c的節(jié)點(diǎn)負(fù)載度量值=0.2*0.4+0.5*0.6=0.38。
或者,每條下游鏈路的權(quán)重可均為1。
在407部分:判斷是否是入口節(jié)點(diǎn),如果是,則返回400部分,否則進(jìn)入408部分。
在408部分:向上游鄰居節(jié)點(diǎn)傳送本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值。
408部分與前述的202部分以及204部分相類似,在此不作贅述。
下面,將重點(diǎn)介紹如何確定每一下游鏈路的流量分配比例,并將聚合流中流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)流按照該流量分配比例分配至各個(gè)下游鏈路。
圖5示出了針對(duì)某一聚合流,入口節(jié)點(diǎn)、出口節(jié)點(diǎn)以及中間節(jié)點(diǎn)的另一交互示意圖。
500-502部分與前述的200-202部分分別相同,在此不作贅述。
503部分與前述的203部分相類似,并與圖4所示實(shí)施例中的400、402-407部分相對(duì)應(yīng),在此不作贅述。
504部分與前述的204部分相類似,在此不贅述。
在505部分:中間節(jié)點(diǎn)將各條下游鏈路區(qū)分為高溫鏈路及低溫鏈路。
其中,高溫鏈路,指的是分支子網(wǎng)負(fù)載度量值高于本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值的分支子網(wǎng)所對(duì)應(yīng)的下游鏈路;低溫鏈路,指的是分支子網(wǎng)負(fù)載度量值高于本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值的分支子網(wǎng)所對(duì)應(yīng)的下游鏈路。
舉例來(lái)講,假定分支子網(wǎng)1-4的分支子網(wǎng)負(fù)載度量值分別是0.2、0.3、0.5和0.8。本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值是0.45,則分支子網(wǎng)1,2對(duì)應(yīng)的鏈路是低溫鏈路;分支子網(wǎng)3,4對(duì)應(yīng)的鏈路是高溫鏈路。
將下游鏈路區(qū)分為高溫鏈路和低溫鏈路,后續(xù)會(huì)針對(duì)高溫鏈路減少流量分配,針對(duì)低溫鏈路增加流量分配,從而可使各條下游鏈路的逐漸流量趨于一致。
需要說(shuō)明的是,505部分與504部分可并行執(zhí)行,也可先于504部分執(zhí)行。
前述提及了負(fù)載度量值可為一組數(shù)值。該組數(shù)值的部分?jǐn)?shù)值可反映本節(jié)點(diǎn)的所有分支子網(wǎng)整體的擁塞情況或某一分支子網(wǎng)整體的擁塞情況,其他數(shù)值還可表達(dá)網(wǎng)絡(luò)的局部可用性、負(fù)載程度、服務(wù)質(zhì)量、鏈路成本、與網(wǎng)絡(luò)運(yùn)行策略相關(guān)的狀態(tài)等。從而使得網(wǎng)絡(luò)流量?jī)?yōu)化目標(biāo)不僅僅是流量均衡分配,還可涵蓋優(yōu)先利用服務(wù)質(zhì)量較好的鏈路、優(yōu)先利用鏈路成本較低的鏈路,達(dá)到綜合優(yōu)化。
網(wǎng)絡(luò)運(yùn)行策略可依據(jù)鏈路的成本制定。假設(shè)自有鏈路成本低,租用鏈路成本高。則可以制訂網(wǎng)絡(luò)運(yùn)行策略——在網(wǎng)絡(luò)負(fù)載相同時(shí),人為把租用鏈路設(shè)置為高溫鏈路,從而優(yōu)先使用自有鏈路,減少使用租用鏈路。
在506部分:中間節(jié)點(diǎn)計(jì)算低溫鏈路的可容納總流量。
在一個(gè)示例中,可根據(jù)低溫鏈路的可容納流量表達(dá)式aj=(1-tj)*bj,確定出每一低溫鏈路的可容納流量。將所有低溫鏈路的可容納流量加和,獲得低溫鏈路的可容納總流量。
其中,j表示第j條低溫鏈路,aj為第j條低溫鏈路的可容納流量,tj為第j條低溫鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值,bj為第j條低溫鏈路所在分支子網(wǎng)的帶寬。
舉例來(lái)講,對(duì)一個(gè)聚合流,某節(jié)點(diǎn)有一個(gè)上游鏈路(編號(hào)0),4個(gè)下游鏈路(編號(hào)1-4),假設(shè)這4個(gè)下游鏈路所在分支網(wǎng)絡(luò)的帶寬分別是10mb,30mb,20mb,100mb,對(duì)應(yīng)的分支子網(wǎng)負(fù)載度量值分別是0.2、0.3、0.5和0.8。
則低溫鏈路1可容納帶寬=(1-0.2)*10mb=8mb;
低溫鏈路2可容納帶寬=(1-0.3)*30mb=21mb;
低溫鏈路的可容納總流量=21+8=29mb。
需要說(shuō)明的是,分支子網(wǎng)帶寬的算法可以但不限于最短增廣路算法、深度優(yōu)先搜索增廣路徑算法、廣度優(yōu)先搜索增廣路徑算法、最大容量增廣路算法或容量縮放算法等。
在507部分:中間節(jié)點(diǎn)確定本次流量調(diào)節(jié)總量。
在一個(gè)示例中,可根據(jù)流量調(diào)節(jié)總量表達(dá)式z=k*s*(p-q),確定本次流量調(diào)節(jié)總量。
上述表達(dá)式中,z為本次流量調(diào)節(jié)總量,k為調(diào)節(jié)率,s為本節(jié)點(diǎn)針對(duì)聚合流的當(dāng)前實(shí)際總流量與低溫鏈路的可容納總流量之間的較小值,p為所有高溫鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值的平均值,q為所有低溫鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值的平均值。
其中,調(diào)節(jié)率是一個(gè)系統(tǒng)參數(shù),例如為5%-10%中的任意值。
仍沿用前例,假定本節(jié)點(diǎn)針對(duì)聚合流的當(dāng)前實(shí)際總流量10mb,p=0.65,q=0.25,k=5%。低溫鏈路的可容納總流量為29mb,則
本次流量調(diào)節(jié)總量=5%*min(29mb,10mb)*(0.65-0.25)=0.2mb。
由于高溫鏈路需減少流量,低溫鏈路需增加流量,因此,須考慮低溫鏈路的可容納總流量。選取當(dāng)前實(shí)際總流量與所述低溫鏈路的可容納總流量之間的較小值,可避免低溫鏈路的可容納總流量高于當(dāng)前實(shí)際總流量太多,而導(dǎo)致多節(jié)點(diǎn)獨(dú)立調(diào)整流量力量過(guò)大引起振蕩。并且,調(diào)節(jié)率取值較小,則使用調(diào)節(jié)率計(jì)算獲得的本次流量調(diào)節(jié)總量便是流量調(diào)節(jié)總量的一小部分,這樣可以以漸進(jìn)方式進(jìn)行反饋調(diào)節(jié),同樣可避免多點(diǎn)獨(dú)立調(diào)節(jié)造成的網(wǎng)絡(luò)振蕩。另外,計(jì)算高溫鏈路與低溫鏈路分支子網(wǎng)負(fù)載度量值之間的差值,是為了按照分支子網(wǎng)負(fù)載度量值的差值,來(lái)確定流量調(diào)節(jié)的力度。
在508部分:中間節(jié)點(diǎn)確定各高溫鏈路的流量減少量和低溫鏈路的流量增加量。
在一個(gè)示例中,可依據(jù)高溫鏈路的流量減少量表達(dá)式
其中,i表示第i條高溫鏈路,ri為第i條高溫鏈路的流量減少量,v為本次流量調(diào)節(jié)總量,fi為第i條高溫鏈路針對(duì)聚合流的當(dāng)前實(shí)際流量,ti為第i條高溫鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值;x為高溫鏈路的總數(shù)。
在另一個(gè)示例中,可依據(jù)低溫鏈路的流量增加量表達(dá)式
其中,j表示第j條為低溫鏈路,dj表示第j條低溫鏈路的流量增加量,v為本次流量調(diào)節(jié)總量,fj為表示第j條低溫鏈路針對(duì)聚合流的當(dāng)前實(shí)際流量,tj為表示第j條低溫鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值;y為低溫鏈路的總數(shù)。
仍沿用前例,假定前述4個(gè)下游鏈路針對(duì)聚合流的當(dāng)前實(shí)際流量分別是1mb,3mb,4mb,2mb,對(duì)應(yīng)的分支子網(wǎng)負(fù)載度量值分別是0.2、0.3、0.5和0.8。本次流量調(diào)節(jié)總量v為0.2m,則:
(高溫)下游鏈路3本次調(diào)度減少流量額=0.2mb*4mb*0.5/(4mb*0.5+2mb*0.8)=0.111mb;
(高溫)下游鏈路4本次調(diào)度減少流量額=0.2mb*2mb*0.8/(4mb*0.5+2mb*0.8)=0.089mb;
(低溫)下游鏈路1本次調(diào)度增加流量額=
0.2mb*1mb*(1-0.2)/(1mb*(1-0.2)+3mb*(1-0.3))=0.055mb;
(低溫)下游鏈路2本次調(diào)度增加流量額=
0.2mb*3mb*(1-0.3)/(1mb*(1-0.2)+3mb*(1-0.3))=0.145mb。
在509部分:中間節(jié)點(diǎn)確定各高溫鏈路的流量分配比例以及各低溫鏈路的流量分配比例。
在一個(gè)示例中,可按照高溫鏈路流量分配比例表達(dá)式
在另一個(gè)示例中,可按照低溫鏈路流量分配比例表達(dá)式
其中,pj為第j條低溫鏈路的流量分配比例。
仍沿用前例,則:
(低溫)下游鏈路1的流量分配比例=(1mb+0.055mb)/10mb=10.55%;
(低溫)下游鏈路2的流量分配比例=(3mb+0.145mb)/10mb=31.45%;
(高溫)下游鏈路3的流量分配比例=(4mb-0.111mb)/10mb=38.89%;
(高溫)下游鏈路4的流量分配比例=(2mb-0.089mb)/10mb=19.11%。
在該示例中,以所有高溫鏈路的加權(quán)實(shí)際流量總和為分母(基礎(chǔ)),得到每一條高溫鏈路加權(quán)實(shí)際流量所占的比例,得到的比例乘以本次流量調(diào)節(jié)總量,得到的是每一高溫鏈路的流量減少量,這樣可使得確定出的高溫鏈路的流量減少量更準(zhǔn)確、更合理。
以上確定各條下游鏈路的流量分配比例的方式僅僅是一種具體示例,其使用的各個(gè)計(jì)算公式可以不同,確定各條下游鏈路的流量分配比例的目的是使各條下游鏈路所在分支子網(wǎng)的分支子網(wǎng)負(fù)載度量值趨于一致,因此,只要是能達(dá)到這個(gè)目的的計(jì)算方式均在本申請(qǐng)的保護(hù)范圍內(nèi)。
在510部分:中間節(jié)點(diǎn)根據(jù)流量分配比例,設(shè)置每一所述下游鏈路在預(yù)設(shè)的實(shí)數(shù)區(qū)間中對(duì)應(yīng)的子區(qū)間;
其中,各下游鏈路對(duì)應(yīng)的子區(qū)間連續(xù)、不遺漏且不重復(fù)得覆蓋所述實(shí)數(shù)區(qū)間。
比如:有三個(gè)下游鏈路,流量分配比例分別是20%、30%、50%,則在[0,1]區(qū)間中對(duì)應(yīng)3個(gè)子區(qū)間:[0,0.2)、[0.2,0.5)、[0.5,1]。
可以觀察發(fā)現(xiàn),某一子區(qū)間兩端點(diǎn)間的差值等于對(duì)應(yīng)的下游鏈路的流量分配。例如,[0,0.2)子區(qū)間的兩端點(diǎn)間差值為0.2,其對(duì)應(yīng)的下游鏈路的流量分配為20%。
在511部分:為聚合流中流經(jīng)本節(jié)點(diǎn)的傳輸數(shù)據(jù)單位生成隨機(jī)數(shù),確定所述隨機(jī)數(shù)所歸屬的子區(qū)間,并將傳輸數(shù)據(jù)單位分配至所述子區(qū)間所對(duì)應(yīng)的下游鏈路。
仍沿用前例,假設(shè)以報(bào)文作為分配的傳輸數(shù)據(jù)單位,則本節(jié)點(diǎn)為聚合流中的報(bào)文生成隨機(jī)數(shù),例如生成的隨機(jī)數(shù)為0.5,0.5歸屬于第三個(gè)子區(qū)間,因此,將該報(bào)文發(fā)送至第三條下游鏈路。
需要說(shuō)明的是,以報(bào)文作為分配的傳輸數(shù)據(jù)單位,實(shí)現(xiàn)方式簡(jiǎn)單且開銷較低,但會(huì)導(dǎo)致報(bào)文亂序的問(wèn)題。因此,可以將源目地址流、五元組流、小流或其他聚合流細(xì)分后的單位作為傳輸數(shù)據(jù)單位。
其中,源目地址流指的是,源網(wǎng)絡(luò)地址和目的網(wǎng)絡(luò)地址相同的數(shù)據(jù)流的集合;五元組流指的是,源網(wǎng)絡(luò)地址、目的網(wǎng)絡(luò)地址、源傳輸層端口號(hào)、目的傳輸層端口號(hào)、協(xié)議號(hào)相同的數(shù)據(jù)流的集合;小流指的是,源目地址流或五元組流暫時(shí)中斷某時(shí)間長(zhǎng)度后,則認(rèn)為把這個(gè)流劃分成了兩個(gè)分段,每個(gè)分段即為一個(gè)小流。時(shí)間長(zhǎng)度可以是大于網(wǎng)絡(luò)最大時(shí)延的一個(gè)時(shí)間值,例如100毫秒。小流可以把源目地址流或五元組流進(jìn)一步細(xì)分,但不會(huì)導(dǎo)致報(bào)文亂序。
505部分至511部分是前述的205部分的細(xì)化。
512部分與前述的206部分相類似,并與圖4所示實(shí)施例中的400、402-407部分相對(duì)應(yīng),在此不作贅述。
513部分至519實(shí)現(xiàn)的是入口節(jié)點(diǎn)使用本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值及接收到的下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值,確定每一下游鏈路的流量分配比例,并將聚合流中流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)流按照該流量分配比例分配至各個(gè)下游鏈路。其與505部分至511部分相類似,在此不作贅述。
綜上,本發(fā)明所提供的分布式流量調(diào)節(jié)方法,可實(shí)現(xiàn)網(wǎng)絡(luò)多路徑的有效利用。通過(guò)自動(dòng)化調(diào)節(jié),取得每個(gè)聚合流在可用路徑上的流量均衡,進(jìn)而取得全網(wǎng)流量均衡,提高網(wǎng)絡(luò)利用率。
并在如下方面具有高效的優(yōu)點(diǎn):
負(fù)載信息傳遞高效:每個(gè)聚合流的每個(gè)下游分支子網(wǎng)的負(fù)載狀態(tài)經(jīng)過(guò)逐跳合并計(jì)算,只需要用一個(gè)數(shù)值(例如1~4字節(jié))或一組數(shù)值描述。即方案描述中的負(fù)載度量值;
調(diào)節(jié)動(dòng)作高效:每個(gè)聚合流全程沿途的每個(gè)分支節(jié)點(diǎn)都可參與調(diào)節(jié),不需要做顯式的全網(wǎng)協(xié)同動(dòng)作。本地微小動(dòng)作即可優(yōu)化整個(gè)下游區(qū)域。調(diào)節(jié)反應(yīng)快、實(shí)施簡(jiǎn)便;
計(jì)算高效:通過(guò)分布式設(shè)計(jì)和信息壓縮,每個(gè)環(huán)節(jié)的計(jì)算量都很小。而集中式流量工程技術(shù)往往需要在高性能服務(wù)器上進(jìn)行幾個(gè)小時(shí)的計(jì)算。
同時(shí)在如下方面具有實(shí)時(shí)的優(yōu)點(diǎn):由于不需要做全網(wǎng)狀態(tài)同步、全網(wǎng)動(dòng)態(tài)協(xié)調(diào)、大數(shù)據(jù)量集中計(jì)算,依靠網(wǎng)絡(luò)內(nèi)部的高效通訊反饋和分布式操作,可實(shí)現(xiàn)全網(wǎng)實(shí)時(shí)調(diào)節(jié)。
此外,通過(guò)擴(kuò)展傳遞信息和相應(yīng)優(yōu)化算法,可使得網(wǎng)絡(luò)流量?jī)?yōu)化目標(biāo)不僅僅是流量均衡分配,還包括優(yōu)先利用服務(wù)質(zhì)量較好的鏈路、優(yōu)先利用鏈路成本較低的鏈路,形成綜合優(yōu)化。
下面將介紹分布式流量調(diào)節(jié)裝置。前已述及,分布式流量調(diào)節(jié)裝置可為流量域內(nèi)的任一節(jié)點(diǎn)(路由器)。
圖6示出了上述實(shí)施例中所涉及的節(jié)點(diǎn)(路由器)的一種可能的結(jié)構(gòu)示意圖,包括:
第一確定單元601,用于根據(jù)流量域的網(wǎng)絡(luò)拓?fù)湫畔?,確定本節(jié)點(diǎn)在所述流量域中針對(duì)聚合流的上下游鄰居節(jié)點(diǎn);
第二確定單元602,用于確定本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值;
發(fā)送單元603,用于在作為流量域中的非入口節(jié)點(diǎn)的情況下,將本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值向上游的鄰居節(jié)點(diǎn)發(fā)送;
接收單元604,用于在作為流量域中的非出口節(jié)點(diǎn)時(shí),接收下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值;
分配單元605,用于在作為流量域中的非出口節(jié)點(diǎn)且下游連接多個(gè)鄰居節(jié)點(diǎn)的情況下,使用本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值及接收到的下游鄰居節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值,確定每一下游鏈路的流量分配比例,并將聚合流中流經(jīng)本節(jié)點(diǎn)的數(shù)據(jù)按照該流量分配比例分配至各個(gè)下游鏈路。
其中,第一確定單元601可用于執(zhí)行圖2a所示實(shí)施例的200部分,圖5所示實(shí)施例的500部分。
第二確定單元602可用于執(zhí)行圖2a所示實(shí)施例的201部分或203部分或206部分,圖2b所示實(shí)施例的“確定本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值”部分,圖4所示實(shí)施例的400-401部分或400、403-405部分,圖5所示實(shí)施例的501部分或503部分或512部分。
發(fā)送單元603可用于執(zhí)行圖2a所示實(shí)施例的202部分或204部分,圖2b所示實(shí)施例的“發(fā)送本節(jié)點(diǎn)的節(jié)點(diǎn)負(fù)載度量值”部分,圖4所示實(shí)施例的407-408部分,圖5所示實(shí)施例的502或504部分。
接收單元604可用于執(zhí)行圖4所示實(shí)施例的402部分,此外,也可用于執(zhí)行所有實(shí)施例中涉及接收數(shù)據(jù)的操作。
分配單元605可用于執(zhí)行圖2a所示實(shí)施例的205部分或207部分、圖5所示的505-511或513-519部分。
圖7示出了上述實(shí)施例中所涉及的節(jié)點(diǎn)/路由器的另一種可能的結(jié)構(gòu)示意圖,包括:
總線、控制器/處理器1、存儲(chǔ)器2、通信接口3、輸入設(shè)備4和輸出設(shè)備5。處理器1、存儲(chǔ)器2、通信接口3、輸入設(shè)備4和輸出設(shè)備5通過(guò)總線相互連接。其中:
總線可包括一通路,在計(jì)算機(jī)系統(tǒng)各個(gè)部件之間傳送信息。
控制器/處理器1可以是通用處理器,例如通用中央處理器(cpu)、網(wǎng)絡(luò)處理器(networkprocessor,簡(jiǎn)稱np)、微處理器等,也可以是特定應(yīng)用集成電路(application-specificintegratedcircuit,asic),或一個(gè)或多個(gè)用于控制本發(fā)明方案程序執(zhí)行的集成電路。還可以是數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??刂破?處理器1也可以是實(shí)現(xiàn)計(jì)算功能的組合,例如包含一個(gè)或多個(gè)微處理器組合,dsp和微處理器的組合等等。
存儲(chǔ)器2中保存有執(zhí)行本發(fā)明技術(shù)方案的程序,還可以保存有操作系統(tǒng)和其他應(yīng)用程序。具體地,程序可以包括程序代碼,程序代碼包括計(jì)算機(jī)操作指令。更具體的,存儲(chǔ)器2可以是只讀存儲(chǔ)器(read-onlymemory,rom)、可存儲(chǔ)靜態(tài)信息和指令的其他類型的靜態(tài)存儲(chǔ)設(shè)備、隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram)、可存儲(chǔ)信息和指令的其他類型的動(dòng)態(tài)存儲(chǔ)設(shè)備、磁盤存儲(chǔ)器等等。
輸入設(shè)備4可包括接收用戶輸入的數(shù)據(jù)和信息的裝置,例如鍵盤、鼠標(biāo)、攝像頭、掃描儀、光筆、語(yǔ)音輸入裝置、觸摸屏等。
輸出設(shè)備5可包括允許輸出信息給用戶的裝置,例如顯示屏、打印機(jī)、揚(yáng)聲器等。
通信接口3可包括使用任何收發(fā)器一類的裝置,以便與其他設(shè)備或通信網(wǎng)絡(luò)通信,如以太網(wǎng),無(wú)線接入網(wǎng)(ran),無(wú)線局域網(wǎng)(wlan)等。通信接口3可用于支持節(jié)點(diǎn)/路由器與其他裝置進(jìn)行通信。例如,用于支持節(jié)點(diǎn)/路由器與圖2a、2b、4、5中示出的其他裝置(例如上下游鄰居節(jié)點(diǎn))進(jìn)行通信??刂破?處理器1也可用于實(shí)現(xiàn)前述發(fā)送單元603和接收單元604的功能。
控制器/處理器1可用于執(zhí)行圖2a、2b、4、5中的處理過(guò)程和/或用于本申請(qǐng)所描述的技術(shù)的其他過(guò)程??刂破?處理器1也可用于實(shí)現(xiàn)前述第一確定單元601、第二確定單元602和分配單元605的功能。
可以理解的是,圖7僅僅示出了節(jié)點(diǎn)/路由器的簡(jiǎn)化設(shè)計(jì)。在實(shí)際應(yīng)用中,節(jié)點(diǎn)/路由器可以包含任意數(shù)量的發(fā)射器,接收器,處理器,控制器,存儲(chǔ)器,通信接口等,而所有可以實(shí)現(xiàn)本發(fā)明的節(jié)點(diǎn)/路由器都在本發(fā)明的保護(hù)范圍之內(nèi)。
結(jié)合本發(fā)明公開內(nèi)容所描述的方法或者算法的步驟可以硬件的方式來(lái)實(shí)現(xiàn),也可以是由處理器執(zhí)行軟件指令的方式來(lái)實(shí)現(xiàn)。軟件指令可以由相應(yīng)的軟件模塊組成,軟件模塊可以被存放于ram存儲(chǔ)器、閃存、rom存儲(chǔ)器、eprom存儲(chǔ)器、eeprom存儲(chǔ)器、寄存器、硬盤、移動(dòng)硬盤、cd-rom或者本領(lǐng)域熟知的任何其它形式的存儲(chǔ)介質(zhì)中。一種示例性的存儲(chǔ)介質(zhì)耦合至處理器,從而使處理器能夠從該存儲(chǔ)介質(zhì)讀取信息,且可向該存儲(chǔ)介質(zhì)寫入信息。當(dāng)然,存儲(chǔ)介質(zhì)也可以是處理器的組成部分。處理器和存儲(chǔ)介質(zhì)可以位于asic中。另外,該asic可以位于用戶設(shè)備中。當(dāng)然,處理器和存儲(chǔ)介質(zhì)也可以作為分立組件存在于用戶設(shè)備中。
本領(lǐng)域技術(shù)人員應(yīng)該可以意識(shí)到,在上述一個(gè)或多個(gè)示例中,本發(fā)明所描述的功能可以用硬件、軟件、固件或它們的任意組合來(lái)實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以將這些功能存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中或者作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)指令或代碼進(jìn)行傳輸。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì),其中通信介質(zhì)包括便于從一個(gè)地方向另一個(gè)地方傳送計(jì)算機(jī)程序的任何介質(zhì)。存儲(chǔ)介質(zhì)可以是通用或?qū)S糜?jì)算機(jī)能夠存取的任何可用介質(zhì)。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的技術(shù)方案的基礎(chǔ)之上,所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包括在本發(fā)明的保護(hù)范圍之內(nèi)。