亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

媒體流的擁塞控制的制作方法

文檔序號:11162152閱讀:371來源:國知局
媒體流的擁塞控制的制造方法與工藝

技術(shù)領(lǐng)域

本公開涉及媒體流的擁塞控制。



背景技術(shù):

在通信網(wǎng)絡(luò)中,當(dāng)鏈路或節(jié)點承載太多數(shù)據(jù)使得其服務(wù)質(zhì)量惡化時,可能發(fā)生網(wǎng)絡(luò)擁塞。擁塞的影響可以包括:排隊延遲和分組丟失。作為另一個示例,緩存膨脹(bufferbloat)是分組交換網(wǎng)絡(luò)中的一種現(xiàn)象,其中分組的過度緩存造成高延遲。當(dāng)路由器設(shè)備被配置為使用過大的緩存器時,即使非常高速的網(wǎng)絡(luò)也可能變得實際上不能用于許多交互式應(yīng)用,例如語音呼叫、視頻會議、聊天和網(wǎng)上沖浪。

附圖說明

圖1示出了用于在源端點處實現(xiàn)對媒體流的擁塞控制的系統(tǒng)的示例。

圖2示出了擁塞控制器的示例。

圖3示出了實現(xiàn)擁塞控制器的端點節(jié)點的示例。

圖4示出了網(wǎng)絡(luò)和相關(guān)聯(lián)的媒體流的示例簡化框圖。

圖5示出了通過圖4的網(wǎng)絡(luò)的媒體流的第一示例的速率和延遲的曲線。

圖6示出了通過圖4的網(wǎng)絡(luò)的媒體流的另一示例的速率和延遲的曲線。

圖7是示出用于控制擁塞的示例方法的流程圖。

具體實施方式

概述

在一個示例中,一種裝置可以包括:擁塞控制器,該擁塞控制器在網(wǎng)絡(luò)的源端點節(jié)點處,源端點節(jié)點被配置為以可變發(fā)送速率經(jīng)由網(wǎng)絡(luò)向另一端點節(jié)點發(fā)送基本上實時的媒體數(shù)據(jù)。擁塞控制器可以被配置為將發(fā)送速率計算為(i)預(yù)定目標(biāo)延遲和(ii)來自另一端點節(jié)點的反饋的函數(shù),反饋包括要在另一端點節(jié)點處從源端點節(jié)點接收的基本上實時的媒體數(shù)據(jù)的分組的接收延遲時間。

在另一示例中,一種系統(tǒng)可以包括:包括擁塞控制器的源端點節(jié)點,所述擁塞控制器被配置為根據(jù)發(fā)送速率經(jīng)由網(wǎng)絡(luò)向接收端點節(jié)點發(fā)送給定媒體流的媒體分組。所述擁塞控制器可以基于(i)預(yù)配置的目標(biāo)延遲和(ii)來自接收端點節(jié)點的反饋來確定發(fā)送速率,反饋包括用于在接收端點節(jié)點處接收媒體分組的接收延遲時間。網(wǎng)絡(luò)可以被配置為將從源端點節(jié)點發(fā)送的媒體分組路由到接收端點節(jié)點。接收端點節(jié)點可以包括反饋計算器,該反饋計算器被配置為響應(yīng)于從源端點節(jié)點接收的媒體分組來計算反饋。

在另一示例中,一種方法可以包括:在源端點節(jié)點處從至少另一端點節(jié)點接收反饋數(shù)據(jù),反饋數(shù)據(jù)至少指示用于在至少另一端點節(jié)點處從源端點節(jié)點接收數(shù)據(jù)分組的接收延遲時間。該方法還可以包括:基于接收到的反饋數(shù)據(jù)和針對從源端點節(jié)點提供給至少另一個端點節(jié)點的分組的預(yù)定目標(biāo)延遲來計算價格函數(shù)。該方法還可以包括:計算用于將數(shù)據(jù)分組從源端點節(jié)點發(fā)送到至少另一端點節(jié)點的速率。

示例實施例

