當計算設(shè)備上的多個應(yīng)用共享該計算設(shè)備上或外部的相同的有限網(wǎng)絡(luò)資源時,多種技術(shù)已被用來嘗試平衡這些應(yīng)用的聯(lián)網(wǎng)需求。計算機用戶和應(yīng)用通常優(yōu)選的是消費網(wǎng)絡(luò)資源的各個應(yīng)用當中的特定折中和優(yōu)先級排序。但是在實踐中,用于共享網(wǎng)絡(luò)訪問的現(xiàn)有技術(shù)常常并沒有最優(yōu)地實現(xiàn)這些優(yōu)選項和優(yōu)先級。舉例來說,設(shè)備的用戶可能優(yōu)選的是所述用戶的設(shè)備上的IP語音(VoIP)具有低網(wǎng)絡(luò)等待時間,并且所述設(shè)備上的web瀏覽迅速且響應(yīng)靈敏。用戶還可能優(yōu)選的是,例如云端同步和操作系統(tǒng)更新之類的后臺大批量網(wǎng)絡(luò)傳輸對于設(shè)備網(wǎng)絡(luò)資源的消費允許令人滿意的前臺性能并且保持合理的進展。
除了常常無法令人滿意地共享網(wǎng)絡(luò)訪問之外,現(xiàn)有的訪問共享技術(shù)常常不便于軟件開發(fā)者訪問或?qū)嵤Ee例來說,雖然服務(wù)質(zhì)量(QoS)設(shè)施可能是有幫助的,但是所述設(shè)施常常是不可用的或者不是以均勻的方式實施的。大多數(shù)QoS技術(shù)在應(yīng)用層以下發(fā)生,因此可能無法由應(yīng)用可靠地操縱。大多數(shù)QoS方法(例如差分服務(wù))取決于兩個端點之間的網(wǎng)絡(luò)的行為和支持。這樣的支持可能不是在所有網(wǎng)絡(luò)路徑上都存在。在便利性方面,網(wǎng)絡(luò)共享行為也是在應(yīng)用內(nèi)實施的,但是這通常需要復(fù)雜的網(wǎng)絡(luò)編程,并且在應(yīng)用之間沒有或者只有很少的直接協(xié)調(diào)。不同的應(yīng)用實施其自身的網(wǎng)絡(luò)共享邏輯的做法不僅是重復(fù)性的,而且各個應(yīng)用的不同資源共享行為還可能發(fā)生沖突。
雖然存在由操作系統(tǒng)實施來允許應(yīng)用實施特定類型的網(wǎng)絡(luò)消費行為的例如LEDBAT(低額外延遲后臺傳輸)之類的協(xié)議,但是用以利用此類協(xié)議的編碼可能會增加開發(fā)應(yīng)用的成本和開銷,并且可能使得開發(fā)者較不可能使用此類協(xié)議。此外,例如LEDBAT之類的廣泛部署的低優(yōu)先級TCP(傳輸控制協(xié)議)機制存在缺點,并且常常無法提供理想的用戶體驗(對于其他實例參見互聯(lián)網(wǎng)工程任務(wù)組意見請求6297)。LEDBAT協(xié)議例如僅限制TCP發(fā)送窗口并且對接收流沒有影響,然而大多數(shù)客戶端側(cè)因特網(wǎng)通信量是流入的。即使當例如LEDBAT之類的機制可用并且不需要復(fù)雜的開發(fā)者編碼時,操作系統(tǒng)或網(wǎng)絡(luò)堆棧仍然可能無法確定某一應(yīng)用應(yīng)當使用此類機制。換句話說,關(guān)于網(wǎng)絡(luò)資源沖突的用戶和應(yīng)用意圖難以被推斷出來,并且應(yīng)用很少規(guī)定其網(wǎng)絡(luò)優(yōu)先級。設(shè)備的網(wǎng)絡(luò)資源共享也不是按照在各個競爭應(yīng)用當中都是一致的方式來實施的,并且可能會發(fā)生例如“遲到者(latecomer)”現(xiàn)象之類的問題(例如參見意見請求6817第4.4節(jié))。
后面將討論與實施和利用經(jīng)過分類的網(wǎng)絡(luò)流有關(guān)的技術(shù)。
技術(shù)實現(xiàn)要素:
包括下面的發(fā)明內(nèi)容部分僅僅是為了介紹在后面的具體實施方式部分中所討論的一些概念。本發(fā)明內(nèi)容部分并不是全面性的,并且不意圖界定由所附權(quán)利要求書闡述的所要求保護的主題內(nèi)容的范圍。
這里所描述的實施例涉及對網(wǎng)絡(luò)流進行分類,以及基于網(wǎng)絡(luò)流的對應(yīng)類別對網(wǎng)絡(luò)流的行為進行調(diào)節(jié)。用于管理流的一種技術(shù)涉及對應(yīng)用進行分析,獲得關(guān)于應(yīng)用的特征的指示,以及使用這些特征來推斷出應(yīng)用的流可以被指派到的類別。另一種技術(shù)涉及在網(wǎng)絡(luò)的邊緣處部署信標節(jié)點。信標節(jié)點向流管理器通知網(wǎng)絡(luò)條件,比如關(guān)于網(wǎng)絡(luò)邊界或區(qū)段的等待時間。用于促進流的管理的另一個實施例涉及用于UDP應(yīng)用的預(yù)訂服務(wù)。UDP應(yīng)用可以預(yù)訂服務(wù),所述服務(wù)可以由寄放應(yīng)用的操作系統(tǒng)提供。事件被公布到任何預(yù)訂所述服務(wù)的UDP應(yīng)用,以便向UDP應(yīng)用通知聯(lián)網(wǎng)條件中的改變。UDP應(yīng)用又可以對其內(nèi)部傳送控制邏輯進行適配。
在其他實施例中,操作系統(tǒng)實施網(wǎng)絡(luò)流的類別。應(yīng)用將其網(wǎng)絡(luò)流指派到各個類別。操作系統(tǒng)又根據(jù)流的類別對流進行調(diào)節(jié)。隨著條件改變,通過根據(jù)流被指派到的類別對流進行調(diào)節(jié)可以使得網(wǎng)絡(luò)資源可用或者可以更加充分地利用網(wǎng)絡(luò)資源。通過對更低優(yōu)先級類別中的流進行限制,對于更高優(yōu)先級類別中的流可以使得網(wǎng)絡(luò)資源可能快速地或者占先地可用。
后面將參照結(jié)合附圖考慮的詳細描述來解釋許多伴隨的特征。
附圖說明
通過根據(jù)附圖閱讀后面的詳細描述將會更好地理解本發(fā)明的描述,其中相同的附圖標記被用來在伴隨的描述中標示相同的部件。
圖1示出了用于自動地或隱含地對應(yīng)用或流進行分類的安排。
圖2示出了簡檔-類別映射和應(yīng)用-類別映射的實例。
圖3示出了利用簡檔-類別映射和應(yīng)用-類別映射來選擇流類別的處理。
圖4示出了可以提供網(wǎng)絡(luò)信息的信標節(jié)點,所述網(wǎng)絡(luò)信息可由流管理器使用來幫助依據(jù)流的類別對流進行調(diào)節(jié)。
圖5示出了用于幫助用戶數(shù)據(jù)報協(xié)議(UDP)應(yīng)用改進其網(wǎng)絡(luò)行為的一個實施例。
圖6示出了一個實施例,其中TCP發(fā)送和接收窗口尺寸由流管理器使用來根據(jù)流的類別對流進行調(diào)節(jié)。
圖7示出了具有實施網(wǎng)絡(luò)堆棧的操作系統(tǒng)的計算設(shè)備。
圖8示出了使用應(yīng)用編程接口(API)的應(yīng)用的處理。
圖9示出了流分類模型的一個實例。
圖10示出了具有對應(yīng)的網(wǎng)絡(luò)性能類屬的示例性流。
圖11示出了分類模型的另一個實例。
圖12示出了流管理器的詳細視圖。
圖13示出了流管理器可以用來對流進行處理的示例性處理。
圖14示出了流分類模型的另一個實例。
圖15示出了用于統(tǒng)一流管理的一個實施例的處理。
圖16示出了計算設(shè)備的附加細節(jié)。
具體實施方式
管理經(jīng)過分類的流
后面的標題為“網(wǎng)絡(luò)流分類模型及其實現(xiàn)方式”的章節(jié)描述用于對網(wǎng)絡(luò)流進行分類并且相應(yīng)地調(diào)節(jié)網(wǎng)絡(luò)資源的使用的技術(shù)。標題為“管理經(jīng)過分類的流”的本章節(jié)描述用于管理經(jīng)過分類的流的有關(guān)方法。本章節(jié)將開始于解釋當應(yīng)用沒有明確地對其流進行分類時如何可以隱含地對所述應(yīng)用的流進行分類。接下來將討論一種使用網(wǎng)絡(luò)邊緣信號來改進網(wǎng)絡(luò)資源分配的技術(shù)。隨后將討論各種其他技術(shù),其中包括如何為UDP(用戶數(shù)據(jù)報協(xié)議)應(yīng)用提供通知服務(wù),如何使用發(fā)送和接收窗口來幫助對流進行調(diào)節(jié),以及其他技術(shù)。
后面的標題為“網(wǎng)絡(luò)流分類模型及其實現(xiàn)方式”的章節(jié)描述如何可以由應(yīng)用明確地對用于載送網(wǎng)絡(luò)通信量的流進行分類,這例如是通過使用由操作系統(tǒng)提供的應(yīng)用編程接口(API)。雖然使得應(yīng)用明確地對其網(wǎng)絡(luò)流進行分類的方法對于把應(yīng)用的優(yōu)選項與操作系統(tǒng)的網(wǎng)絡(luò)資源管理相匹配是有效的,但是這種明確分類方法可能并不總是實際的。舉例來說,如果沒有shim函數(shù)庫或其他變通方法,則已經(jīng)在沒有利用流分類設(shè)施的情況下被編碼和編譯的應(yīng)用或程序很可能需要被重新編寫、重新編譯、重新測試以及重新分發(fā)。出于許多原因,對應(yīng)用進行修改可能是不可能或不實際的。
圖1示出了用于自動地或隱含地對應(yīng)用或流進行分類的安排。運行在計算設(shè)備上的應(yīng)用100通常使用計算設(shè)備(參見圖16)或其操作系統(tǒng)的各種資源。應(yīng)用的這些特質(zhì)特別可以由應(yīng)用建檔器102使用來嘗試為所述應(yīng)用確定默認流分類。對于這一解釋,應(yīng)用100表示可以在計算設(shè)備上運行的任意代碼或軟件。應(yīng)用100可以具有對于操作系統(tǒng)是可觀察的各種靜態(tài)和動態(tài)特征。舉例來說,應(yīng)用100可以發(fā)出應(yīng)用編程接口(API)調(diào)用104,以便調(diào)用或鏈接庫106,訪問系統(tǒng)或應(yīng)用配置設(shè)定108,與操作系統(tǒng)服務(wù)110進行交互,與網(wǎng)絡(luò)堆棧112進行交互等等。
應(yīng)用建檔器102可以具有靜態(tài)分析器114和/或動態(tài)運行時間分析器116。這些組件當中的任一個或全部兩個可以被用來確定哪些API調(diào)用104是由應(yīng)用100發(fā)出的??梢酝ㄟ^異常分支(hook)、事件偵聽器或者其他運行時間攔截來識別運行時間API調(diào)用104,并且通知運行時間分析器116。還可以通過由靜態(tài)分析器114實施的靜態(tài)分析來識別API調(diào)用104,這或者是恰好在執(zhí)行應(yīng)用之前、在安裝應(yīng)用時、在周期性的維護規(guī)程期間等等。靜態(tài)分析可以涉及識別所鏈接到的庫106(可能在應(yīng)用清單文件中或者在可執(zhí)行文件的特殊節(jié)段中標識)、對于已知操作系統(tǒng)文件的相關(guān)性、解析配置文件或設(shè)定等等。
還可以由應(yīng)用建檔器102收集應(yīng)用100的其他特征。舉例來說,應(yīng)用建檔器102可以確定:應(yīng)用被配置成作為后臺還是前臺進程運行,這例如是基于某一終端是否與所述應(yīng)用相關(guān)聯(lián);應(yīng)用是否訪問在其寄主計算設(shè)備上可用的多媒體硬件(從而暗示流送類別);流入到應(yīng)用中的內(nèi)容的類型(例如包括多媒體超鏈接或內(nèi)容的超文本標記語言(HTML)代碼)、與操作系統(tǒng)的多媒體調(diào)度器的配準、與流相關(guān)聯(lián)的網(wǎng)絡(luò)端口或協(xié)議等等。關(guān)于應(yīng)用100可確定的任何信息都可以充當關(guān)于什么網(wǎng)絡(luò)分類(如果存在的話)對于所述應(yīng)用將是適當?shù)奶崾?。在一個實施例中,遠程網(wǎng)絡(luò)服務(wù)可以能夠提供分類。舉例來說,應(yīng)用建檔器102可以把應(yīng)用的標識符發(fā)送到所述服務(wù),并且作為響應(yīng)接收到基于從受到管理的軟件分發(fā)服務(wù)(也就是在線軟件“商店(store)”)獲得的關(guān)于所述應(yīng)用的元數(shù)據(jù)而提供的分類。在任何情況下,所收集到的應(yīng)用特征118由應(yīng)用建檔器102接收,并且被用來嘗試為應(yīng)用100確定類別。
在一個實施例中,應(yīng)用建檔器102可以實施一種算法以便確定將與應(yīng)用100相關(guān)聯(lián)的最有可能的網(wǎng)絡(luò)流類別。應(yīng)用建檔器102可以具有把應(yīng)用特征映射到一個預(yù)定義類別集合的簡檔-類別映射120的集合。也就是說,簡檔-類別映射120可以表明哪些特征對應(yīng)于哪些類別。圖2示出了簡檔-類別映射120和應(yīng)用-類別映射122的一個實例。在該例中,對于不同的流類別為應(yīng)用特征指派權(quán)重。應(yīng)用建檔器102還可以保持應(yīng)用-類別映射122以便跟蹤哪些應(yīng)用與哪些流類別相關(guān)聯(lián)。將參照圖3來討論全部這兩種映射。
圖3示出了利用簡檔-類別映射120和應(yīng)用-類別映射122來選擇流類別的處理。在步驟180處,應(yīng)用建檔器102接收對目標應(yīng)用或其流進行分類的請求。所述請求可以通過任何類型的事件發(fā)起,比如應(yīng)用開始執(zhí)行、應(yīng)用被安裝、后臺維護進程的迭代、應(yīng)用與流的交互、通信量開始在所述流上流動、形成流或者發(fā)起用于流的網(wǎng)絡(luò)連接、確定網(wǎng)絡(luò)資源受到足夠約束或者其他事件。所述請求可以由管理網(wǎng)絡(luò)流的流管理器例如在重新校準所管理的流時發(fā)起。在一個實施例中,只有被確定為不使用流分類API的應(yīng)用被隱含地分類。
在步驟180處,參照應(yīng)用-類別映射122以確定目標應(yīng)用是否已經(jīng)與特定類別相關(guān)聯(lián),隨后在步驟182處,該類別被用作目標應(yīng)用的流的默認類別。也就是說,目標應(yīng)用的流將由流管理器根據(jù)如在應(yīng)用-類別映射122中所表明的已經(jīng)與目標應(yīng)用相關(guān)聯(lián)的類別進行管理(特別是關(guān)于本地網(wǎng)絡(luò)資源消費的調(diào)節(jié))。
如果在步驟180處確定目標應(yīng)用尚未與流類別相關(guān)聯(lián),則實施附加的步驟以便隱含地對目標應(yīng)用進行分類。在步驟184處,如前面所描述的那樣收集應(yīng)用特征。在步驟186處,咨詢簡檔-類別映射120以識別出其中的作為目標應(yīng)用的特征的任何特征。舉例來說,如果目標應(yīng)用使用TCP(傳輸控制協(xié)議)端口8080,則可以使用簡檔-類別映射的第一行。在一個實施例中,對于可以從分類模型當中選擇的每一個潛在的類別保持一個累積分數(shù)(running score)。隨著在簡檔-類別映射中對目標應(yīng)用的特征進行匹配,將相應(yīng)的權(quán)重添加到相應(yīng)的類別分數(shù)。當目標應(yīng)用的所有特征都已被處理時,在步驟190處選擇具有最高所得分數(shù)的類別作為對應(yīng)于目標應(yīng)用的默認類別。具有最高分數(shù)的類別被認為是與目標應(yīng)用的行為或性能優(yōu)選項最佳地匹配的類別。換句話說,各個類別的分數(shù)表明目標應(yīng)用的特征與由操作系統(tǒng)提供的各種流類別的簡檔的配合良好程度。可以使用除了評分之外的其他方法。舉例來說,可以使用優(yōu)先級排序特征的系統(tǒng)(例如“對于庫Z的使用總是類別C”),可以使用評分與布爾邏輯規(guī)則的組合等等。不管一項或更多項目標應(yīng)用特征或特質(zhì)如何被映射到類別,對于應(yīng)用所選擇的默認類別都可以在步驟192處被存儲在應(yīng)用-類別映射122中。下一次處理目標應(yīng)用時,應(yīng)用-類別映射122將使得應(yīng)用建檔器102再次使用相同的默認類別。
可以使用其他方法來進行隱含的應(yīng)用或流分類。舉例來說,可以由操作系統(tǒng)保持一個用戶設(shè)定列表,并且用戶界面可以允許用戶把類別與特定應(yīng)用相關(guān)聯(lián)。在另一個實施例中,可以跟蹤并且分析應(yīng)用的網(wǎng)絡(luò)行為,以便確定應(yīng)用應(yīng)當具有的類別。例如可以把通信樣式(例如突發(fā)性、長持續(xù)時間)匹配到特定類別。在另一個實施例中,如果隱含的類別-應(yīng)用關(guān)聯(lián)被存儲并且重復(fù)使用,則可以在經(jīng)過一段時間之后重新評估或刪除這樣的關(guān)聯(lián)。此外,如果先前經(jīng)過分類的應(yīng)用開始對于流分類使用明確的API,則可以去除或撤消與類別的任何先前的隱含關(guān)聯(lián)。
圖4示出了可以提供網(wǎng)絡(luò)信息的信標節(jié)點220,所述網(wǎng)絡(luò)信息可由流管理器使用來依據(jù)流的類別對流進行調(diào)節(jié)。正如在前面提到的有關(guān)專利申請中所討論的那樣,流管理器可以被實施在操作系統(tǒng)中以便調(diào)節(jié)各個流對于本地寄主的網(wǎng)絡(luò)資源的消費。信標節(jié)點220可以被視為擴展本地操作系統(tǒng)關(guān)于網(wǎng)絡(luò)的可見性。
在一個實施例中,可能有幫助的是使得流管理器具有關(guān)于本地網(wǎng)絡(luò)條件的信息,并且特別是連接的“最后一英里(last mile)”。換句話說,通過基于邊緣網(wǎng)絡(luò)信息對流進行節(jié)制,流管理器能夠以改進的效率或結(jié)果對流以及流之間的爭用進行調(diào)節(jié)。在該實施例中,網(wǎng)絡(luò)(例如由大型實體運營的第一網(wǎng)絡(luò)222)可以在第一網(wǎng)絡(luò)222處具有信標節(jié)點220。信標節(jié)點220可以被實施成運行在邊界網(wǎng)關(guān)上或者駐留在網(wǎng)絡(luò)邊緣附近的服務(wù)器上的新的進程,作為網(wǎng)絡(luò)邊緣附近的專用服務(wù)器機器等等。信標節(jié)點220可以記錄網(wǎng)絡(luò)條件并且把這些條件報告回到收集服務(wù)224。具體來說,可以觀察并且報告第一網(wǎng)絡(luò)222內(nèi)的節(jié)點之間的等待時間,以及去到第一網(wǎng)絡(luò)222外部的節(jié)點的等待時間。在一個實施例中,可以對已知的外部節(jié)點進行輪詢,以便估計由于與外部網(wǎng)絡(luò)上的節(jié)點的通信所導(dǎo)致的增加的等待時間。此外,等待時間信息可以表明第一網(wǎng)絡(luò)222的不同邊緣處的不同等待時間。還可能有幫助的是幫助識別哪些通信量正在跨越因特網(wǎng)。非因特網(wǎng)通信量可能具有低等待時間,因特網(wǎng)通信量則可能具有高等待時間。
邊緣提供的等待時間信息可以通過多種方式由本地流管理器使用來對流進行調(diào)節(jié)。本地流管理器可以從收集服務(wù)224獲得等待時間信息,并且使用該等待時間信息對流進行調(diào)節(jié)。具體來說,當新的流被發(fā)起時,可以獲得基線網(wǎng)絡(luò)等待時間(或其他屬性)。邊緣相關(guān)的等待時間信息可以被用來把初始流基線設(shè)定到促進更好的流管理的數(shù)值。等待時間信息還可以被用于設(shè)定擁塞窗口或者發(fā)送和接收窗口的初始或當前尺寸。為了闡明如何可以在LEDBAT之類的協(xié)議中使用邊緣相關(guān)的等待時間信息,考慮LEDBAT協(xié)議例如取決于全局基礎(chǔ)等待時間或者經(jīng)過網(wǎng)絡(luò)的最小可能等待時間。LEDBAT協(xié)議不會混合各個流之間的信息;所有的流都基于基礎(chǔ)等待時間受到管理。邊緣等待時間信息可以被用來區(qū)分行經(jīng)不同網(wǎng)絡(luò)或網(wǎng)關(guān)的流,這是因為各個流可能具有顯著不同的基礎(chǔ)等待時間。通過為流提供已知的端點和網(wǎng)關(guān)(比如行經(jīng)本地機器的因特網(wǎng)服務(wù)提供商的因特網(wǎng)服務(wù)器),邊緣提供的等待時間信息可以幫助進行所述區(qū)分。
圖5示出了用于幫助UDP應(yīng)用改進其網(wǎng)絡(luò)行為的一個實施例。使用UDP協(xié)議的應(yīng)用常常實施其自身的傳送控制,比如分組序列化、重傳以及檢錯。在一些實現(xiàn)方式中,把UDP流作為經(jīng)過分類的流進行管理可能并不實際。但是應(yīng)用常常具有通信量調(diào)節(jié)邏輯,所述通信量調(diào)節(jié)邏輯可以受益于被通知與網(wǎng)絡(luò)性能和網(wǎng)絡(luò)資源使用有關(guān)的條件??梢詾橛嬎阍O(shè)備250提供事件公布服務(wù)252。事件公布服務(wù)252可以是可用于應(yīng)用254的操作系統(tǒng)服務(wù),所述應(yīng)用可以通過適當?shù)腁PI調(diào)用來預(yù)訂公布服務(wù)。
事件公布服務(wù)252可以實施處理256。處理256可以涉及接收關(guān)于網(wǎng)絡(luò)資源條件的信號。實際上,流管理器257可以使用來對流進行管理的任何類型的信息都可以潛在地被傳遞到事件公布服務(wù)以供公布。在一個實施例中,事件公布服務(wù)252可以從網(wǎng)絡(luò)堆棧253收集網(wǎng)絡(luò)性能信息,并且關(guān)于網(wǎng)絡(luò)條件何時發(fā)生了值得通知預(yù)訂所述服務(wù)的應(yīng)用254的改變作出其自身的確定。在另一個實施例中,流管理器257可以周期性地推送出關(guān)于計算設(shè)備250的當前等待時間和帶寬性能的更新。
隨后,應(yīng)用254可以使得定制邏輯258應(yīng)對來自事件公布服務(wù)的通知。舉例來說,在預(yù)訂了事件公布服務(wù)之后,應(yīng)用可以接收事件。所述事件可以通過某種形式的處理間通信來傳達,并且可以僅表明網(wǎng)絡(luò)條件發(fā)生了改變并且需要進行重新校準。所述事件還可以具有關(guān)于網(wǎng)絡(luò)條件的具體信息,比如當前帶寬或等待時間性能、當前擁塞程度、推薦窗口尺寸等等。接收應(yīng)用隨后將調(diào)用定制代碼以用于重新校準其網(wǎng)絡(luò)行為。舉例來說,如果事件表明一個或更多流類別的性能過低或性能過高,則應(yīng)用可以相應(yīng)地決定增加或減少其當前通信量吞吐量,暫停通信,或者作出被設(shè)計成改進其自身行為或者幫助允許流管理器257更好地對流進行管理的其他調(diào)節(jié)。在應(yīng)用實施其自身的傳輸類型特征的情況下,比如發(fā)送窗口、接收窗口、擁塞窗口等等,所述應(yīng)用可以響應(yīng)于所公布的事件調(diào)節(jié)這些特征。
圖6示出了一個實施例,其中TCP發(fā)送和接收窗口尺寸由流管理器使用來根據(jù)流的類別對流進行調(diào)節(jié)。前面提到的專利申請討論了根據(jù)網(wǎng)絡(luò)流的類別對網(wǎng)絡(luò)流進行調(diào)節(jié)的流管理器。用于進行流調(diào)節(jié)的一種機制時修改與TCP流相關(guān)聯(lián)的TCP發(fā)送和接收窗口270、272的尺寸。當計算設(shè)備250正通過網(wǎng)絡(luò)276與遠程設(shè)備278進行通信時,TCP連接的全部兩端都可以具有發(fā)送和接收窗口。但是接收窗口尚未被接收設(shè)備使用來調(diào)節(jié)本地網(wǎng)絡(luò)資源(特別是等待時間)。通常來說,一些低延遲額外帶寬(LEDBAT)實現(xiàn)方式假設(shè)遠程節(jié)點也在實施LEDBAT或者等效的帶寬/等待時間調(diào)節(jié)方案。因此,這些實現(xiàn)方式通常僅使用擁塞窗口來調(diào)節(jié)通信量;每一側(cè)都假設(shè)另一側(cè)將盡到其調(diào)節(jié)通信量的責任。當(例如具有更高優(yōu)先級等待時間的第二類別中的)其他流需要更高的響應(yīng)度時,通過在計算設(shè)備250處調(diào)節(jié)本地發(fā)送和接收窗口270、272的尺寸為流管理器256給出對于回退(例如第一類別中的)一些流的更多控制。
具體來說,在管理流時,流管理器256可以實施接收關(guān)于網(wǎng)絡(luò)資源要求或本地條件改變的指示的處理280。舉例來說,所述流可以是高優(yōu)先級等待時間類別,并且流管理器256可以確定該流正處于或逼近等待時間要求或閾值。為了確保對應(yīng)于所述流的類別的等待時間優(yōu)先級或等待時間底限得以保持,流管理器隨后根據(jù)其他流的類別調(diào)節(jié)其他流的發(fā)送和接收窗口272、274全部二者。這樣可以允許流管理器256快速地節(jié)制那些其他流(特別是低優(yōu)先級類別中的流),并且允許高優(yōu)先級等待時間類別中的流以低等待時間快速操作。在一個實施例中,可以根據(jù)關(guān)于延遲的信息確定發(fā)送和接收窗口272、272的尺寸。舉例來說,可以利用TCP時間標記測量單向延遲。應(yīng)當提到的是,還可以對擁塞窗口274的尺寸進行操縱以便根據(jù)流的類別對流進行調(diào)節(jié)。還應(yīng)當提到的是,流管理器256不需要直接管理窗口。流管理器256可以與網(wǎng)絡(luò)堆棧進行通信并且向網(wǎng)絡(luò)堆棧通知窗口尺寸應(yīng)當是多少,并且隨后網(wǎng)絡(luò)堆棧實施這些尺寸。
可以如下實施一種用于窗口操縱的算法。首先,一個流與其流類別的等待時間目標相距越遠,就可以越加快速地重新確定該流的窗口尺寸。舉例來說,如果一個流的類別以100ms以下的等待時間為目標并且當前測量的等待時間是400ms,則快速地降低其他流(可能通過類別進行了優(yōu)先級排序)的窗口尺寸。如果當前測量的等待時間是150ms,則逐漸地減小窗口尺寸。換句話說,窗口尺寸修改的速率可以是當前等待時間與流的目標等待時間之間的差異的函數(shù)。一種更簡單的重新確定尺寸的方法(例如把窗口尺寸改變靜態(tài)的數(shù)量)可能導(dǎo)致過沖目標等待時間的極端波動。
其次,并不撤銷先前廣告的窗口尺寸。遠程發(fā)送方被允許完全使用先前所廣告的任何窗口尺寸,但是可以限制將來的窗口尺寸廣告。這樣可以幫助避免與不遵從先前廣告的改變的遠程發(fā)送方的任何兼容性問題。
第三,可以保持硬性最小窗口尺寸。在某些情形中,這出于幾個原因可能是相關(guān)的。首先,如果TCP流的窗口尺寸變?yōu)榈陀?MSS(最大節(jié)段尺寸),則TCP流可能會遇到延遲的ACK以及后續(xù)的增加的等待時間。此外,可以實施最小吞吐量邏輯以避免流的連接的任一端由于低吞吐量而斷開。舉例來說,如果吞吐量有幾分鐘是極低的,則即使正在發(fā)生向前的進展,一些HTTP(超文本傳輸協(xié)議)服務(wù)器仍將斷開HTTP會話。這部分地是為了避免通過保持資源被利用而實現(xiàn)的服務(wù)拒絕。為了實現(xiàn)該最小吞吐量,可以使用試探法以保持吞吐量的移動平均值,并且當吞吐量低于規(guī)定的最小吞吐量時可以禁用網(wǎng)絡(luò)減損(network impairment)。這樣可以允許窗口尺寸逐漸地增大而不是立即回復(fù)到某些之前的數(shù)值。
結(jié)合在這里以及在前面提到的有關(guān)專利申請中所描述的實施例還可以使用其他技術(shù)。關(guān)于通信量調(diào)節(jié),為了幫助釋放等待時間容量(從而提高流的響應(yīng)度),可以通過在發(fā)送TCP確認(ACK)之前引入等待時間在低類別流中引發(fā)更長的延遲。也就是說,可以刻意延長對應(yīng)于一些流的ACK延遲,以便改進其他流的響應(yīng)度(等待時間)。類似地,對于上游通信量可以延長ACK接收閾值,從而在ACK上的超時之前提供更長的等待,并且潛在地避免TCP重傳。
此外,通過給出一項或更多項分層網(wǎng)絡(luò)要求的清單,可以支持應(yīng)用網(wǎng)絡(luò)使用合約。這方面的實例包括應(yīng)用通過聲明的方式規(guī)定一個清單,所述清單對于視頻流送應(yīng)用具有對應(yīng)于標準清晰度視頻層的網(wǎng)絡(luò)帶寬和等待時間要求(或類別)以及對應(yīng)于高清晰度視頻層的帶寬和等待時間要求(或類別)的不同集合,以及VOIP(互聯(lián)網(wǎng)協(xié)議語音)呼叫中的不同保真度水平,從而使得中央控制器可以根據(jù)發(fā)生改變的網(wǎng)絡(luò)條件(向上和向下)節(jié)制經(jīng)過不同的層。
還有可能向?qū)拵峁┥探o出流優(yōu)先級提示。如果應(yīng)用通信量允許更長的延遲,則提供商可以使用所述提示以給出更低的成本,并且反之可以快速跟蹤已被適當?shù)貥擞浀耐ㄐ帕俊?/p>
最后,(依據(jù)流類別的)網(wǎng)絡(luò)通信量優(yōu)先級可以被用于電力管理。更低優(yōu)先級通信量可以被延遲/丟棄以節(jié)省電力。也就是說,通信量可以被調(diào)度用于延遲傳送,這樣可以允許節(jié)省電池電力。舉例來說,流管理器可以向電力管理模塊通知其不需要保持去到特別用于特定流的連接的無線電裝置的電力或者開始為所述無線電裝置供電。
網(wǎng)絡(luò)流分類模型及其實現(xiàn)方式
后面討論的實施例涉及允許應(yīng)用將其網(wǎng)絡(luò)流分類到網(wǎng)絡(luò)堆?;虿僮飨到y(tǒng),所述網(wǎng)絡(luò)堆?;虿僮飨到y(tǒng)又根據(jù)網(wǎng)絡(luò)流的分類在全系統(tǒng)范圍內(nèi)編排設(shè)備的網(wǎng)絡(luò)資源的共享。討論將開始于系統(tǒng)總覽以及解釋應(yīng)用如何可以選擇系統(tǒng)將對其網(wǎng)絡(luò)行為進行調(diào)節(jié)的方式。接下來將描述網(wǎng)絡(luò)流分類模型的實例及其實施細節(jié)。
圖7示出了具有實施網(wǎng)絡(luò)堆棧1104的操作系統(tǒng)1102的計算設(shè)備1100。網(wǎng)絡(luò)堆棧1104可以從任何已知的操作系統(tǒng)聯(lián)網(wǎng)堆棧導(dǎo)出,并且具有可以從本發(fā)明的描述認識到的添加或改變。舉例來說,可以利用包裝器(wrapper)來修改或增強TCP/IP網(wǎng)絡(luò)堆棧。通常來說,任何網(wǎng)絡(luò)協(xié)議棧的傳輸層級的實現(xiàn)方式都將是便利的。在計算設(shè)備1100上,多種任意應(yīng)用1106當中的任一個可以執(zhí)行并且通過數(shù)據(jù)網(wǎng)絡(luò)1108進行通信。應(yīng)用1106的一些實例有web瀏覽器、后臺下載器、在線游戲、實時語音或視頻通信程序、數(shù)據(jù)庫客戶端、媒體流送應(yīng)用等等。為了與遠程設(shè)備1109交換數(shù)據(jù),應(yīng)用1106通過數(shù)據(jù)網(wǎng)絡(luò)1108進行通信,所述數(shù)據(jù)網(wǎng)絡(luò)1108可以是載送IP(互聯(lián)網(wǎng)協(xié)議)通信量的網(wǎng)絡(luò)或者其變型。如果存在虛擬化層(例如管理程序)并且應(yīng)用執(zhí)行在不同虛擬機上的訪客操作系統(tǒng)上,則網(wǎng)絡(luò)通信可以完全或部分地是計算設(shè)備1100本地的。
操作系統(tǒng)1102可以包括一個或更多接口驅(qū)動程序1110(設(shè)備驅(qū)動程序),所述驅(qū)動程序除了其他已知的功能之外還向/從對應(yīng)的網(wǎng)絡(luò)接口1112傳遞和接收分組。可以假設(shè)應(yīng)用1106執(zhí)行在用戶空間中,并且操作系統(tǒng)1102和這里所描述的聯(lián)網(wǎng)特征執(zhí)行在內(nèi)核空間中。但是并不作此要求。內(nèi)核模式代碼或用戶模式代碼可以把網(wǎng)絡(luò)分類指派到其所控制的網(wǎng)絡(luò)流,并且流管理器1114可以在內(nèi)核空間或用戶空間中執(zhí)行。在一個實施例中,網(wǎng)絡(luò)流管理可以通過與已知的TCP/IP網(wǎng)絡(luò)堆棧交換分組的用戶模式包裝器來實施。
流管理器1114管理并且調(diào)節(jié)對應(yīng)于應(yīng)用1106的網(wǎng)絡(luò)流1116。網(wǎng)絡(luò)流1116(后文中稱作“流”)是對應(yīng)于計算設(shè)備1100與遠程設(shè)備1109之間的對應(yīng)網(wǎng)絡(luò)連接(例如IP5元組)的操作系統(tǒng)對象。通常來說,每一個流具有FIFO緩沖器和描述符或句柄,所述描述符或句柄由操作系統(tǒng)和該流的應(yīng)用使用來在該流上實施操作時識別該流。網(wǎng)絡(luò)堆棧1104可以提供代表流1116實施傳輸協(xié)議的傳輸層模塊(例如TCP模塊)。操作系統(tǒng)1102提供應(yīng)用編程接口(API)1118,應(yīng)用1106使用所述應(yīng)用編程接口1118來實施與流有關(guān)的操作,比如實例化流對象、設(shè)定流參數(shù)、發(fā)起與流的網(wǎng)絡(luò)連接、關(guān)閉流、獲得和設(shè)定流的各項屬性的數(shù)值,比如將要連接到的網(wǎng)絡(luò)地址、將要使用的遠程和本地端口、將要使用的協(xié)議、聯(lián)網(wǎng)參數(shù)等等。當按照這里所描述的那樣被擴展或修改時,Winsock API、Berkeley套接字API以及其他類似的API都適合用作API 1118。
圖8示出了應(yīng)用使用API 1118向網(wǎng)絡(luò)堆棧1104通知將與指定的流相關(guān)聯(lián)的流類別或類屬的處理。在步驟1140處,應(yīng)用形成或獲得流。所述流可以或者可以不具有網(wǎng)絡(luò)連接。所述流在應(yīng)用的執(zhí)行代碼中可以作為描述符、句柄、對象等等被參考。應(yīng)用可以從另一個應(yīng)用或處理獲得流,或者可以作為新的對象發(fā)起流。在后一種情況下,可以由應(yīng)用在使用流形成網(wǎng)絡(luò)連接之前設(shè)定流的各種參數(shù)或?qū)傩浴U缜懊嫠岬降哪菢?,這樣的參數(shù)例如可以是遠程網(wǎng)絡(luò)地址、本地網(wǎng)絡(luò)地址(當在計算設(shè)備1100上有多個網(wǎng)絡(luò)接口1112可用時)、本地和遠程端口、協(xié)議設(shè)定等等。
在步驟1142處,應(yīng)用使用API 1118把流類別或類屬(后文中稱作“類別”)明確地指派到流。應(yīng)用可以把其他類別指派到該應(yīng)用的其他流??梢栽诹鞯纳芷谄陂g的任何時間實施步驟1142,其中包括在實例化流時,在為流形成網(wǎng)絡(luò)連接之前,在流被連接并且可能載送通信量之后,當流正在載送通信量時等等。此外,可以在相同的流上重復(fù)實施步驟1142,以便改變當前被指派到流的類別,從而正如接下來討論的那樣相應(yīng)地改變流管理器1114調(diào)節(jié)經(jīng)過所述流的分組流動的方式。
在步驟1144處,操作系統(tǒng)(具體來說是流管理器1114)控制網(wǎng)絡(luò)流的網(wǎng)絡(luò)資源使用。流管理器1114充當中央?yún)f(xié)調(diào)器,并且編排正由操作系統(tǒng)管理的多個(可能是所有)流的網(wǎng)絡(luò)行為。流管理器1114可以跟蹤各個流的實際網(wǎng)絡(luò)性能并且調(diào)節(jié)其行為,特別是關(guān)于等待時間和帶寬(吞吐量)性能,并且可能還有不同尺寸的時間窗口上的平均吞吐量。流管理器1114還可以接收關(guān)于網(wǎng)絡(luò)條件的信號,這例如是通過分析探測分組的回程時間(RTT),通過接收關(guān)于沿著所述流的網(wǎng)絡(luò)路徑的各種設(shè)備的隊列尺寸的信息等等。應(yīng)當提到的是,流管理器1114應(yīng)當能夠?qū)τ诿恳粋€流確定近來的和/或當前的帶寬、等待時間或全部二者。在一個實施例中,并非所有的流都具有明確的應(yīng)用指派的類別。但是流管理器1114也可能管理這些流,這可能是通過將這些流作為具有默認類別來對待。在一個實施例中,流管理器1114不是單獨的模塊或組件,而是分散在整個操作系統(tǒng)1102和/或網(wǎng)絡(luò)堆棧1104中的邏輯(這里所使用的術(shù)語“流管理器”指代全部兩種設(shè)計)。換句話說,流管理邏輯的放置并不重要。
圖9示出了流分類模型1180A的一個實例。圖9還示出了把類別指派到流的代碼1182的樣本。分類模型1180A具有八個類別,其中四個對應(yīng)于帶寬并且四個對應(yīng)于等待時間。在該示例性分類模型1180A中,兩個類別可以被指派到相同的流;一個類別對應(yīng)于帶寬并且一個類別對應(yīng)于等待時間。如樣本代碼1182中所見,“高”帶寬和“低”等待時間類別被指派到通過“socket_s”表示的流。在其他實施例中,分類模型1180A可以僅具有帶寬類別,或者只有等待時間類別,或者具有全部兩種性能規(guī)格的各個單獨的類別,正如圖5中所示出的那樣。圖10示出了具有對應(yīng)的網(wǎng)絡(luò)性能類屬的示例性流1190。流1190可以具有通過API 1116指派的標識符和類別1192。在一個實施例中,對應(yīng)的流的分類是操作系統(tǒng)1102使用來表示所述流的對應(yīng)數(shù)據(jù)結(jié)構(gòu)或?qū)ο蟮臉酥净驅(qū)傩浴?/p>
圖11示出了分類模型1180B的另一個實例。分類模型1180B具有六個類別(A到F):實時類別、響應(yīng)(交互)類別、流送類別、正常類別、最終(eventual)類別以及不可見類別。該分類模型1180B對于開發(fā)者可能是便利的,這是因為各個單獨的類別緊密地對應(yīng)于常見類型的網(wǎng)絡(luò)消費應(yīng)用。每一個類別可以具有實施在流管理器1114的邏輯中的網(wǎng)絡(luò)性能的一種或更多種規(guī)格中的對應(yīng)的性能范圍、底限、上限等等。舉例來說,各個類別可以被如下實施(帶寬以兆比特每秒(MBS)計,等待時間以毫秒(ms)計):
實時:1MBS、200ms;
響應(yīng):0.1MBS、50ms;
流送:3MBS、1500ms;
正常:0.2MBS、5000ms;以及
最終、不可見:0MBS、0ms。
這些數(shù)字僅僅是實例;可以使用任何數(shù)值,并且一些類別可以不具有帶寬和/或等待時間規(guī)范。
流管理器1114可以具有控制邏輯1200(圖6),以便實施關(guān)于當需求在各個流之間產(chǎn)生沖突時如何依據(jù)其類別實現(xiàn)各個流的性能目標的策略或規(guī)則1202。舉例來說,規(guī)則1202可以規(guī)定對于帶寬的優(yōu)先權(quán),從而使得當流送類別流處于或接近其極限時,通過根據(jù)其他流的類別對其他流進行節(jié)制而使得帶寬可用。舉例來說,當A類流需要聯(lián)網(wǎng)資源時,可以首先節(jié)制不可見流,隨后是最終流,隨后是正常流,隨后是響應(yīng)流。各個類別還可以具有對應(yīng)的權(quán)重以便規(guī)定將要節(jié)制的帶寬(或等待時間)的相對部分,從而允許更高優(yōu)先級類別中的流獲得從低優(yōu)先級流釋放的帶寬的一大部分以及從中等優(yōu)先級流釋放的帶寬的一小部分。在另一個實施例中,根據(jù)流的類別對網(wǎng)絡(luò)資源的使用進行優(yōu)先級排序或分派。如果響應(yīng)流需要附加的帶寬,可以從能夠勻出帶寬并且同時保持在其性能規(guī)范內(nèi)的任何流吸?。ɡ缤ㄟ^節(jié)制)帶寬,這可能是從最低優(yōu)先級類別的流開始的??偠灾梢酝ㄟ^多種算法、規(guī)則/策略、性能數(shù)值等等根據(jù)流的類別對其網(wǎng)絡(luò)資源消費實施統(tǒng)一管理。
根據(jù)應(yīng)用規(guī)定的類別對流進行集中式全局管理的一個潛在的益處是可以改進用戶的體驗。舉例來說,假設(shè)用戶的設(shè)備正在通過已被歸類為“流送”的網(wǎng)絡(luò)流運行多媒體流送應(yīng)用。還假設(shè)該用戶啟動了web瀏覽器應(yīng)用,所述web瀏覽器應(yīng)用將其HTTP瀏覽流歸類為“響應(yīng)”并且將其下載流歸類為“正?!?。當用戶請求網(wǎng)頁時,由于相應(yīng)的響應(yīng)類別流的等待時間優(yōu)先級高于流送類別流,因此可以暫時節(jié)制流送類別流(例如節(jié)制50ms)以便允許響應(yīng)類別流滿足其等待時間要求。流送類別流的簡短放慢可能不會被用戶注意到(由于緩沖),并且網(wǎng)頁將會快速地下載。如果用戶發(fā)起文件下載,則可以從流送類別流“借用”帶寬直到達到其帶寬底限為止,從而允許正常類別下載流按照最大化其帶寬并且不會干擾來自流送類別流的媒體播放的方式繼續(xù)。
圖12示出了流管理器1114的詳細視圖。各個流1190分別具有對應(yīng)的隊列1240,其中分組在被傳遞經(jīng)過設(shè)備驅(qū)動程序以便由相應(yīng)的網(wǎng)絡(luò)接口傳送之前或者在從設(shè)備驅(qū)動程序接收到之后被排入隊列。控制邏輯1200如前面所描述的那樣管理流1190的網(wǎng)絡(luò)性能。控制邏輯1200可以反復(fù)接收關(guān)于帶寬和等待時間的更新。所述更新可以是來自接口驅(qū)動程序1110、網(wǎng)絡(luò)堆棧1104或者外部來源。這樣的更新可以表明多種網(wǎng)絡(luò)條件和統(tǒng)計信息,比如對于計算設(shè)備1100或者對于各個單獨的網(wǎng)絡(luò)接口1112的當前帶寬可用性,當前或預(yù)期等待時間信息,網(wǎng)絡(luò)擁塞等等??刂七壿?200可以使用該信息來調(diào)節(jié)各個流消費網(wǎng)絡(luò)資源的方式。
圖13示出了控制邏輯1200可以用來對流進行調(diào)節(jié)的示例性處理。在步驟1260處,流管理器1114按照規(guī)則的間隔開始在各個活躍的流上進行迭代(本段中的“流”指的是當前迭代的流)。在步驟1262處,獲得流的當前性能統(tǒng)計信息。舉例來說,獲得當前或估計帶寬和等待時間。該信息可以從近來的吞吐量進行估計,根據(jù)當前通信量統(tǒng)計信息進行預(yù)期,基于排入隊列的分組的數(shù)量、傳入分組的速率以及其他已知的技術(shù)。流的類別可能會影響其被迭代地評估的頻度。
在步驟1264處,流管理器1114確定流的類別或類屬,并且確定流是否正在(或者預(yù)期將會)根據(jù)其規(guī)定的類屬表現(xiàn)性能。在步驟1266處,如果流沒有在按照規(guī)定的那樣表現(xiàn)性能,則流管理器1114實施意圖滿足該流的類別規(guī)范的適配。舉例來說,在考慮到其類別的情況下,其他流可以被節(jié)制、暫停等等。這可以通過以下措施實現(xiàn):調(diào)節(jié)流的發(fā)送窗口和/或接收窗口,擴大或縮小流緩沖器,暫停經(jīng)過某一個流的分組流動等等。應(yīng)用或其他組件不必對分組加標簽,應(yīng)用也不必使用協(xié)議層級的QoS特征。從應(yīng)用的角度看來,所述流是普通的TCP(或類似的)流。在步驟1268處,對下一個流(如果存在的話)進行處理。
關(guān)于這里所提到的沒有在根據(jù)其對應(yīng)類別的規(guī)范表現(xiàn)性能的流,關(guān)于性能遵從性的確定或者驅(qū)動性能調(diào)節(jié)的確定應(yīng)當被理解成不僅僅涵蓋相對于寄主機器上的其他連接的性能。如果一個流的網(wǎng)絡(luò)連接正在經(jīng)歷的單向延遲比所述連接所經(jīng)歷的最低單向延遲高100ms,則例如LEDBAT協(xié)議之類的協(xié)議認為該流沒有在按照規(guī)定的那樣表現(xiàn)性能。假設(shè)LEDBAT連接可能是導(dǎo)致延遲增加的因素,并且通過限制該連接的窗口可以減少正在經(jīng)過相同的共享網(wǎng)絡(luò)資源的其他連接的延遲。換句話說,各個流類別的規(guī)范可以關(guān)于彼此是相對的,關(guān)于性能數(shù)值是絕對的,或者兩種情況的組合。此外,可以提供正式的語言或句法以表達復(fù)雜的規(guī)范,例如布爾運算符的句法、條件語句等等,并且可能采取基于標記(例如可擴展標記文件)的聲明性語言的形式?;蛘?,這樣的復(fù)雜邏輯可以被“硬編碼”到流管理器、網(wǎng)絡(luò)堆棧等等的編程中。
圖14示出了流分類模型1180C的另一個實例。每一個類屬具有等待時間分量和帶寬分量。各個類屬可以沿著任一種規(guī)格重疊。在該例中,流的分類把帶寬和等待時間全部二者的性能目標指派到流。如果假設(shè)一個類別(例如E類)意圖在相應(yīng)的流上施加對應(yīng)于實時或快速響應(yīng)的等待時間規(guī)范(也就是說網(wǎng)絡(luò)通信量將響應(yīng)于用戶請求開始以最小視在延遲流動),則流管理器邏輯可以使用本地操作系統(tǒng)的各種網(wǎng)絡(luò)影響機制來“回退”或向下調(diào)節(jié)其他流,比如D類流(或者所有其他的流,或者所有其他活躍的流等等)。也就是說,當被歸類為對于等待時間敏感的新連接或新通信量開始時,可以立即在本地減損低優(yōu)先級連接。舉例來說,如果由用戶發(fā)起的web瀏覽器將要請求web對象,則可以占先地減損后臺文件傳輸,從而使得即將到來的瀏覽器通信量以清空的網(wǎng)絡(luò)開始。先前的方法常常依賴于根據(jù)競爭通信量作出的服務(wù)質(zhì)量決定,這對于新通信量通常并不是立即有幫助的。類似的方法可以被用于帶寬性能或者各種網(wǎng)絡(luò)性能特性的組合。應(yīng)當提到的是,可以通過以下措施實現(xiàn)本地通信量減損:暫停從應(yīng)用到其網(wǎng)絡(luò)連接的數(shù)據(jù)流動,暫停緩沖分組的傳送,調(diào)節(jié)聯(lián)網(wǎng)窗口尺寸,暫?;蚪导墤?yīng)對流通信量的線程,或者通過調(diào)節(jié)可能會潛在地影響流的網(wǎng)絡(luò)資源消費的流的其他操作參數(shù)。
圖15示出了對應(yīng)于統(tǒng)一流管理的一個實施例的處理。在該實施例中,流管理器1114可以如下實施網(wǎng)絡(luò)資源的重新分配。在步驟1280處,根據(jù)目標流的類別確定目標流需要附加的網(wǎng)絡(luò)資源,例如帶寬或等待時間或全部二者。對于一個解釋性實例,將假設(shè)分類模型1180C的A類流需要附加的帶寬。在步驟1282處,對于每一個流類別采集聚合統(tǒng)計信息。在步驟1284處,按照適合于類別的順序?qū)@些聚合統(tǒng)計信息進行評估,并且在步驟1286處按照需要對其進行調(diào)節(jié)。首先對根據(jù)網(wǎng)絡(luò)需求的最低優(yōu)先級類別的流進行評估,也就是E類。如果E類流的聚合帶寬作為一個整體具有額外的帶寬,則對E類流進行節(jié)制以便提供附加的帶寬。如果E類流所給出的帶寬不足,則對下一個優(yōu)先級類別(C類)的聚合統(tǒng)計信息進行評估。也就是說,如果對E類流的節(jié)制沒有釋放出足夠的帶寬,則對C類流的聚合帶寬進行評估,并且按照需要對該類別中的流進行節(jié)制。如果C類和E類流都無法在滿足其類別要求的同時讓出足夠的帶寬,則可以把較低優(yōu)先級類別的流(E類)壓到其類別的帶寬目標以下,以便幫助滿足具有更高優(yōu)先級的A類流的帶寬要求。
如果前面的實例中的流需要改進的等待時間以替代或補充附加的帶寬,則實施類似的處理,但是對于每一個類別的聚合統(tǒng)計信息的評估以及對于其中的流的任何調(diào)節(jié)都是按照取決于各個類別的等待時間特質(zhì)的順序來實施的。
雖然本發(fā)明的描述可能在一些地方提到分配或重新分配網(wǎng)絡(luò)資源,但是資源的“分配”是使用多種(前面描述的)網(wǎng)絡(luò)影響機制當中的任一種以嘗試滿足各個流類別的規(guī)范的副作用的概念性表征。此外,基于流類別所采取的優(yōu)先級排序或流調(diào)節(jié)措施可以不一定涉及相應(yīng)的流的網(wǎng)絡(luò)資源消費的立即增加或減少。舉例來說,當LEDBAT判定低優(yōu)先級連接需要被“限制”時,(可以被修改以提供流類別的)例如LEDBAT協(xié)議之類的協(xié)議可以不一定損害低優(yōu)先級連接的帶寬或等待時間。舉例來說,減小連接的發(fā)送窗口的尺寸對于其吞吐量或等待時間可能沒有直接影響;出于許多可能的原因,所述連接后來可能會獲得更好的吞吐量或等待時間。
圖16示出了可以在其上實施前面所描述的實施例的通用計算設(shè)備1100的附加細節(jié)。計算設(shè)備1100可以具有顯示器1300以及存儲裝置1302和處理硬件1304,所述處理硬件1304可以是以下各項當中的任何一項或更多項的組合:中央處理單元、圖形處理單元、模擬到數(shù)字轉(zhuǎn)換器、總線芯片、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、專用標準產(chǎn)品(ASSP)或者復(fù)雜可編程邏輯設(shè)備(CPLD)等等。存儲裝置1302可以是磁性存儲裝置、靜態(tài)存儲器、易失性存儲器等等的任意組合。這里所使用的術(shù)語“存儲裝置”的含義不是指信號或能量本身,而是指物理裝置(包括例如磁性存儲介質(zhì)、光學(xué)存儲介質(zhì)、靜態(tài)存儲器設(shè)備等物理介質(zhì),而不包括信號本身)。計算設(shè)備1100的各個硬件元件可以按照計算領(lǐng)域內(nèi)眾所周知的方式進行協(xié)作。此外,輸入設(shè)備1306可以與計算設(shè)備1100集成在一起或者與計算設(shè)備1100進行通信。計算設(shè)備1100可以具有任何外形,或者可以被使用在任何類型的封裝設(shè)備中。計算設(shè)備1100可以采取以下形式:例如智能電話之類的手持式設(shè)備、平板計算機、游戲設(shè)備、服務(wù)器、機架安放或背板安放的板上計算機、芯片上系統(tǒng)或者其他形式。通常來說,計算設(shè)備1100將是分立的網(wǎng)絡(luò)節(jié)點或設(shè)備。
前面所討論的實施例和特征可以通過存儲在易失性或非易失性計算機或設(shè)備可讀裝置中的信息的形式來實現(xiàn),此類信息能夠配置計算設(shè)備1100實施這里所描述的實施例。這些裝置可以包括例如光學(xué)存儲裝置(例如緊致盤只讀存儲器(CD-ROM))、磁性介質(zhì)、全息存儲裝置、閃速只讀存儲器(ROM)之類的裝置或者用于存儲數(shù)字信息的其他設(shè)備。所存儲的信息可以采取機器可執(zhí)行指令(例如已編譯的可執(zhí)行二進制代碼)、源代碼、字節(jié)代碼或者可以被用來允許或配置計算設(shè)備實施這里所描述的實施例的其他信息的形式。此外還認為這方面至少包括易失性存儲器,比如在實施一個實施例的軟件的執(zhí)行期間存儲例如中央處理單元(CPU)指令之類的信息的隨機存取存儲器(RAM)和/或虛擬存儲器,以及存儲允許加載和執(zhí)行程序或可執(zhí)行程序的信息的非易失性設(shè)備。