專利名稱:基于QoE的路由選擇方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)路由技術(shù)領(lǐng)域,涉及一種路由選擇方法,具體涉及一種基于QoE的路由選擇方法。
背景技術(shù):
目前IP協(xié)議在路由選擇時(shí)只依據(jù)最短時(shí)延或最少跳數(shù)算法確定轉(zhuǎn)發(fā)路徑,忽略了網(wǎng)絡(luò)資源、路徑費(fèi)用、用戶主觀感受等因素。這種盡力而為的因特網(wǎng)無(wú)法提供服務(wù)質(zhì)量和用戶體驗(yàn)保證,它的特點(diǎn)是對(duì)所有應(yīng)用一視同仁。如QoS多約束路由算法,其在考慮多個(gè)QoS參數(shù)限制的情況下進(jìn)行路由選擇,從一定程度上改變了單參數(shù)路由的現(xiàn)狀?,F(xiàn)有的針對(duì)QoS參數(shù)多約束路由算法的研究,大致分為1)多項(xiàng)式非啟發(fā)式算法,Wang和Crowcroft使用Dijkstra最短路徑樹(shù)算法實(shí)現(xiàn)了帶寬延遲受限的源路由求解。首先在網(wǎng)絡(luò)拓?fù)鋱D中將帶寬不足要求的鏈路剪除掉,然后再以延遲為關(guān)鍵字使用最短路徑樹(shù)算法計(jì)算,這樣求 得的路徑滿足帶寬約束并具有最短延遲。趙海雁和陳立潮使用Dijkstra最短路徑樹(shù)算法實(shí)現(xiàn)了時(shí)延、成本受限的求解。主要通過(guò)將原問(wèn)題轉(zhuǎn)化為該問(wèn)題的一個(gè)子問(wèn)題來(lái)進(jìn)行研究求解,而非真正解決QoS多約束路由問(wèn)題。2)各類啟發(fā)式算法,Turgay Korkmaz和MarwanKrunz提出一種隨機(jī)啟發(fā)式算法,該算法在BFS的算法基礎(chǔ)上進(jìn)行了改進(jìn),不是系統(tǒng)的選擇一個(gè)結(jié)點(diǎn)進(jìn)行搜索,而是隨機(jī)的選取,這樣可以更好的保證搜索方向不斷向目標(biāo)結(jié)點(diǎn)過(guò)渡。Shigang Chen和Nahrstedt. K針對(duì)兩個(gè)約束條件的QoS路由問(wèn)題,提出了一種啟發(fā)式算法,該算法通過(guò)將其中一個(gè)約束參數(shù)整數(shù)化的方式將問(wèn)題轉(zhuǎn)化為一個(gè)新問(wèn)題,并證明新問(wèn)題得到的解是原MCP問(wèn)題的解的子集,從而能保證利用該算法得到解,則該解就是滿足原問(wèn)題的解。3)單混合參數(shù)算法,以上算法只是簡(jiǎn)單地分開(kāi)考慮QoS參數(shù)是否滿足給定約束條件,并尋找滿足要求的路徑,其算法效率都受到一定的影響,于是提出了各種單混合參數(shù)的思想,并出現(xiàn)了很多相關(guān)的算法,其中SAMCRA的算法較好的解決了混合參數(shù)為標(biāo)準(zhǔn)的路由選擇問(wèn)題。這些算法的研究都是圍繞客觀QoS參數(shù)進(jìn)行研究的路由算法。然而,通常用戶并不關(guān)心各網(wǎng)絡(luò)通信應(yīng)用和服務(wù)在IP網(wǎng)上如何實(shí)現(xiàn)和傳輸?shù)?,也就是說(shuō)對(duì)用戶而言關(guān)注各種QoS參數(shù)并沒(méi)有多大實(shí)際意義,他們只關(guān)心服務(wù)的體驗(yàn)質(zhì)量(QoE, quality of experience)。QoE可以理解為用戶體驗(yàn)或者用戶感知,即終端用戶對(duì)移動(dòng)網(wǎng)絡(luò)提供的業(yè)務(wù)性能的主觀感受。它可以通過(guò)接近量化的方法來(lái)表示終端用戶對(duì)業(yè)務(wù)的體驗(yàn)和感受,并反映當(dāng)前業(yè)務(wù)的質(zhì)量與用戶期望間的差距。以往的有關(guān)路由選擇的研究忽視了用戶體驗(yàn)這一重要因素,沒(méi)有深入的了解網(wǎng)絡(luò)性能參數(shù)對(duì)用戶體驗(yàn)的影響變化情況,更沒(méi)有從用戶體驗(yàn)角度進(jìn)行設(shè)計(jì)路由選擇算法。所以對(duì)以QoE體驗(yàn)值為目標(biāo)的路由選擇問(wèn)題研究是必要的和緊迫的。
發(fā)明內(nèi)容
鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種基于QoE的路由選擇方法,用以合理準(zhǔn)確地測(cè)量協(xié)作無(wú)線信道的特性。
為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種基于QoE的路由選擇方法。一種基于QoE的路由選擇方法,所述基于QoE的路由選擇方法包括步驟一,對(duì)每個(gè)路由結(jié)點(diǎn)維護(hù)一個(gè)結(jié)構(gòu)體M,所述結(jié)構(gòu)體M包括jitter、delay、packet_loss_rate三個(gè)參數(shù)變量;相鄰的路由結(jié)點(diǎn)通過(guò)鏈路連接,每條鏈路的jitter、delay、packet_loss_rate參數(shù)都是已知的;設(shè)每個(gè)結(jié)點(diǎn)的QoE特征值value為M[v]. value = k: {M[u]. jitter+N[u — v]. jitter} +k2 {M[u]. delay+N[u — v]. delay} + k3X100X {I-(l_M[u] packet_loss_rate)(l_N[u — v]. packet_loss_rate)}其中,結(jié)點(diǎn)u為結(jié)點(diǎn)v的前向結(jié)點(diǎn),M[u]. jitter表示結(jié)點(diǎn)u的jitter累積值,M[u]. delay 表不結(jié)點(diǎn) u 的 delay 累積值,M[u]. packet_loss_rate 表不結(jié)點(diǎn) u 的 packet_loss_rate 累積值,N[u — v]. jitter 表示鏈路 u — v 的 jitter 值,N[u — v]. delay 表示鏈路 u — v 的 delay 值,N[u — v]. packet_loss_rate 表不鏈路 u — v 的 packet_loss_rate值;ki、k2和k3為已知的QoE模型的固定系數(shù);將每個(gè)結(jié)點(diǎn)的相關(guān)信息初始化為無(wú)窮大;步驟二,在一隊(duì)列Q中加入始結(jié)點(diǎn)s的信息,初始化始結(jié)點(diǎn)s的相關(guān)信息為0 ;步驟三,首先搜索計(jì)算始結(jié)點(diǎn)s的所有鄰結(jié)點(diǎn)的value值,并將value值小于或等于參數(shù)C’的鄰結(jié)點(diǎn)加入到隊(duì)列Q中,并將始結(jié)點(diǎn)s從隊(duì)列Q中刪除;其中參數(shù)C’ =Max+1-C, C為QoE用戶等級(jí)參數(shù),Max為已知的QoE模型的固定系數(shù);步驟四,在隊(duì)列Q中選取value值最小的結(jié)點(diǎn)作為下一次搜索的起始結(jié)點(diǎn),然后計(jì)算所述起始結(jié)點(diǎn)的所有鄰結(jié)點(diǎn)的value值,并將value值小于或等于參數(shù)C’的鄰結(jié)點(diǎn)繼續(xù)加入到隊(duì)列Q中,并將起始結(jié)點(diǎn)從隊(duì)列Q中刪除;若所述鄰結(jié)點(diǎn)已經(jīng)存在于隊(duì)列Q中,則判斷該鄰結(jié)點(diǎn)當(dāng)前計(jì)算的value值是否小于存儲(chǔ)于隊(duì)列Q中的原value值,若小于則將隊(duì)列Q中該鄰結(jié)點(diǎn)存儲(chǔ)的原相關(guān)信息替換為當(dāng)前計(jì)算的相關(guān)信息;否則不替換;步驟五,重復(fù)步驟四,直到隊(duì)列Q中沒(méi)有結(jié)點(diǎn)可取或獲得的結(jié)點(diǎn)是終結(jié)點(diǎn)s為止;步驟六,若當(dāng)前取出的結(jié)點(diǎn)為終結(jié)點(diǎn)t,則從始結(jié)點(diǎn)s到終結(jié)點(diǎn)t存在滿足QoE用戶等級(jí)的路徑;反之則不存在滿足QoE用戶等級(jí)的路徑。作為本發(fā)明的一種優(yōu)選方案,所述QoE模型為g. 711模型、g. 729模型、aac模型、mp3模型、h264模型、或mpeg4模型。作為本發(fā)明的另一種優(yōu)選方案,在隊(duì)列Q中加入結(jié)點(diǎn)的同時(shí)記錄該結(jié)點(diǎn)的相關(guān)信息,所述相關(guān)信息包括結(jié)點(diǎn)的value值、jitter累積值、delay累積值、packet_loss_rate累積值以及自身的前向結(jié)點(diǎn);當(dāng)隊(duì)列Q中結(jié)點(diǎn)的value值被更新時(shí),該結(jié)點(diǎn)的前向結(jié)點(diǎn)信息也同時(shí)被更新。作為本發(fā)明的再一種優(yōu)選方案,當(dāng)從始結(jié)點(diǎn)s到終結(jié)點(diǎn)t存在滿足QoE用戶等級(jí)的路徑時(shí),根據(jù)從終結(jié)點(diǎn)t開(kāi)始的反向信息,不斷查詢相關(guān)反向結(jié)點(diǎn)的反向信息,直到源結(jié)點(diǎn)s,即可反向獲得滿足QoE用戶等級(jí)的最優(yōu)路徑。如上所述,本發(fā)明所述的基于QoE的路由選擇方法,具有以下有益效果本發(fā)明將與QoE有關(guān)的value值的計(jì)算分解開(kāi),利用了 jitter、delay的加性特點(diǎn)和packet_loss_rate的乘性特點(diǎn),使每個(gè)結(jié)點(diǎn)u只需保留始結(jié)點(diǎn)到該結(jié)點(diǎn)u的關(guān)于jitter、delay 和 packet_loss_rate 的累積信息,并結(jié)合鏈路的 jitter、delay 和 packet_loss_rate的信息來(lái)獲取相鄰結(jié)點(diǎn)v的value值;本發(fā)明相對(duì)于原有的與QoE有關(guān)的value值不具有累積性質(zhì)且必須記錄之前有關(guān)的全部信息的不足,有效的降低了算法空間復(fù)雜度。
圖I為本發(fā)明所述的基于QoE的路由選擇方法的流程示意圖。圖2為實(shí)施例二所述的無(wú)可行解的拓?fù)鋱D。圖3為實(shí)施例二所述的有可行解的拓?fù)鋱D的求解過(guò)程I示意圖。圖4為實(shí)施例二所述的有可行解的拓?fù)鋱D的求解過(guò)程2示意圖。圖5為實(shí)施例二所述的有可行解的拓?fù)鋱D的求解過(guò)程3示意圖。
具體實(shí)施例方式以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書(shū)所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的具體實(shí)施方式
加以實(shí)施或應(yīng)用,本說(shuō)明書(shū)中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒(méi)有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。請(qǐng)參閱附圖。需要說(shuō)明的是,本實(shí)施例中所提供的圖示僅以示意方式說(shuō)明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)說(shuō)明。實(shí)施例一本實(shí)施例提供一種基于QoE的路由選擇方法,該方法是在滿足用戶等級(jí)要求的情況下,尋找QoE值最大的路徑,如圖I所示,包括以下步驟步驟一,對(duì)每個(gè)路由結(jié)點(diǎn)維護(hù)一個(gè)結(jié)構(gòu)體M,所述結(jié)構(gòu)體M包括jitter、delay、packet_loss_rate三個(gè)參數(shù)變量;相鄰的路由結(jié)點(diǎn)通過(guò)鏈路連接,每條鏈路的jitter、delay、packet_loss_rate參數(shù)都是已知的;設(shè)每個(gè)結(jié)點(diǎn)的QoE特征值value為M[v]. value = k: {M[u]. jitter+N[u — v]. jitter} +k2 {M[u]. delay+N[u — v]. delay} +k3X100X {I-(l_M[u] packet_loss_rate)(l_N[u — v]. packet_loss_rate)}其中,結(jié)點(diǎn)u為結(jié)點(diǎn)v的前向結(jié)點(diǎn),M[u]. jitter表示結(jié)點(diǎn)u的jitter累積值,M[u]. delay 表不結(jié)點(diǎn) u 的 delay 累積值,M[u]. packet_loss_rate 表不結(jié)點(diǎn) u 的 packet_loss_rate 累積值,N[u — v]. jitter 表示鏈路 u — v 的 jitter 值,N[u — v]. delay 表示鏈路 u — v 的 delay 值,N[u — v]. packet_loss_rate 表不鏈路 u — v 的 packet_loss_rate值;ki、k2和k3為已知的QoE模型的固定系數(shù);所述QoE模型為g. 711模型、g. 729模型、aac模型、mp3模型、h264模型、或mpeg4模型;將每個(gè)結(jié)點(diǎn)的相關(guān)信息初始化為無(wú)窮大;將每個(gè)結(jié)點(diǎn)的參數(shù)變量初始化為無(wú)窮大,使結(jié)點(diǎn)的M相關(guān)值為無(wú)窮大,這樣才能保證該結(jié)點(diǎn)第一次被到達(dá)新的value值小于當(dāng)前值;在隊(duì)列Q中加入結(jié)點(diǎn)的同時(shí)記錄該結(jié)點(diǎn)的相關(guān)信息,所述相關(guān)信息包括結(jié)點(diǎn)的value值、jitter累積值、delay累積值、packet_loss_rate累積值以及自身的前向結(jié)點(diǎn);當(dāng)隊(duì)列Q中結(jié)點(diǎn)的value值被更新時(shí),該結(jié)點(diǎn)的前向結(jié)點(diǎn)信息也同時(shí)被更新。步驟二,在一隊(duì)列Q中加入始結(jié)點(diǎn)s的信息,初始化始結(jié)點(diǎn)s的相關(guān)信息為0 ;步驟三,首先搜索計(jì)算始結(jié)點(diǎn)s的所有鄰結(jié)點(diǎn)的value值,并將value值小于或等于參數(shù)C’的鄰結(jié)點(diǎn)加入到隊(duì)列 Q中,并將始結(jié)點(diǎn)s從隊(duì)列Q中刪除;其中參數(shù)C’ =Max+1-C, C為QoE用戶等級(jí)參數(shù),Max為已知的QoE模型的固定系數(shù);步驟四,在隊(duì)列Q中選取value值最小的結(jié)點(diǎn)作為下一次搜索的起始結(jié)點(diǎn),然后計(jì)算所述起始結(jié)點(diǎn)的所有鄰結(jié)點(diǎn)的value值,并將value值小于或等于參數(shù)C’的鄰結(jié)點(diǎn)繼續(xù)加入到隊(duì)列Q中,并將起始結(jié)點(diǎn)從隊(duì)列Q中刪除;若所述鄰結(jié)點(diǎn)已經(jīng)存在于隊(duì)列Q中,則判斷該鄰結(jié)點(diǎn)當(dāng)前計(jì)算的value值是否小于存儲(chǔ)于隊(duì)列Q中的原value值,若小于則將隊(duì)列Q中該鄰結(jié)點(diǎn)存儲(chǔ)的原相關(guān)信息替換為當(dāng)前計(jì)算的相關(guān)信息;否則不替換;步驟五,重復(fù)步驟四,直到隊(duì)列Q中沒(méi)有結(jié)點(diǎn)可取或獲得的結(jié)點(diǎn)是終結(jié)點(diǎn)s為止;步驟六,若當(dāng)前取出的結(jié)點(diǎn)為終結(jié)點(diǎn)t,則從始結(jié)點(diǎn)s到終結(jié)點(diǎn)t存在滿足QoE用戶等級(jí)的路徑;反之則不存在滿足QoE用戶等級(jí)的路徑;當(dāng)從始結(jié)點(diǎn)s到終結(jié)點(diǎn)t存在滿足QoE用戶等級(jí)的路徑時(shí),根據(jù)從終結(jié)點(diǎn)t開(kāi)始的反向信息,不斷查詢相關(guān)反向結(jié)點(diǎn)的反向信息,直到源結(jié)點(diǎn)s,即可反向獲得滿足QoE用戶等級(jí)的最優(yōu)路徑。下面對(duì)所述QoE路由選擇方法的具體內(nèi)容詳細(xì)描述如下I、初始化階段對(duì)于每個(gè)路由結(jié)點(diǎn)維護(hù)一個(gè)結(jié)構(gòu)體M,結(jié)構(gòu)體M具有3個(gè)成員變量,分別為jitter、delay、packet_loss_rate ;相鄰的路由結(jié)點(diǎn)通過(guò)鏈路連接,每條鏈路的jitter、delay>packet_loss_rate參數(shù)都是已知的;設(shè)v G [s, t]表示位于始結(jié)點(diǎn)s與終結(jié)點(diǎn)t之間的一個(gè)結(jié)點(diǎn),貝1J結(jié)點(diǎn)V的QoE特征值value為M[v]. value = M[u]. value+k^Nliu — v]. jitter+k2N[u — v]. delay+k3 IOON[u — v]. packet_loss_rate其中,結(jié)點(diǎn)u為結(jié)點(diǎn)v的前向結(jié)點(diǎn),M [u]. value表示結(jié)點(diǎn)u的QoE特征值,N[u — V]. jitter 表示鏈路 u — v 的 jitter 值,N[u — v]. delay 表示鏈路 u — v 的 delay值,N[u — V]. packet_loss_rate 表不鏈路 u — v 的 packet_loss_rate 值;k:> k2 和 k3 為QoE模型的固定系數(shù),是已知的。所述QoE模型可以為g. 711模型、g. 729模型、aac模型、mp3模型、h264模型、或mpeg4模型。在一隊(duì)列Q中加入始結(jié)點(diǎn)s的信息,始結(jié)點(diǎn)s的QoE特征值value為O。本發(fā)明將以QoE值最大為目標(biāo)的路徑選擇問(wèn)題轉(zhuǎn)化為以中間值value最小為目標(biāo)的路徑選擇問(wèn)題。QoE最優(yōu)路由問(wèn)題數(shù)學(xué)模型一個(gè)通過(guò)無(wú)向圖表示的網(wǎng)絡(luò)G = (V,E),V代表結(jié)點(diǎn)集合,E代表鏈路集合。每條鏈路(i,j) G E與jitter、delay以及packet_loss_rate相關(guān)聯(lián),所有的參數(shù)都是非負(fù)的。給定用戶需要的QoE等級(jí)需求為C,其中C G {1.2. 3.4. 5},QoE路由問(wèn)題就是去尋找一條從一個(gè)源結(jié)點(diǎn)到一個(gè)目的結(jié)點(diǎn)的路徑,同時(shí)滿足l)QoE(p) = Max-ki jitter (p)+k2 delay (p)+k3X 100 X packet_loss_rate(p) ^ C-I ;2)在滿足I)的可行路徑上,使QoE(p)最大。
對(duì)I)進(jìn)行整理,得到如下約束表達(dá)式M = k: jitter (p)+k2 delay (p) +k3X 100 Xpacket_loss_rate (p) ^ Max+1-C對(duì)2)使QoE (p)最大,等價(jià)于使M = k: jitter (p)+k2 delay (p) +k3X 100 Xpacket_loss_rate (p)最小。這里定義M為QoE函數(shù)表征值。于是我們的問(wèn)題就轉(zhuǎn)化為使一個(gè)由抖動(dòng)、延遲以及丟包率構(gòu)成的線性函數(shù)值在滿足約束條件下尋找最小值的問(wèn)題。定義如下5 (v) = Min{value(p) }·
LJ蘆尸(V)其中,P (V) = {p |p是從始結(jié)點(diǎn)s到結(jié)點(diǎn)V的任何路徑}。初始化時(shí),始結(jié)點(diǎn)s到另一個(gè)結(jié)點(diǎn)V的jitter、delay以及packet_loss_rate設(shè)置為+ 00,始結(jié)點(diǎn)s的QoE特征值設(shè)置為0,故相應(yīng)的value值不小于5 (v)。在算法運(yùn)行過(guò)程中,value (s — v)會(huì)不斷的逼近5 (V),最終等于5 (V)。2、釋放階段首先搜索計(jì)算始結(jié)點(diǎn)s的所有鄰結(jié)點(diǎn)的value值,并將value值小于或等于參數(shù)C’的鄰結(jié)點(diǎn)加入到一隊(duì)列Q中,并將始結(jié)點(diǎn)s從隊(duì)列Q中刪除;其中參數(shù)C’ = Max+1-C, C為QoE用戶等級(jí)參數(shù),可取I 5。在隊(duì)列Q中加入結(jié)點(diǎn)的同時(shí)記錄該結(jié)點(diǎn)的相關(guān)信息,所述相關(guān)信息包括結(jié)點(diǎn)的value值以及自身的前向結(jié)點(diǎn)。然后在隊(duì)列Q中選取value值最小的結(jié)點(diǎn)作為下一次搜索的起始結(jié)點(diǎn),然后計(jì)算所述起始結(jié)點(diǎn)的所有鄰結(jié)點(diǎn)的value值,并將value值小于或等于參數(shù)C’的鄰結(jié)點(diǎn)繼續(xù)加入到隊(duì)列Q中,并將起始結(jié)點(diǎn)從隊(duì)列Q中刪除。若所述鄰結(jié)點(diǎn)已經(jīng)存在于隊(duì)列Q中,則判斷該鄰結(jié)點(diǎn)當(dāng)前計(jì)算的value值是否小于存儲(chǔ)于隊(duì)列Q中的原value值,若小于則將隊(duì)列Q中存儲(chǔ)的原value值替換為當(dāng)前計(jì)算的value值;否則不替換,此過(guò)程可稱為更新過(guò)程,下面對(duì)更新過(guò)程的具體內(nèi)容進(jìn)行描述設(shè)根據(jù)結(jié)點(diǎn)u 的 QoE 特征值M[u]. value 和鏈路 u_ > v 的 jitter、delay、packet_loss_rate信息計(jì)算出的結(jié)點(diǎn)v的QoE特征值為M[v]. value = M[u]. value+k^Nliu — v]. jitter+k2N[u — v]. delay+k3100N[u — v]. packet_loss_rate首先判斷此次計(jì)算出的結(jié)點(diǎn)v的QoE特征值是否滿足用戶等級(jí)要求C(C為用戶給定的約束條件值),即判斷M[u]. value是否小于等于C’,若是則將結(jié)點(diǎn)v加入到隊(duì)列Q中;若在隊(duì)列Q中已存在結(jié)點(diǎn)v(即結(jié)點(diǎn)V在之前已經(jīng)加入到了隊(duì)列Q中),則判斷此次計(jì)算出的結(jié)點(diǎn)V的value值是否小于V中已有的value值,若小于則將結(jié)點(diǎn)v中已有的相關(guān)信息替換為當(dāng)前計(jì)算的結(jié)點(diǎn)V的相關(guān)信息;否則不替換。因?yàn)榻Y(jié)點(diǎn)的相關(guān)信息包括結(jié)點(diǎn)的value值以及自身的前向結(jié)點(diǎn),所以當(dāng)隊(duì)列Q中結(jié)點(diǎn)被更新時(shí),其value值和前向結(jié)點(diǎn)均被更新。對(duì)于不滿足用戶等級(jí)要求C的鄰結(jié)點(diǎn),則無(wú)需進(jìn)行新值與舊值的比較,而且也不需要加入Q隊(duì)列。所述隊(duì)列Q初始時(shí)只有始結(jié)點(diǎn)s的相關(guān)信息,隨著上述更新過(guò)程的不斷進(jìn)行,Q隊(duì)列會(huì)將滿足QoE用戶等級(jí)需求的結(jié)點(diǎn)加入其中,而肯定不滿足QoE用戶等級(jí)需求的結(jié)點(diǎn)則不加入其中,這樣可以有效的避免對(duì)于無(wú)效結(jié)點(diǎn)的搜索。此外,給每個(gè)做過(guò)起始結(jié)點(diǎn)的結(jié)點(diǎn)標(biāo)記為black,釋放操作的結(jié)點(diǎn)不會(huì)再對(duì)被標(biāo)記為black的結(jié)點(diǎn)進(jìn)行釋放。最后當(dāng)從隊(duì)列Q中獲取的value值最小的結(jié)點(diǎn)為目的結(jié)點(diǎn)t時(shí),則可以停止搜索,此時(shí)從始結(jié)點(diǎn)s到終結(jié)點(diǎn)t存在滿足QoE用戶等級(jí)的最優(yōu)路徑。這都是由value的非遞減性保證的,即value (a — b — c)彡value (a — c),通過(guò)以上步驟的處理,提高了搜索速度。若搜索完全部結(jié)點(diǎn)后,隊(duì)列Q中仍不存在終結(jié)點(diǎn)t,則表示從始結(jié)點(diǎn)s到終結(jié)點(diǎn)t不存在滿足QoE用戶等級(jí)的路徑。當(dāng)完成搜索時(shí),M[v]. value = S (v),v G V,其中V表示拓?fù)鋱D的所有結(jié)點(diǎn)集合V,即存在一條從s到t的路徑p使QoE(p)彡C,同時(shí)使M[t]. value彡C',Max為QoE模型常數(shù)。根據(jù)終結(jié)點(diǎn)t的相關(guān)信息以及所有加入隊(duì)列Q中的結(jié)點(diǎn)的相關(guān)信息即可反向獲得所述最優(yōu)路徑。也可以將加入隊(duì)列Q中的結(jié)點(diǎn)的相關(guān)信息全部存放在變量n中,用n [v]表示保存的路徑上結(jié)點(diǎn)V的前向向量信息。如果此時(shí)[v]為NUL,則表示沒(méi)有找到路徑p使QoE(P) SC,那么說(shuō)明不存在滿足用戶等級(jí)要求的路徑;反之,如果[v]不為NUL,則表示存在路徑P使QoE(P) SC。通過(guò)從目的結(jié)點(diǎn)t反向跟蹤的信息,找到所有的中間結(jié)點(diǎn),直到始結(jié)點(diǎn)s,即可獲得從始結(jié)點(diǎn)s到目的結(jié)點(diǎn)t的路徑信息P。 本發(fā)明將與QoE有關(guān)的value值的計(jì)算分解開(kāi),利用了 jitter、delay的加性特點(diǎn)和packet_loss_rate的乘性特點(diǎn),使每個(gè)結(jié)點(diǎn)u只需保留始結(jié)點(diǎn)到該結(jié)點(diǎn)u的關(guān)于jitter、delay 和 packet_loss_rate 的累積信息,并結(jié)合鏈路的 jitter、delay 和 packet_loss_rate的信息來(lái)獲取相鄰結(jié)點(diǎn)v的value值。由于與QoE有關(guān)的value值不具有累積性質(zhì),所以必須記錄之前有關(guān)的全部信息,而本發(fā)明通過(guò)分解value的方式有效的降低了算法空間復(fù)雜度。本發(fā)明以QoE參數(shù)為目標(biāo)進(jìn)行路由選擇,并對(duì)QoE類似的混合參數(shù)在路由選擇方法中的處理方式提出了分解法的思想,從而使本發(fā)明所述方法既能更好的為用戶提供網(wǎng)絡(luò)服務(wù),又能在多項(xiàng)式時(shí)間內(nèi)得到最優(yōu)路由路徑。實(shí)施例二本實(shí)施例以的g. 711編碼QoE模型為舉例,詳細(xì)說(shuō)明本發(fā)明所述的基于QoE的路由選擇方法的實(shí)現(xiàn)過(guò)程。已知QoE模型為QoE = 4. 4-0. 15 jitter-0. 15 X 100packet_loss_rate,給定用戶QoE 等級(jí)需求為 C = 4,則 C,= Max+1-C = 4. 4+1-4 =1.4。圖2為無(wú)可行解的拓?fù)鋱D,其中Wl = Jitter, W2 = Packet_loss_rate ;其路徑搜索過(guò)程為從始結(jié)點(diǎn)s 出發(fā)到相鄰結(jié)點(diǎn) u,得至Ij M[u]. value = 0. 15*10+0. 15*15 = 5. 25 >C,;從始結(jié)點(diǎn)s出發(fā)到相鄰結(jié)點(diǎn)V,得到M[v], value = 0. 15*20+0. 15*6 = 3. 9 > C,;而這兩種路徑獲得的value值都超出了 C’,故結(jié)點(diǎn)u和結(jié)點(diǎn)v都不會(huì)放入隊(duì)列Q中,始結(jié)點(diǎn)s也沒(méi)有其他相鄰結(jié)點(diǎn),此時(shí)隊(duì)列Q已經(jīng)沒(méi)有結(jié)點(diǎn),于是循環(huán)結(jié)束,n [t]中也沒(méi)有存放任何結(jié)點(diǎn)的相關(guān)信息,即^ [t]為NUL。如果發(fā)現(xiàn)[t]為NUL,則說(shuō)明沒(méi)有滿足用戶QoE等級(jí)要求的路徑。可以看到通過(guò)對(duì)進(jìn)入Q隊(duì)列的結(jié)點(diǎn)的過(guò)濾,可以避免對(duì)那些已經(jīng)超出QoE等級(jí)需求的結(jié)點(diǎn)的搜索,從而提高搜索滿足QoE等級(jí)需求的結(jié)點(diǎn)的速度,或者提高確定不存在相應(yīng)路徑的速度。圖3至圖5為有可行解的拓?fù)鋱D,其中Wl = Jitter,W2 = Packet_loss_rate ;其路徑搜索過(guò)程如下。如圖3所示,過(guò)程I的內(nèi)容為首先將始結(jié)點(diǎn)s加入隊(duì)列Q中,同時(shí)[s]保存結(jié)點(diǎn)s的相關(guān)信息。I)從始結(jié)點(diǎn)s出發(fā) ,到結(jié)點(diǎn)u的相關(guān)信息為M[u]. jitter = M[s]. jitter+ffl (s- > u) = 2 ;M[u]. packet_lass_rate = I- (1~M [s]. packet_lass_rate) (1-W2 (s- > u)=0. 03 ;M [u]. value = 0. 15M[u]. jitter+0. 15X10 OM [u]. packet_loss_rate =2X0. 15+0. 03X100X0. 15 = 0. 75 < C’ ;于是將結(jié)點(diǎn)u加入隊(duì)列Q,同時(shí)[u]保存結(jié)點(diǎn)u的相關(guān)信息,相關(guān)信息包括結(jié)點(diǎn)u的value值為0. 75,結(jié)點(diǎn)u的前向結(jié)點(diǎn)為始結(jié)點(diǎn)S。2)從始結(jié)點(diǎn)s出發(fā),到結(jié)點(diǎn)V的相關(guān)信息為M[v]. jitter = M[s]. jitter+ffl (s- > v) = 5 ;M[v]. packet_loss_rate = I-(1-M[s]. packet_loss_rate)(1-W2(S- > v))=0. 05 ;M [v]. value = 0. 15M[v]. jitter+0. 15X10 OM [v]. packet_loss_rate =5X0. 15+0. 05X100X0. 15 = I. 5 > C’ ;于是結(jié)點(diǎn)v不加入隊(duì)列Q,同時(shí)[u]也不保存結(jié)點(diǎn)V的相關(guān)信息。始結(jié)點(diǎn)s的相鄰結(jié)點(diǎn)搜索計(jì)算結(jié)束后,將始結(jié)點(diǎn)s從隊(duì)列Q中刪除。如圖4所示,過(guò)程2的內(nèi)容為I)因?yàn)榇藭r(shí)隊(duì)列Q中僅有結(jié)點(diǎn)U,所以結(jié)點(diǎn)u是隊(duì)列Q中value值最小的結(jié)點(diǎn);選取結(jié)點(diǎn)U作為起始結(jié)點(diǎn),計(jì)算結(jié)點(diǎn)U到相鄰結(jié)點(diǎn)V的相關(guān)信息為M[v]. jitter = M[u]. jitter+ffl (u- > v) = 2+1 = 3 ;M[v]. packet_loss_rate = I-(l~M[u]. packet_loss_rate)(1-W2(u- > v))=1-(1-0. 03) X (1-0. 01) = 0. 0397M [v]. value = 0. 15M[v]. jitter+0. 15X10 OM [v]. packet_loss_rate =3X0. 15+0. 0397X100X0. 15 = I. 0455 < C’于是將結(jié)點(diǎn)v加入隊(duì)列Q中,同時(shí)[v]保存結(jié)點(diǎn)V的相關(guān)信息,相關(guān)信息包括結(jié)點(diǎn)V的value值為I. 0455,結(jié)點(diǎn)v的前向結(jié)點(diǎn)為結(jié)點(diǎn)U。如果在圖3所示的過(guò)程中,結(jié)點(diǎn)V已經(jīng)加入到隊(duì)列Q中,則判斷當(dāng)前計(jì)算獲得的M[v]. value是否小于n [v]中存儲(chǔ)的M[v]. value,若小于則將n [v]中存儲(chǔ)的結(jié)點(diǎn)v的相關(guān)信息更新為當(dāng)前計(jì)算獲得的結(jié)點(diǎn)V的相關(guān)信息;否則不更新。2)計(jì)算結(jié)點(diǎn)u到相鄰結(jié)點(diǎn)t的相關(guān)信息為M[t]. jitter = M[u]. jitter+ffl (u- > t) = 2+2 = 4 ;M[t]. packet_loss_rate = I-(l_M[u] packet_loss_rate)(1-W2(u_ > t))=1-(1-0. 03) X (1-0. 02) = 0. 0494 ;M [t]. value = 0. 15M [t] j itter+0. 15 X 100M[t] packet_loss_rate =4X0. 15+0. 0494X100X0. 15 = 8. 01 > C’ ;于是結(jié)點(diǎn)t不加入隊(duì)列Q,同時(shí)[t]也不保存結(jié)點(diǎn)t的相關(guān)信息。
結(jié)點(diǎn)u的相鄰結(jié)點(diǎn)搜索計(jì)算結(jié)束后,將起始結(jié)點(diǎn)u從隊(duì)列Q中刪除。如圖5所示,過(guò)程3的內(nèi)容為I)因?yàn)榇藭r(shí)隊(duì)列Q中僅有結(jié)點(diǎn)V,所以結(jié)點(diǎn)V是隊(duì)列Q中value值最小的結(jié)點(diǎn);選取結(jié)點(diǎn)V作為起始結(jié)點(diǎn),計(jì)算結(jié)點(diǎn)V到相鄰結(jié)點(diǎn)t的相關(guān)信息為M[t]. jitter = M[v]. jitter+ffl (v- > t) = 3+1 = 4 ;M[t]. packet_loss_rate = I-(1-M[v]. packet_loss_rate)(1-W2(v- > t))=
1-(1-0. 0397) X (1-0. 01) = 0. 049303 ;M [t]. value = 0. 15M[t]. jitter+0. 15X10 OM [t]. packet_loss_rate =·4X0. 15+0. 049303X100X0. 15 = I. 339545 < C’ ;于是將結(jié)點(diǎn)t加入隊(duì)列Q中,同時(shí)[t]保存結(jié)點(diǎn)V的相關(guān)信息,相關(guān)信息包括結(jié)點(diǎn)t的value值為I. 339545,結(jié)點(diǎn)t的前向結(jié)點(diǎn)為結(jié)點(diǎn)V。結(jié)點(diǎn)V的相鄰結(jié)點(diǎn)搜索計(jì)算結(jié)束后,將起始結(jié)點(diǎn)V從隊(duì)列Q中刪除。此時(shí)再?gòu)年?duì)列中取出value值最小的結(jié)點(diǎn),此時(shí)為目的結(jié)點(diǎn)t,故結(jié)束搜索。根據(jù)變量n中存儲(chǔ)的信息反向可以獲知,目的結(jié)點(diǎn)t的前向結(jié)點(diǎn)為V,結(jié)點(diǎn)V的前向結(jié)點(diǎn)為U,結(jié)點(diǎn)U的前向結(jié)點(diǎn)為S,故滿足QoE用戶需求的最優(yōu)路徑為S- > U- > V- > t。所以,本發(fā)明有效克服了現(xiàn)有技術(shù)中的種種缺點(diǎn)而具高度產(chǎn)業(yè)利用價(jià)值。上述實(shí)施例僅例示性說(shuō)明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾或改變。因此,舉凡所屬技術(shù)領(lǐng)域中具有通常知識(shí)者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
權(quán)利要求
1.一種基于QoE的路由選擇方法,其特征在于,所述基于QoE的路由選擇方法包括 步驟一,對(duì)每個(gè)路由結(jié)點(diǎn)維護(hù)一個(gè)結(jié)構(gòu)體M,所述結(jié)構(gòu)體M包括jitter、delay、packet_loss_rate三個(gè)參數(shù)變量;相鄰的路由結(jié)點(diǎn)通過(guò)鏈路連接,每條鏈路的jitter、delay、packet_loss_rate參數(shù)都是已知的;設(shè)每個(gè)結(jié)點(diǎn)的QoE特征值value為 M [V]. value = Ii1 {M[u]. j itter+N [u — v]. jitter} + k2 {M[u]. delay+N[u — v]. delay} +k3X IOOX {I- (l~M[u]. packet_loss_rate) (l~N[u — v]. packet_loss_rate)} 其中,結(jié)點(diǎn)u為結(jié)點(diǎn)V的前向結(jié)點(diǎn),M[u]. jitter表示結(jié)點(diǎn)u的jitter累積值,M[u].delay 表不結(jié)點(diǎn) u 的 delay 累積值,M[u]. packet_loss_rate 表不結(jié)點(diǎn) u 的 packet_loss_rate 累積值,N[u — v]. jitter 表示鏈路 u — V 的 jitter 值,N[u — v]. delay 表示鏈路u — V 的 delay 值,N[u — v]. packet_loss_rate 表不鏈路 u — v 的 packet_loss_rate 值;kp k2和k3為已知的QoE模型的固定系數(shù);將每個(gè)結(jié)點(diǎn)的相關(guān)信息初始化為無(wú)窮大;步驟二,在一隊(duì)列Q中加入始結(jié)點(diǎn)s的信息,初始化始結(jié)點(diǎn)s的相關(guān)信息為O ; 步驟三,首先搜索計(jì)算始結(jié)點(diǎn)s的所有鄰結(jié)點(diǎn)的value值,并將value值小于或等于參數(shù)C’的鄰結(jié)點(diǎn)加入到隊(duì)列Q中,并將始結(jié)點(diǎn)s從隊(duì)列Q中刪除;其中參數(shù)C’ = Max+1-C, C為QoE用戶等級(jí)參數(shù),Max為已知的QoE模型的固定系數(shù); 步驟四,在隊(duì)列Q中選取value值最小的結(jié)點(diǎn)作為下一次搜索的起始結(jié)點(diǎn),然后計(jì)算所述起始結(jié)點(diǎn)的所有鄰結(jié)點(diǎn)的value值,并將value值小于或等于參數(shù)C’的鄰結(jié)點(diǎn)繼續(xù)加入到隊(duì)列Q中,并將起始結(jié)點(diǎn)從隊(duì)列Q中刪除;若所述鄰結(jié)點(diǎn)已經(jīng)存在于隊(duì)列Q中,則判斷該鄰結(jié)點(diǎn)當(dāng)前計(jì)算的value值是否小于存儲(chǔ)于隊(duì)列Q中的原value值,若小于則將隊(duì)列Q中該鄰結(jié)點(diǎn)存儲(chǔ)的原相關(guān)信息替換為當(dāng)前計(jì)算的相關(guān)信息;否則不替換; 步驟五,重復(fù)步驟四,直到隊(duì)列Q中沒(méi)有結(jié)點(diǎn)可取或獲得的結(jié)點(diǎn)是終結(jié)點(diǎn)s為止;步驟六,若當(dāng)前取出的結(jié)點(diǎn)為終結(jié)點(diǎn)t,則從始結(jié)點(diǎn)s到終結(jié)點(diǎn)t存在滿足QoE用戶等級(jí)的路徑;反之則不存在滿足QoE用戶等級(jí)的路徑。
2.根據(jù)權(quán)利要求I所述的基于QoE的路由選擇方法,其特征在于所述QoE模型為g. 711模型、g. 729模型、aac模型、mp3模型、h264模型、或mpeg4模型。
3.根據(jù)權(quán)利要求I所述的基于QoE的路由選擇方法,其特征在于在隊(duì)列Q中加入結(jié)點(diǎn)的同時(shí)記錄該結(jié)點(diǎn)的相關(guān)信息,所述相關(guān)信息包括結(jié)點(diǎn)的value值、jitter累積值、delay累積值、packet_loss_rate累積值以及自身的前向結(jié)點(diǎn);當(dāng)隊(duì)列Q中結(jié)點(diǎn)的value值被更新時(shí),該結(jié)點(diǎn)的前向結(jié)點(diǎn)信息也同時(shí)被更新。
4.根據(jù)權(quán)利要求3所述的基于QoE的路由選擇方法,其特征在于當(dāng)從始結(jié)點(diǎn)s到終結(jié)點(diǎn)t存在滿足QoE用戶等級(jí)的路徑時(shí),根據(jù)從終結(jié)點(diǎn)t開(kāi)始的反向信息,不斷查詢相關(guān)反向結(jié)點(diǎn)的反向信息,直到源結(jié)點(diǎn)s,即可反向獲得滿足QoE用戶等級(jí)的最優(yōu)路徑。
全文摘要
本發(fā)明提供一種基于QoE的路由選擇方法,其將與QoE有關(guān)的value值的計(jì)算分解開(kāi),利用了jitter、delay的加性特點(diǎn)和packet_loss_rate的乘性特點(diǎn),使每個(gè)結(jié)點(diǎn)u只需保留始結(jié)點(diǎn)到該結(jié)點(diǎn)u的關(guān)于jitter、delay和packet_loss_rate的累積信息,并結(jié)合鏈路的jitter、delay和packet_loss_rate的信息來(lái)獲取初始結(jié)點(diǎn)到該相鄰結(jié)點(diǎn)v的value值;本發(fā)明相對(duì)于原有的與QoE有關(guān)的value值不具有累積性質(zhì)而在路由選擇時(shí)必須記錄之前有關(guān)的全部信息的問(wèn)題給出了一種有效的解決思路,有效的降低了算法空間復(fù)雜度。
文檔編號(hào)H04L29/06GK102710596SQ20121011148
公開(kāi)日2012年10月3日 申請(qǐng)日期2012年4月16日 優(yōu)先權(quán)日2012年4月16日
發(fā)明者張大陸, 曹孝晶 申請(qǐng)人:同濟(jì)大學(xué)