本公開涉及媒體流的擁塞控制,例如可以包括基本上實時的通信(例如,電話、視頻會議、即時消息傳送等)。擁塞控制操作為在網(wǎng)絡(luò)中的緩存膨脹狀況期間維持吞吐量。作為示例,可以在源端點節(jié)點處配置擁塞控制器,以設(shè)置用于將一個或多個媒體流從源端點節(jié)點發(fā)送到網(wǎng)絡(luò)中的至少一個其他節(jié)點的速率。媒體流可以對應(yīng)于基本上實時的通信,例如經(jīng)由傳輸層協(xié)議(例如,用戶數(shù)據(jù)報協(xié)議(UDP))來作為互聯(lián)網(wǎng)協(xié)議(IP)分組進(jìn)行傳送的通信。擁塞控制器可以結(jié)合來自接收媒體流的每個端點節(jié)點的反饋來確定每個相應(yīng)媒體流的發(fā)送速率作為預(yù)定目標(biāo)延遲(例如,針對在媒體流中發(fā)送的分組)的函數(shù)。目標(biāo)延遲可以編程(例如,通過另一應(yīng)用)為與分組延遲在正常(例如,穩(wěn)定和非緩存膨脹)網(wǎng)絡(luò)狀況中應(yīng)有的值相一致的值。針對媒體流的給定路徑的反饋可以包括媒體流(例如,屬于媒體流的一個或多個媒體分組)從源端點節(jié)點行進(jìn)到相應(yīng)的接收端點節(jié)點的延遲時間。在一些示例中,反饋還可以包括在另一端點節(jié)點處接收基本上實時的數(shù)據(jù)的接收速率(例如,在給定時間段內(nèi)接收的數(shù)據(jù)量)。通過以這種方式實現(xiàn)擁塞控制,在平衡時,即使在存在緩存膨脹的情況下,分組延遲也可以接近預(yù)定的目標(biāo)延遲。由于擁塞控制器以分布式方式在端點處實現(xiàn)(例如,不控制網(wǎng)絡(luò)節(jié)點中的緩存或排隊),所以它可以在網(wǎng)絡(luò)中實現(xiàn)以對其他擁塞控制和避免方法進(jìn)行補充,例如可以在媒體流的端點之間的網(wǎng)絡(luò)節(jié)點(例如,路由器)中實現(xiàn)。如本文所使用的,網(wǎng)絡(luò)擁塞是指當(dāng)沿著路徑的鏈路或節(jié)點承載太多數(shù)據(jù)使得其服務(wù)質(zhì)量(QoS)惡化到低于某個閾值時的情況。緩存膨脹可能是網(wǎng)絡(luò)擁塞的一個原因。

圖1示出了網(wǎng)絡(luò)系統(tǒng)10的示例,網(wǎng)絡(luò)系統(tǒng)10包括端點節(jié)點12和14以及一個或多個網(wǎng)絡(luò)節(jié)點(在16處示出)。在圖1的示例中,節(jié)點12是源端點節(jié)點,節(jié)點14是接收端點節(jié)點。因此,對于系統(tǒng)10中的數(shù)據(jù)分組的給定媒體流,源端點節(jié)點12經(jīng)由互連鏈路18將給定媒體流中的分組發(fā)送到網(wǎng)絡(luò)節(jié)點16,并且接收端點節(jié)點14經(jīng)由另一鏈路20接收媒體流中的分組。應(yīng)當(dāng)認(rèn)識到,各種類型的硬件和/或軟件可以被實現(xiàn)為端點節(jié)點,例如,臺式計算機、筆記本計算機、平板計算機、智能電話、桌面電話、視頻會議系統(tǒng)、IP電話等。網(wǎng)絡(luò)16中的節(jié)點可以類似地通過鏈路(未示出)互連。例如,網(wǎng)絡(luò)16中的節(jié)點可以包括被配置用于數(shù)據(jù)的分組轉(zhuǎn)發(fā)和路由的第3層路由元件(例如,路由器)的布置。每個鏈路可以具有固定容量(例如,其帶寬)。

作為示例,每個端點節(jié)點12、14以及網(wǎng)絡(luò)16中的節(jié)點可以包括各自的接口以容納任何數(shù)量的互連,以提供來自該節(jié)點的媒體流路徑。雖然為了簡化說明,圖1示出了單對端點12和14,但是在其他示例中,在任意給定時刻可以存在在系統(tǒng)10中操作的多對活動源/接收端點。因此,每個源端點可以經(jīng)由一個或多條路徑向一個或多個接收節(jié)點發(fā)送媒體。例如,源端點節(jié)點12從其編解碼器(例如,音頻和/或視頻編解碼器)生成編碼輸出媒體,該編碼輸出媒體被轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)分組(例如,在UDP之上的實時傳輸協(xié)議(RTP))。網(wǎng)絡(luò)16中的每個節(jié)點例如根據(jù)路由邏輯所使用的路由表,將給定媒體流的分組從源節(jié)點12路由到接收節(jié)點。

