Cdn網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法及系統(tǒng)的制作方法
【專利摘要】本公開提供了一種CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法,包括:確定各節(jié)點(diǎn)間的距離度量值,所述節(jié)點(diǎn)包括源節(jié)點(diǎn)和多個邊緣節(jié)點(diǎn);根據(jù)所確定的多個距離度量值生成所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑的匯集樹,并生成路由表;下發(fā)所述路由表至所述所有邊緣節(jié)點(diǎn)以生成拓?fù)浣Y(jié)構(gòu)。本公開還提供了相應(yīng)的系統(tǒng)。本公開在確定了網(wǎng)絡(luò)中所有的節(jié)點(diǎn)之間的距離度量值后,根據(jù)這些兩兩節(jié)點(diǎn)間的距離度量值確定每個邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的最短路徑,并根據(jù)這些最短路徑生成路由表并下發(fā)至所有的邊緣節(jié)點(diǎn)中以生成拓?fù)浣Y(jié)構(gòu),使得每個邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的距離都是最短的,由此得到的網(wǎng)絡(luò)拓?fù)淠軌蚴沟迷垂?jié)點(diǎn)向每個邊緣節(jié)點(diǎn)分發(fā)內(nèi)容所用時間都是最少的,增加了在CDN網(wǎng)絡(luò)中回源的速度。
【專利說明】
CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001 ]本公開涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法及系統(tǒng)。
【背景技術(shù)】
[0002]CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其目的是通過在現(xiàn)有的Internet中增加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)"邊緣",使用戶可以就近取得所需的內(nèi)容,解決Internet網(wǎng)絡(luò)擁塞狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。
[0003]CDN技術(shù)分為動態(tài)加速和靜態(tài)加速兩種技術(shù),目前普遍使用的多是靜態(tài)加速,即在網(wǎng)絡(luò)的邊緣部署CDN節(jié)點(diǎn),當(dāng)有用戶請求某項(xiàng)服務(wù)時,CDN系統(tǒng)通過調(diào)度,即全局負(fù)載均衡(Global Server Load Balance,GSLB)策略將用戶定向到距它最近的一個邊緣節(jié)點(diǎn),該節(jié)點(diǎn)負(fù)責(zé)處理用戶的請求。如果用戶請求的內(nèi)容在該節(jié)點(diǎn)上有緩存且有效,將緩存的內(nèi)容發(fā)給該用戶,否則,該節(jié)點(diǎn)會代理用戶向其他節(jié)點(diǎn)或者源站服務(wù)器發(fā)起回源請求,調(diào)度尋找回源路徑,根據(jù)回源路徑取得用戶請求的內(nèi)容再轉(zhuǎn)發(fā)給用戶,完成這次請求的處理。
[0004]傳統(tǒng)上的⑶N網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)在尋找回源路徑時一般是單純地基于靜態(tài)的地理位置來進(jìn)行的。這種方法沒有實(shí)際路徑長短的計(jì)算,兩個節(jié)點(diǎn)之間沒有以權(quán)重為基本因子來計(jì)算最短路徑,其是一維的,沒有考慮任意兩個點(diǎn)之間的最短路徑,只是通過簡單排序得出來的。CDN的拓?fù)浣Y(jié)構(gòu)導(dǎo)致的基于靜態(tài)的地理位置尋找回源路徑的方法,實(shí)際情況可能不完全準(zhǔn)確或準(zhǔn)確性不高,導(dǎo)致數(shù)據(jù)傳輸延遲,其最終的結(jié)果仍然存在負(fù)載失衡的情況,影響用戶使用體驗(yàn)。
【發(fā)明內(nèi)容】
[0005]針對上述現(xiàn)有技術(shù)中存在的問題,本公開提供一種CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法及系統(tǒng)。
[0006]—方面,本公開提供了一種⑶N網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法,包括:
[0007]確定各節(jié)點(diǎn)間的距離度量值,所述節(jié)點(diǎn)包括源節(jié)點(diǎn)和多個邊緣節(jié)點(diǎn);
[0008]根據(jù)所確定的多個距離度量值生成所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑的匯集樹,并生成路由表;
[0009]下發(fā)所述路由表至所述所有邊緣節(jié)點(diǎn)以生成拓?fù)浣Y(jié)構(gòu)。
[0010]另一方面,本公開提供一種⑶N網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成系統(tǒng),包括:
[0011 ]節(jié)點(diǎn)距離確定單元,用于確定各節(jié)點(diǎn)間的距離度量值,所述節(jié)點(diǎn)包括源節(jié)點(diǎn)和多個邊緣節(jié)點(diǎn);
[0012]路由表生成單元,用于根據(jù)所確定的多個距離度量值生成所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑的匯集樹,并生成路由表;
[0013]拓?fù)浣Y(jié)構(gòu)生成單元,用于下發(fā)所述路由表至所述所有邊緣節(jié)點(diǎn)以生成拓?fù)浣Y(jié)構(gòu)。
[0014]本公開提供的CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法及系統(tǒng),在確定了網(wǎng)絡(luò)中所有的節(jié)點(diǎn)(包括源節(jié)點(diǎn))之間的距離度量值后,根據(jù)這些兩兩節(jié)點(diǎn)間的距離度量值確定每個邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的最短路徑,并根據(jù)這些最短路徑生成路由表并下發(fā)至所有的邊緣節(jié)點(diǎn)中以生成拓?fù)浣Y(jié)構(gòu),使得每個邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的距離都是最短的,由此得到的網(wǎng)絡(luò)拓?fù)淠軌蚴沟迷垂?jié)點(diǎn)向每個邊緣節(jié)點(diǎn)分發(fā)內(nèi)容所用時間都是最少的,增加了在CDN網(wǎng)絡(luò)中回源的速度,提升了系統(tǒng)性能。
【附圖說明】
[0015]為了更清楚地說明本公開實(shí)施例的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本公開的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0016]圖1為本公開一實(shí)施例的CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法的流程圖;
[0017]圖2為本公開一實(shí)施例的CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成系統(tǒng)的示意圖;
具體實(shí)施例
[0018]為使本公開實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本公開實(shí)施例中的附圖,對本公開實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本公開一部分實(shí)施例,而不是全部的實(shí)施例。基于本公開中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本公開保護(hù)的范圍。
[0019]需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0020]本公開可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如:個人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
[0021]本公開可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本公開,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中。
[0022]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”,不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0023]圖1是本公開一實(shí)施例的⑶N網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法。如圖1所示,該方法包括:
[0024]SlOl:確定各節(jié)點(diǎn)間的距離度量值,所述節(jié)點(diǎn)包括源節(jié)點(diǎn)和多個邊緣節(jié)點(diǎn);
[0025]S102:根據(jù)所確定的多個距離度量值生成所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑的匯集樹,并生成路由表;
[0026]S103:下發(fā)所述路由表至所述所有邊緣節(jié)點(diǎn)以生成拓?fù)浣Y(jié)構(gòu)。
[0027]本實(shí)施例中,從所有節(jié)點(diǎn)到一個指定目的節(jié)點(diǎn)的最佳路徑形成了以目的節(jié)點(diǎn)為根的樹,這棵樹被稱為匯集樹。本公開實(shí)施例的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成方法,在確定了網(wǎng)絡(luò)中所有的節(jié)點(diǎn)(包括源節(jié)點(diǎn))之間的距離度量值后,根據(jù)這些兩兩節(jié)點(diǎn)間的距離度量值確定每個邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的最短路徑,并根據(jù)這些最短路徑生成路由表并下發(fā)至所有的邊緣節(jié)點(diǎn)中以生成拓?fù)浣Y(jié)構(gòu),使得每個邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的距離都是最短的,由此得到的網(wǎng)絡(luò)拓?fù)淠軌蚴沟迷垂?jié)點(diǎn)向每個邊緣節(jié)點(diǎn)分發(fā)內(nèi)容所用時間都是最少的,增加了在CDN網(wǎng)絡(luò)中回源的速度,提升了系統(tǒng)性能。
[0028]作為圖1所示方法實(shí)施例的進(jìn)一步優(yōu)化,圖1所示實(shí)施例步驟SlOl確定各節(jié)點(diǎn)間的距離度量值包括:
[0029]SlOll:獲取節(jié)點(diǎn)間的歷史傳輸信息,所述歷史傳輸信息至少包括數(shù)據(jù)傳輸速率、往返時間和丟包率中的至少一者;
[0030]S1012:根據(jù)節(jié)點(diǎn)間的歷史傳輸信息確定節(jié)點(diǎn)間距離度量值。
[0031]本實(shí)施例中,數(shù)據(jù)傳輸速率為兩個節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)傳輸?shù)乃俣鹊暮饬?,?shù)據(jù)傳輸速率越大說明兩節(jié)點(diǎn)之間的距離越近,所以數(shù)據(jù)傳輸速率與兩節(jié)點(diǎn)之間的距離成反比;往返時間為兩節(jié)點(diǎn)之間進(jìn)行一次完整的通信的時間,往返時間越短說明兩節(jié)點(diǎn)間距離越近;丟包率為兩節(jié)點(diǎn)之間通信時傳輸信息的完整性的度量,丟包率越大則表明兩節(jié)點(diǎn)之間傳輸信息的越不完整,即兩節(jié)點(diǎn)間的距離越大。
[0032]在一些實(shí)施例中,根據(jù)節(jié)點(diǎn)間的歷史傳輸信息確定各節(jié)點(diǎn)間距離度量值的過程可以如下:對所述數(shù)據(jù)傳輸速率的倒數(shù)、往返時間和丟包率分別賦予第一權(quán)重、第二權(quán)重、第三權(quán)重;對數(shù)據(jù)傳輸速率的倒數(shù)、往返時間和丟包率進(jìn)行加權(quán)求和得到節(jié)點(diǎn)之間的距離度量值;根據(jù)節(jié)點(diǎn)之間的距離度量值生成匯集樹。其中第一權(quán)重、第二權(quán)重、第三權(quán)重根據(jù)其對應(yīng)的數(shù)據(jù)傳輸速率的倒數(shù)、往返時間和丟包率對節(jié)點(diǎn)間的距離度量的影響的大小可調(diào),且三者之和為I,即對三個權(quán)重之間進(jìn)行了歸一化處理,以便于根據(jù)影響節(jié)點(diǎn)之間度量距離的三個因素(數(shù)據(jù)傳輸速率的倒數(shù)、往返時間和丟包率)實(shí)時地對度量距離影響的大小對其比重進(jìn)行調(diào)整,更加合理的調(diào)整數(shù)據(jù)傳輸速率的倒數(shù)、往返時間和丟包率三者之間的比重,以得到盡量準(zhǔn)確的節(jié)點(diǎn)間的距離度量值,從而更加準(zhǔn)確的確定各個節(jié)點(diǎn)間的距離。
[0033]本實(shí)施例中的數(shù)據(jù)傳輸速率和往返時間直接進(jìn)行監(jiān)測得到;其中,往返時間簡單來說就是發(fā)送方從發(fā)送數(shù)據(jù)開始,到收到來自接受方的確認(rèn)信息所經(jīng)歷的時間,其在計(jì)算機(jī)網(wǎng)絡(luò)中它是一個重要的性能指標(biāo),表示從發(fā)送端發(fā)送數(shù)據(jù)開始,到發(fā)送端收到來自接收端的確認(rèn)(接收端收到數(shù)據(jù)后便立即發(fā)送確認(rèn)),總共經(jīng)歷的時延,RTT(Round-trip Time往返時間)值由三個部分決定:即鏈路的傳播時間、末端系統(tǒng)的處理時間以及路由器的緩存中的排隊(duì)和處理時間。丟包率(Loss Tolerance或Packet Loss Rate)是指測試中所丟失數(shù)據(jù)包數(shù)量占所發(fā)送數(shù)據(jù)組的比率,計(jì)算方法是:“[(輸入報(bào)文-輸出報(bào)文)/輸入報(bào)文]*100%”,本實(shí)施例中的丟包率為第一節(jié)點(diǎn)發(fā)送的數(shù)據(jù)減去第二節(jié)點(diǎn)接收到的數(shù)據(jù)除以第一節(jié)點(diǎn)發(fā)送的數(shù)據(jù)乘以百分百。
[0034]本實(shí)施例中通過綜合考慮兩節(jié)點(diǎn)間的數(shù)據(jù)傳輸速率、往返時間和丟包率來度量兩節(jié)點(diǎn)之間的距離,使得最終確定的兩節(jié)點(diǎn)之間的距離值更可靠,從而能夠?yàn)樯蒀DN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)提供更可靠的路徑生成依據(jù)。
[0035]作為圖1所示方法實(shí)施例的進(jìn)一步說明,圖1所示實(shí)施例步驟S102中根據(jù)所確定的多個距離度量值生成所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑的匯集樹包括:
[0036]S1021:確定距離第一節(jié)點(diǎn)最近的第二節(jié)點(diǎn)和所述第一節(jié)點(diǎn)與所述第二節(jié)點(diǎn)之間的第一路徑值,所述第一路徑值為所述第一節(jié)點(diǎn)和所述第二節(jié)點(diǎn)之間的距離度量值,所述第一節(jié)點(diǎn)為與源節(jié)點(diǎn)之間的最短路徑已確定的節(jié)點(diǎn);
[0037]S1022:確定距離第二節(jié)點(diǎn)最近的第三節(jié)點(diǎn)和所述第二節(jié)點(diǎn)與所述第三節(jié)點(diǎn)之間的第二路徑值,所述第二路徑值為所述第二節(jié)點(diǎn)和所述第三節(jié)點(diǎn)之間的距離度量值;
[0038]S1023:判斷所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最小路徑值是否為第一路徑值與第二路徑值之和,若是則所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最短路徑為從所述第一節(jié)點(diǎn)經(jīng)過第二節(jié)點(diǎn)到第三節(jié)點(diǎn),否則,所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最短路徑不經(jīng)過任何其他節(jié)點(diǎn);
[0039]S1024:依次迭代,直至得到所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑。
[0040]本實(shí)施例提供了一種基于Dijkstra算法的確定所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的最短路徑的方式。在一些實(shí)施例中也可以用其他算法來確定所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的最短路徑,例如Fl oy d算法、Be I lman-Ford算法等。
[0041]作為圖1所示實(shí)施例的進(jìn)一步說明,圖1所示實(shí)施例中所述數(shù)據(jù)傳輸速率包括網(wǎng)絡(luò)傳輸速度,步驟SlOl中確定各節(jié)點(diǎn)間的距離度量值包括:
[0042]根據(jù)節(jié)點(diǎn)間的網(wǎng)絡(luò)傳輸速度確定各節(jié)點(diǎn)間距離度量值。
[0043]本實(shí)施例中,節(jié)點(diǎn)之間的距離度量值只考慮網(wǎng)絡(luò)傳輸速度這一因素的影響,這樣的好處是能夠根據(jù)節(jié)點(diǎn)之間的帶寬等網(wǎng)絡(luò)傳輸速度來決定從源節(jié)點(diǎn)到各節(jié)點(diǎn)之間的最短路徑,在大量人群觀看因而需要節(jié)點(diǎn)之間傳輸時間最少的情況(例如賽事直播或春晚)下,最大化地減少時間浪費(fèi)的過程,使得用戶能夠以最小時差的優(yōu)勢觀看節(jié)目。
[0044]在上述實(shí)施例中,所述網(wǎng)絡(luò)傳輸速度利用HTTP測速而獲得。
[0045]需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作合并,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本公開并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本公開,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本公開所必須的。
[0046]在上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
[0047]圖2是本公開一實(shí)施例的CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成系統(tǒng)。本公開所述的CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法可以基于本實(shí)施例中的CDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成系統(tǒng)實(shí)施。如圖2所示,該系統(tǒng)包括節(jié)點(diǎn)距離確定單元201,路由表生成單元202和拓?fù)浣Y(jié)構(gòu)生成單元203。
[OO48 ]節(jié)點(diǎn)距離確定單元2 OI用于確定各節(jié)點(diǎn)間的距離度量值,所述節(jié)點(diǎn)包括源節(jié)點(diǎn)和多個邊緣節(jié)點(diǎn);
[0049]路由表生成單元202用于根據(jù)所確定的多個距離度量值生成所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑的匯集樹,并生成路由表;
[0050]拓?fù)浣Y(jié)構(gòu)生成單元203用于下發(fā)所述路由表至所述所有邊緣節(jié)點(diǎn)以生成拓?fù)浣Y(jié)構(gòu)。[0051 ]本公開實(shí)施例中,在節(jié)點(diǎn)距離確定單元201確定了網(wǎng)絡(luò)中所有的節(jié)點(diǎn)(包括源節(jié)點(diǎn))之間的距離度量值后,路由表生成單元202根據(jù)這些兩兩節(jié)點(diǎn)間的距離度量值確定每個邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的最短路徑,并根據(jù)這些最短路徑生成路由表,拓?fù)浣Y(jié)構(gòu)生成單元203將路由表生成單元202生成的路由表下發(fā)至所有的邊緣節(jié)點(diǎn)中以生成拓?fù)浣Y(jié)構(gòu),使得每個邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的距離都是最短的,由此得到的網(wǎng)絡(luò)拓?fù)淠軌蚴沟迷垂?jié)點(diǎn)向每個邊緣節(jié)點(diǎn)分發(fā)內(nèi)容所用時間都是最少的,增加了在CDN網(wǎng)絡(luò)中回源的速度,提升了系統(tǒng)性能。
[0052]作為圖2所示方法實(shí)施例的進(jìn)一步優(yōu)化,圖2所示實(shí)施例中節(jié)點(diǎn)距離確定單元201用于:
[0053]獲取節(jié)點(diǎn)間的歷史傳輸信息,所述歷史傳輸信息至少包括數(shù)據(jù)傳輸速率、往返時間和丟包率中的至少一者;
[0054]根據(jù)節(jié)點(diǎn)間的歷史傳輸信息確定節(jié)點(diǎn)間距離度量值。
[0055]本實(shí)施例中,下載速率為兩個節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)傳輸?shù)乃俣鹊暮饬浚螺d速率越大說明兩節(jié)點(diǎn)之間的距離越近,所以下載速率與兩節(jié)點(diǎn)之間的距離成反比;往返時間為兩節(jié)點(diǎn)之間進(jìn)行一次完整的通信的時間,往返時間越短說明兩節(jié)點(diǎn)間距離越近;丟包率為兩節(jié)點(diǎn)之間通信時傳輸信息的完整性的度量,丟包率越大則表明兩節(jié)點(diǎn)之間傳輸信息的越不完整,即兩節(jié)點(diǎn)間的距離越大。本實(shí)施例中通過綜合考慮兩節(jié)點(diǎn)間的數(shù)據(jù)傳輸速率、往返時間和丟包率來度量兩節(jié)點(diǎn)之間的距離,使得最終確定的兩節(jié)點(diǎn)之間的距離值更可靠,從而能夠?yàn)樯蒀DN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)提供更可靠的路徑生成依據(jù)。
[0056]作為圖2所示系統(tǒng)實(shí)施例的進(jìn)一步說明,圖2所示實(shí)施例中路由表生成單元202用于:
[0057]確定距離第一節(jié)點(diǎn)最近的第二節(jié)點(diǎn)和所述第一節(jié)點(diǎn)與所述第二節(jié)點(diǎn)之間的第一路徑值,所述第一路徑值為所述第一節(jié)點(diǎn)和所述第二節(jié)點(diǎn)之間的距離度量值,所述第一節(jié)點(diǎn)為與源節(jié)點(diǎn)之間的最短路徑已確定的節(jié)點(diǎn);
[0058]確定距離第二節(jié)點(diǎn)最近的第三節(jié)點(diǎn)和所述第二節(jié)點(diǎn)與所述第三節(jié)點(diǎn)之間的第二路徑值,所述第二路徑值為所述第二節(jié)點(diǎn)和所述第三節(jié)點(diǎn)之間的距離度量值;
[0059]判斷所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最小路徑值是否為第一路徑值與第二路徑值之和,若是則所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最短路徑為從所述第一節(jié)點(diǎn)經(jīng)過第二節(jié)點(diǎn)到第三節(jié)點(diǎn),否則,所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最短路徑不經(jīng)過任何其他節(jié)點(diǎn);
[0060]依次迭代,直至得到所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑。
[0061]本實(shí)施例提供了一種基于Dijkstra算法的確定所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的最短路徑以生成路由表的方式。在一些實(shí)施例中也可以用其他算法來確定所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的最短路徑,例如Floyd算法、Bel Iman-Ford算法等。
[0062]作為圖2所示實(shí)施例的進(jìn)一步說明,圖2所示實(shí)施例中所述數(shù)據(jù)傳輸速率包括網(wǎng)絡(luò)傳輸速度,所述節(jié)點(diǎn)距離確定單元201用于:
[0063]根據(jù)節(jié)點(diǎn)間的網(wǎng)絡(luò)傳輸速度確定各節(jié)點(diǎn)間距離度量值。
[0064]本實(shí)施例中,節(jié)點(diǎn)距離確定單元201在確定節(jié)點(diǎn)之間的距離度量值時只考慮網(wǎng)絡(luò)傳輸速度這一因素,這樣的好處是能夠根據(jù)節(jié)點(diǎn)之間的帶寬等網(wǎng)絡(luò)傳輸速度來決定從源節(jié)點(diǎn)到各節(jié)點(diǎn)之間的最短路徑,在大量人群觀看因而需要節(jié)點(diǎn)之間傳輸時間最少的情況(例如賽事直播或春晚)下,最大化地減少時間浪費(fèi)的過程,使得用戶能夠以最小時差的優(yōu)勢觀看節(jié)目。
[0065]在上述實(shí)施例中,所述網(wǎng)絡(luò)傳輸速度利用HTTP測速而獲得。
[ΟΟ??] 本公開實(shí)施例中可以通過硬件處理器(hardware processor)來實(shí)現(xiàn)相關(guān)功能模塊。
[0067]以上所描述的方法實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實(shí)施。
[0068]通過以上的實(shí)施例的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施例可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在計(jì)算機(jī)可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0069]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本公開的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本公開可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本公開可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0070]本公開是參照根據(jù)本公開實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0071]這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0072]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本公開的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本公開進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本公開各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種⑶N網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成方法,包括: 確定各節(jié)點(diǎn)間的距離度量值,所述節(jié)點(diǎn)包括源節(jié)點(diǎn)和多個邊緣節(jié)點(diǎn); 根據(jù)所確定的多個距離度量值生成所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑的匯集樹,并生成路由表; 下發(fā)所述路由表至所述所有邊緣節(jié)點(diǎn)以生成拓?fù)浣Y(jié)構(gòu)。2.根據(jù)權(quán)利要求1所述的方法,其中,所述確定各節(jié)點(diǎn)間的距離度量值包括: 獲取節(jié)點(diǎn)間的歷史傳輸信息,所述歷史傳輸信息至少包括數(shù)據(jù)傳輸速率、往返時間和丟包率中的至少一者; 根據(jù)節(jié)點(diǎn)間的歷史傳輸信息確定各節(jié)點(diǎn)間距離度量值。3.根據(jù)權(quán)利要求2所述的方法,其中,所述根據(jù)所確定的多個距離度量值生成所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑的匯集樹包括: 確定距離第一節(jié)點(diǎn)最近的第二節(jié)點(diǎn)和所述第一節(jié)點(diǎn)與所述第二節(jié)點(diǎn)之間的第一路徑值,所述第一路徑值為所述第一節(jié)點(diǎn)和所述第二節(jié)點(diǎn)之間的距離度量值,所述第一節(jié)點(diǎn)為與源節(jié)點(diǎn)之間的最短路徑已確定的節(jié)點(diǎn); 確定距離第二節(jié)點(diǎn)最近的第三節(jié)點(diǎn)和所述第二節(jié)點(diǎn)與所述第三節(jié)點(diǎn)之間的第二路徑值,所述第二路徑值為所述第二節(jié)點(diǎn)和所述第三節(jié)點(diǎn)之間的距離度量值; 判斷所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最小路徑值是否為第一路徑值與第二路徑值之和,若是則所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最短路徑為從所述第一節(jié)點(diǎn)經(jīng)過第二節(jié)點(diǎn)到第三節(jié)點(diǎn),否則,所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最短路徑不經(jīng)過任何其他節(jié)點(diǎn); 依次迭代,直至得到所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑。4.根據(jù)權(quán)利要求2或3所述的方法,其中,所述數(shù)據(jù)傳輸速率包括網(wǎng)絡(luò)傳輸速度,所述確定各節(jié)點(diǎn)間的距離度量值包括: 根據(jù)節(jié)點(diǎn)間的網(wǎng)絡(luò)傳輸速度確定各節(jié)點(diǎn)間距離度量值。5.根據(jù)權(quán)利要求4所述的方法,其中,所述網(wǎng)絡(luò)傳輸速度利用HTTP測速而獲得。6.—種⑶N網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)生成系統(tǒng),包括: 節(jié)點(diǎn)距離確定單元,用于確定各節(jié)點(diǎn)間的距離度量值,所述節(jié)點(diǎn)包括源節(jié)點(diǎn)和多個邊緣節(jié)點(diǎn); 路由表生成單元,用于根據(jù)所確定的多個距離度量值生成所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑的匯集樹,并生成路由表; 拓?fù)浣Y(jié)構(gòu)生成單元,用于下發(fā)所述路由表至所述所有邊緣節(jié)點(diǎn)以生成拓?fù)浣Y(jié)構(gòu)。7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中,所述節(jié)點(diǎn)距離確定單元用于: 獲取節(jié)點(diǎn)間的歷史傳輸信息,所述歷史傳輸信息至少包括數(shù)據(jù)傳輸速率、往返時間和丟包率中的至少一者; 根據(jù)節(jié)點(diǎn)間的歷史傳輸信息確定節(jié)點(diǎn)間距離度量值。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述路由表生成單元用于: 確定距離第一節(jié)點(diǎn)最近的第二節(jié)點(diǎn)和所述第一節(jié)點(diǎn)與所述第二節(jié)點(diǎn)之間的第一路徑值,所述第一路徑值為所述第一節(jié)點(diǎn)和所述第二節(jié)點(diǎn)之間的距離度量值,所述第一節(jié)點(diǎn)為與源節(jié)點(diǎn)之間的最短路徑已確定的節(jié)點(diǎn); 確定距離第二節(jié)點(diǎn)最近的第三節(jié)點(diǎn)和所述第二節(jié)點(diǎn)與所述第三節(jié)點(diǎn)之間的第二路徑值,所述第二路徑值為所述第二節(jié)點(diǎn)和所述第三節(jié)點(diǎn)之間的距離度量值; 判斷所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最小路徑值是否為第一路徑值與第二路徑值之和,若是則所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最短路徑為從所述第一節(jié)點(diǎn)經(jīng)過第二節(jié)點(diǎn)到第三節(jié)點(diǎn),否則,所述第一節(jié)點(diǎn)到所述第三節(jié)點(diǎn)的最短路徑不經(jīng)過任何其他節(jié)點(diǎn); 依次迭代,直至得到所有邊緣節(jié)點(diǎn)到源節(jié)點(diǎn)的多條最短路徑。9.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其中,所述數(shù)據(jù)傳輸速率包括網(wǎng)絡(luò)傳輸速度,所述確定各節(jié)點(diǎn)間的距離度量值包括: 根據(jù)節(jié)點(diǎn)間的網(wǎng)絡(luò)傳輸速度確定各節(jié)點(diǎn)間距離度量值。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述網(wǎng)絡(luò)傳輸速度利用HTTP測速而獲得。
【文檔編號】H04L12/741GK105933233SQ201610247044
【公開日】2016年9月7日
【申請日】2016年4月20日
【發(fā)明人】李洪福
【申請人】樂視控股(北京)有限公司, 樂視云計(jì)算有限公司