可動態(tài)擴(kuò)大通信鏈接吞吐量的擁塞控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)網(wǎng)絡(luò)領(lǐng)域,更具體而言,涉及在此類網(wǎng)絡(luò)中的數(shù)據(jù)文件流式傳輸。
[0002]相關(guān)專利申請的交叉引用
[0003]本專利申請要求并涉及2012年10月18日提交的美國臨時專利申請序號61/715,322的優(yōu)先權(quán)權(quán)益,該美國臨時專利申請在此被全部納入作為引用。
[0004]背景
[0005]許多網(wǎng)絡(luò)用戶經(jīng)常會在在視頻流過程中遇到重緩沖暫停的問題。當(dāng)實際最終用戶的網(wǎng)絡(luò)連接容量/吞吐量非常接近所消耗流質(zhì)量的容量/吞吐量時,或者當(dāng)視頻源遠(yuǎn)離最終用戶并需要連接多個網(wǎng)絡(luò)時,此現(xiàn)象表現(xiàn)地尤為突出,例如:
[0006]-共享W1-Fi連接
[0007]-3G移動網(wǎng)絡(luò)。
[0008]-擁擠的高速鏈接(電纜)
[0009]-發(fā)展中國家的低質(zhì)量(數(shù)據(jù)包丟失率高)鏈接
[0010]-本地ISP連接強(qiáng)于外部ISP連接且無法被完全使用(例如:最終用戶擁有5MbpsADSL線路,但其實際下載速率為2Mbps)。
[0011]-布線不佳,但服務(wù)器與客戶端之間的連接實際很強(qiáng)。
[0012]我們多次嘗試過通過調(diào)整流式傳輸協(xié)議擁塞控制機(jī)制、調(diào)制壓縮率或根據(jù)鏈接的變化情況(如Adobe Http動態(tài)流)動態(tài)更改流的比特率來減少緩沖。
[0013]我們先前提議過使用多個流下載文件。但是,這些嘗試重點(diǎn)關(guān)注的是下載整個文件或流式傳輸媒體文件,同時考慮其播放波特率以計算片段下載(請參閱US8224981及其引用)。
[0014]自適應(yīng)流式傳輸協(xié)議(如 Apple HLS、Adobe HDS、Microsoft Smooth Streaming或MPEG-DASH)使用相同文件的不同版本(通常具有不同質(zhì)量等級),以適應(yīng)不斷變化的鏈接帶寬。為了實現(xiàn)不同質(zhì)量等級之間的平滑過渡,通常會將文件分割成若干塊。播放器會接收到一個清單文件,該文件描述任何特定質(zhì)量(分辨率)等級的片段列表(以及如何進(jìn)行檢索,如URL模式)。一般播放器隨后將開始連續(xù)下載片段,同時測量性能/帶寬并根據(jù)不斷變化的質(zhì)量等級做出相應(yīng)的決定。
[0015]概述
[0016]在本發(fā)明的一方面,包括一種可動態(tài)擴(kuò)大通信鏈接下載吞吐量的擁塞控制方法,該方法可以通過持續(xù)監(jiān)控相應(yīng)鏈接的整體擁塞狀態(tài)來動態(tài)創(chuàng)建和刪除一個或多個URL中的并發(fā)下載會話并動態(tài)更改數(shù)據(jù)塊大小。
[0017]此監(jiān)控包括:選擇當(dāng)前用于定義并發(fā)下載會話數(shù)以及各會話持續(xù)時間的策略;下載使用當(dāng)前策略的一個或多個URL中的數(shù)據(jù);定期檢查所定義的并發(fā)下載會話數(shù)是否已處于活動狀態(tài)以及是否應(yīng)使用新策略替代當(dāng)前策略;當(dāng)檢查結(jié)果顯示新策略可以更好地使用下載吞吐量時,選擇新的當(dāng)前策略。
[0018]定期檢查所定義的并發(fā)下載會話數(shù)是否處于活動狀態(tài)包括:a.如果第一個活動會話已終止,則決定是否開始下載下一個數(shù)據(jù)塊或丟棄會話;b.如果下一個下載會話已掛起,則將其定義為活動并重復(fù)步驟(a) ;c.如果當(dāng)前會話數(shù)小于當(dāng)前策略定義的總并發(fā)下載會話數(shù),則添加掛起下載會話。
[0019]定期檢查是否應(yīng)使用新策略替代當(dāng)前策略可包括檢查在相應(yīng)時間段內(nèi)更改策略時的下載吞吐量,包括:如果當(dāng)前測得的總下載速度大于在先前時間段內(nèi)測得的總下載速度,則增加目標(biāo)并發(fā)會話數(shù);并計算新數(shù)據(jù)塊的大小。
[0020]這里說的“增加”包括根據(jù)當(dāng)前測得的總下載速度和在先前時間段內(nèi)測得的總下載速度之差增加目標(biāo)并發(fā)會話數(shù)。
[0021]“定期檢查”包括檢查在相應(yīng)時間段內(nèi)未更改策略時的下載吞吐量,包括:如果當(dāng)前測得的總下載速度比當(dāng)前策略下測得的最大下載速度小預(yù)定百分比(最多),則選擇具有測得的相對最高下載速度的新策略;如果當(dāng)前測得的總下載速度比當(dāng)前策略下算得的最佳下載速度大預(yù)定百分比(最少),則選擇具有最高預(yù)定義下載速度的新策略;并計算新數(shù)據(jù)塊的大小。
[0022]在本發(fā)明的另一方面,包括一種可動態(tài)擴(kuò)大通信鏈接下載吞吐量的擁塞控制系統(tǒng),該系統(tǒng)包括一個下載會話控制器,可配置為通過持續(xù)監(jiān)控相應(yīng)鏈接的整體擁塞狀態(tài)來動態(tài)創(chuàng)建和刪除一個或多個URL中的并行數(shù)據(jù)流并動態(tài)更改各數(shù)據(jù)流的片段大小。
[0023]可以將下載會話控制器進(jìn)一步配置為:選擇當(dāng)前用于定義多個并發(fā)下載會話和各會話持續(xù)時間的策略;下載使用當(dāng)前策略的一個或多個URL中的數(shù)據(jù);定期檢查所定義的并發(fā)下載會話數(shù)是否已處于活動狀態(tài)以及是否應(yīng)使用新策略替代當(dāng)前策略;以及當(dāng)檢查結(jié)果顯示新策略可以更好地使用下載吞吐量時,選擇新的當(dāng)前策略。
[0024]定期檢查所定義的并發(fā)下載會話數(shù)是否處于活動狀態(tài)包括:a.如果第一個活動會話已終止,則決定是否開始下載下一個數(shù)據(jù)塊或丟棄會話;b.如果下一個下載會話已掛起,則將其定義為活動并重復(fù)步驟(a) ;c.如果當(dāng)前會話數(shù)小于當(dāng)前策略定義的總并發(fā)下載會話數(shù),則添加掛起下載會話。
[0025]定期檢查是否應(yīng)使用新策略替代當(dāng)前策略可包括檢查在相應(yīng)時間段內(nèi)更改策略時的下載吞吐量,包括:如果當(dāng)前測得的總下載速度大于在先前時間段內(nèi)測得的總下載速度,則增加目標(biāo)并發(fā)會話數(shù);并計算新數(shù)據(jù)塊的大小。
[0026]這里說的“增加”包括根據(jù)當(dāng)前測得的總下載速度和在先前時間段內(nèi)測得的總下載速度之差增加目標(biāo)并發(fā)會話數(shù)。
[0027]“定期檢查”包括檢查在相應(yīng)時間段內(nèi)未更改策略時的下載吞吐量,包括:如果當(dāng)前測得的總下載速度比當(dāng)前策略下測得的最大下載速度小預(yù)定百分比(最多),則選擇具有測得的相對最高下載速度的新策略;如果當(dāng)前測得的總下載速度比當(dāng)前策略下算得的最佳下載速度大預(yù)定百分比(最少),則選擇具有最高預(yù)定義下載速度的新策略;并計算新數(shù)據(jù)塊的大小。
[0028]在本發(fā)明的第三個方面,包括一個計算機(jī)編程產(chǎn)品,該產(chǎn)品包括一個計算機(jī)可讀存儲介質(zhì),該介質(zhì)可嵌入并配置計算機(jī)可讀程序,以通過持續(xù)監(jiān)控鏈接的整體擁塞狀態(tài)來動態(tài)創(chuàng)建和刪除一個或多個URL中的并行數(shù)據(jù)流并動態(tài)更改各數(shù)據(jù)流的數(shù)據(jù)大小。
[0029]可以將計算機(jī)程序產(chǎn)品進(jìn)一步配置為:選擇當(dāng)前用于定義多個并發(fā)下載會話數(shù)以及各會話持續(xù)時間的策略;下載使用當(dāng)前策略的一個或多個URL中的數(shù)據(jù);定期檢查所定義的并發(fā)下載會話數(shù)是否已處于活動狀態(tài)以及是否應(yīng)使用新策略替代當(dāng)前策略;當(dāng)檢查結(jié)果顯示新策略可以更好地使用下載吞吐量時,選擇新的當(dāng)前策略。
[0030]可以將計算機(jī)程序產(chǎn)品進(jìn)一步配置為定期檢查所定義的并發(fā)下載會話數(shù)是否處于活動狀態(tài),包括:a.如果第一個活動會話已終止,則決定是否開始下載下一個數(shù)據(jù)塊或丟棄會話;b.如果下一個下載會話已掛起,則將其定義為活動并重復(fù)步驟(a) ;c.如果當(dāng)前會話數(shù)小于當(dāng)前策略定義的總并發(fā)下載會話數(shù),則添加掛起下載會話。
[0031]可以將計算機(jī)程序產(chǎn)品進(jìn)一步配置為定期檢查是否應(yīng)使用新策略替代當(dāng)前策略,包括檢查在相應(yīng)時間段內(nèi)更改策略時的下載吞吐量,包括:如果當(dāng)前測得的總下載速度大于在先前時間段內(nèi)測得的總下載速度,則增加目標(biāo)并發(fā)會話數(shù);并計算新數(shù)據(jù)塊的大小。
[0032]這里說的“增加”包括根據(jù)當(dāng)前測得的總下載速度和在先前時間段內(nèi)測得的總下載速度之差增加目標(biāo)并發(fā)會話數(shù)。
[0033]“定期檢查”包括檢查在相應(yīng)時間段內(nèi)未更改策略時的下載吞吐量,包括:如果當(dāng)前測得的總下載速度比當(dāng)前策略下測得的最大下載速度小預(yù)定百分比(最多),則選擇具有測得的相對最高下載速度的新策略;如果當(dāng)前測得的總下載速度比當(dāng)前策略下算得的最佳下載速度大預(yù)定百分比(最少),則選擇具有最高預(yù)定義下載速度的新策略;并計算新數(shù)據(jù)塊的大小。
[0034]關(guān)于附圖的簡要說明
[0035]為了增進(jìn)對本發(fā)明實施方式的理解并演示如何執(zhí)行本發(fā)明的實施方式,本文將完全以實例的方式來說明所附圖樣,其中相同數(shù)字在全文中對應(yīng)相同的元素或