系統(tǒng)10可以包括用于從網(wǎng)絡(luò)16的節(jié)點提供的每個媒體流的擁塞控制器。在圖1的示例中,對于經(jīng)由鏈路18和20發(fā)送的媒體流,擁塞控制器22被實現(xiàn)在源端點節(jié)點12處。擁塞控制器22被配置為設(shè)置源節(jié)點12經(jīng)由鏈路18發(fā)送媒體的速率(例如,每秒位數(shù)(bps))。例如,源端點節(jié)點12根據(jù)由擁塞控制器22建立的速率實現(xiàn)編解碼器,以用于對給定流的媒體進(jìn)行編碼。因此,擁塞控制器22包括速率計算器24,其被配置為將發(fā)送速率計算為預(yù)定目標(biāo)延遲26和與接收端點節(jié)點接收到的媒體流相關(guān)聯(lián)的反饋數(shù)據(jù)28的函數(shù)。目標(biāo)延遲應(yīng)當(dāng)被設(shè)置為大于數(shù)據(jù)通過網(wǎng)絡(luò)的傳播延遲的值,例如以表示在穩(wěn)定網(wǎng)絡(luò)狀況期間對于給定類型的媒體流的舒適的延遲量。因此,目標(biāo)延遲可以被設(shè)置為取決于在端點之間通過給定媒體流傳送的媒體的類型的值。例如,即時消息傳送可以具有比語音或視頻會議更長的可接受延遲量。反饋數(shù)據(jù)28可以表示媒體流的分組從源端點節(jié)點12行進(jìn)并到達(dá)接收端點節(jié)點14的接收延遲時間段。

擁塞控制器22可以周期性地(例如,按更新周期)計算并更新發(fā)送速率,以便于調(diào)整適應(yīng)變化的網(wǎng)絡(luò)16的狀況。在一些示例中,例如響應(yīng)于檢測到惡化的網(wǎng)絡(luò)狀況,計算發(fā)送速率的更新速率可以提高到更快的速率。也就是說,更新速率可以是可變的。另外,源端點節(jié)點12可以包括擁塞控制器22的單獨實例,以計算源端點節(jié)點12用于向接收節(jié)點14發(fā)送媒體的每條路徑(例如,一條或多條路徑)的相應(yīng)發(fā)送速率。例如,在通信會話的初始化期間,可以確立用于向接收節(jié)點14發(fā)送媒體的路徑的數(shù)目和類型。例如,系統(tǒng)10中的通信會話可以包括從源端點12到接收端點14的一個或多個單向流以及從接收端點(作為源)到源端點(例如,做為接收方)的一個或多個其他單向流。每個源端點可以實現(xiàn)擁塞控制器22的一個或多個實例,如本文所公開的。

作為示例,擁塞控制器22可以相對于目標(biāo)延遲分析接收延遲,以計算用于計算給定路徑的速率的相應(yīng)價格函數(shù)。反饋數(shù)據(jù)28還可以包括在接收端點節(jié)點14處接收給定媒體流的數(shù)據(jù)分組的接收速率,例如對應(yīng)于在規(guī)定時間段內(nèi)接收的比特數(shù)。例如,擁塞控制器22可以基于與相對于目標(biāo)延遲26的接收延遲相對應(yīng)的第一分量(例如,目標(biāo)價格)并且基于與相對于發(fā)送速率的接收速率相對應(yīng)的第二分量(例如,速率均衡價格)來計算價格函數(shù)。例如,可以基于接收端點節(jié)點14的平均接收延遲與預(yù)定目標(biāo)延遲26之間的差來確定目標(biāo)價格。平均接收延遲可以對應(yīng)于確定為分組通過網(wǎng)絡(luò)從源端點節(jié)點12行進(jìn)到接收端點節(jié)點14的時間段的平均分組延遲。速率均衡價格可以基于發(fā)送速率和接收速率之間的差來確定。擁塞控制器22因此可以使用速率計算器24來計算媒體流的分組的發(fā)送速率。擁塞控制器22可以更新發(fā)送速率,例如可以周期性地或響應(yīng)于檢測到事件(例如,網(wǎng)絡(luò)狀況的改變和/或從接收端點節(jié)點14接收到反饋)而更新。

接收端點節(jié)點14可以包括被配置為計算反饋信息的反饋計算器30,反饋信息被提供給源端點節(jié)點的擁塞控制器22。接收端點節(jié)點14可以經(jīng)由消息(在32處示意性地示出)向源端點節(jié)點提供反饋,該消息可以在端點12和14之間的媒體通信會話的帶內(nèi)或帶外。反饋消息32可以經(jīng)由媒體流從接收端點節(jié)點14被提供到源端點節(jié)點12。作為另一個示例,反饋消息可以作為與通信會話相關(guān)聯(lián)的統(tǒng)計信息的一部分,從接收端點節(jié)點14被提供到源端點節(jié)點12(例如,經(jīng)由RTP控制協(xié)議(RTCP)或另一信令協(xié)議,例如會話發(fā)起協(xié)議(SIP))。

