在諸如因特網(wǎng)的計(jì)算機(jī)網(wǎng)絡(luò)的背景下,網(wǎng)絡(luò)路徑或路徑的組件(例如,服務(wù)器、中繼器或路由器)的帶寬可以是指路徑或組件的帶寬容量或可用帶寬。帶寬容量是該路徑或組件所能處置的總數(shù)據(jù)率,而可用帶寬是該路徑或組件當(dāng)前所能提供的數(shù)據(jù)率(帶寬容量減去由于路徑上現(xiàn)有的通信或者通過組件的現(xiàn)有通信所招致的任何帶寬)。帶寬可以例如按照每秒比特?cái)?shù)或者每秒字節(jié)數(shù)來表達(dá)。
現(xiàn)有的方法允許估計(jì)給定網(wǎng)絡(luò)路徑上的帶寬,但是僅僅基于之前對(duì)確切相同的網(wǎng)絡(luò)路徑(包括確切相同的構(gòu)成組件)所做的觀測(cè)。例如,可以構(gòu)建先前觀測(cè)到的帶寬的直方圖。然而,如果存在對(duì)于該路徑的先前的觀測(cè),則這些方法僅能夠估計(jì)路徑的帶寬。事實(shí)上,為了得到有用的估計(jì),通常需要確切相同的網(wǎng)絡(luò)路徑上的相當(dāng)多的觀測(cè)。通常,對(duì)于考慮中的路徑不存在任何觀測(cè),并且因此該方法完全失效。而且,在沒有路徑的各個(gè)構(gòu)成組件的可視性的情況下,這些方法不允許估計(jì)路徑的各個(gè)組件(例如,各個(gè)服務(wù)器、中繼器或路由器)的帶寬。
存在用于估計(jì)抖動(dòng)、往返時(shí)間(RTT)和丟包的更復(fù)雜的方法,而沒有用來估計(jì)帶寬的方法。然而,因?yàn)槁窂降膸挼扔诼窂缴献畹蛶捊M件的帶寬的帶寬獨(dú)特性質(zhì),即“瓶頸”(而對(duì)于抖動(dòng)、RTT和丟包,這些是通過沿路線的每個(gè)組件的累積效應(yīng)來確定的),將這些方法擴(kuò)展到帶寬并非是直接的。
技術(shù)實(shí)現(xiàn)要素:
單個(gè)網(wǎng)絡(luò)組件的帶寬可能憑借其自身的因素而受到關(guān)注,例如為了網(wǎng)絡(luò)規(guī)劃的目的??商娲鼗蛘吒郊拥兀鱾€(gè)組件帶寬的知識(shí)將允許確定任何任意路徑的帶寬,而無論先前是否經(jīng)歷過該路徑(即,無論對(duì)于該路徑是否獲得了帶寬測(cè)量作為所討論的方法或模型的部分)。
例如,當(dāng)管理具有多個(gè)組件(如服務(wù)器)以及所涉及到的數(shù)據(jù)中心的大型網(wǎng)絡(luò)時(shí),檢測(cè)其中哪些是瓶頸是非常有挑戰(zhàn)性的。因此,由每個(gè)這樣的網(wǎng)絡(luò)組件所提供的帶寬的估計(jì)將是有用的。例如,如果諸如服務(wù)器的某組件被識(shí)別為瓶頸,則網(wǎng)絡(luò)管理員可以為其購(gòu)買一些更多的帶寬,或者修改網(wǎng)絡(luò)的路由策略以對(duì)該服務(wù)器或其它組件布置較少的負(fù)擔(dān),或者甚至升級(jí)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)來添加附加的組件。
作為另一示例,當(dāng)開始網(wǎng)絡(luò)路徑上的媒體會(huì)話時(shí),提供由該路徑所提供的帶寬的估計(jì)會(huì)是有用的,例如,其能夠用來決定媒體的適當(dāng)?shù)木幋a級(jí)別(以及因此其將招致何種帶寬)。在又一示例中,運(yùn)行于用戶終端上的諸如VoIP應(yīng)用的應(yīng)用可以具有在不同網(wǎng)絡(luò)路徑之間選擇的選項(xiàng),例如通過連接到不同的服務(wù)器或中繼器,或者通過在用戶終端處使用不同的網(wǎng)絡(luò)接口。在該情況下,應(yīng)用可能想要選擇最佳匹配其需求的網(wǎng)絡(luò)路徑。可被用來做出該決策的一個(gè)因素是可能的路徑的端對(duì)端帶寬的估計(jì)。
因此,存在期望能夠估計(jì)網(wǎng)絡(luò)中的各個(gè)組件的帶寬或者估計(jì)先前尚未(必然地)獲得帶寬觀測(cè)的路徑的帶寬的多種原因。此外,期望的是如果這些知識(shí)可以在不(必然地)具有各個(gè)組件的可視性的情況下獲得。
根據(jù)本文公開的一個(gè)方面,在組件帶寬的任何觀測(cè)都不可用的實(shí)施例中,提供一種基于過去的通信的端對(duì)端觀測(cè)來估計(jì)各個(gè)網(wǎng)絡(luò)組件的帶寬信息的方法。該方法是從采集在諸如因特網(wǎng)的網(wǎng)絡(luò)上的在不同時(shí)機(jī)不同的相應(yīng)觀測(cè)路徑上所發(fā)生的多個(gè)過去的通信所經(jīng)歷的端對(duì)端帶寬的相應(yīng)的觀測(cè)而開始的。在實(shí)施例中,被觀測(cè)的組件包括用戶通信,包括在多個(gè)不同用戶的用戶終端之間進(jìn)行的實(shí)際用戶通信(與人工測(cè)試通信不同),并且觀測(cè)是通過接收來自運(yùn)行于多個(gè)不同用戶的用戶終端上的至少一個(gè)應(yīng)用的報(bào)告而采集的。例如,這可以包括:采集運(yùn)行于整個(gè)網(wǎng)絡(luò)中的各個(gè)用戶終端上的諸如VoIP客戶端的通信客戶端應(yīng)用的實(shí)例測(cè)得的在語音和/或視頻通話期間所經(jīng)歷的帶寬的報(bào)告。在實(shí)施例中,該方法實(shí)現(xiàn)于服務(wù)器中,服務(wù)器采集來自多個(gè)不同的用戶終端的觀測(cè)。然而,可替代地,該方法可以基于其自身的觀測(cè)和/或從其它用戶共享的觀測(cè)而實(shí)現(xiàn)在單個(gè)的用戶終端上。而且,該方法不限于語音和/或視頻通話的觀測(cè),可以可替代地或者附加地使用其它類型的通信,例如單向媒體流和/或文件傳輸。
還注意的是,觀測(cè)是從在多個(gè)不同的時(shí)機(jī)(過去的不同的離散時(shí)間)進(jìn)行的通信采集的,例如是從不同的用戶在多個(gè)小時(shí)、天、周、月或甚至年的時(shí)間段內(nèi)進(jìn)行的不同的通話采集的。該方法不要求對(duì)不同路徑進(jìn)行同時(shí)測(cè)量。此外,觀測(cè)從不同路徑的網(wǎng)格采集。該方法不一定要求從路徑的任意特定結(jié)構(gòu)化組合進(jìn)行測(cè)量,例如,不要求利用測(cè)試通信同時(shí)或系統(tǒng)性地探測(cè)樹。
無論觀測(cè)到何種通信,每個(gè)通信在包括相應(yīng)的多個(gè)網(wǎng)絡(luò)組件的路徑上行進(jìn)。注意,本文所使用的術(shù)語“網(wǎng)絡(luò)組件”或類似術(shù)語可以是指能夠形成網(wǎng)絡(luò)上從一個(gè)端點(diǎn)到另一端點(diǎn)(例如,從發(fā)送用戶終端到接收用戶終端)的路徑的部分的任意節(jié)點(diǎn)。例如,根據(jù)本公開建模的網(wǎng)絡(luò)組件可以包括單個(gè)的路由器(例如,因特網(wǎng)路由器)、中繼器、橋接器、網(wǎng)關(guān)或服務(wù)器單元或者特定的邏輯服務(wù)器(包括多個(gè)服務(wù)器單元)、特定的數(shù)據(jù)中心、具有特定自治系統(tǒng)編號(hào)(ASN)的自治系統(tǒng)或者地理元信息(例如,大陸、國(guó)家、州或城市)。所建模的組件還可以包括一個(gè)或多個(gè)端點(diǎn)本身,例如用戶終端。
為了估計(jì)組件帶寬信息,該方法包括:利用由一個(gè)或多個(gè)參數(shù)表征的帶寬概率函數(shù)對(duì)相應(yīng)的網(wǎng)絡(luò)組件中的每一個(gè)進(jìn)行建模;以及基于所述建模來對(duì)于每個(gè)網(wǎng)絡(luò)組件估計(jì)組件帶寬或組件帶寬概率密度。這是通過確定所述參數(shù)的相應(yīng)值而使得在觀測(cè)路徑中的網(wǎng)絡(luò)組件的組件帶寬或帶寬概率密度的組合根據(jù)優(yōu)化過程(例如,最大似然估計(jì))而近似地匹配在觀測(cè)路徑上過去的通信所經(jīng)歷的端對(duì)端帶寬的觀測(cè)來完成的。
因此,有可能基于沿先前觀測(cè)路徑的端對(duì)端帶寬的觀測(cè)(并且在實(shí)施例中僅基于端對(duì)端帶寬的觀測(cè))來估計(jì)關(guān)于網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)的帶寬的信息,而不一定需要能夠直接觀測(cè)沿這些路徑的各個(gè)節(jié)點(diǎn)的帶寬統(tǒng)計(jì)數(shù)據(jù)。
注意,公開的技術(shù)能夠應(yīng)用于估計(jì)可用帶寬或帶寬容量。如果以可用帶寬的端對(duì)端估計(jì)饋送該方法,則其將返回組件的“可用帶寬”的估計(jì)。如果以端對(duì)端容量估計(jì)饋送,則其將返回組件的容量的估計(jì)。
在實(shí)施例中,該方法還可以包括:基于所述網(wǎng)絡(luò)組件中的多個(gè)構(gòu)成組件的組件帶寬或帶寬概率密度,預(yù)測(cè)所述網(wǎng)絡(luò)上的目標(biāo)路徑的端對(duì)端帶寬或端對(duì)端帶寬概率密度。目標(biāo)路徑無需必然包含在觀測(cè)路徑中(但是可以恰巧是這樣)。注意,此處的“目標(biāo)”路徑意指受測(cè)路徑,即,作為關(guān)注焦點(diǎn)的路徑,或者所考慮中的路徑。這不一定暗示該路徑以任何方式被針對(duì)或追尋(但是也不排除這種情況)。
提供該發(fā)明內(nèi)容以便以簡(jiǎn)化的形式來引入下面的具體實(shí)施方式中進(jìn)一步描述的概念的選擇。該發(fā)明內(nèi)容不旨在確定所要求保護(hù)的主題的關(guān)鍵特征或主要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。所要求保護(hù)的主題也不限于解決在
背景技術(shù):
部分所提到的任意或全部缺點(diǎn)的實(shí)現(xiàn)方式。
附圖說明
為了輔助理解本公開且顯示出如何將實(shí)施例投入實(shí)用,通過示例的方式參考附圖,在附圖中:
圖1是通信網(wǎng)絡(luò)的示意圖,
圖2是示出通信網(wǎng)絡(luò)的組件的示意圖,
圖3示意性地圖示出用于對(duì)網(wǎng)絡(luò)組件建模的方法,以及
圖4是用于估計(jì)帶寬的方法的流程圖。
具體實(shí)施方式
圖1示出了通信系統(tǒng),該通信系統(tǒng)包括網(wǎng)絡(luò)101,例如,諸如因特網(wǎng)的公共廣域互聯(lián)網(wǎng)絡(luò)或者諸如公司內(nèi)聯(lián)網(wǎng)的私有廣域網(wǎng)。與網(wǎng)絡(luò)101連接的是呈用戶終端102形式的多個(gè)通信端點(diǎn),例如臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板式設(shè)備和/或智能手機(jī)。每個(gè)用戶終端102安裝有通信客戶端應(yīng)用103的相應(yīng)的實(shí)例以用于通過網(wǎng)絡(luò)101與用戶終端102中的一個(gè)或多個(gè)其它終端通信。在實(shí)施例中,通信客戶端103是語音和/或視頻通話客戶端,例如VoIP客戶端,用于通過網(wǎng)絡(luò)101在用戶終端102之間進(jìn)行實(shí)況語音和/或視頻通話。還與網(wǎng)絡(luò)101連接的是提供帶寬估計(jì)服務(wù)105的服務(wù)器104。該服務(wù)器104可以實(shí)現(xiàn)為單個(gè)服務(wù)器單元,或者邏輯服務(wù)器,其包括了在一個(gè)或多個(gè)站點(diǎn)上的多于一個(gè)服務(wù)器單元。
圖2示出了通信網(wǎng)絡(luò)101的更多細(xì)節(jié)。網(wǎng)絡(luò)101包括多個(gè)網(wǎng)絡(luò)組件201,即網(wǎng)絡(luò)的節(jié)點(diǎn)。在圖中,各個(gè)網(wǎng)絡(luò)組件201被標(biāo)記為A…O以便引用,但是將意識(shí)到在實(shí)施例中可以存在比圖示更多的組件201。這些組件201中的每一個(gè)組件可以表示各種類型的網(wǎng)絡(luò)節(jié)點(diǎn)中的一個(gè),例如路由器、中繼器(例如,P2P系統(tǒng)中的對(duì)等節(jié)點(diǎn))、橋接器、網(wǎng)關(guān)、服務(wù)器單元、邏輯服務(wù)器、數(shù)據(jù)中心、特定自治系統(tǒng)的ASN、或地理元信息(例如,特定的城市、州、國(guó)家或大陸)。此外,在下面的模型中所考慮的各個(gè)組件201可以是同一類型的節(jié)點(diǎn),或者可以包括不同類型的節(jié)點(diǎn)。
當(dāng)在一個(gè)用戶終端102上的通信客戶端103將通信送到在另一用戶終端102上的通信客戶端103的互補(bǔ)實(shí)例(例如,發(fā)送音頻流和/或視頻流作為通話的部分)時(shí),通信將在由多個(gè)網(wǎng)絡(luò)組件201構(gòu)成的網(wǎng)絡(luò)上的某路徑202上行進(jìn)。例如,在圖示的示例中,發(fā)送用戶終端102送出通信(例如,音頻和/或視頻流),該通信首先經(jīng)由網(wǎng)絡(luò)組件A行進(jìn),然后經(jīng)由網(wǎng)絡(luò)組件H,然后最終經(jīng)由網(wǎng)絡(luò)組件N,網(wǎng)絡(luò)組件N將通信傳遞給接收用戶終端102。因此,通信可以被描述為在兩個(gè)端點(diǎn)102之間的網(wǎng)絡(luò)路徑AHN上行進(jìn)。注意,通信可以是在路徑上流動(dòng)的進(jìn)行中的流,并且不必在其開始被向前傳遞到下一組件H等之前全部傳送到一個(gè)組件A。即,在流的較早部分正在從組件N傳遞到目的地端點(diǎn)102的同時(shí),流的靠后的部分正從組件H傳遞到組件N,并且流的更靠后的部分正在從組件A傳遞到組件N,等等。
圖2中還示出了網(wǎng)絡(luò)路徑BEKM(從組件B到E到K到M)、DBF(從組件D到B到F)、IHG(從組件I到H到G)以及NL(從組件N到L)。例如,每個(gè)均可以包括在各個(gè)端點(diǎn)102之間(例如,在因特網(wǎng)上的VoIP客戶端103的各個(gè)實(shí)例之間)進(jìn)行的相應(yīng)的語音和/或視頻通話的不同的相應(yīng)的音頻和/或視頻流。注意,路徑無需必然包含相同數(shù)量的網(wǎng)絡(luò)組件。而且,注意一些或全部網(wǎng)絡(luò)組件如何可以包含在不同的路徑中。例如,組件H是路徑AHN和路徑IHG的組件,并且組件B是路徑BEKM和路徑DBF的組件,而組件N是路徑AHN和路徑NL的組件。實(shí)際上,可能將有在更多的相互交織的網(wǎng)格中重疊的更大量的路徑,但是圖2為了示例說明的目的而簡(jiǎn)化。
每個(gè)路徑202具有某帶寬,即,其當(dāng)前正備用的帶寬容量或可用數(shù)據(jù)率。帶寬一般是通過路徑202上的最慢組件201來確定的,即“瓶頸”。即,路徑202的端對(duì)端帶寬可以建模為路徑上的任意組件201的最小帶寬。
雖然客戶端應(yīng)用103無法調(diào)查路徑202且因此無法看出哪個(gè)組件201是瓶頸,但是例如VoIP客戶端的很多通信客戶端具有估計(jì)它們正通過其通信的特定連接(即,特定路徑)上的端對(duì)端帶寬的設(shè)施。各種測(cè)量在給定連接上所經(jīng)歷的帶寬的方法本身對(duì)于本領(lǐng)域技術(shù)人員而言是熟悉的。例如,pathChirp、Pathload或TCP友好速率控制(TFRC)可被用來測(cè)量端對(duì)端可用帶寬;或者分組訓(xùn)練方法可被用來測(cè)量端對(duì)端帶寬容量。
此外,通常能夠識(shí)別出哪些組件構(gòu)成了路徑。例如,在一個(gè)模型中,每條路徑被視為僅由兩個(gè)組件構(gòu)成,例如,在路徑的一端的用戶終端102借以連接到網(wǎng)絡(luò)101的自治系統(tǒng),以及在路徑的另一端的用戶終端102借以連接到網(wǎng)絡(luò)101的另一自治系統(tǒng)。自治系統(tǒng)是向因特網(wǎng)呈現(xiàn)共同的、定義的路由策略的IP路由前綴的集合,例如是給定的互聯(lián)網(wǎng)服務(wù)提供商(ISP)的系統(tǒng)。每個(gè)自治系統(tǒng)由唯一ASN(自治系統(tǒng)編號(hào))來標(biāo)識(shí)。因此,在實(shí)施例中,每個(gè)路徑可以被建模為僅包含相應(yīng)的ASN對(duì)。另一示例將考慮路徑由在通信的任意端的兩個(gè)地理位置構(gòu)成,例如,在任意端的國(guó)家或城市(在該情況下,組件可由兩個(gè)端點(diǎn)的地理元信息來建模)。
此外,如果通信遍歷服務(wù)器、中繼器或數(shù)據(jù)中心,則該組件的身份可為應(yīng)用103所知,并且因此在實(shí)施例中其可輕易地作為組件添加到路徑中。
更一般地,可以通過使用其它已知的技術(shù),例如執(zhí)行跟蹤路線來發(fā)現(xiàn)其它更復(fù)雜的路徑的組件。跟蹤路線是通過從尋址到另一端點(diǎn)的一個(gè)端點(diǎn)102發(fā)送跟蹤分組來執(zhí)行的,跟蹤分組包含被設(shè)定成非零整數(shù)值的生存時(shí)間(TTL)值。當(dāng)網(wǎng)絡(luò)組件201接收到分組時(shí),其將TTL值遞減,并且然后如果TTL仍為非零則將跟蹤分組轉(zhuǎn)發(fā)到路徑中的下一網(wǎng)絡(luò)組件201,或者否則如果TTL值現(xiàn)在已經(jīng)遞減成零,則網(wǎng)絡(luò)組件以其本身的標(biāo)識(shí)回應(yīng)發(fā)送終端102。發(fā)送終端TTL所發(fā)送的第一跟蹤分組初始地設(shè)定成1,因此其在其到達(dá)的第一網(wǎng)絡(luò)組件(例如A)處第一跳后遞減為0,該第一網(wǎng)絡(luò)組件隨后以其身份回應(yīng)。發(fā)送終端012隨后在TTL設(shè)定為2的情況下發(fā)送第二跟蹤分組。該第二跟蹤分組將因此行進(jìn)兩跳,在其遞減為零的時(shí)候到達(dá)路線中的第二網(wǎng)絡(luò)組件(例如,H),使得第二網(wǎng)絡(luò)組件以其身份回應(yīng),等等。
用于識(shí)別網(wǎng)絡(luò)路徑的技術(shù)本身對(duì)于本領(lǐng)域技術(shù)人員將是熟悉的,并且本公開的范圍不限于任何特定的技術(shù)。還注意,為了本文所公開的建模的目的而考慮的路徑不一定必須包含沿路徑下至最細(xì)微的細(xì)節(jié)的每個(gè)組件——如果為了所論述的目的,與其它組件相比組件通常足夠快,則該組件不會(huì)認(rèn)為是瓶頸,在對(duì)路徑建模時(shí)可以忽略該組件。
給定通常在例如VoIP系統(tǒng)的通信系統(tǒng)中進(jìn)行的極大量的通話或其它通信,能夠采集在一時(shí)間段內(nèi)大量通話上的統(tǒng)計(jì)數(shù)據(jù),包括構(gòu)成所行進(jìn)的路徑202的網(wǎng)絡(luò)組件201的所經(jīng)歷的帶寬和標(biāo)識(shí)。根據(jù)以下,提供了一種基于多個(gè)端對(duì)端帶寬觀測(cè)來估計(jì)各個(gè)網(wǎng)絡(luò)組件所引入的帶寬限制或者由于每個(gè)這樣的網(wǎng)絡(luò)組件201所提供的帶寬的概率分布的方法。
這些組件估計(jì)本身可以應(yīng)用于網(wǎng)絡(luò)規(guī)劃。
可替代地或者附加地,給定這些估計(jì),還能夠?qū)⒏鱾€(gè)組件估計(jì)組合成跨組件201的任何新路徑的端對(duì)端帶寬的估計(jì)——即使由網(wǎng)絡(luò)組件的該確切組合構(gòu)成的路徑的觀測(cè)之前沒有并入該模型中。這可以例如應(yīng)用于媒體編碼或網(wǎng)絡(luò)路徑選擇,如下文更具體地論述。組件估計(jì)和新路徑的估計(jì)兩者均基于通過路徑上的任意組件的最小帶寬(“瓶頸”)確定端對(duì)端帶寬的模型。
現(xiàn)在參考圖4來更具體地論述公開的方法。
在第一步驟S10中,在至少一些實(shí)施例中,在服務(wù)器104處采集跨多個(gè)網(wǎng)絡(luò)組件的多個(gè)端對(duì)端帶寬觀測(cè)。在例如多個(gè)小時(shí)、數(shù)天、數(shù)周、數(shù)月或甚至數(shù)年的時(shí)間段內(nèi)采集觀測(cè)。當(dāng)運(yùn)行于一個(gè)或多個(gè)用戶終端102上的通信客戶端103執(zhí)行經(jīng)網(wǎng)絡(luò)101的通信(例如,通話)時(shí),其還通過測(cè)量相應(yīng)的路徑202上所經(jīng)歷的帶寬以及識(shí)別相應(yīng)路徑的組件201來進(jìn)行觀測(cè),如上文所述。在多個(gè)用戶終端102在各個(gè)不同的時(shí)機(jī)執(zhí)行的多個(gè)通信中,每個(gè)客戶端103將其測(cè)得的帶寬和所識(shí)別的路徑報(bào)告給運(yùn)行于服務(wù)器104上的帶寬估計(jì)服務(wù)105(例如,通過同一網(wǎng)絡(luò)101或單獨(dú)的介質(zhì))。
在帶寬估計(jì)服務(wù)105處,處理觀測(cè)以識(shí)別由存在的各個(gè)網(wǎng)絡(luò)組件201中的每一個(gè)所提供的帶寬。因?yàn)橛刹煌慕M件提供的帶寬會(huì)由于例如邊負(fù)載而隨時(shí)間變化,在至少一些實(shí)施例中,組件帶寬是通過它們的概率密度函數(shù)來建模的。這可以應(yīng)用于可用帶寬或帶寬容量??捎脦捰捎诓煌男枨蠖S時(shí)間變化。可用帶寬會(huì)由于競(jìng)爭(zhēng)運(yùn)行于同一用戶設(shè)備和/或不同用戶設(shè)備中的應(yīng)用而受影響。此外,根據(jù)容量的定義,帶寬容量還可以是時(shí)變的。例如,如果容量是如分組鏈消耗率測(cè)得的峰值速率,則其可以在例如移動(dòng)網(wǎng)絡(luò)的網(wǎng)絡(luò)中是時(shí)變的,因?yàn)槠溆刹僮鲉T指定為各技術(shù)參數(shù)(例如,信號(hào)質(zhì)量、用戶負(fù)荷等)的函數(shù)。
隨時(shí)間推移,帶寬估計(jì)服務(wù)105將采集到包括網(wǎng)絡(luò)組件201的許多不同組合的許多不同路徑202的觀測(cè),其中多個(gè)不同的路徑202將包含一些而非全部的相同網(wǎng)絡(luò)組件201。基于此,帶寬估計(jì)服務(wù)105能夠估計(jì)出各個(gè)網(wǎng)絡(luò)組件201的帶寬(例如,平均帶寬)或者至少帶寬概率密度,即使其僅具有端對(duì)端帶寬的觀測(cè)。這如何完成的一些具體的示例將稍后結(jié)合等式(1)至(31)來進(jìn)行詳述,但是該過程的概要闡述如下,同樣是結(jié)合圖3。
(a)首先,對(duì)于觀測(cè)數(shù)據(jù)得到一般似然函數(shù)。這基于觀測(cè)的端對(duì)端帶寬是由路徑上的最慢網(wǎng)絡(luò)組件201來確定的模型。
(b)然后,利用概率分布函數(shù)對(duì)任意觀測(cè)路徑202中所涉及到的每個(gè)網(wǎng)絡(luò)組件201進(jìn)行建模。這示意性地圖示在圖3中。注意,似然函數(shù)p(y;λ)是對(duì)于固定觀測(cè)y而言參數(shù)λ的函數(shù);而概率密度函數(shù)p(y;λ)是對(duì)于固定的參數(shù)λ而言觀測(cè)y的函數(shù)。有時(shí),參數(shù)λ是隱式的。也即,p(y;lambda)有時(shí)僅寫為p(y),lambda是可理解的。對(duì)于組件帶寬而言可以挑選任何概率分布函數(shù)(PDF),例如,指數(shù)、高斯、Weibull、或離散概率質(zhì)量函數(shù)(PMF)(“直方圖”)。無論選擇哪一個(gè),概率分布函數(shù)是由一個(gè)或多個(gè)參數(shù)表征的,對(duì)于不同的網(wǎng)絡(luò)組件201參數(shù)可取不同值。例如,在圖3中,對(duì)組件A建模的PDF的參數(shù)被標(biāo)記為λa1,λa2…,對(duì)組件A建模的PDF的參數(shù)被標(biāo)記為λb1,λb2…,等等。在實(shí)施例中,同一類型的PDF用于在給定模型中要建模的每個(gè)組件201,或者可替代地,不排除不同類型的PDF可以用于給定模型內(nèi)的不同組件201。
(c)任務(wù)現(xiàn)在變成選定的PDF類型或多個(gè)類型的參數(shù)的優(yōu)化問題。也即,期望找到對(duì)不同網(wǎng)絡(luò)組件201建模的PDF的參數(shù)的值,使得全部路徑基于組件模型PDF而被一起考慮的模型近似匹配(例如,最緊密地匹配)那些路徑的實(shí)際觀測(cè)。在實(shí)施例中,這意味著期望找到對(duì)不同網(wǎng)絡(luò)組件201建模的PDF的參數(shù)的值,使得他們組合起來產(chǎn)生實(shí)際上在端對(duì)端路徑上所觀測(cè)到的全部端對(duì)端帶寬觀測(cè)的最高可能的似然乘積。該原理稱為最大似然估計(jì)。例如,在高斯PDF類型的情況下,期望找到導(dǎo)致端對(duì)端帶寬觀測(cè)的最高似然乘積的均值和方差。這可以利用任何已知的優(yōu)化方法來實(shí)現(xiàn)以最大化在上面的步驟(a)中形成的似然函數(shù)。在實(shí)施例中,所使用的優(yōu)化方法可以是凸優(yōu)化方法,例如,諸如牛頓法的內(nèi)點(diǎn)法,如果需要該方法可擴(kuò)展對(duì)數(shù)障礙以將參數(shù)保持在約束范圍內(nèi)??商娲兀蓱?yīng)用諸如遺傳算法的非凸方法,或者可以組合地使用凸方法和非凸方法;例如,可利用非凸方法的結(jié)果來初始化凸方法。
(d)結(jié)果是帶有求解的參數(shù)的每個(gè)網(wǎng)絡(luò)組件201的PDF,得到了相應(yīng)的網(wǎng)絡(luò)組件的概率密度。
在實(shí)施例中,“直方圖”PDF類型可被使用,因?yàn)槠淇梢詳M合任何數(shù)據(jù)并且還實(shí)現(xiàn)了能夠利用凸優(yōu)化方法來求解且因此在合理時(shí)間內(nèi)執(zhí)行的優(yōu)化標(biāo)準(zhǔn)。在實(shí)施例中,Tikhonov正則化項(xiàng)可以添加到優(yōu)化標(biāo)準(zhǔn)中,因?yàn)樵擁?xiàng)可防止過擬合。例如,對(duì)于直方圖PDF類型,項(xiàng)可以添加到PDF中的目標(biāo)懲罰微分式中,使得PDF平滑。這還可以提供如下附加效果:在任何網(wǎng)絡(luò)組件由于觀測(cè)集中的線性相關(guān)性而不可觀測(cè)的情況下,目標(biāo)仍能夠在沒有數(shù)值分解的情況下優(yōu)化。
在一些實(shí)施例中,帶寬可以任選地利用諸如對(duì)數(shù)函數(shù)的可逆壓縮器來進(jìn)行預(yù)處理。通過每個(gè)組件建模的帶寬PDF隨后將實(shí)際上對(duì)由每個(gè)組件傳送的對(duì)數(shù)帶寬進(jìn)行建模。然后,通過取得在對(duì)數(shù)域內(nèi)做出的帶寬預(yù)測(cè)的指數(shù)來恢復(fù)所得到的端對(duì)端帶寬估計(jì)。這可以是有用的,因?yàn)閹捼呌陂L(zhǎng)尾分布并且因此壓縮提高了建模精度。而且,這與建模精度的效果一致:雖然在100與200kbps的視頻通話之間有大的質(zhì)量差別,但是實(shí)際上在2000與2100kbps的視頻之間沒有差別。
第二個(gè)任選的步驟S20是提供某目標(biāo)端對(duì)端路徑的帶寬或帶寬PDF的估計(jì),該某目標(biāo)端對(duì)端路徑可以是未包含在第一步驟S10中所采集和建模的觀測(cè)中的路徑。第二步驟S20是在第一步驟S10之后實(shí)施的,但是不一定響應(yīng)于第一步驟S10的結(jié)束而直接觸發(fā)。相反,在實(shí)施例中,步驟S20將是在應(yīng)用(參見步驟S30)請(qǐng)求端對(duì)端路徑(例如,其旨在用于通信或者考慮使用)的帶寬(或帶寬的PDF)的估計(jì)時(shí)而被調(diào)用的。例如,通信客戶端應(yīng)用103可能希望確定用于進(jìn)行語音或視頻通話的估計(jì)帶寬。應(yīng)用103將請(qǐng)求送到帶寬估計(jì)服務(wù)105,其中其為服務(wù)105提供在所考慮中的路徑(“目標(biāo)路徑”)上的網(wǎng)絡(luò)組件201的身份。例如,應(yīng)用可以在目標(biāo)路徑上運(yùn)行跟蹤路線,或者組件可以從端點(diǎn)推導(dǎo)出(例如,在任意側(cè)的ASN或國(guó)家加上它們之間的任何服務(wù)器或中繼器)。在步驟S10中所估計(jì)的網(wǎng)絡(luò)組件PDF隨后組合成所提供的網(wǎng)絡(luò)路徑的端對(duì)端帶寬的新PDF,或者PDF用于生成最可能的帶寬。PDF的組合基于端對(duì)端帶寬由路徑上的最慢組件確定的模型。
在實(shí)施例中,組合是通過帶寬估計(jì)服務(wù)105來執(zhí)行的,并且服務(wù)105將所得到的目標(biāo)路徑的帶寬或帶寬概率密度提供給請(qǐng)求的應(yīng)用,例如在相應(yīng)的用戶終端102中的一個(gè)上的通信客戶端應(yīng)用103,或者運(yùn)行于服務(wù)器上的媒體流應(yīng)用。該應(yīng)用隨后使用該帶寬或帶寬概率密度作為應(yīng)用在目標(biāo)路徑上所進(jìn)行的后續(xù)通信所經(jīng)歷的帶寬或帶寬概率密度的預(yù)測(cè)。
可替代地,服務(wù)105可以將一個(gè)或多個(gè)網(wǎng)絡(luò)組件的各個(gè)組件帶寬或帶寬概率密度提供給應(yīng)用,以便應(yīng)用在用戶終端102處用來組合成目標(biāo)路徑的預(yù)測(cè)帶寬或帶寬概率密度。例如,在實(shí)施例中,服務(wù)105可以為應(yīng)用供應(yīng)目標(biāo)路徑上的全部組件的組件帶寬,或者可以僅供應(yīng)有問題的低帶寬組件的PDF。
在第三可選的步驟S30中,為實(shí)際的目的而應(yīng)用估計(jì)的端對(duì)端帶寬或帶寬PDF。示例的應(yīng)用如下。在第一示范性的應(yīng)用中,目標(biāo)路徑的預(yù)測(cè)的端對(duì)端帶寬或端對(duì)端帶寬概率函數(shù)被用來選擇正在目標(biāo)路徑上傳輸或者將要在目標(biāo)路徑上傳輸?shù)暮罄m(xù)通信的性質(zhì),該性質(zhì)的選擇影響在目標(biāo)路徑上的后續(xù)通信所招致的帶寬。在實(shí)施例中,該選擇包括在后續(xù)通信的不同質(zhì)量版本之間選擇,例如音頻或視頻編碼譯碼器的不同質(zhì)量模式。例如,這可用于媒體流中的帶寬選擇,例如,視頻流服務(wù)可以基于所提供的估計(jì)而在不同質(zhì)量級(jí)別之間選擇。作為另一示例,這可用于實(shí)時(shí)通信中的帶寬選擇。作為另一示例,VoIP服務(wù)可基于所提供的估計(jì)而在不同的質(zhì)量級(jí)別之間選擇。該服務(wù)通常將基于所傳輸?shù)拿襟w數(shù)據(jù)而運(yùn)行其自身的“服務(wù)中”帶寬估計(jì),但是即使在該情況下,由本文所述的方法所提供的帶寬估計(jì)可能在“服務(wù)中”估計(jì)變得可用或穩(wěn)定之前的初始階段是有用的。
在第二示范性的應(yīng)用中,估計(jì)可用于網(wǎng)絡(luò)路徑選擇。在該情況下,該方法包括:預(yù)測(cè)在網(wǎng)絡(luò)上的兩個(gè)或更多個(gè)不同的目標(biāo)路徑中的每一個(gè)的相應(yīng)的端對(duì)端帶寬或端對(duì)端帶寬概率密度,每個(gè)均基于所述網(wǎng)絡(luò)組件的相應(yīng)的多個(gè)構(gòu)成組件的組件帶寬或帶寬概率密度。兩個(gè)或更多個(gè)目標(biāo)路徑的預(yù)測(cè)的端對(duì)端帶寬或端對(duì)端帶寬概率密度的比較隨后用來選擇目標(biāo)路徑之一用于傳輸后續(xù)通信。例如,(任意上述)應(yīng)用可以查詢多路徑的端對(duì)端帶寬估計(jì),然后選擇最快的或以其它方式“為最佳的”路徑用于會(huì)話。作為示例,選擇可以是在使用慢且廉價(jià)的或快速且昂貴的服務(wù)器之間進(jìn)行。如果到兩個(gè)服務(wù)器的路徑上存在第三慢速網(wǎng)絡(luò)組件,則選擇快速且昂貴的服務(wù)器沒有優(yōu)勢(shì),因?yàn)槁俜?wù)器絕不是瓶頸(假設(shè)其比第三慢速組件快)。
注意,在上文中假設(shè)帶寬估計(jì)被提供給應(yīng)用(例如,在用戶終端102中的一個(gè)上的應(yīng)用103)并且應(yīng)用做出路徑選擇,或者通信的質(zhì)量或其它性質(zhì)的選擇影響所招致的帶寬。然而,在可替代的實(shí)施例中,選擇的指示被提供給應(yīng)用(例如,在用戶終端102上)以在選定的目標(biāo)路徑上進(jìn)行后續(xù)通信或者以選定的質(zhì)量或其它性質(zhì)來進(jìn)行后續(xù)通信。
在又一示范性的應(yīng)用中,通過基于一個(gè)或多個(gè)網(wǎng)絡(luò)組件的組件帶寬或帶寬概率密度來修改網(wǎng)絡(luò),一個(gè)或多個(gè)網(wǎng)絡(luò)組件的組件帶寬或帶寬概率密度用于網(wǎng)絡(luò)規(guī)劃。例如,通過直接檢查網(wǎng)絡(luò)組件帶寬(步驟S10的結(jié)果),任意管理員能夠輕易地檢測(cè)哪些組件趨于是瓶頸。因此,他或她可以按該信息行動(dòng)并且可能相應(yīng)地做準(zhǔn)備。
將意識(shí)到,上面的應(yīng)用僅是示例,技術(shù)人員可以發(fā)現(xiàn)其它用來估計(jì)網(wǎng)絡(luò)組件或包括這些組件的路徑的帶寬或帶寬概率密度的有用的應(yīng)用。
還注意的是,在上述方法(例如,通過服務(wù)105)所產(chǎn)生的帶寬估計(jì)中,所得到的目標(biāo)組件或路徑的帶寬估計(jì)可以按照估計(jì)帶寬概率密度分布或單一表示帶寬估計(jì)(例如,諸如估計(jì)均值的估計(jì)平均帶寬或模態(tài)帶寬)來輸出。為了確定估計(jì)分布,相應(yīng)的網(wǎng)絡(luò)組件中的每一個(gè)是利用由不僅僅是一個(gè)而是至少兩個(gè)獨(dú)立可變的參數(shù)表征的帶寬概率函數(shù)來建模的。在實(shí)施例中,輸出估計(jì)的概率密度提供了用于利用估計(jì)的更多選項(xiàng)。例如,在選擇用于后續(xù)通信的路徑時(shí),服務(wù)105或應(yīng)用103可以使得選擇基于平均帶寬(例如,分布的均值或峰值帶寬)和帶寬概率密度分布的離散度的度量(例如,在分布的峰值的+/-X%之間定義的寬度)。例如,考慮中的一個(gè)目標(biāo)路徑可以具有較高的估計(jì)平均帶寬,但是較寬的離散度,意指帶寬不太可靠;而另一目標(biāo)路徑可以具有較低的估計(jì)平均帶寬,而較窄的離散度,意指帶寬更可靠。在一些方案中,服務(wù)105或應(yīng)用103可以在具有較高估計(jì)平均值的路徑上選擇更可靠的路徑,而在其它方案中服務(wù)105或應(yīng)用103可以選擇更可靠路徑上的具有較高估計(jì)平均值的路徑。例如,選擇可取決于所做出選擇的后續(xù)通信的要求,例如其媒體類型(文件傳輸、音頻、視頻等)和/或要求的最小擔(dān)保位率。
此外,在上文列出的任意應(yīng)用中,帶寬相關(guān)的估計(jì)可以與例如往返時(shí)間(RTT)、丟包、抖動(dòng)或做出最終恰當(dāng)決策之前的金錢成本的其它因素的估計(jì)或度量組合。
在第四可選的步驟S40中,應(yīng)用(例如,通信客戶端103或媒體流應(yīng)用)可以將在實(shí)際通信期間所觀測(cè)到的實(shí)際“會(huì)話中”帶寬估計(jì)(在可用時(shí))發(fā)回到服務(wù)105。該觀測(cè)隨后提供附加信息,并且步驟S10可以重新初始化以細(xì)化網(wǎng)絡(luò)組件帶寬PDF估計(jì)。
在另外進(jìn)一步的可選實(shí)施例中,公開的方法可允許預(yù)測(cè)在一天的不同時(shí)間的不同的帶寬估計(jì)。這可以通過將一天分段成例如0:00-6:00、6:00-12:00、12:00-18:00、18:00-2400的時(shí)間段以及將公開的技術(shù)單獨(dú)地應(yīng)用于每個(gè)時(shí)間段來實(shí)現(xiàn)??商娲兀惶靸?nèi)的時(shí)間可以嵌入到所建模的網(wǎng)絡(luò)組件中。例如,每個(gè)ASN可被建模為對(duì)應(yīng)于上文例示的四個(gè)時(shí)間間隔的四個(gè)網(wǎng)絡(luò)組件。
現(xiàn)在將對(duì)用于對(duì)每個(gè)網(wǎng)絡(luò)組件201建模(步驟S10)的概率密度函數(shù)的一些示例進(jìn)行說明。在下面的示例中,等式(4)是似然函數(shù),pj(Xj)是組件j的概率密度函數(shù)。給出兩個(gè)具體的示例。激發(fā)等式(11)對(duì)于兩個(gè)示例是通用的。在激發(fā)等式(11)中,在優(yōu)化中變化的參數(shù)由θj表示。在等式(16)的具體的示例中,k用于表示全部組件的通用參數(shù),并且然后使用kj來使k對(duì)于每個(gè)組件變化。在式(22)中,其為pj(k)。注意(16)中的k不是(22)中的k。
為了以下的目的,不同的網(wǎng)絡(luò)組件由j來索引。當(dāng)組件在通話的端對(duì)端路徑上時(shí),其引入帶寬限制xj?,F(xiàn)在假設(shè)該帶寬限制是隨密度函數(shù)pj(Xj)隨機(jī)可變的?,F(xiàn)在,用yi來標(biāo)示第i個(gè)端對(duì)端觀測(cè)。這也是隨密度函數(shù)pi(Yi)隨機(jī)可變的。因?yàn)槎藢?duì)端帶寬是由“最弱鏈路”來確定的,所以其可以表示為:
其中Ai是用于第i個(gè)端對(duì)端觀測(cè)的路徑上的一組網(wǎng)絡(luò)組件。
現(xiàn)在將得出pi(yi)。也即,對(duì)于yi觀測(cè)的似然性。首先,需要組件j傳送帶寬足夠高而產(chǎn)生yi的概率:
現(xiàn)在,全部組件傳送足夠高帶寬的概率是:
現(xiàn)在,以下式返回似然函數(shù):
對(duì)于整個(gè)觀測(cè)集y,似然性因此變成:
因?yàn)樗P(guān)心的是找到最大化p(y)的基礎(chǔ)的密度函數(shù)pj(Xj),所以可以在兩邊取對(duì)數(shù)以得到對(duì)數(shù)似然函數(shù):
關(guān)于該項(xiàng),現(xiàn)在注意:
因此,可以改寫為:
這提供了對(duì)于分布pj(Xj)的任何給定的選擇進(jìn)行優(yōu)化的通用功用。一方面,期望提供得到凸功用從而能夠輕易最大化的分布。另一方面,期望提供擬合數(shù)據(jù)且對(duì)我們所考慮的應(yīng)用而言有用的分布。匹配第一期望的分布是指數(shù)的:
(并且還可以規(guī)定yi>=0)。插入(10)中,這得到:
并且通過做如下檢查其是凹的:線性函數(shù)既是凸的又是凹的,并且凹函數(shù)(的凹的非減函數(shù)(log(·))是凹的。因此,求解器可寫為利用牛頓法來恢復(fù)θj。θj>0的約束可通過將對(duì)數(shù)障礙添加到目標(biāo)函數(shù)中來強(qiáng)制。然而,指數(shù)分布并沒有真實(shí)地?cái)M合上述的第二期望,因?yàn)槠涫亲畲笾禐?的長(zhǎng)尾分布。這意味著,其僅能反映組件有時(shí)支持高帶寬的能力,而其不能反映任何有關(guān)這有多可靠的方面??朔搯栴}的一種方式是使用更一般的Weibull分布:
其中形狀參數(shù)k>0。能夠看出,對(duì)于k=1,其降為指數(shù)分布,對(duì)于k=2,其具有Rayleigh分布。通過插入(10)中,得到:
按與對(duì)指數(shù)分布所做的相同的論證,這對(duì)于任何給定的k在θjk中是凹的,并且因此易于求解。
使用例如k=5的Weibull分布確保分布的最大值不再為0;然而,使用固定的k,仍存在均值和方差1:1耦合的問題??朔搯栴}的一種方式也是使k對(duì)于每個(gè)分布是自由參數(shù),即,用上面的kj取代k。
從上文繼續(xù),現(xiàn)在描述使用Weibull分布的示例。
當(dāng)用kj取代k時(shí),可以得到(16)的1階和2階導(dǎo)數(shù)。第1階導(dǎo)數(shù)是:
其中I(·)是指示符函數(shù)。要構(gòu)建Hessian,還需要第2階導(dǎo)數(shù):
并且最后是交叉項(xiàng):
現(xiàn)在說明使用離散化PDF的一個(gè)可替代的示例。
不使用(10)中的參數(shù)PDF,可以使用離散化的。
觀測(cè)的帶寬被離散成箱(bin),并且用于觀測(cè)yi的適當(dāng)?shù)南溆蒪i來標(biāo)示,并且相應(yīng)的箱中心由y~(bi)來標(biāo)示(也即,量化的yi)??梢詫?10)寫為:
其中K是箱的數(shù)量,w(k)是第k個(gè)箱的寬度,并且:
是從yi到下一箱的距離。pj(k)項(xiàng)是在每個(gè)箱內(nèi)的觀測(cè)似然常數(shù),并且構(gòu)成恰當(dāng)?shù)腜DF:
如果應(yīng)用相等的箱尺寸并且進(jìn)而假設(shè)量化是細(xì)粒度的而使得y~i≈yi,(22)減為:
其最大值無關(guān)于所期望的箱尺寸。
現(xiàn)在,注意(22)和(26)可以向量化為:
其中對(duì)于第bi個(gè)箱,ai牽制(pin)似然向量pj,并且對(duì)于bi以下的索引,wi是0,在(26)的情況下,在bi處是0.5,在bi以上是1。然后可以得到Jacobian:
還可以得出Hessian。使用與Jacobian相同的分離度,得到:
以及
此處,能夠看出,Hi(1)是半負(fù)定,而Hi(2)不是,并且因此該問題不是一般凹的。這意味著,無法確保凸優(yōu)化方法將找到全局最優(yōu)參數(shù)。然而,數(shù)值實(shí)驗(yàn)表明,只要觀測(cè)I的數(shù)量相對(duì)于網(wǎng)絡(luò)組件J的數(shù)量高,估計(jì)參數(shù)實(shí)際上是最優(yōu)參數(shù)的可用近似。確保凹性的一個(gè)訣竅可以是將Tikhonov正則化項(xiàng)-αpjTpj添加到對(duì)數(shù)似然目標(biāo)中;因?yàn)檫@些項(xiàng)的Hessian是對(duì)角的,所以其將從Hessian的特征值中減去α,并且因此通過選擇α“足夠高”來實(shí)現(xiàn)凹性。該訣竅的一個(gè)解釋是,在問題不是凹的情況下,解可以朝向具有高熵值的解加權(quán)。
一般地,本文所述的任意功能可以利用軟件、固件、硬件(例如,固定邏輯電路)、或者這些實(shí)現(xiàn)的組合來實(shí)現(xiàn)。在軟件實(shí)現(xiàn)的情況下,功能是以具體實(shí)施在計(jì)算機(jī)可讀介質(zhì)或媒介上的程序代碼來實(shí)現(xiàn)的,代碼被配置為當(dāng)在一個(gè)或多個(gè)處理器上執(zhí)行時(shí)執(zhí)行規(guī)定任務(wù)。一種這樣計(jì)算機(jī)可讀介質(zhì)是信號(hào)承載介質(zhì)并且因此被配置為將指令(例如,作為載波)發(fā)送給計(jì)算設(shè)備,諸如經(jīng)由網(wǎng)絡(luò)。另一計(jì)算機(jī)可讀介質(zhì)是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)且因此不是信號(hào)承載介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、光盤、閃速存儲(chǔ)器、硬盤存儲(chǔ)器以及可使用磁、光和其它技術(shù)來存儲(chǔ)指令和其它數(shù)據(jù)的其它存儲(chǔ)器設(shè)備。
雖然以特定于結(jié)構(gòu)特征和/或方法行為的語言描述了主題,但是應(yīng)當(dāng)理解的是,在隨附的權(quán)利要求中限定的主題不一定局限于上述的具體特征或行為。而是,上述的具體特征和行為被公開作為實(shí)現(xiàn)權(quán)利要求的示例的形式。