專利名稱:多類別數(shù)據(jù)傳輸?shù)闹谱鞣椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及通過網(wǎng)絡(luò)從發(fā)送機(jī)向接收機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)的方法和裝置。當(dāng)網(wǎng)絡(luò)可能無(wú)法提供期望的服務(wù)質(zhì)量(QoS)時(shí),例如在網(wǎng)絡(luò)擁塞增加期間或當(dāng)發(fā)生網(wǎng)絡(luò)故障時(shí),可采用本發(fā)明的優(yōu)選實(shí)施方式在現(xiàn)有的QoS機(jī)制的基礎(chǔ)上實(shí)現(xiàn)網(wǎng)絡(luò)QoS機(jī)制,以傳輸保證的QoS。發(fā)明背景和現(xiàn)有技術(shù)首先介紹一些基本概念,以幫助理解進(jìn)一步提出的機(jī)制。數(shù)據(jù)包數(shù)據(jù)網(wǎng)絡(luò)通常 將其攜帶的數(shù)據(jù)分成稱為數(shù)據(jù)包的小單元。端點(diǎn)間的實(shí)際通信由各種通信協(xié)議控制。通常,通過例如因特網(wǎng)的網(wǎng)絡(luò)攜帶數(shù)據(jù)所需的各個(gè)通信協(xié)議,需要添加包括使得能夠在端主機(jī)(通常是源主機(jī)和目標(biāo)主機(jī))之間交換數(shù)據(jù)所需的任何信息的報(bào)頭。與因特網(wǎng)相關(guān)地,最常見的數(shù)據(jù)包類型之一包括有效載荷,有效載荷包括的數(shù)據(jù)由在源端運(yùn)行的應(yīng)用生成、由確保數(shù)據(jù)的可靠傳送的傳輸控制協(xié)議(TCP)報(bào)頭進(jìn)行封裝、再由能確保數(shù)據(jù)到達(dá)預(yù)期目標(biāo)主機(jī)的因特網(wǎng)協(xié)議(IP)報(bào)頭進(jìn)行封裝。TCP報(bào)頭包括唯一的序列號(hào)(使得數(shù)據(jù)在目的地得以重建),而IP報(bào)頭包括源主機(jī)和目標(biāo)主機(jī)的IP地址。多路徑傳輸分組網(wǎng)的最初設(shè)計(jì)目的之一是,確保對(duì)于已經(jīng)分割為數(shù)據(jù)包的數(shù)據(jù)而言,各數(shù)據(jù)包在網(wǎng)絡(luò)中采用的路徑并非是關(guān)鍵的,且不必都相同;不管這些問題,最初的消息應(yīng)該能夠在接收機(jī)處(或?qū)τ诮邮諜C(jī))通過以正確的順序重新組合數(shù)據(jù)包而重建。然而,在當(dāng)前所實(shí)現(xiàn)的因特網(wǎng)中,流中的數(shù)據(jù)包通常都沿著同一路徑,除非出現(xiàn)了問題(例如節(jié)點(diǎn)故障等)。在網(wǎng)絡(luò)中存在的多個(gè)路徑因此主要作為一種回彈機(jī)制。關(guān)于向TCP添加多路徑支持,當(dāng)前已經(jīng)進(jìn)行了研究。正如稍后討論的,已經(jīng)提出了各種版本的多路徑傳輸控制協(xié)議,例如下述的:MPTCP、mTCP、pTCP。區(qū)分服務(wù)(以及集成服務(wù))區(qū)分服務(wù)(該術(shù)語(yǔ)指的是“差異化服務(wù)”的概念)是用于流量管理的粗粒度的、基于類的機(jī)制。相反的,集成服務(wù)(“集成化服務(wù)”)是細(xì)粒度的、基于流的機(jī)制。區(qū)分服務(wù)基于流量分類原則運(yùn)行,其中各個(gè)數(shù)據(jù)包被放入有限數(shù)量的流量類別中,而不是基于個(gè)別流的需要來(lái)區(qū)分網(wǎng)絡(luò)流量。網(wǎng)絡(luò)中的各個(gè)路由器被配置為基于其流量類別來(lái)區(qū)分流量??梢圆顒e地管理各個(gè)流量類別,確保優(yōu)先處理穿過網(wǎng)絡(luò)的較高優(yōu)先級(jí)的流量。區(qū)分服務(wù)模型并未包括關(guān)于何種類型流量應(yīng)該給予優(yōu)先處理的預(yù)先判斷;可以由網(wǎng)絡(luò)運(yùn)營(yíng)商做出這樣的判斷。區(qū)分服務(wù)只是提供了架構(gòu),使得能夠分類和區(qū)別化處理。區(qū)分服務(wù)推薦了標(biāo)準(zhǔn)化的流量類別集(如下討論的),以使得不同網(wǎng)絡(luò)和不同供應(yīng)商的設(shè)備之間的互操作性更簡(jiǎn)化。區(qū)分服務(wù)依賴于對(duì)屬于特定類別的數(shù)據(jù)包進(jìn)行分類和標(biāo)記的機(jī)制??勺R(shí)別區(qū)分服務(wù)的路由器實(shí)現(xiàn)了每跳行為(PHB),其限定了與特定流量類別相關(guān)的數(shù)據(jù)包轉(zhuǎn)發(fā)屬性。可限定不同的PHB來(lái)提供例如低損耗、低延時(shí)轉(zhuǎn)發(fā)屬性或“盡最大努力”轉(zhuǎn)發(fā)屬性。屬于同一類別的流過特定路由器的所有流量稱為行為集合(BA)。然而實(shí)際上,大多數(shù)網(wǎng)絡(luò)使用如下通常定義的每跳行為:-“默認(rèn)PHB”-這通常是“盡最大努力(best-effort) ”流量。-“加速轉(zhuǎn)發(fā)(EF) ”PHB- —般專用于低損耗、低延時(shí)流量。-“保證轉(zhuǎn)發(fā)(AF) ” PHB-這確保了在特定情形下的傳送。-“類別選擇器”PHB-定義該“類別選擇器”PHB來(lái)保持與IP優(yōu)先級(jí)字段的后向兼容。TCP帶寬檢測(cè)和擁塞控制標(biāo)準(zhǔn)TCP(稱為TCP Reno)使用基于損耗的擁塞控制。流開始并試圖增加其發(fā)送速率,直到發(fā)生損耗事件;此時(shí)其降低發(fā)送速率。TCP允許兩個(gè)階段:-“慢啟動(dòng)”;以及-“擁塞避免”。TCP流從“慢啟動(dòng)”(也稱作“指數(shù)增長(zhǎng)”階段)開始。在這個(gè)階段,每次從接收機(jī)接收到確認(rèn),TCP擁塞窗口就增大。窗口的大小根據(jù)確認(rèn)的片段(其中每個(gè)片段可以是一個(gè)數(shù)據(jù)包或多個(gè)數(shù)據(jù)包)的數(shù)量而增大。直到注意到針對(duì)某個(gè)片段還沒有接收到確認(rèn)或者直到達(dá)到預(yù)定的閾值為止。如 果發(fā)生損耗事件,TCP假定這是由于網(wǎng)絡(luò)擁塞——然后采取步驟以減少網(wǎng)絡(luò)上提供的負(fù)載。一旦已經(jīng)發(fā)生損耗事件或已經(jīng)達(dá)到閾值,TCP進(jìn)入“擁塞避免”(或“線性增長(zhǎng)”)階段。此時(shí),TCP擁塞窗口針對(duì)每個(gè)往返時(shí)間(RTT)增加一個(gè)片段,直到發(fā)生損耗事件為止。Flash視頻流傳輸Adobe Flash (這兩個(gè)詞語(yǔ)在美國(guó)和/或其它國(guó)家均用作Adobe系統(tǒng)公司的注冊(cè)商標(biāo)或商標(biāo))通常通過從發(fā)送機(jī)向接收機(jī)發(fā)送突發(fā)數(shù)據(jù)直到接收機(jī)緩沖區(qū)滿為止而運(yùn)行。發(fā)送機(jī)然后停止發(fā)送,等待并隨后從其緩沖區(qū)發(fā)送另一個(gè)突發(fā)數(shù)據(jù),直到從接收機(jī)接收到接收緩沖區(qū)再次滿了的指示。在發(fā)送階段,數(shù)據(jù)以比播放率更快的速率傳輸;數(shù)據(jù)通常根據(jù)TCP確定的其速率盡可能快地發(fā)送。
現(xiàn)有技術(shù)已經(jīng)有多種用于多路徑傳輸控制協(xié)議機(jī)制的提案。所有的這些提案用于利用了其中通信設(shè)備具有到多于一個(gè)網(wǎng)絡(luò)的接口的情況的機(jī)制。第一批這些提案中的一個(gè)是 2002 年的 pTCP。可以從互聯(lián)網(wǎng)中如下 URL:http: //www.ece.gatech.edu/research/GNAN/work/ptcp/ptcp.html 的標(biāo)題為 “pTCP:ATransport Layer Protocol for StripedConnections”的網(wǎng)頁(yè)上獲得關(guān)于此的信息。該網(wǎng)頁(yè)上的“綜述”部分內(nèi)容如下:“TCP傳輸層協(xié)議被設(shè)計(jì)為用于穿過發(fā)送機(jī)和接收機(jī)之間的單個(gè)路徑的連接。然而,存在一個(gè)連接可以同時(shí)使用多個(gè)路徑的一些情況。在該項(xiàng)目中,我們考慮支持在多個(gè)路徑上運(yùn)行的條帶化連接的問題。我們提出了稱為PTCP的端到端傳輸層協(xié)議,使得連接可以享用由多路徑提供的總帶寬,而不管這些路徑的個(gè)體特征。通過三個(gè)不同環(huán)境的實(shí)例示出了 pTCP可以具有不同的應(yīng)用范圍:
-多宿主帶寬聚合,_加權(quán)率差異,以及-基于終端系統(tǒng)的網(wǎng)絡(luò)條帶化(striping)?!币呀?jīng)對(duì)選擇多個(gè)類別來(lái)發(fā)送數(shù)據(jù)的應(yīng)用程序做出研究,但這將對(duì)類別的選擇留給了應(yīng)用程序。由M.Fidler和V.Sander在第三屆IEEE集群計(jì)算和網(wǎng)格國(guó)際研討會(huì)(ThirdIEEE International Symposium on Cluster Computing and the Grid, CCGrid> 03)發(fā)表的 “Mult1-class Applications for Parallel Usage of a Guaranteed Rate and aScavenger Service”中概述了一種這樣的提案。例如由J.Border等于2001年6月在RFC3135中已經(jīng)提出了涉及在TCP流內(nèi)使用代理的技術(shù),Performance Enhancing Proxies Intended to Mitigate Link-RelatedDegradations”。這種技術(shù)將TCP流分成實(shí)際上兩個(gè)連續(xù)的流,并用于在衛(wèi)星通信中提升性倉(cāng)泛。參照其它現(xiàn)有技術(shù)文檔,JianpingZou、M.Umit Uyar>Mariusz A.Fecko 和 SunilSamtani 的標(biāo)題為 “Performance evaluation of subflow capable SCTP,,(ComputerCommunications 29(12):2413-2432,2006)的論文討論了流控制傳輸協(xié)議(SCTP)由于其諸如多宿主、多流以及增強(qiáng)的安全性這些特征,如何與UDP和TCP —起成為候選的通用傳輸層協(xié)議,并提出對(duì)SCTP的修改以實(shí)現(xiàn)子流,每個(gè)子流具有它自己的流和擁塞機(jī)制以防止所謂的“偽共享”。應(yīng)該理解,通過其中提出的技術(shù),具有不同QoS需求的流僅僅映射到了不同的路徑上。簡(jiǎn)要的參照國(guó)際專利申請(qǐng)W009017934(硅映電子科技公司(Silicon ImageInc.)),其涉及用于互聯(lián)網(wǎng)中數(shù)據(jù)包級(jí)別優(yōu)先級(jí)的方法和裝置,并具體涉及包括向接收方裝置發(fā)送數(shù)據(jù)流的發(fā)送機(jī)的裝置,數(shù)據(jù)流包括多個(gè)數(shù)據(jù)包,數(shù)據(jù)包包括第一優(yōu)先級(jí)數(shù)據(jù)包和第二優(yōu)先級(jí)數(shù)據(jù)包。 裝置進(jìn)一步包括指導(dǎo)發(fā)送機(jī)操作的“網(wǎng)絡(luò)單元”,網(wǎng)絡(luò)單元配置為將數(shù)據(jù)流分為多個(gè)子流,包括用于第一優(yōu)先級(jí)數(shù)據(jù)包的第一子流和用于第二優(yōu)先級(jí)數(shù)據(jù)包的第二子流。正如將說明的,本發(fā)明的優(yōu)選實(shí)施方式可以利用將單個(gè)流(例如TCP流)分為兩個(gè)或更多個(gè)(TCP)子流的思想,這些子流通常(即,并不是必須的)將經(jīng)過同一路徑,但是不同的子流具有不同的區(qū)分服務(wù)類別,從而能夠在網(wǎng)絡(luò)擁塞期間或其它(潛在的)有問題的網(wǎng)絡(luò)狀況期間提供或確保更好的整體服務(wù)質(zhì)量(QoS)。目前,由于多路徑TCP流可利用多個(gè)網(wǎng)絡(luò)連接將單個(gè)流分為隨后在不同網(wǎng)絡(luò)路徑上發(fā)送的多個(gè)子流,同一 TCP流的數(shù)據(jù)包通常都以相同的QoS類別發(fā)送(或者更準(zhǔn)確的,同一 TCP流的數(shù)據(jù)包通常都被發(fā)送為使得它們經(jīng)歷相同的差分服務(wù)每跳行為)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一個(gè)方面,提供了一種用于控制通過網(wǎng)絡(luò)從發(fā)送機(jī)節(jié)點(diǎn)經(jīng)過至少一個(gè)中間節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)單元流的方法,所述數(shù)據(jù)單元中每個(gè)數(shù)據(jù)單元均具有多種不同類型的類別指示中的與之相關(guān)聯(lián)的一種類型的類別指示,每種類型的類別指示向當(dāng)前正在處理與類別指示相關(guān)聯(lián)的數(shù)據(jù)單元的中間節(jié)點(diǎn)提供了表示特定處理類別的指示,該特定處理類別是根據(jù)中間節(jié)點(diǎn)要處理哪個(gè)數(shù)據(jù)單元而從多個(gè)不同的處理類別中選出的,流的第一比例的數(shù)據(jù)單元被轉(zhuǎn)發(fā)為第一子流,該第一子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,其中每個(gè)數(shù)據(jù)單元均具有第一類型的類別指示,從而提供表示第一處理類別的指示;所述方法包括以下步驟:獲取表示流的進(jìn)度的預(yù)定動(dòng)態(tài)流特性的測(cè)量;基于流特性的測(cè)量以及基于表示流的進(jìn)度的閾值水平的用于流特性的預(yù)定閾值水平,確定由測(cè)量指示的流的進(jìn)度是否在用于流的進(jìn)度的閾值水平界定的預(yù)定范圍內(nèi);
當(dāng)確定由測(cè)量指示的流的進(jìn)度不在預(yù)定范圍內(nèi)時(shí),進(jìn)行如下處理:降低流的隨后從發(fā)送機(jī)節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為第一子流的數(shù)據(jù)單元的比例,并且增加流的隨后從發(fā)送機(jī)節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為第二子流的數(shù)據(jù)單元的比例,第二子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,其中每個(gè)數(shù)據(jù)單元均具有第二類型的類別指示,從而提供表示與所述第一類別處理不同的第二類別處理的指示。應(yīng)該理解,詞語(yǔ)“流的進(jìn)度”可以被理解為指關(guān)于討論中的流的轉(zhuǎn)發(fā)的進(jìn)度。應(yīng)該理解,通常地,與相應(yīng)數(shù)據(jù)單元相關(guān)的類別指示并非是(永久地)“固定不變的例如可以通過更新討論中的數(shù)據(jù)單元的報(bào)頭中的域,由節(jié)點(diǎn)在該節(jié)點(diǎn)向預(yù)期接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)討論中的數(shù)據(jù)單元之前來(lái)改變這些類別指示。正如之后將說明的,利用優(yōu)選的實(shí)施方式,改變使用相應(yīng)子流的數(shù)據(jù)單元的相應(yīng)比例的處理步驟可以包括改變隨后將要轉(zhuǎn)發(fā)的數(shù)據(jù)單元報(bào)頭中給出的類別指示。用于改變使用相應(yīng)子流的數(shù)據(jù)單元的相應(yīng)比例的其它方式也是可能的。各種類別指示可以通過被包括在數(shù)據(jù)單元的報(bào)頭部分中而與它們相應(yīng)的數(shù)據(jù)單元相關(guān),例如被包括在為類別指示或服務(wù)所分配的特定域中。根據(jù)優(yōu)選的實(shí)施方式,獲取預(yù)定動(dòng)態(tài)流特性的測(cè)量的步驟可以包括一個(gè)或多個(gè)下述技術(shù),例如:-從運(yùn)行于或代表發(fā)送機(jī)節(jié)點(diǎn)和接收機(jī)節(jié)點(diǎn)中的一個(gè)或全部?jī)蓚€(gè)的一個(gè)或多個(gè)數(shù)據(jù)緩沖區(qū)中獲取測(cè)量;-通過監(jiān)測(cè)發(fā)送機(jī)和接收機(jī)之間的數(shù)據(jù)傳輸速率獲取測(cè)量,在這種情況下用于流特性的閾值水平是閾值數(shù)據(jù)速率;-通過使用例如顯式擁塞通知的顯式擁塞指示和/或通過例如發(fā)生丟包或延時(shí)的隱式擁塞指示來(lái)監(jiān)控?fù)砣?,以獲取測(cè)量,在這種情況下用于流特性的閾值水平是閾值擁塞水平;-通過監(jiān)測(cè)發(fā)送給發(fā)送機(jī)的用于停止和/或重啟討論中的流的數(shù)據(jù)發(fā)送的指示而獲取測(cè)量,在這種情況下用于流特性的閾值水平可以是接收的指示的閾值速率。應(yīng)該理解獲取預(yù)定動(dòng)態(tài)流特性的測(cè)量的步驟可以由發(fā)送機(jī)節(jié)點(diǎn)自身執(zhí)行、由接收機(jī)節(jié)點(diǎn)執(zhí)行或由運(yùn)行于或代表發(fā)送機(jī)節(jié)點(diǎn)和接收機(jī)節(jié)點(diǎn)中的一個(gè)或全部?jī)蓚€(gè)的實(shí)體(例如代理節(jié)點(diǎn)或管理實(shí)體)來(lái)執(zhí)行,或獨(dú)立的,例如受控于網(wǎng)絡(luò)運(yùn)營(yíng)商。根據(jù)優(yōu)選的實(shí)施方式,基于用于討論中的流特性的至少兩個(gè)預(yù)定閾值水平執(zhí)行所述確定步驟,流特性閾值水平之一是表示流的進(jìn)度的水平被視為不足夠的較低閾值水平,而流特性閾值水平中的另一個(gè)是表示流的進(jìn)度的水平被視為已經(jīng)足夠的較高閾值水平。通過用于流特性的兩個(gè)這種閾值水平,界定的范圍實(shí)質(zhì)上被限定為,在該范圍內(nèi)流的進(jìn)度的當(dāng)前水平可視為足夠的,以使得當(dāng)前不需要改變相應(yīng)子流之間的平衡。例如,可以存在附加的閾值,用于表示需要在多于兩個(gè)的獨(dú)立子流之間重新分配數(shù)據(jù)。有三個(gè)或更多的可能子流時(shí),子流可以是:普通〈= > 較高優(yōu)先級(jí)〈= > 最高優(yōu)先級(jí);較低優(yōu)先級(jí)〈= > 普通〈= > 較高優(yōu)先級(jí);或其它組合。根據(jù)優(yōu)選的實(shí)施方式,改變利用相應(yīng)子流的數(shù)據(jù)單元的相應(yīng)比例的步驟包括設(shè)置關(guān)于隨后的數(shù)據(jù)單元而分配的服務(wù)或者類別指示的不同比例。一般由發(fā)送機(jī)執(zhí)行這一步驟,但也可以由代理或另一個(gè)實(shí)體來(lái)執(zhí)行。為了能夠分配使得當(dāng)數(shù)據(jù)單元在朝向接收機(jī)的路徑上前行時(shí)中間節(jié)點(diǎn)以適當(dāng)不同的處理類別來(lái)處理數(shù)據(jù)單元的指示,這樣的實(shí)體通??梢晕挥谝粋€(gè)或多個(gè)中間節(jié)點(diǎn)的上行路徑上。根據(jù)一些實(shí)施方式,當(dāng)流的在子流上隨后被轉(zhuǎn)發(fā)的數(shù)據(jù)單元的比例降低到零或低于最小水平時(shí),停止 該子流,并且當(dāng)流的在子流上隨后被轉(zhuǎn)發(fā)的數(shù)據(jù)單元的比例從零開始增加或者高于最小水平時(shí)啟動(dòng)該子流。可選的,在一個(gè)或多個(gè)子流未被要求攜帶流的任何比例的數(shù)據(jù)期間,也可以維持該一個(gè)或多個(gè)子流,盡管是處于休眠狀態(tài)或者未使用狀態(tài)。第二子流和第一子流相比可以是較高服務(wù)類別子流,或者和第一子流相比是較低服務(wù)類別子流。任何一種方式,都存在“默認(rèn)”情況,其中使用較低(例如,最大努力)服務(wù)類別子流,而如果發(fā)現(xiàn)流的整體進(jìn)度已經(jīng)變得“不足夠”則僅在較高(例如,保證轉(zhuǎn)發(fā))服務(wù)類別子流中發(fā)送數(shù)據(jù)單元??蛇x的,存在“默認(rèn)”情況,使用較高(例如,保證轉(zhuǎn)發(fā))服務(wù)類別子流,而如果發(fā)現(xiàn)流的整體進(jìn)度已經(jīng)變得“足夠”,則僅在較低(例如,最大努力)服務(wù)類別子流中發(fā)送數(shù)據(jù)單元。正如后面將要理解的,完全不必有默認(rèn)情況-可以有兩個(gè)同樣可用的子流,而根據(jù)當(dāng)前情況在他們之間進(jìn)行分配。此外,如之前指出的,可能有多于兩個(gè)可能的子流,使得在它們之間進(jìn)一步重新平衡。再次,這些子流中的任何一個(gè)都可以是“默認(rèn)”子流,或?qū)嶋H上沒有默認(rèn)子流。根據(jù)優(yōu)選實(shí)施方式的方法可以是:在確定由測(cè)量指示的流進(jìn)度不足夠時(shí),所述處理步驟包括降低流的隨后從發(fā)送機(jī)節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為要由至少一個(gè)中間節(jié)點(diǎn)根據(jù)較低優(yōu)先級(jí)處理類別來(lái)處理的子流的數(shù)據(jù)單元的比例,以及增加流的隨后從發(fā)送機(jī)節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)的要由至少一個(gè)中間節(jié)點(diǎn)根據(jù)較高優(yōu)先級(jí)處理類別來(lái)處理的數(shù)據(jù)單元的比例。另選的,根據(jù)優(yōu)選實(shí)施方式的方法可以是:在確定由測(cè)量指示的所述流的進(jìn)度足夠時(shí),所述處理步驟包括降低流的隨后從發(fā)送機(jī)節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為要由至少一個(gè)中間節(jié)點(diǎn)根據(jù)較高優(yōu)先級(jí)處理類別來(lái)處理的子流的數(shù)據(jù)單元的比例,以及增加流的隨后從發(fā)送機(jī)節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)的要由至少一個(gè)中間節(jié)點(diǎn)根據(jù)較低優(yōu)先級(jí)處理類別來(lái)處理的數(shù)據(jù)單元的比例。處理步驟可以包括在第一子流和兩個(gè)或多個(gè)其它子流中任一個(gè)子流之間重分配流的數(shù)據(jù)單元,每個(gè)其它子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,每個(gè)數(shù)據(jù)單元具有類別指示類型,該類別指示類型提供表示不同處理類別的指示。根據(jù)優(yōu)選的實(shí)施方式,所述方法可以進(jìn)一步包括存儲(chǔ)表示不同子流的使用和/或分別分配給不同子流的數(shù)據(jù)單元的比例的數(shù)據(jù)的步驟,以及隨后據(jù)此確定不同子流的使用和/或分別分配給不同子流的數(shù)據(jù)單元的比例的步驟。根據(jù)本發(fā)明的第二方面,提供了一種用于控制通過網(wǎng)絡(luò)從發(fā)送機(jī)節(jié)點(diǎn)經(jīng)過至少一個(gè)中間節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)單元流的裝置,所述數(shù)據(jù)單元中每個(gè)均具有與之相關(guān)的多種不同類型的類別指示中的其中一個(gè),每種類型的類別指示向當(dāng)前正在處理與類別指示相關(guān)的數(shù)據(jù)單元的中間節(jié)點(diǎn)提供了表示特定處理類別的指示,該特定處理類別是根據(jù)所述中間節(jié)點(diǎn)要處理哪個(gè)數(shù)據(jù)單元而從多個(gè)不同的處理類別中選出的,流的第一比例的數(shù)據(jù)單元被轉(zhuǎn)發(fā)為第一子流,該第一子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,其中每個(gè)數(shù)據(jù)單元均具有第一類型的類別指示,從而提供表示第一類別處理的指示;所述裝置包括:流特性監(jiān)測(cè)器,其能夠操以獲取表示流的進(jìn)度的預(yù)定動(dòng)態(tài)流特性的測(cè)量;流進(jìn)度監(jiān)測(cè)器,其能夠操以基于流特性的測(cè)量以及基于表示用于流的進(jìn)度的閾值水平的用于流特性的預(yù)定閾值水平,確定由測(cè)量指示的流的進(jìn)度是否在用于流的進(jìn)度的所述閾值水平界定的預(yù)定范圍內(nèi);子流控制器,其能夠操以當(dāng)確定由測(cè)量指示的流進(jìn)度不在預(yù)定范圍內(nèi)時(shí),進(jìn)行如下處理:降低流的隨后從發(fā)送機(jī)節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為第一子流的數(shù)據(jù)單元的比例,并且增加流的隨后從發(fā)送機(jī)節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為第二子流的數(shù)據(jù)單元的比例,第二子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,其中每個(gè)數(shù)據(jù)單元均具有第二類型的類別指示,從而提供表示與第一類別處理不同的第二類別處理的指示。上面提到的與第一方面相關(guān)的各種選項(xiàng)和優(yōu)選實(shí)施方式還適用于第二方面。
現(xiàn)在將參照附圖描述本發(fā)明的優(yōu)選實(shí)施方式,其中:圖1是例示發(fā)送機(jī)和接收機(jī)之間多類別數(shù)據(jù)流的示意圖;圖2是示出根據(jù)本發(fā)明的實(shí)施方式由接收機(jī)執(zhí)行的通過網(wǎng)絡(luò)從發(fā)送機(jī)接收流數(shù)據(jù)的步驟的流程圖; 圖3是示出根據(jù)本發(fā)明的實(shí)施方式由發(fā)送機(jī)執(zhí)行的通過網(wǎng)絡(luò)將數(shù)據(jù)流向接收機(jī)的步驟的流程圖;以及圖4是示出由接收機(jī)執(zhí)行的步驟的流程圖,例示了可以與例如參考圖2和圖3描述的那些實(shí)施方式相關(guān)地使用的增強(qiáng)。本發(fā)明優(yōu)選實(shí)施方式說明參考圖1至圖4,將描述根據(jù)各個(gè)實(shí)施方式的方法和裝置。圖1例示了使得端到端數(shù)據(jù)流能通過兩個(gè)計(jì)算機(jī)或其它這種用戶終端(可以稱為“計(jì)算機(jī)A” 11和“計(jì)算機(jī)B” 19)之間的數(shù)據(jù)通信路徑。它們通過具有多個(gè)中間路由器15的網(wǎng)絡(luò)10相連接。為了簡(jiǎn)化描述,如下的說明關(guān)于計(jì)算機(jī)A僅僅用作數(shù)據(jù)發(fā)送機(jī),而計(jì)算機(jī)B僅僅用作數(shù)據(jù)接收機(jī)的情形。但是應(yīng)該理解,兩個(gè)計(jì)算機(jī)實(shí)際上可以執(zhí)行到/從彼此和其它終端的發(fā)送和接收功能。計(jì)算機(jī)A通過網(wǎng)絡(luò)附屬節(jié)點(diǎn)(network attachment node) 13連接到網(wǎng)絡(luò)10。計(jì)算機(jī)B也通過網(wǎng)絡(luò)附屬節(jié)點(diǎn)17連接到網(wǎng)絡(luò)。網(wǎng)絡(luò)附屬節(jié)點(diǎn)13和17可以僅作為附屬點(diǎn),通過這些附屬點(diǎn)計(jì)算機(jī)11和19可以連接到網(wǎng)絡(luò)。它們還可以作為與那些中間路由器15具有相似路由功能的路由器。可選的或另外的,它們還可以用作用于其各自計(jì)算機(jī)11和19的代理節(jié)點(diǎn),如下面說明的,代表計(jì)算機(jī)11和19執(zhí)行附加功能。應(yīng)當(dāng)注意,每個(gè)計(jì)算機(jī)能夠通過多于一個(gè)網(wǎng)絡(luò)附屬節(jié)點(diǎn)同時(shí)或不同時(shí)訪問網(wǎng)絡(luò),且多于一個(gè)計(jì)算機(jī)能夠通過同一網(wǎng)絡(luò)附屬節(jié)點(diǎn)訪問網(wǎng)絡(luò)。計(jì)算機(jī)A被示出為具有相關(guān)的“發(fā)送”緩沖區(qū)14A,在緩沖區(qū)14A中可以在發(fā)送之前持有流向計(jì)算機(jī)B的數(shù)據(jù)。相應(yīng)的,計(jì)算機(jī)B被示出為具有相關(guān)的“接收”緩沖區(qū)14B,從計(jì)算機(jī)A流出的數(shù)據(jù)到達(dá)緩沖區(qū)14B。這些緩沖區(qū)的重要性將在下面進(jìn)行說明,但應(yīng)該注意每個(gè)緩沖區(qū)被示為具有其總?cè)萘康?%至100%之間的當(dāng)前“填充水平”(緩沖區(qū)14A為Fa,緩沖區(qū)14B為Fb),并且具有兩個(gè)閾值,一個(gè)低閾值(緩沖區(qū)14A為TAa,緩沖區(qū)14B為TBa)以及一個(gè)高閾值(緩沖區(qū)14A為Ta,H,緩沖區(qū)14B為Tb,H)。如下面將要理解的,在本發(fā)明某些實(shí)施方式中可以存在這些緩沖區(qū)任意一個(gè)或者兩者都存在。如果確實(shí)存在,它們可以存在于計(jì)算機(jī)A和B中的其中一個(gè)內(nèi)或者兩者內(nèi),或者例如存在于諸如代理節(jié)點(diǎn)、網(wǎng)絡(luò)附屬節(jié)點(diǎn)或代理各個(gè)計(jì)算機(jī)的專用緩沖區(qū)實(shí)體的實(shí)體中,但是,由于本發(fā)明的某些實(shí)施方式普遍地利用了在現(xiàn)有流技術(shù)中存在的功能,另選的實(shí)施方式也可以根本不需要這些這些緩沖區(qū)作為其特定功能的一部分,但是實(shí)際上可以以其它方式實(shí)現(xiàn)。關(guān)于網(wǎng)絡(luò)10,應(yīng)該注意到計(jì)算機(jī)A和計(jì)算機(jī)B之間可以存在可能為不同類型或由不同網(wǎng)絡(luò)提供商或其它實(shí)體運(yùn)行的多個(gè)互聯(lián)的網(wǎng)絡(luò)10a、IOb等(用虛線“云”符號(hào)示出),而不是單個(gè)同質(zhì)的、統(tǒng)一控制的網(wǎng)絡(luò)。但是為了說明,通常視其為單個(gè)網(wǎng)絡(luò)10。計(jì)算機(jī)A和計(jì)算機(jī)B之間的數(shù)據(jù)流用一條或多條總體用參考符號(hào)12a、12b、12c標(biāo)記的線來(lái)表示。如下面將說明的,計(jì)算機(jī)A和計(jì)算機(jī)B之間的“總流”(將用通用參考符號(hào)12表示)可以有時(shí)僅包括一個(gè)子流(例如只有子流12a,或只有子流12b),或者可以包括多個(gè)這種子流中的兩個(gè)或多個(gè),示出了三個(gè)子流(12a、12b、12c)。其中一個(gè)子流,例如子流12a,可以作為“默認(rèn)”子流,默認(rèn)用于計(jì)算機(jī)A和計(jì)算機(jī)B之間流動(dòng)的總流12的數(shù)據(jù),在這種情況下,可能僅在特定環(huán)境中偶爾使用其它子流??蛇x的,可以沒有“默認(rèn)”子流-子流12a、12b、12c中的任一或任意一個(gè)可以在不同時(shí)刻用于計(jì)算機(jī)A和計(jì)算機(jī)B之間流動(dòng)的流12的數(shù)據(jù)。為了簡(jiǎn)化下述解釋,下述說明的 大部分涉及存在兩個(gè)可能的子流(子流12a和子流12b),其中第一個(gè)(子流12a)是默認(rèn)子流,而其中第二個(gè)是具有不同的、“較高優(yōu)先級(jí)”QoS類別的子流的情況,但應(yīng)該注意的是,實(shí)施方式并不僅限于這一情況。默認(rèn)子流可以是具有“較高優(yōu)先級(jí)” QoS類別的子流,或者如上面所述的,子流是可以互換的,也可以都不作為“默認(rèn)子流”。此外,在當(dāng)前沒有使用一個(gè)或多個(gè)子流期間,這些子流可以停止,并且當(dāng)需要時(shí)再次啟動(dòng)或用新的子流代替,或者在當(dāng)前沒有正在被使用時(shí),這些子流可以保持存在但是是不活動(dòng)的。通過將要描述的實(shí)施方式,流包括多個(gè)可能子流中一個(gè)或多個(gè)子流的目的在于,如果具有低區(qū)分服務(wù)QoS類別的子流不能夠?yàn)榭偭魈峁┢谕腝oS,可以獲得具有更優(yōu)QoS類別(即具有更優(yōu)或較高優(yōu)先級(jí)區(qū)分服務(wù)每跳行為)的子流。優(yōu)選實(shí)施方式利用了這樣的事實(shí):在一段時(shí)間內(nèi)(即非高峰期),網(wǎng)絡(luò)通常未得到充分利用,因此用戶體驗(yàn)的與總流相關(guān)的QoS可以通過使用TCP流來(lái)實(shí)現(xiàn),其中用低QoS類別(例如最大努力,或BE類別)來(lái)發(fā)送單個(gè)數(shù)據(jù)包??赡軆H當(dāng)發(fā)生擁塞時(shí),在高峰期間,需要用較高QoS類別來(lái)發(fā)送單個(gè)數(shù)據(jù)包,以確保用戶體驗(yàn)的與總流相關(guān)的QoS維持在滿意的程度。進(jìn)一步的,由于擁塞并不一定嚴(yán)格對(duì)應(yīng)于使用的高峰期間,只是在整個(gè)高峰期間以較高區(qū)分服務(wù)QoS類別來(lái)發(fā)送所有的數(shù)據(jù)包可能是浪費(fèi)的或代價(jià)較高;相反,在非高峰期作為BE數(shù)據(jù)包發(fā)送的數(shù)據(jù)包仍然可能遭遇擁塞。通常,網(wǎng)絡(luò)服務(wù)提供商(ISP)對(duì)于發(fā)送用除BE外其它進(jìn)行標(biāo)記的數(shù)據(jù)包進(jìn)行額外收費(fèi),因此發(fā)送機(jī)可以從僅當(dāng)必要時(shí)以較高QoS類別發(fā)送數(shù)據(jù)包以維持與總流或流相關(guān)的所需QoS水平中獲益。鑒于以上所述,對(duì)每個(gè)已設(shè)置的TCP流(可能的)建立至少兩個(gè)子流:例如,一個(gè)“最大努力”子流,以及使用例如確保轉(zhuǎn)發(fā)(AF)每跳行為之一的一個(gè)較高QoS類別子流。如之前指出的,實(shí)施方式并不僅限于具有這樣兩個(gè)類別的子流-例如,可能是分別具有不同AF PHB的子流。為了例示優(yōu)選實(shí)施方式的功能,考慮兩個(gè)子流示例通常就足夠了,因?yàn)檫@使得不同比例的數(shù)據(jù)包可以在不同時(shí)間在兩個(gè)子流上發(fā)送??梢砸愿鞣N方式、在各種不同位置或網(wǎng)絡(luò)實(shí)體中實(shí)現(xiàn)不同的實(shí)施方式,例如如下情況:1、在操作系統(tǒng)中2、作為套接字層之上的應(yīng)用程序接口(API),以使得應(yīng)用程序能選擇它們?nèi)绾螖U(kuò)散數(shù)據(jù)3、作為終端系統(tǒng)上的改變一些數(shù)據(jù)包的類別的網(wǎng)絡(luò)過濾器4、作為本地代理5、作為網(wǎng)絡(luò)代理通過套接字層上的API,有用于單獨(dú)出現(xiàn)在應(yīng)用程序的流的選項(xiàng),以使得應(yīng)用程序可以決定在哪個(gè)子流上使用或給予優(yōu)選的優(yōu)先級(jí)。如果沒有擁塞,則所有的流量都作為BE同樣發(fā)送。然而,如果有擁塞,可以區(qū)別發(fā)送一些流量。將在后面討論如何使用API以及如何使用代理。之前已經(jīng)描述了“Flash”視頻如何可以使用“發(fā)送”和“接收”側(cè)的緩沖區(qū),并且如何從發(fā)送機(jī)向接收機(jī)發(fā)送突發(fā)數(shù)據(jù)??梢允褂脙?yōu)選實(shí)施方式(可以被設(shè)置為適于結(jié)合行為類似“Flash”視頻的流應(yīng)用程序使用)來(lái)避免或減少接收緩沖區(qū)為空的可能性。存在接收緩沖區(qū)的事實(shí)通常意味著啟動(dòng)流以及響應(yīng)擁塞的選項(xiàng)更為簡(jiǎn)單:可以遵守標(biāo)準(zhǔn)TCP算法。在交互流量的情況下(例如IP電話(即VoIP)),可能需要引入其它測(cè)量來(lái)確保維持發(fā)送率。如上所述的,在圖1中,示出了在計(jì)算機(jī)A和計(jì)算機(jī)B之間的三個(gè)子流(12a、12b、12c)。然而下面的描述將僅集中于其中兩個(gè),即,較低優(yōu)先級(jí)“第I類別”子流12a(在這種情況下為“最大努力(BE)”子流)以及較高優(yōu)先級(jí)“第2類別”子流12b (在這種情況下屬于區(qū)分服務(wù)術(shù)語(yǔ)中的“確保轉(zhuǎn)發(fā)(AF)”類別)。在該示例中,較低優(yōu)先級(jí)子流12a被視為“默認(rèn)”子流。例如當(dāng)網(wǎng)絡(luò)足以擁塞到對(duì)最大努力子流產(chǎn)生非常不利的影響,以至于將流的總進(jìn)度影響到涉及的終端用戶(即,發(fā)送機(jī)和接收機(jī))其中之一或雙方都認(rèn)為是可能不能接受的程度時(shí),可以按如下所述的方式使用較高優(yōu)先級(jí)子流12b。應(yīng)該指出的是,用于兩個(gè)子流12a、12b的路由器表示為相同的。這是通常的情況,但是單個(gè)路由器可以靈活地用不同的方式來(lái)路由流量,與它們?cè)谳^低優(yōu)先級(jí)子流12a中處理數(shù)據(jù)包不同地(并且通常是比在較低優(yōu)先級(jí)子流12a中處理數(shù)據(jù)包更優(yōu)地),通常僅期望他們?cè)谳^高優(yōu)先級(jí)子流12b中處理數(shù)據(jù)包(例如通過具有更短的隊(duì)列)。優(yōu)選實(shí)施方式描述 圖2示出了優(yōu)選實(shí)施方式,其中默認(rèn)使用一個(gè)“標(biāo)準(zhǔn)”類別(例如最大努力)子流,且其中可以創(chuàng)建一個(gè)更高類別的附加子流(由此依從的路由器可以以更高的優(yōu)先級(jí)來(lái)處理該附加子流的數(shù)據(jù)包)。該實(shí)施方式涉及“流傳輸”的情形,其中接收機(jī)在播放數(shù)據(jù)之前緩沖數(shù)據(jù)。需要總流的數(shù)據(jù)速率足夠以保持接收機(jī)的緩存區(qū)在流進(jìn)程中至少部分地被填充。為了啟動(dòng)流傳輸,通過使用默認(rèn)子流發(fā)送數(shù)據(jù)來(lái)啟動(dòng)總流(步驟20)。然后可以使用各種不同的子程序,每個(gè)子程序返回到“監(jiān)測(cè)速率”時(shí)刻(步驟21),每個(gè)子程序本身可以用各種不同的方式實(shí)現(xiàn)。在這一示例中,可以僅僅通過監(jiān)測(cè)接收機(jī)處的緩沖區(qū)14B的填充水平Fb,以及將其與閾值“低”(Tb,J以及“高”(TB,H)中的一個(gè)或兩個(gè)比較來(lái)監(jiān)測(cè)速率,目的是將填充水平保持在這兩個(gè)閾值之間。此后將討論監(jiān)控速率的其它方式。最初,一旦啟動(dòng)流傳輸,可能發(fā)現(xiàn)水平高于低閾值(步驟22),以及發(fā)現(xiàn)水平低于高閾值(步驟23),這種情況下子程序返回步驟21。在某些時(shí)刻,例如可能由于高峰期間的擁塞或由于網(wǎng)絡(luò)故障,發(fā)現(xiàn)緩沖區(qū)的水平下降到低閾值之下(步驟22),這種情況下通過步驟24和25繼續(xù)進(jìn)行處理(通常為一次),接著(至少暫時(shí))通過如下步驟21、22、24和26。如果已知或已確定之前尚未啟動(dòng)較高類別的子流(步驟24),則將啟動(dòng)比現(xiàn)有子流更高QoS類別的新子流(步驟25),且將總流中隨后的流量分開在兩個(gè)子流中??梢杂山邮諜C(jī)請(qǐng)求兩個(gè)子流之間的切分,接收機(jī)通常能夠監(jiān)測(cè)自身的緩沖區(qū),然后發(fā)送機(jī)借助其向一些數(shù)據(jù)單元分配標(biāo)記以使得這些數(shù)據(jù)單 元能夠被單個(gè)路由器作為較高優(yōu)先級(jí)數(shù)據(jù)包來(lái)處理來(lái)處理請(qǐng)求。后面將討論在子流之間分割數(shù)據(jù)中進(jìn)行調(diào)整的其它方式。隨著流傳輸?shù)睦^續(xù),監(jiān)測(cè)緩沖區(qū)。如果緩沖區(qū)保持低于低閾值(再次當(dāng)進(jìn)程通過步驟22時(shí)確定的),接收機(jī)可以請(qǐng)求用較高類別的子流來(lái)發(fā)送更大比例的數(shù)據(jù)(步驟26),因此在較低類別子流中發(fā)送更少的數(shù)據(jù)。如果緩沖區(qū)返回到兩個(gè)閾值之間的水平,方法回復(fù)到步驟21、22以及23。然而如果發(fā)現(xiàn)緩沖區(qū)超過了高閾值(步驟23),接收機(jī)可以接著請(qǐng)求發(fā)送機(jī)在較高類別子流上發(fā)送更少的數(shù)據(jù)(步驟27)。最終這將導(dǎo)致沒有數(shù)據(jù)分配給較高類別子流。然后未使用的較高類別子流可以被留下直到超時(shí),或者可以被維持為休眠子流。獲取對(duì)流進(jìn)度的測(cè)量的其他方式在如上的實(shí)施方式中,如圖2所示,通過監(jiān)測(cè)接收機(jī)的緩沖區(qū)14B的水平來(lái)獲取對(duì)流進(jìn)度的測(cè)量。從有關(guān)圖3的如下說明中可以理解,可以通過監(jiān)測(cè)發(fā)送機(jī)的緩沖區(qū)14A來(lái)替代地獲取進(jìn)度的測(cè)量。對(duì)于任意一種方式,意在將緩沖區(qū)保持在給定的(優(yōu)選)界定范圍內(nèi),從而使得接收機(jī)的應(yīng)用程序和/或其緩沖區(qū)既不會(huì)缺少數(shù)據(jù)也不會(huì)溢出。監(jiān)測(cè)發(fā)送機(jī)和/或接收機(jī)的緩沖區(qū)水平的一些可能的替代方式包括:-直接測(cè)量數(shù)據(jù)速率,即確保數(shù)據(jù)速率本身維持在低速率閾值和高速率閾值之間;-例如通過顯式的擁塞通知(ECN)、通過丟棄的數(shù)據(jù)包或者通過延時(shí)計(jì)算來(lái)檢測(cè)擁塞。如下所述是另一個(gè)替代方式,涉及其中使用例如“Flash”視頻中使用的緩沖區(qū)的接收緩沖區(qū)的實(shí)施方式,可以使用的該另一個(gè)替代方式。如之前解釋的,這樣的流傳輸技術(shù)以突發(fā)的方式運(yùn)行,接收機(jī)的緩沖區(qū)被填充直到其達(dá)到預(yù)定的高水平,此時(shí)向發(fā)送機(jī)發(fā)送請(qǐng)求以停止發(fā)送數(shù)據(jù)。然后,一旦接收機(jī)的緩沖區(qū)降低到低于預(yù)定的低閾值,向發(fā)送機(jī)發(fā)送請(qǐng)求以再次開始發(fā)送數(shù)據(jù)。通過這種實(shí)施方式,并非是監(jiān)測(cè)緩沖區(qū)水平本身,可以監(jiān)測(cè)請(qǐng)求停止和/重新開始發(fā)送的請(qǐng)求的頻率,并且被用來(lái)確定是否需要較高的類別或者是否當(dāng)前使用的較高的類別實(shí)際上并不需要。請(qǐng)求停止發(fā)送數(shù)據(jù)的少量請(qǐng)求(或者根本沒有請(qǐng)求)可以被視為指示速率太低。請(qǐng)求停止發(fā)送數(shù)據(jù)的高數(shù)量的請(qǐng)求可以被視為指示速率太高、不需要當(dāng)前使用的較高類別流或者可以降低子流上的數(shù)據(jù)速率。調(diào)節(jié)發(fā)送速率的可選方式可以由發(fā)送機(jī)以各種方式控制對(duì)發(fā)送速率的調(diào)節(jié),例如:-通過到接收機(jī)的顯式消息(將其與當(dāng)發(fā)送數(shù)據(jù)時(shí)如何控制Flash播放器進(jìn)行比較)-通過改變TCP確認(rèn)中的接收窗口。發(fā)送機(jī)側(cè)的實(shí)現(xiàn)圖3示出了在不依賴于接收機(jī)監(jiān)測(cè)其緩沖區(qū)并據(jù)此發(fā)送請(qǐng)求的情況下,數(shù)據(jù)發(fā)送機(jī)如何控制附加子流的創(chuàng)建和使用。相反,發(fā)送機(jī)監(jiān)測(cè)其自身的“發(fā)送緩沖區(qū)”。根據(jù)與參考圖2描述的“接收側(cè)實(shí)現(xiàn)”相關(guān)所示的步驟相似的步驟來(lái)執(zhí)行該方法,并且根據(jù)圖3的方法的步驟30、31、34和35可以嚴(yán)格地對(duì)應(yīng)于關(guān)于圖2如上所述的方法的步驟20、21、24和25。有鑒于步驟32中,監(jiān)測(cè)的是發(fā)送機(jī)的緩沖區(qū)14A(而不是接收機(jī)的緩沖區(qū)14B),步驟32和33與圖2中的步驟22和23不同。如果發(fā)現(xiàn)緩沖區(qū)的填充水平Fa已經(jīng)升高到高于高閾值(TA, H),通過步驟34和35 (通常一次)執(zhí)行進(jìn)程,然后(至少暫時(shí)的)通過步驟31、32、34和36,從而使得更高比例的發(fā)送數(shù)據(jù)(至少暫時(shí)的)使用較高類別的子流來(lái)發(fā)送。應(yīng)該注意到,步驟36涉及實(shí)際上增加較高類別子流的速率并減少較低類別子流的速率,而不是如同圖2的接收機(jī)側(cè)實(shí)現(xiàn)中發(fā)生的關(guān)于此僅僅提交請(qǐng)求。這是由于發(fā)送機(jī)是對(duì)為要發(fā)送的數(shù)據(jù)單元分配標(biāo)記進(jìn)行控制的實(shí)體,這些標(biāo)記確定由單個(gè)路由器在到接收機(jī)的路徑上處理的數(shù)據(jù)單元的優(yōu)先級(jí) ,與僅僅能夠關(guān)于使用較低類別和較高類別子流發(fā)送的數(shù)據(jù)單元的相應(yīng)比例做出請(qǐng)求的接收機(jī)(在圖2的方法中)相反。如同圖2的方法,目的通常是將相關(guān)緩沖區(qū)的填充水平保持在(或?qū)⑾嚓P(guān)緩沖區(qū)的填充水平恢復(fù)到)“低”閾值和“高”閾值之間的范圍內(nèi)。如果發(fā)現(xiàn)該水平已經(jīng)高于適用閾值,采用涉及步驟34、35和36的上述子程序來(lái)降低該水平。如果,由于該子程序或其它原因(例如網(wǎng)絡(luò)狀況變化),在某一時(shí)刻發(fā)現(xiàn)緩沖區(qū)已經(jīng)降低到低于低閾值(TAa)(步驟33),發(fā)送機(jī)接著可以降低較高類別子流上的速率并(相應(yīng)的)增加較低類別子流上的速率(步驟 37)。發(fā)送機(jī)和接收機(jī)分割功能可以在發(fā)送機(jī)和接收機(jī)之間劃分該功能。例如,接收機(jī)可以決定何時(shí)需要?jiǎng)?chuàng)建新的子流,并通過向發(fā)送機(jī)發(fā)送適當(dāng)?shù)恼?qǐng)求或指示啟動(dòng)創(chuàng)建,而發(fā)送機(jī)可以確定在各個(gè)子流上要發(fā)送的數(shù)據(jù)的相應(yīng)比例。例如當(dāng)接收機(jī)有防火墻保護(hù)的情況下,這可能是必須的,因?yàn)榘l(fā)送機(jī)可能無(wú)法啟動(dòng)新流的創(chuàng)建。將先前狀態(tài)考慮在內(nèi)現(xiàn)在將描述可能的提升,可以使用這種可能的提升以使得實(shí)施方式考慮到何時(shí)啟動(dòng)流或者在一段不活動(dòng)時(shí)間之后何時(shí)重啟動(dòng)流這些先前狀態(tài)。這包括記錄關(guān)于先前流的狀態(tài)(即先前使用的是否是較低類別子流、較高類別子流或兩者(或附加流);單個(gè)子流之間的平衡等)。這在當(dāng)網(wǎng)絡(luò)已經(jīng)擁塞時(shí)(在先前的監(jiān)測(cè)中已經(jīng)發(fā)現(xiàn)擁塞)啟動(dòng)流的情形中是有用的。圖4例示了可能涉及的額外步驟。給出的下面的說明涉及諸如參照?qǐng)D2描述的“接收側(cè)監(jiān)測(cè)”,但也同樣適用于諸如參照?qǐng)D3(以及其他實(shí)施方式)描述的“發(fā)送側(cè)監(jiān)測(cè)”,并且涉及這樣一種實(shí)施方式:具有單個(gè)較低類別子流作為其“默認(rèn)子流”,當(dāng)需要或必要時(shí)能夠使用可能的較高類別子流(盡管如先前解釋的,可以為不同的默認(rèn)狀態(tài)或沒有特定的默認(rèn)狀態(tài))。在啟動(dòng)或重啟流時(shí)(步驟400),檢查是否可獲得任何相關(guān)的“最近歷史”(即關(guān)于來(lái)自正在討論的接收機(jī)的和/或到正在討論的發(fā)送機(jī)的流的先前狀態(tài)的信息)(步驟402)。如果發(fā)現(xiàn)(步驟404)最近沒有使用較高類別的子流,方法通過步驟406繼續(xù)進(jìn)行(默認(rèn)的)較低類別子流。另一方面,如果發(fā)現(xiàn)(步驟404)最近使用了較高類別子流以及(默認(rèn)的)較低類別子流,方法通過步驟408啟動(dòng)較高類別子流和(默認(rèn)的)較低類別子流而繼續(xù)。從步驟410開始通過其基本的監(jiān)測(cè)子程序方法可以繼續(xù)進(jìn)行,包括監(jiān)測(cè)接收機(jī)緩沖區(qū)的水平。如果發(fā)現(xiàn) 該水平(步驟420和430)位于預(yù)定的低閾值和高閾值之間,表示流進(jìn)度當(dāng)前被視為可接受的,不改變較低類別子流和較高類別子流之間的平衡(記住在這些子流中的一個(gè)子流或其它子流上可能沒有數(shù)據(jù))。如果在某一時(shí)刻發(fā)現(xiàn)(步驟420)接收機(jī)的緩沖區(qū)水平高于高閾值,從而表示數(shù)據(jù)比請(qǐng)求的或需要的更快到達(dá),可以確定(步驟422)這些數(shù)據(jù)中的一些數(shù)據(jù)是否正在通過較高類別子流到達(dá)。如果是,可以請(qǐng)求較低比例的數(shù)據(jù)通過較高類別子流來(lái)發(fā)送。另一方面,如果在某一時(shí)刻發(fā)現(xiàn)(步驟430)接收機(jī)的緩沖區(qū)的水平低于低閾值,從而表示數(shù)據(jù)沒有所請(qǐng)求的或需要的那么快到達(dá),可以確定(步驟432)是否存在較高類別子流。如果存在,方法直接進(jìn)行到步驟435。否則,在進(jìn)行到步驟435之前,可以啟動(dòng)較高類別子流(步驟434),其中在步驟435中請(qǐng)求(較高)比例的數(shù)據(jù)通過較高類別子流來(lái)發(fā)送。請(qǐng)求改變以從較高類別子流向較低類別子流重新分配數(shù)據(jù)(即通過步驟425),或從較低類別子流向較高類別子流重新分配數(shù)據(jù)(通過步驟435),進(jìn)程接著前進(jìn)到步驟437,在步驟437中在返回到步驟410的基本監(jiān)測(cè)子程序之前存儲(chǔ)當(dāng)前狀態(tài)(即通過較低類別子流或較高類別子流發(fā)送的流的相應(yīng)比例)。在步驟437存儲(chǔ)的任何信息可以之后用于隨后的流啟動(dòng)或重啟之后的步驟402中。存儲(chǔ)之后,當(dāng)然需要考慮到時(shí)間量例如通過采取指數(shù)加權(quán)移動(dòng)平均來(lái)理解存儲(chǔ)的數(shù)據(jù)。防止在不同的(子)流之間震蕩在一些情況下,防止在相應(yīng)子流上發(fā)送的比例的快速震蕩是有益的。這可以例如通過限制相應(yīng)的分配多久變化一次,或者通過限制在每個(gè)時(shí)間單位(或在每個(gè)往返時(shí)間)變化的程度來(lái)實(shí)現(xiàn)。當(dāng)然如果需要也可以使用其它方法來(lái)防止震蕩。擴(kuò)展的套接字API如前面所建議的,實(shí)現(xiàn)本發(fā)明的實(shí)施方式的一種方法是作為套接字層上的API。這可以提供更好的靈活性。使得應(yīng)用程序能夠給流的不同部分分配優(yōu)先級(jí)。例如,可以通過AF子流發(fā)送數(shù)據(jù)的第一部分,以使得其率先到達(dá)。例如第一片段可以利用AF發(fā)送,同時(shí)第三片段利用BE發(fā)送。第二片段然后利用AF發(fā)送同時(shí)第四利段利用BE發(fā)送??蛇x的,可以將某些流量指定為“必要的”而某些指定為“可選的”。例如,在MPEG流中的I幀利用AF發(fā)送,B幀和P幀利用BE發(fā)送。I幀可以被傳送給接收的應(yīng)用程序,以使得如果B幀和P幀沒有及時(shí)傳送,視頻可以無(wú)凍結(jié)地播出,盡管以降低的幀速率。代理雖然上述說明一般地描述了其中發(fā)送機(jī)和/或接收機(jī)進(jìn)行監(jiān)控和/或子流重新平衡操作的實(shí)施方式,應(yīng)該理解代理可以實(shí)現(xiàn)上述之一或兩者。這些代理例如可以位于圖1中的相應(yīng)網(wǎng)絡(luò)附屬節(jié)點(diǎn)13和17處。代理可以通過檢查確認(rèn)(“ack”)流而跟蹤流的擁塞。接著據(jù)此可以針對(duì)流中的 某特定部分?jǐn)?shù)據(jù)包從BE到AF重新標(biāo)記數(shù)據(jù)包。
權(quán)利要求
1.一種用于控制通過網(wǎng)絡(luò)從發(fā)送機(jī)節(jié)點(diǎn)經(jīng)過至少一個(gè)中間節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)單元流的方法,所述數(shù)據(jù)單元中的每個(gè)數(shù)據(jù)單元均具有多種不同類型的類別指示中的與之相關(guān)聯(lián)的一種類型的類別指示,每種類型的類別指示向當(dāng)前正在處理與所述類別指示相關(guān)聯(lián)的所述數(shù)據(jù)單元的中間節(jié)點(diǎn)提供了表示特定處理類別的指示,該特定處理類別是根據(jù)所述中間節(jié)點(diǎn)要處理哪個(gè)所述數(shù)據(jù)單元而從多個(gè)不同的處理類別中選出的,所述流的第一比例的數(shù)據(jù)單元被轉(zhuǎn)發(fā)為第一子流,該第一子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,其中每個(gè)數(shù)據(jù)單元均具有第一類型的類別指示,從而提供表示第一處理類別的指示;所述方法包括以下步驟: 獲取表示所述流的進(jìn)度的預(yù)定動(dòng)態(tài)流特性的測(cè)量; 基于所述流特性的所述測(cè)量以及基于表示所述流的進(jìn)度的閾值水平的用于所述流特性的預(yù)定閾值水平,確定由所述測(cè)量指示的所述流的進(jìn)度是否在用于所述流的進(jìn)度的所述閾值水平界定的預(yù)定范圍內(nèi); 當(dāng)確定由所述測(cè)量指示的所述流的進(jìn)度不在所述預(yù)定范圍內(nèi)時(shí),進(jìn)行如下處理:降低所述流的隨后從所述發(fā)送機(jī)節(jié)點(diǎn)向所述接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為所述第一子流的數(shù)據(jù)單元的比例,并且增加所述流的隨后從所述發(fā)送機(jī)節(jié)點(diǎn)向所述接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為第二子流的數(shù)據(jù)單元的比例,所述第二子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,其中每個(gè)數(shù)據(jù)單元均具有第二類型的類別指示,從而提供表示與所述第一類別處理不同的第二類別處理的指示。
2.如權(quán)利要求1所述的方法,其中獲取所述預(yù)定動(dòng)態(tài)流特性的測(cè)量的步驟包括:從運(yùn)行于或代表所述發(fā)送機(jī)節(jié)點(diǎn)和所述接收機(jī)節(jié)點(diǎn)中的一個(gè)或全部?jī)蓚€(gè)的一個(gè)或多個(gè)數(shù)據(jù)緩沖區(qū)中獲取所述測(cè)量。
3.如權(quán)利要求1或2所述的方法,其中獲取所述預(yù)定動(dòng)態(tài)流特性的測(cè)量的步驟包括:通過監(jiān)測(cè)所述發(fā)送機(jī)和所述接收機(jī)之間的數(shù)據(jù)傳輸速率獲取所述測(cè)量,用于所述流特性的所述閾值水平是閾值數(shù)據(jù)速率。
4.如權(quán)利要求1、2或3所述的方法,其中獲取所述預(yù)定動(dòng)態(tài)流特性的測(cè)量的步驟包括:通過使用例如顯式擁塞通知的顯式擁塞指示和/或通過例如發(fā)生丟包或延時(shí)的隱式擁塞指示來(lái)監(jiān)控?fù)砣垣@取所述測(cè)量,用于所述流特性的所述閾值水平是閾值擁塞水平。
5.如前述任一權(quán)利要求所述的方法,其中獲取所述預(yù)定動(dòng)態(tài)流特性的測(cè)量的步驟包括:通過監(jiān)測(cè)發(fā)送給所述發(fā)送機(jī)的用于停止和/或重啟所述流的數(shù)據(jù)發(fā)送的指示而獲取所述測(cè)量,用于所述流特性的所述閾值水平是指示的閾值速率。
6.如前述任一權(quán)利要求所述的方法,其中獲取所述預(yù)定動(dòng)態(tài)流特性的測(cè)量的步驟由所述發(fā)送機(jī)節(jié)點(diǎn)、所述接收機(jī)節(jié)點(diǎn)或運(yùn)行于或代表所述發(fā)送機(jī)節(jié)點(diǎn)和所述接收機(jī)節(jié)點(diǎn)中的一個(gè)或全部?jī)蓚€(gè)的實(shí)體來(lái)執(zhí)行。
7.如前述任一權(quán)利要求所述的方法,其中基于用于所述流特性的至少兩個(gè)預(yù)定閾值水平執(zhí)行所述確定步驟,所述流特性閾值水平中的一個(gè)是表示所述流的進(jìn)度的水平被視為不足夠的較低閾值水平,而所述流特性閾值水平中的另一個(gè)是表示所述流的進(jìn)度的水平被視為已經(jīng)足夠的較高閾值水平。
8.如前述任一權(quán)利要求所述的方法,其中改變利用相應(yīng)子流的數(shù)據(jù)單元的相應(yīng)比例的步驟包括設(shè)置關(guān)于隨后的數(shù)據(jù)單元而分配的服務(wù)或者類別指示的不同比例。
9.如前述任一權(quán)利要求所述的方法,其中當(dāng)所述流的在子流上隨后被轉(zhuǎn)發(fā)的數(shù)據(jù)單元的比例降低到零或低于最小水平時(shí),停止所述子流,并且當(dāng)所述流的在所述子流上隨后被轉(zhuǎn)發(fā)的數(shù)據(jù)單元的比例從零開始增加或者高于最小水平時(shí)啟動(dòng)所述子流。
10.如前述任一權(quán)利要求所述的方法,其中所述第二子流和所述第一子流相比是較高服務(wù)類別子流。
11.如前述任一權(quán)利要求所述的方法,其中在確定由所述測(cè)量指示的所述流的進(jìn)度不足夠時(shí),所述處理步驟包括降低所述流的隨后從所述發(fā)送機(jī)節(jié)點(diǎn)向所述接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為要由所述至少一個(gè)中間節(jié)點(diǎn)根據(jù)較低優(yōu)先級(jí)處理類別來(lái)處理的子流的數(shù)據(jù)單元的比例,以及增加所述流的隨后從所述發(fā)送機(jī)節(jié)點(diǎn)向所述接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)的要由所述至少一個(gè)中間節(jié)點(diǎn)根據(jù)較高優(yōu)先級(jí)處理類別來(lái)處理的數(shù)據(jù)單元的比例。
12.如前述任一權(quán)利要求所述的方法,其中在確定由所述測(cè)量指示的所述流的進(jìn)度足夠時(shí),所述處理步驟包括降低所述流的隨后從所述發(fā)送機(jī)節(jié)點(diǎn)向所述接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為要由所述至少一個(gè)中間節(jié)點(diǎn)根 據(jù)較高優(yōu)先級(jí)處理類別來(lái)處理的子流的數(shù)據(jù)單元的比例,以及增加所述流的隨后從所述發(fā)送機(jī)節(jié)點(diǎn)向所述接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)的要由所述至少一個(gè)中間節(jié)點(diǎn)根據(jù)較低優(yōu)先級(jí)處理類別來(lái)處理的數(shù)據(jù)單元的比例。
13.如前述任一權(quán)利要求所述的方法,其中所述處理步驟包括在所述第一子流和兩個(gè)或多個(gè)其它子流中任一個(gè)其它子流之間重分配所述流的數(shù)據(jù)單元,每個(gè)所述其它子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,每個(gè)數(shù)據(jù)單元具有類別指示類型,該類別指示類型提供表示不同處理類別的指示。
14.如前述任一權(quán)利要求所述的方法,其中所述方法進(jìn)一步包括存儲(chǔ)表示不同子流的使用和/或分別分配給不同子流的數(shù)據(jù)單元的比例的數(shù)據(jù)的步驟,以及隨后據(jù)此確定不同子流的使用和/或分別分配給不同子流的數(shù)據(jù)單元的比例的步驟。
15.一種用于控制通過網(wǎng)絡(luò)從發(fā)送機(jī)節(jié)點(diǎn)經(jīng)過至少一個(gè)中間節(jié)點(diǎn)向接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)單元流的裝置,所述數(shù)據(jù)單元每個(gè)均具有多種不同類型的類別指示中的與該數(shù)據(jù)單元相關(guān)聯(lián)的一種類型的類別指示,每種類型的類別指示向當(dāng)前正在處理與所述類別指示相關(guān)聯(lián)的所述數(shù)據(jù)單元的中間節(jié)點(diǎn)提供了表示特定處理類別的指示,該特定處理類別是根據(jù)所述中間節(jié)點(diǎn)要處理哪個(gè)所述數(shù)據(jù)單元而從多個(gè)不同的處理類別中選出的,所述流的第一比例的數(shù)據(jù)單元被轉(zhuǎn)發(fā)為第一子流,該第一子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,其中每個(gè)數(shù)據(jù)單元均具有第一類型的類別指示,從而提供表示第一類別處理的指示;所述裝置包括: 流特性監(jiān)測(cè)器,其能夠操以獲取表示所述流的進(jìn)度的預(yù)定動(dòng)態(tài)流特性的測(cè)量; 流進(jìn)度監(jiān)測(cè)器,其能夠操作以基于所述流特性的所述測(cè)量以及基于表示所述流的進(jìn)度的閾值水平的用于所述流特性的預(yù)定閾值水平,確定由所述測(cè)量指示的所述流的進(jìn)度是否在用于所述流的進(jìn)度的所述閾值水平界定的預(yù)定范圍內(nèi); 子流控制器,其能夠操作以當(dāng)確定由所述測(cè)量指示的所述流的進(jìn)度不在所述預(yù)定范圍內(nèi)時(shí),進(jìn)行如下處理:降低所述流的隨后從所述發(fā)送機(jī)節(jié)點(diǎn)向所述接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為所述第一子流的數(shù)據(jù)單元的比例,并且增加所述流的隨后從所述發(fā)送機(jī)節(jié)點(diǎn)向所述接收機(jī)節(jié)點(diǎn)轉(zhuǎn)發(fā)為第二子流的數(shù)據(jù)單元的比例,所述第二子流包括一個(gè)或多個(gè)數(shù)據(jù)單元,其中每個(gè)數(shù)據(jù)單元均具有第二類型的類別指示,從而提供表示與所述第一類別處理不同的第二類別處理的指示。
全文摘要
用于控制通過網(wǎng)絡(luò)從發(fā)送機(jī)節(jié)點(diǎn)(11)經(jīng)過至少一個(gè)中間節(jié)點(diǎn)(15)向接收機(jī)節(jié)點(diǎn)(19)轉(zhuǎn)發(fā)數(shù)據(jù)單元流(12)的方法和裝置,數(shù)據(jù)單元中的每個(gè)數(shù)據(jù)單元均具有多個(gè)不同類型的類別指示中的與之相關(guān)聯(lián)的一種類型的類別指示,每個(gè)類別指示類型向當(dāng)前正在處理與所述類別指示相關(guān)聯(lián)的所述數(shù)據(jù)單元的中間節(jié)點(diǎn)提供了表示特定處理類別的指示,特定處理類別是根據(jù)中間節(jié)點(diǎn)要處理的是哪個(gè)數(shù)據(jù)單元而從多個(gè)不同的處理類別中選出的,以使得流的不同比例的數(shù)據(jù)單元被轉(zhuǎn)發(fā)為不同的子流,每個(gè)子流包括具有不同類型的類別指示的數(shù)據(jù)單元,從而提供了表示不同類別處理的指示。
文檔編號(hào)H04L12/801GK103222248SQ201180046417
公開日2013年7月24日 申請(qǐng)日期2011年9月28日 優(yōu)先權(quán)日2010年9月28日
發(fā)明者安德列·亞索伯拉, A·P·史密斯, 菲利普·勞倫斯·厄德利 申請(qǐng)人:英國(guó)電訊有限公司