圖2示出了擁塞控制器50的示例,其可以對應(yīng)于圖1的擁塞控制器22或圖3的擁塞控制器108。可以針對給定源端點節(jié)點(例如,圖1的節(jié)點12)用于向一個或多個接收端點節(jié)點發(fā)送媒體的每條路徑實現(xiàn)擁塞控制器50的實例。由于不同的路徑可以施加不同的延遲量,因此相應(yīng)的擁塞控制器可以計算用于將數(shù)據(jù)分組從源端點節(jié)點發(fā)送到一個或多個接收端點節(jié)點的適當(dāng)速率。在圖2的示例中,給定路徑的對應(yīng)發(fā)送速率可以被存儲為路徑速率數(shù)據(jù)52,例如存儲在與源端點節(jié)點相對應(yīng)的裝置的存儲器中。如上所述,可以針對用于在通信會話中向每個接收端點節(jié)點發(fā)送媒體的每條路徑計算發(fā)送速率,記為x(t,PATH),其中t是當(dāng)前時間,PATH表示來自源端點節(jié)點的對應(yīng)媒體流的路徑。

擁塞控制器50包括被編程為計算一個或多個對應(yīng)的價格函數(shù)的價格計算器54。價格函數(shù)可以隨時間變化,從而在擁塞控制器50中操作以降低發(fā)送速率,例如以防止發(fā)送速率超過網(wǎng)絡(luò)的能力。在圖2的示例中,價格計算器54包括速率均衡價格函數(shù)56和目標(biāo)價格函數(shù)58,其中每一個函數(shù)被編程為計算給定路徑的不同的相應(yīng)價格分量。

速率均衡價格函數(shù)56可以被編程為基于先前時間段的發(fā)送速率x(t-p,PATH)以及路徑接收速率60來計算價格分量,其中p表示給定時間段,路徑接收速率60可以是時間段p上的平均值,并且可以表示為x_rcv(p,PATH)。作為示例,路徑接收速率(x_rcv(p,PATH))60可以由源端點節(jié)點12用于向接收端點發(fā)送分組的每條路徑確定。接收端點可以跟蹤在給定時間段期間接收的比特總量,并且將比特數(shù)除以在給定時間段期間接收的第一分組和最后分組的時間戳之間的差。在一些示例中,發(fā)送方節(jié)點可以將計算出的接收速率信息作為反饋數(shù)據(jù)發(fā)送到源端點節(jié)點。在其他示例中,相應(yīng)的第一時間戳值和最后時間戳值可以作為反饋被發(fā)送,并且接收速率的確定可以在源端點節(jié)點處被計算并存儲為路徑速率數(shù)據(jù)60。

作為另一示例,速率均衡價格函數(shù)56可以計算函數(shù)(rate_equalizing_price(t,path))56如下:

rate_equalizing_price(t,path)=[x(t-p,path)-x_rcv(p,PATH)]/x(t-p,path)

路徑接收速率60因此可以是反饋數(shù)據(jù)62的一部分。例如,如果針對相應(yīng)路徑的發(fā)送速率和接收速率之間的差增加,則速率均衡價格函數(shù)56將增加。這種增加可以指示發(fā)送節(jié)點以過高的速率發(fā)送以至于網(wǎng)絡(luò)不能吸收,因此可能導(dǎo)致網(wǎng)絡(luò)中的緩存器填滿,從而可能導(dǎo)致緩存器膨脹。因此,價格均衡功能可以評估網(wǎng)絡(luò)是否能夠以當(dāng)前的發(fā)送速率充分地吸收和傳播數(shù)據(jù)。作為另一示例,如果發(fā)送和接收速率相等(例如,對應(yīng)于網(wǎng)絡(luò)中的穩(wěn)定緩存器),則路徑的速率均衡價格將為零。

目標(biāo)價格函數(shù)58可以被編程為將目標(biāo)價格計算為預(yù)定目標(biāo)延遲(target-delay)64和對應(yīng)的路徑延遲66的函數(shù)。路徑延遲66例如可以對應(yīng)于如下平均延遲:該平均延遲被計算為表示在經(jīng)由給定路徑從源端點節(jié)點發(fā)送媒體數(shù)據(jù)的給定時間段p上,數(shù)據(jù)分組集合要被接收節(jié)點接收的時間段[avg_delay(p,path)]。

例如,由路徑延遲數(shù)據(jù)66提供的平均分組延遲avg_delay(p,path)可以包括網(wǎng)絡(luò)中存在的傳播延遲和排隊延遲二者??梢曰诒容^來自源節(jié)點的每個輸出分組的時間戳與在接收端點節(jié)點處接收時的時間戳來確定平均分組延遲avg_delay(p,path)。該方法將假定兩個端點節(jié)點是同步的,例如根據(jù)NTP或其他同步協(xié)議。在另一示例中,可以響應(yīng)于源端點節(jié)點向接收端點節(jié)點發(fā)送探針請求而計算平均分組延遲avg_delay(p,path),其中接收端點節(jié)點立即用確認(rèn)消息對探針請求做出響應(yīng)。源端點節(jié)點可以進(jìn)而將平均延遲估計為對應(yīng)于在給定時間段期間確認(rèn)的探針的平均往返時間(RTT)的一半。

