個示例。應(yīng)意識到和理解的是,可以利用其他方法而不偏離要求保護(hù)的主題的精神和范圍。例如,一些系統(tǒng)可以利用多個IP地址或者利用具有DNS名稱的URI。
[0031]一旦已知,地址就允許用戶建立語音或視頻呼叫,或者發(fā)送即時消息(頂)聊天信息或文件移送等。然而另外,當(dāng)客戶端自身需要與另一個客戶端自主地傳送信息時也可以使用地址。
[0032]圖2的示意性框圖示出被配置成充當(dāng)通過因特網(wǎng)操作的系統(tǒng)的終端的最終用戶終端的示例。該系統(tǒng)可以包括P2P系統(tǒng)和/或非P2P系統(tǒng)并且可以使用一個或多個不同的協(xié)議來通信。終端102包括被圖示為CPU 200的一個或多個處理器,其可操作地耦合到:諸如調(diào)制解調(diào)器之類的網(wǎng)絡(luò)接口 202或用于連接到因特網(wǎng)的其他接口、諸如硬盤驅(qū)動器或閃存之類的非易失性存儲設(shè)備204,以及諸如隨機存取存儲器(RAM)206之類的易失性存儲器設(shè)備。終端102還包括一個或多個用戶輸入設(shè)備,例如以鍵盤或小鍵盤210、鼠標(biāo)212、麥克風(fēng)216和諸如網(wǎng)絡(luò)攝像頭之類的照相機218的形式,每一個都可操作地耦合到CPU 200。終端102還包括一個或多個用戶輸出設(shè)備,例如以顯示器208和揚聲器214的形式,再次地每一個都可操作地耦合到CPU 200。
[0033]存儲設(shè)備204存儲包括至少一個操作系統(tǒng)(0S)220和客戶端應(yīng)用222形式的基于分組的通信軟件的軟件,所述客戶端應(yīng)用222可以包括通過其通信可以通過諸如圖1中描述的網(wǎng)絡(luò)之類的網(wǎng)絡(luò)發(fā)生的P2P應(yīng)用和/或非P2P應(yīng)用。在終端102啟動或重啟時,操作系統(tǒng)220自動地裝載到RAM 206中并且從該處通過在CPU 200上執(zhí)行而被運行。一旦運行,操作系統(tǒng)220然后就可以通過將應(yīng)用裝載到RAM 206中并且在CPU 200上執(zhí)行應(yīng)用來運行它們,所述應(yīng)用諸如客戶端應(yīng)用222。為了在圖2中示意性地表示這一點,操作系統(tǒng)220和客戶端應(yīng)用222示出在CPU 200內(nèi)。
[0034]在該特定的非限制性示例中,客戶端應(yīng)用222包括具有三個基本層的“?!?輸入和輸出(I/O)層224、客戶端引擎層226和客戶端用戶接口(UI)層228。這些層的功能可以由除具體描繪的架構(gòu)之外的架構(gòu)實現(xiàn)而不偏離要求保護(hù)的主題的精神和范圍。
[0035]每個層或?qū)?yīng)的功能模塊負(fù)責(zé)特定的功能。由于每個連續(xù)層通常與兩個相鄰層(或者在頂層的情況下的一個層)通信,所以它們被認(rèn)為是布置在如圖2中所示的棧中。
[0036]客戶端應(yīng)用222被認(rèn)為在操作系統(tǒng)220上運行。這意味著在多任務(wù)環(huán)境中其被調(diào)度用于由操作系統(tǒng)220執(zhí)行;并且進(jìn)一步意味著,從網(wǎng)絡(luò)接口 202、麥克風(fēng)216和照相機218到客戶端應(yīng)用222的最低(I/O)層224的輸入以及從該I/O層224到網(wǎng)絡(luò)接口 202、顯示器208和揚聲器214的輸出可以經(jīng)由操作系統(tǒng)220的合適的驅(qū)動程序和/SAPI進(jìn)行調(diào)解。在至少一些實施例中,可以實現(xiàn)包括可以利用來呈現(xiàn)視聽和交互內(nèi)容的基于web的接口的客戶端應(yīng)用222。
[0037]客戶端應(yīng)用的I/O層224包括音頻和視頻編解碼器形式的語音引擎和可選的視頻引擎,其接收傳入的編碼流并將其解碼以視情況輸出給揚聲器214和/或顯示器208,并且其接收來自麥克風(fēng)216和/或照相機218的未編碼音頻和/或視頻數(shù)據(jù)并將其編碼以作為流傳輸?shù)絇2P系統(tǒng)的其他最終用戶終端或PSTN中的其他實體和/或諸如網(wǎng)絡(luò)108之類的移動網(wǎng)絡(luò)。I/O層224還可以包括用于在網(wǎng)絡(luò)的終端102之間用信號發(fā)送控制信息的控制信令協(xié)議。
[0038]客戶端引擎層226然后處理如前面討論的系統(tǒng)的連接管理功能,諸如通過P2P地址查找和認(rèn)證以及通過其他技術(shù)建立呼叫或其他連接??蛻舳艘嬉部梢载?fù)責(zé)系統(tǒng)的其他輔助功能,諸如供應(yīng)最新的聯(lián)系人列表和/或用戶的頭像給服務(wù)器104 (圖1);或者從服務(wù)器104檢索用戶的最新聯(lián)系人列表并檢索其他用戶的最新頭像。
[0039]客戶端用戶接口層228負(fù)責(zé)呈現(xiàn)解碼內(nèi)容,諸如經(jīng)由顯示器208向用戶呈現(xiàn)視聽和/或交互內(nèi)容,以用于在顯示器208上呈現(xiàn)輸出以及諸如存在和簡檔信息之類的其他信息和諸如按鈕和菜單之類的用戶控件,并且用于經(jīng)由所呈現(xiàn)的控件接收來自用戶的輸入。
[0040]—般地,本文中描述的功能中的任一個可以使用軟件、固件、硬件(例如,固定邏輯電路)或這些實現(xiàn)方式的組合來實現(xiàn)。如本文中使用的術(shù)語“模塊”、“功能”、“部件”和“邏輯” 一般表示軟件、固件、硬件或其組合。在軟件實現(xiàn)方式的情況下,模塊、功能或邏輯表示當(dāng)在處理器(例如,CPU或多個CPU)上被執(zhí)行時執(zhí)行指定任務(wù)的程序代碼。程序代碼可以存儲在一個或多個計算機可讀存儲器設(shè)備中。下面描述的技術(shù)的特征是平臺無關(guān)的,意指這些技術(shù)可以在具有多種處理器的多種商用計算平臺上實現(xiàn)。對于可操作用于執(zhí)行這些技術(shù)的設(shè)備的進(jìn)一步討論可聯(lián)系圖9和10找到。
[0041]返回圖1,如之前描述的帶寬管理通常圍繞優(yōu)化通信信道上的帶寬的利用的問題。常規(guī)地,估計基于信道的即時可用帶寬,其然后被用來在該速率下進(jìn)行傳輸。雖然這對于諸如其中帶寬隨時間推移相對恒定的ADSL之類的常規(guī)的有線連接而言可能是良好的方法,但是該方法在面對具有快速變化的帶寬的通信信道時可能變差。
[0042]已經(jīng)開發(fā)的一種技術(shù)對將來帶寬的不安全性進(jìn)行建模并且依賴于該模型選取發(fā)送速率,考慮對于實時通信而言過度利用可能比利用不足更為有害。該技術(shù)基于針對該特定通信會話獲得的實際觀測,意指該方法在語音或視頻呼叫的開始沒有影響。而且,該方法可以不考慮諸如流量成形效果之類的常見但不頻繁的事件。
[0043]因此,描述了其中帶寬管理利用在例如其他呼叫的其他通信會話期間做出的觀測的技術(shù)。在呼叫啟動時,例如,可以經(jīng)由網(wǎng)絡(luò)(例如,云服務(wù)、web服務(wù)等等)向可用的服務(wù)提供商做出查詢以獲得關(guān)于用于通信會話的預(yù)期帶寬的參數(shù),其可以包括預(yù)期用于該通信會話的不安全性和/或變化性。然后在選擇傳入和/或傳出方向上的傳輸速率時可以考慮這些參數(shù)。在另一個示例中,可以利用在例如“呼叫”的通信會話期間做出的觀測來更新服務(wù)提供商。還構(gòu)想其他示例,諸如支持較早前描述的P2P系統(tǒng),在P2P系統(tǒng)中這些參數(shù)在最終用戶終端102(a)到102(c)之間分發(fā)并且以類似于聯(lián)系前面的圖2描述的查找示例的方式進(jìn)行定位。
[0044]例如,考慮隨著時間變化過程的帶寬“BW”。不失一般性,“BW(t+ Δ ) =Bff (t) +dBff(t,A) ”,其中“BW(t) ”是時刻“t”的帶寬并且“dBW(t,Λ) ”是從時刻“t”到時刻“t+Δ ”的帶寬改變。用以估計“BW(t) ”的技術(shù)可以基于接收時刻、發(fā)送時刻、分組大小的觀測,并且在初始化時的分組丟失可以用來選取等于或稍微低于該估計的發(fā)送速率。然而,該估計牽涉至少一個網(wǎng)絡(luò)往返時間(RTT)的延遲。因此,該RTT基本上變成前面的“ Δ ”。如果“dBW(t,A ) ”取正值,則意味著正被使用的信道未發(fā)揮全部潛力,但是如果其是負(fù)的,則該信道可以變得過載,導(dǎo)致排隊延遲和/或分組丟失。
[0045]因此,還可以采用預(yù)測“BW(t+A) ”為“安全”值的技術(shù)以在這樣的帶寬下傳輸:在該帶寬下已經(jīng)達(dá)到將不會超過“Bwa+Δ)”的置信度。例如,“BW(t)”估計的歷史可以用來對用于將來帶寬的概率密度函數(shù)(PDF)進(jìn)行建模。該PDF可以采取具有一個參數(shù)的泊松分布的形式或者假設(shè)多種其他形式。在一個或多個實現(xiàn)方式中,然后可以采用這些技術(shù)來選取該TOF的后百分之五,意味著存在百分之五的超過可用帶寬的風(fēng)險。
[0046]然后可以通過生成和共享觀測來擴展這些技術(shù)。在下面的討論中,如“呼叫”一樣的語音/視頻實時通信被描述為意指“應(yīng)用調(diào)用”對應(yīng)于呼叫的示例。也即,一個用戶在一個通信會話(例如,呼叫)中做出的觀測被另一個用戶在另一個通信會話(例如,呼叫)中重用。如下描述且在對應(yīng)的圖中示出示例系統(tǒng)。
[0047]圖3描繪了被配置成生成和利用可用來預(yù)測帶寬的參數(shù)的示例實現(xiàn)方式中的系統(tǒng)300。系統(tǒng)300包括如先前的可通信地耦合到通信云112的端點102 (a)、102 (b)。在該示例中,通信云112包括對無線通信技術(shù)的支持。這可以包括如圖示的無線接入點和蜂窩塔,以及可以包括W1-Fi(例如,包括IEEE 802.11和其他的一個或多個標(biāo)準(zhǔn))、近場通信(NFC)、藍(lán)牙等等的其他無線通信技術(shù)。
[0048]端點102(a)、102(b)可以參與如之前描述的通信會話,諸如相互之間的、與其他端點的通信會話等等。在該通信會話期間,可以基于由相應(yīng)的觀測模塊110(a)、110(b)做出的觀測來生成參數(shù)。然后可以將這些參數(shù)傳送給服務(wù)提供商的服務(wù)器106以便由觀測管理器模塊108存儲在一個或多個數(shù)據(jù)庫302中。如之前描述的,還構(gòu)想其他分布式實現(xiàn)方式。這些參數(shù)可以采取多種形式。
[0049]例如,參數(shù)可以描述網(wǎng)絡(luò)提供商、信號強度、網(wǎng)絡(luò)通信設(shè)備、無線接入點、地理位置、網(wǎng)絡(luò)接入類型、網(wǎng)絡(luò)協(xié)議、日時、星期幾、訂閱信息或漫游信息。另外,可以為呼叫的一側(cè)或兩側(cè)表達(dá)這些參數(shù)。因此,這些觀測在下面的討論中可以被稱為“網(wǎng)絡(luò)(NW)參數(shù)”304。
[0050]另一方面,帶寬參數(shù)306可以牽涉用來計算帶寬分布的統(tǒng)計模型的參數(shù),其可以包括由觀測模塊110(a)、110(b)在通信會話期間觀測的參數(shù)。例如,模型可以被配置為如之前描述的泊松分布,其可以采用在通信會話期間估計的帶寬參數(shù)306。因此,帶寬參數(shù)306可以作為模型的一部分用來描述這些估計??梢砸远喾N方式生成和利用這些參數(shù),其一個示例如下進(jìn)行描述且示出在對應(yīng)的圖中。
[0051]圖4描繪了其中由第二端點利用第一端點做出的帶寬參數(shù)的觀測的圖1和3的系統(tǒng)400的示例。