作為示例,目標(biāo)價格函數(shù)58可以針對給定路徑按時間計算目標(biāo)價格target_price(t,path)58如下:

target_price(t,path)=[avg_delay(p,path)-target_delay]/avg_delay(p,path)

預(yù)定的目標(biāo)延遲64可以由應(yīng)用經(jīng)由對應(yīng)的應(yīng)用接口(API 68)來編程。例如,響應(yīng)于為在源端點和接收端點之間發(fā)起通信會話而執(zhí)行的信令,可以測量針對在這樣的端點節(jié)點之間的傳輸?shù)难舆t時間(例如,平均延遲時間)。在其他示例中,延遲時間可以是已知的或以其他方式是先驗的。測量出的延遲時間可以用于為從源節(jié)點傳送到給定接收端點節(jié)點的分組確立對應(yīng)的目標(biāo)延遲。例如,目標(biāo)延遲應(yīng)不小于在穩(wěn)定(例如,正常)網(wǎng)絡(luò)狀況期間的數(shù)據(jù)分組的傳播延遲。因此,目標(biāo)延遲64可以被設(shè)置為對應(yīng)于大于這種傳播延遲的延遲時間的值。目標(biāo)延遲64可以針對給定類型的媒體而變化,例如上面提到的。作為一個示例,視頻會議應(yīng)用可以經(jīng)由API 68將目標(biāo)延遲64預(yù)先配置為設(shè)定值(例如,約90毫秒),該設(shè)定值被視為用于視頻會議的舒適的延遲量,這里假設(shè)目標(biāo)延遲64超過通過網(wǎng)絡(luò)的傳播延遲。如果期望的目標(biāo)延遲不超過通過網(wǎng)絡(luò)的傳播延遲,則默認(rèn)地,擁塞控制器可以將其設(shè)置為通過網(wǎng)絡(luò)的傳播延遲或者大于通過網(wǎng)絡(luò)的傳播延遲的某個預(yù)定量(例如,5ms)。

作為另一示例,如果接收端點節(jié)點在給定時間段內(nèi)經(jīng)歷其接收延遲相對于預(yù)定目標(biāo)延遲64增加,則目標(biāo)價格函數(shù)將增加。價格計算器54可以通過因子(beta)來縮減目標(biāo)價格,以幫助保持擁塞控制過程的長時間穩(wěn)定性。通過以本文公開的方式設(shè)置目標(biāo)延遲,擁塞控制器50可以操作以將延遲值收斂為接近所提供的目標(biāo)延遲64,假設(shè)網(wǎng)絡(luò)狀況允許收斂。作為示例,價格計算器54可以計算合計價格(price(t,path)),例如如下:

price(t,path)=rate_equalizing_price(t,path)+beta*target_price(t,path)

擁塞控制器50可以實現(xiàn)成本計算器70,成本計算器70被編程為基于由價格計算器確定的價格price(t,path)并且基于效用計算器72確定的效用來計算成本值。效用計算器72可以被編程為計算效用指示符U′(x_old),效用指示符可以與從源節(jié)點發(fā)送到端點節(jié)點的媒體的質(zhì)量相關(guān),其中x_old表示在先前時間段t-p中源端點節(jié)點所使用的所有路徑的發(fā)送速率x(t-p,PATH)的總和。效用指示符可以取決于發(fā)送速率的度量(例如,統(tǒng)計)以及正在被傳送的媒體的內(nèi)容。成本計算器70通過產(chǎn)生有助于使流的效用最大化的成本函數(shù)來平衡效用指示符與價格值。效用計算器72可以將效用指示符U′(x_old)計算為效用函數(shù)U(x_old)的導(dǎo)數(shù),并且具有到成本計算器70的對應(yīng)端點。由于x_old表示源端點節(jié)點所使用的所有路徑的發(fā)送速率x(t-p,PATH)的總和,因此效用計算器計算效用函數(shù)的導(dǎo)數(shù),以提供對由源端點節(jié)點提供給給定接收端點節(jié)點的整個媒體流的評估。因此,與涉及單獨與每條路徑相關(guān)聯(lián)的價格的價格函數(shù)相反,效用函數(shù)評估從源端點節(jié)點到接收端點節(jié)點的整個單向通信的效用。

在圖2的示例中,效用計算器72包括表示多條路徑中的每一條(path_i)上的發(fā)送速率的求和的求和組件74,其中i是表示網(wǎng)絡(luò)中的路徑數(shù)的整數(shù)。例如,求和組件74可以對例如源端點節(jié)點所使用的所有路徑的發(fā)送速率求和。在一些示例中,效用函數(shù)可以被表示為速率的對數(shù)(log x(t)),其中導(dǎo)數(shù)函數(shù)76可以計算效用函數(shù)的導(dǎo)數(shù)以對應(yīng)于1/(x_old)。因此,成本計算器70可以基于效用導(dǎo)數(shù)與價格之間的差來計算對應(yīng)的成本,例如:

cost(t,PATH)=U′(x_old)*rateIncreasePriceZero-price(t-p,path)

其中,rateIncreasePriceZero可以表示針對給定時間段p的速率的最大變化(例如,rateIncreasePriceZero≈1)。

擁塞控制器50可以包括速率計算器78,以進(jìn)而基于計算出的成本和針對至少一個先前時間段所計算出的發(fā)送速率來計算針對給定路徑的速率。作為一個示例,速率x(t,PATH)可以由速率計算器78計算如下:

x(t,PATH)=x(t-p,PATH)+k*x(t-p,PATH)*[cost(t,PATH)]

根據(jù)上文,展示了針對給定路徑所計算出的速率(即,x(t,PATH))包括與獨立地與每條路徑相關(guān)聯(lián)的延遲和速率相關(guān)聯(lián)的獨立分量,以及其中針對組合的所有路徑來評估效用的另一部分。另外,由于擁塞控制器50不像在一些現(xiàn)有的擁塞控制算法中那樣僅僅取決于作為反饋的分組丟失,所以控制器可以減輕緩存膨脹狀況(超過路由器中的緩存空間)下的擁塞。此外,可以協(xié)助擁塞控制器50的部署,因為擁塞控制器被分布到端點節(jié)點而不必在沿網(wǎng)絡(luò)中的路徑中的中間節(jié)點(例如,路由器)中實現(xiàn)。這樣,擁塞控制器還可以在不對網(wǎng)絡(luò)節(jié)點進(jìn)行控制的情況下(例如,其中緩存膨脹本身不能被直接尋址)有效地緩解緩存膨脹狀況。在可以對網(wǎng)絡(luò)節(jié)點進(jìn)行控制的其他情況下,本文所公開的擁塞控制器50可以以補充的方式與其他擁塞控制算法相結(jié)合地進(jìn)行操作,以進(jìn)一步減輕擁塞。

圖3示出了源端點節(jié)點100的示例,以展示其中端點節(jié)點被配置為經(jīng)由多條路徑向另一端點提供媒體數(shù)據(jù)的情境。例如,端點節(jié)點100可以包括被配置為從端點設(shè)備接收源媒體的源接口102。例如,源接口102可以經(jīng)由耦合到源接口的一個或多個對應(yīng)的輸入設(shè)備接收音頻、視頻、音頻和視頻的組合以及其他形式的數(shù)據(jù)。源接口102向源處理器104提供輸入源媒體。

源處理器104可以將接收到的源媒體處理成適當(dāng)格式的數(shù)字?jǐn)?shù)據(jù),例如可以包括根據(jù)應(yīng)用需求為一條或多條路徑提供源媒體數(shù)據(jù)的數(shù)字流。在圖3的示例中,源處理器104生成可以分布在N條路徑中的一條或多條上的對應(yīng)的數(shù)字?jǐn)?shù)據(jù)流,其中N是表示用于從節(jié)點100傳送媒體數(shù)據(jù)的路徑數(shù)目的正整數(shù)。編碼器106被配置為向相應(yīng)的路徑接口110提供經(jīng)編碼的媒體數(shù)據(jù)的分組。例如,編碼器106被編程為根據(jù)一個或多個編解碼器,基于由擁塞控制器108的關(guān)聯(lián)實例為相應(yīng)路徑計算出的速率,來按速率(例如,比特率和分辨率)對該相應(yīng)路徑的數(shù)字?jǐn)?shù)據(jù)流進(jìn)行編碼。如本文所公開的,可以針對N條路徑中的每一條實現(xiàn)擁塞控制器108的實例。擁塞控制器108的每個實例可以基于表示來自接收端點節(jié)點的反饋的路徑數(shù)據(jù)112和預(yù)配置的目標(biāo)延遲114來計算速率,例如本文所公開的。應(yīng)當(dāng)理解,預(yù)配置的目標(biāo)延遲114對于每條相應(yīng)路徑而言可以是相同的,以便于從發(fā)送方到相應(yīng)端點節(jié)點的多路徑數(shù)據(jù)的同步。

每條路徑的編碼流可以進(jìn)而經(jīng)由對應(yīng)的路徑接口110被傳播到網(wǎng)絡(luò)。因此,每個路徑接口110可以經(jīng)由對應(yīng)的通信鏈路耦合到網(wǎng)絡(luò)。因此,每個路徑接口110可以提供用于將相應(yīng)的媒體數(shù)據(jù)流傳送到網(wǎng)絡(luò)的物理層。例如,路徑接口110可以提供用于經(jīng)由通過網(wǎng)絡(luò)的相應(yīng)路徑將媒體數(shù)據(jù)傳送到端點節(jié)點的物理連接(例如,導(dǎo)電鏈路、光纖鏈路)或無線連接(例如,射頻WiFi、WiMax等)。

端點節(jié)點100還可以包括接收反饋計算器116,其被配置為基于從一個或多個其他端點節(jié)點接收到的媒體流數(shù)據(jù)(RCV_MEDIA)來計算反饋。例如,另一端點節(jié)點可以對應(yīng)于節(jié)點100經(jīng)由路徑接口110向其發(fā)送它的媒體流的端點。因此,接收反饋計算器116可以基于從這樣的另一端點節(jié)點接收到的媒體來計算反饋(例如,統(tǒng)計信息),并且進(jìn)而將該反饋發(fā)送到該另一端點節(jié)點——類似于節(jié)點100從該另一端點節(jié)點接收反饋,但是該反饋響應(yīng)于從該另一端點接收到的媒體流。因此,如圖所示,接收反饋計算器116包括路徑接收速率函數(shù)118和接收路徑延遲函數(shù)120。例如,路徑接收速率函數(shù)118可以確定在對應(yīng)的時間段p上從給定路徑(PATH)的另一端點接收數(shù)據(jù)的速率(例如,x_rcv(p,PATH)),如本文所公開的。接收路徑延遲函數(shù)120可以確定平均延遲(例如avg_delay(p,path)),平均延遲表示在給定時間段p上要被接收節(jié)點接收的數(shù)據(jù)分組集合的時間段,例如本文所公開的。

節(jié)點100可以在由路徑接口110中一個或多個提供的媒體流中提供反饋信息(例如,路徑速率和路徑延遲數(shù)據(jù))?;蛘?,端點節(jié)點100可以經(jīng)由其他通信(例如經(jīng)由消息傳送或信令協(xié)議(例如,RTCP消息傳送等))將反饋信息發(fā)送到另一端點節(jié)點。

圖4示出了包括多個源端點節(jié)點152、154和156的網(wǎng)絡(luò)系統(tǒng)150的拓?fù)涞氖纠?,每個源端點節(jié)點152、154和156向?qū)?yīng)的網(wǎng)絡(luò)158提供相應(yīng)的媒體流,示為流1、流2和流3。具體地,源節(jié)點152、154和156中的每一個將其相應(yīng)的流提供給相應(yīng)的網(wǎng)絡(luò)節(jié)點160。網(wǎng)絡(luò)節(jié)點160可以使用路由算法,以進(jìn)而將每個相應(yīng)流的數(shù)據(jù)分組路由到網(wǎng)絡(luò)158內(nèi)實現(xiàn)的一個或多個其他網(wǎng)絡(luò)節(jié)點162。每個網(wǎng)絡(luò)節(jié)點可以被實現(xiàn)為實現(xiàn)非常長的緩存器的路由器,其可能產(chǎn)生針對流的瓶頸鏈路。因此,流共享由節(jié)點160和節(jié)點162提供的瓶頸鏈路,從而可以競爭資源。瓶頸的容量可以固定為帶寬容量,并且路徑具有對應(yīng)的傳播延遲。網(wǎng)絡(luò)節(jié)點162進(jìn)而將相應(yīng)的流提供給接收方端點節(jié)點164。盡管在該示例中示出了三個源端點節(jié)點,但是可以并且通常具有任何數(shù)量的更多(或甚至更少)的節(jié)點。

圖5和圖6示出了圖4的示例系統(tǒng)拓?fù)湓诓煌牟僮鳡顩r下的模擬結(jié)果。在圖5的示例中,系統(tǒng)被配置為使得源端點節(jié)點152和156實現(xiàn)擁塞控制器(例如,參見本文公開的圖1、圖2和圖3)以提供如本文所公開的具有發(fā)送方速率的相應(yīng)流(例如,流1和流3)。另一節(jié)點154提供固定速率UDP流。在該示例中,節(jié)點160處的瓶頸鏈路的容量被設(shè)置為具有約10ms的單向傳播延遲的預(yù)定速率(例如,約2.5Mbps)。節(jié)點154以500kbps的恒定速率提供UDP流量,并且因此充當(dāng)其他流(流1和流3)的背景流量。在該示例中,流1和3的目標(biāo)延遲已設(shè)置為100ms。如圖5在曲線170中所示,來自節(jié)點152和156的兩個流的發(fā)送方速率可以從啟動開始增加,然后收斂到約1Mbps的均衡發(fā)送方速率。流1和流3二者與UDP流一起完全利用瓶頸鏈路的容量(例如,250Mbps)。此外,如曲線172所示,對于每個流的延遲(例如,根據(jù)來自接收方節(jié)點164的反饋所計算的)增加并且穩(wěn)定在大約120ms,這比該示例中的目標(biāo)延遲大了大約20%。

在圖6的示例中,曲線示出了圖4的相同示例系統(tǒng)150在不同的操作狀況(即瓶頸鏈路的容量現(xiàn)在被設(shè)置為4.5Mbps,并且UDP流的速率隨時間變化)下的模擬結(jié)果。例如,在大約t=60秒時,UDP速率從500kbps變化到1Mbps,然后在大約t=120秒時,它變?yōu)?Mbps,最后在大約t=180秒時,它回到500kbps。如圖6所示,曲線180顯示運用了擁塞控制器的實例的兩個流完全利用了可用帶寬。另外,對于流1和3中的每一個,曲線182所示的單向延遲在對變化的網(wǎng)絡(luò)狀況的輕微偏差之后更接近目標(biāo)值。

鑒于上述結(jié)構(gòu)和功能特征,參考圖7將更好地理解示例方法。雖然為了簡化說明,圖7的示例方法被示出和描述為順序執(zhí)行,但是應(yīng)當(dāng)理解和意識到,本示例不限于所示的順序,因為在其他示例中一些動作可以重復(fù),以與本文中所示和所描述的順序不同的順序和/或同時發(fā)生。此外,不必執(zhí)行所有描述的動作來實現(xiàn)方法。方法200可以被實現(xiàn)為存儲在一個或多個非暫時性計算機可讀介質(zhì)中的指令,其可以由一個或多個處理資源(例如,中央處理單元)執(zhí)行。

圖7是示出可以在網(wǎng)絡(luò)中實現(xiàn)的擁塞控制的方法200的示例的流程圖。該方法開始于202,其中為源端點節(jié)點(例如,節(jié)點12或100)設(shè)置目標(biāo)延遲(例如,目標(biāo)延遲26、目標(biāo)延遲64或目標(biāo)延遲114)。目標(biāo)延遲可以是用于在對應(yīng)網(wǎng)絡(luò)中將數(shù)據(jù)分組從發(fā)送方端點傳送到接收端點的預(yù)配置目標(biāo)延遲。在204,可以在源端點節(jié)點處從接收方節(jié)點接收反饋(例如,反饋數(shù)據(jù)28、62或112)。反饋可以包括接收延遲信息,例如對應(yīng)于在給定媒體路徑的接收方處接收的數(shù)據(jù)分組的平均延遲,如本文所公開的。反饋還可以包括接收到的速率信息,例如對應(yīng)于在預(yù)定時間段期間接收到的比特數(shù)。如所提到的,可以存在任何數(shù)量的媒體路徑,并且可以在204處針對每條這樣的路徑接收反饋。

在206,計算價格函數(shù)(例如,通過擁塞控制器22、50或108;和/或通過價格計算器54)。價格函數(shù)可以包括作為接收到的延遲反饋和預(yù)配置的目標(biāo)延遲的函數(shù)來計算的目標(biāo)價格。在一些示例中,價格函數(shù)還可以包括每條路徑的速率均衡價格,例如本文所公開的。在208,基于價格函數(shù)和效用度量來計算發(fā)送速率(例如,通過速率計算器24或78),其可以根據(jù)效用函數(shù)的導(dǎo)數(shù)來確定(例如,通過效用計算器72),例如本文所公開的。在210,可以基于在208處計算的路徑速率來經(jīng)由相應(yīng)路徑發(fā)送媒體數(shù)據(jù)。該方法可以從210返回204,以基于下一更新周期的當(dāng)前反饋來重復(fù)計算速率。

以上描述的是示例。當(dāng)然,不可能描述組件或方法的每個可以想到的組合,但是本領(lǐng)域的普通技術(shù)人員將認(rèn)識到,許多其他組合和置換是可能的。因此,本公開旨在包括落入本申請(包括所附權(quán)利要求)的范圍內(nèi)的所有這樣的改變、修改和變化。如本文所使用的,術(shù)語“包括”是指包括但不限于。術(shù)語“基于”是指至少部分地基于。另外,在本公開或權(quán)利要求記載“一個”、“第一”或“另一”元素或其等同形式的情況下,其應(yīng)當(dāng)被解釋為包括一個或多于一個這樣的元素,既不要求也不排除兩個或更多個這樣的元素。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1