通過霧計算節(jié)點對網(wǎng)絡(luò)流量進行動態(tài)編碼的制作方法
【專利摘要】在一個實施例中,方法包括:由網(wǎng)絡(luò)設(shè)備確定接入網(wǎng)中的接入網(wǎng)條件,該接入網(wǎng)提供客戶端設(shè)備和經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)能到達的目的地之間的通信;由網(wǎng)絡(luò)設(shè)備基于接入網(wǎng)條件選擇用于客戶端設(shè)備和目的地之間的網(wǎng)絡(luò)流量的多個編碼方法中的一個編碼方法,包括選擇用于該一個編碼方法的編碼參數(shù);以及由網(wǎng)絡(luò)設(shè)備根據(jù)該一個編碼方法和選擇的編碼參數(shù),代表客戶端設(shè)備引起對網(wǎng)絡(luò)流量執(zhí)行編碼。
【專利說明】
通過霧計算節(jié)點對網(wǎng)絡(luò)流量進行動態(tài)編碼
技術(shù)領(lǐng)域
[0001]本公開通常涉及針對計算網(wǎng)絡(luò)中的網(wǎng)絡(luò)使能設(shè)備的傳輸層編碼。
【背景技術(shù)】
[0002]本節(jié)描述了可以采用的方法,但不一定是先前已經(jīng)構(gòu)思或采用的方法。因此,除非明確地指定以其他方式,否則本節(jié)中所描述的任何方法不是本申請的權(quán)利要求的現(xiàn)有技術(shù),并且本節(jié)中所描述的任何方法不因被包含在本節(jié)中而被承認為現(xiàn)有技術(shù)。
[0003]由于傳輸控制協(xié)議(TCP)不能辨別因信道錯誤造成的損失和因擁塞造成的損失,利用TCP在無線鏈路上傳輸網(wǎng)絡(luò)流量遭受了巨大損失。通過向TCP層應(yīng)用編碼來減少網(wǎng)絡(luò)流量的損失的提議被提出,例如,容失TCP(LT-TCP)。然而,現(xiàn)有提議沒有提供可以被大規(guī)模地商業(yè)化實現(xiàn)的實際解決方案。
【附圖說明】
[0004]參考附圖,其中具有相同的數(shù)字標(biāo)號的元件表示貫穿本發(fā)明的相似元件,并且其中:
[0005]圖1A和IB根據(jù)示例性實施例分別示出具有基于檢測到的接入網(wǎng)條件選擇編碼方法的裝置的示例性系統(tǒng),該系統(tǒng)代表客戶端設(shè)備對客戶端網(wǎng)絡(luò)流量進行編碼。
[0006]圖2根據(jù)示例性實施例示出圖1中的任何一種網(wǎng)絡(luò)設(shè)備的示例性實現(xiàn)方式。
[0007]圖3根據(jù)示例性實施例示出代表客戶端設(shè)備選擇編碼方法的示例性方法。
【具體實施方式】
[0008]綜述
[0009]在一個實施例中,方法包括:由網(wǎng)絡(luò)設(shè)備確定接入網(wǎng)中的接入網(wǎng)條件,該接入網(wǎng)提供客戶端設(shè)備和經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)能到達的目的地之間的通信;由網(wǎng)絡(luò)設(shè)備基于接入網(wǎng)條件選擇用于客戶端設(shè)備和目的地之間的網(wǎng)絡(luò)流量的多個編碼方法中的一個編碼方法,包括選擇用于該一個編碼方法的編碼參數(shù);以及由網(wǎng)絡(luò)設(shè)備根據(jù)該一個編碼方法和選擇的編碼參數(shù),代表客戶端設(shè)備引起對網(wǎng)絡(luò)流量執(zhí)行編碼。
[0010]在另一實施例中,裝置包括處理器電路和設(shè)備接口電路。該處理器電路被配置為確定接入網(wǎng)中的接入網(wǎng)條件,該接入網(wǎng)提供客戶端設(shè)備和經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)能到達的目的地之間的通信。該處理器電路還被配置為基于接入網(wǎng)條件選擇用于客戶端設(shè)備和目的地之間的網(wǎng)絡(luò)流量的多個編碼方法中的一個編碼方法,包括選擇用于該一個編碼方法的編碼參數(shù)。設(shè)備接口電路被配置為根據(jù)一個編碼方法和選擇的編碼參數(shù),代表客戶端設(shè)備引起對網(wǎng)絡(luò)流量執(zhí)行編碼。
[0011 ]在又一個實施例中,邏輯被編碼在一個或多個非暫態(tài)有形介質(zhì)中以由機器執(zhí)行,并且當(dāng)由機器執(zhí)行時能操作來:由網(wǎng)絡(luò)設(shè)備確定接入網(wǎng)中的接入網(wǎng)條件,該接入網(wǎng)提供客戶端設(shè)備和經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)能到達的目的地之間的通信;由網(wǎng)絡(luò)設(shè)備基于接入網(wǎng)條件選擇用于客戶端設(shè)備和目的地之間的網(wǎng)絡(luò)流量的多個編碼方法中的一個編碼方法,包括選擇用于該一個編碼方法的編碼參數(shù);以及由網(wǎng)絡(luò)設(shè)備根據(jù)該一個編碼方法和選擇的編碼參數(shù),代表客戶端設(shè)備引起對網(wǎng)絡(luò)流量執(zhí)行編碼。
[0012]具體描述
[0013]具體實施例使能對計算網(wǎng)絡(luò)中的網(wǎng)絡(luò)流量進行有效以及可擴展的編碼部署,該網(wǎng)絡(luò)流量被客戶端設(shè)備用來例如經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)(比如,局域網(wǎng)和/或廣域網(wǎng))與目的地進行通
?目O
[0014]圖1A和IB是根據(jù)示例性實施例示出具有基于檢測到的接入網(wǎng)條件選擇編碼方法的裝置12的示例性網(wǎng)絡(luò)10,網(wǎng)絡(luò)10用于代表客戶端設(shè)備對客戶端設(shè)備網(wǎng)絡(luò)流量進行編碼。裝置12(在本文中還被稱為“霧服務(wù)器裝置”、“邊緣服務(wù)器裝置”、或簡稱為“網(wǎng)絡(luò)設(shè)備”)是物理機器(即,硬件設(shè)備),該物理機器被配置為經(jīng)由網(wǎng)絡(luò)10實現(xiàn)與其它物理機器(例如,客戶端設(shè)備14、接入點設(shè)備16、路由器設(shè)備18、和/或數(shù)據(jù)中心服務(wù)器設(shè)備20)的網(wǎng)絡(luò)通信。因此,裝置12是經(jīng)由網(wǎng)絡(luò)10實現(xiàn)網(wǎng)絡(luò)通信的網(wǎng)絡(luò)使能機器。
[0015]如圖1A和IB所示,每個客戶端設(shè)備14可以具有與接入點設(shè)備16a的有線數(shù)據(jù)鏈接(例如,以太網(wǎng))22a和/或無線數(shù)據(jù)鏈接(例如,WiFi )22b;例如,接入點設(shè)備16a可以被實現(xiàn)為移動路由器,該移動路由器向“連接的車輛”24提供無線通信以經(jīng)由與接入網(wǎng)26的網(wǎng)絡(luò)接入設(shè)備16b的有線或無線通信鏈路30訪問網(wǎng)絡(luò)10。實現(xiàn)為例如固定無線接入點的網(wǎng)絡(luò)接入設(shè)備16b可以向移動無線接入點16a和/或客戶端設(shè)備14提供網(wǎng)絡(luò)接入以用于獲取網(wǎng)絡(luò)服務(wù),包括經(jīng)由廣域網(wǎng)28到達目的地(例如,數(shù)據(jù)中心服務(wù)器)20。目的地20可以提供各種數(shù)據(jù)中心服務(wù),例如,分布式網(wǎng)頁服務(wù)、文檔共享服務(wù)、分布式計算服務(wù)、分布式存儲服務(wù)、分布式應(yīng)用傳送和支持等(在本文中被統(tǒng)稱為“云計算服務(wù)”)??蛻舳嗽O(shè)備可經(jīng)由接入網(wǎng)26到達其它目的地設(shè)備。
[0016]接入網(wǎng)26包括一個或多個接入點16a和/或16b、以及可以提供霧計算服務(wù)的一個或多個網(wǎng)絡(luò)設(shè)備12?!办F計算”指的是利用在接入網(wǎng)26(也被稱為“霧網(wǎng)絡(luò)”26)中部署的一個或多個計算設(shè)備、網(wǎng)絡(luò)設(shè)備等提供與數(shù)據(jù)中心服務(wù)器20相關(guān)聯(lián)的一個或多個傳統(tǒng)云計算服務(wù)。換言之,“霧計算”指的是在接入網(wǎng)26內(nèi)以分布式和/或虛擬化的方式提供一個或多個服務(wù)(例如,計算、存儲、和/或網(wǎng)絡(luò)化服務(wù))。本文所述的“霧計算”允許網(wǎng)絡(luò)邊緣設(shè)備(例如,16a和16b)和/或網(wǎng)絡(luò)邊緣服務(wù)器12充當(dāng)“代理”以執(zhí)行通常需要由客戶端設(shè)備14執(zhí)行的操作。此外,因為網(wǎng)絡(luò)邊緣設(shè)備16a和/或16b建立了針對客戶端設(shè)備14的最后一跳通信鏈路22、30,所以網(wǎng)絡(luò)邊緣設(shè)備16a和/或16b可以向網(wǎng)絡(luò)邊緣服務(wù)器12提供接入網(wǎng)條件,使得網(wǎng)絡(luò)邊緣服務(wù)器12能夠基于接入網(wǎng)條件確定針對客戶端設(shè)備14優(yōu)化的霧計算服務(wù),下文將進一步詳細描述。
[0017]根據(jù)示例性實施例,網(wǎng)絡(luò)設(shè)備12可以基于確定與經(jīng)由一個或多個數(shù)據(jù)鏈路22、30訪問接入網(wǎng)26的客戶端設(shè)備14相關(guān)聯(lián)的接入網(wǎng)條件來優(yōu)化該客戶端設(shè)備14和目的地(例如,數(shù)據(jù)中心服務(wù)器)20之間的通信。網(wǎng)絡(luò)設(shè)備12可以選擇用于客戶端設(shè)備14和目的地20之間的網(wǎng)絡(luò)流量的多個編碼方法中的一個。網(wǎng)絡(luò)設(shè)備12還可以選擇與選擇的一個編碼方法相關(guān)聯(lián)的一個或多個編碼參數(shù),并且根據(jù)選擇的編碼參數(shù)代表客戶端設(shè)備14引起對網(wǎng)絡(luò)流量執(zhí)行選擇的編碼。
[0018]如圖1A所示,網(wǎng)絡(luò)設(shè)備12可以向移動無線接入點16a和固定無線接入點16b發(fā)送指令,從而使得無線接入點16a和16b充當(dāng)用于經(jīng)由無線鏈路30建立被編碼的TCP鏈路32的對等端點。無線接入點16a和16b可以在由任意一個客戶端設(shè)備14輸出或由任意一個客戶端設(shè)備14接收的TCP流上執(zhí)行編碼(以及解碼)。因此,由客戶端設(shè)備14輸出并且去往目的地20的TCP流可以由移動無線接入點16a編碼,無線接入點16a把從客戶端設(shè)備14接收到的TCP傳輸替換為根據(jù)邊緣服務(wù)器設(shè)備12選擇的編碼方法的經(jīng)編碼的數(shù)據(jù)分組的經(jīng)編碼的TCP傳輸,并且把經(jīng)編碼的TCP傳輸輸出至無線數(shù)據(jù)鏈路30上;由固定接入點16b經(jīng)由無線數(shù)據(jù)鏈路30接收的經(jīng)編碼的數(shù)據(jù)分組的經(jīng)編碼的TCP傳輸可以由固定接入點16b解碼以恢復(fù)由客戶端設(shè)備14輸出的原始TCP傳輸,以經(jīng)由接入網(wǎng)26和廣域網(wǎng)28傳送至目的地20。
[0019]相反地,來自“目的地”服務(wù)器設(shè)備20并且去往客戶端設(shè)備14的TCP傳輸可以被固定接入點16b替換為根據(jù)邊緣服務(wù)器設(shè)備12選擇的編碼方法和參數(shù)的經(jīng)編碼的數(shù)據(jù)分組的經(jīng)編碼的TCP傳輸,并且經(jīng)編碼的TCP傳輸可以由固定接入點16b經(jīng)由無線鏈路30作為經(jīng)編碼的TCP鏈路32輸出至移動接入點16a。來自固定接入點并且經(jīng)由無線數(shù)據(jù)鏈路30接收的經(jīng)編碼的TCP傳輸可以由移動接入點16a解碼以恢復(fù)由服務(wù)器設(shè)備20輸出的原始TCP傳輸,以將TCP傳輸傳送至客戶端設(shè)備14。因此,接入點16a和16b可以操作為“對等端點”以在TCP網(wǎng)絡(luò)流量和載送經(jīng)編碼的TCP傳輸?shù)慕?jīng)編碼的網(wǎng)絡(luò)流量之間轉(zhuǎn)換。因此,示例性實施例允許把編碼添加至網(wǎng)絡(luò)流量的傳輸層協(xié)議傳輸(例如,根據(jù)TCP),其中編碼是基于接入網(wǎng)條件進行優(yōu)化的。
[0020]如圖1B所示,網(wǎng)絡(luò)設(shè)備12可以向移動無線接入點16a和充當(dāng)相應(yīng)對等端點的另一網(wǎng)絡(luò)設(shè)備發(fā)送指令以建立目的地服務(wù)器設(shè)備20和客戶端設(shè)備14之間的經(jīng)編碼的TCP連接32 ’(包括多個TCP鏈路32)。例如,網(wǎng)絡(luò)設(shè)備12可以向提供接入網(wǎng)26和廣域網(wǎng)(WAN) 28之間的連接的入口路由器18a、提供廣域網(wǎng)和數(shù)據(jù)中心之間的連接的出口路由器18b、數(shù)據(jù)中心中的另一網(wǎng)絡(luò)設(shè)備、或數(shù)據(jù)中心服務(wù)器設(shè)備20中的任意一者發(fā)送編碼指令。因此,網(wǎng)絡(luò)設(shè)備12可以建立經(jīng)編碼的TCP連接32 ’以在一端處由移動接入點16a端接,并且在另一端處由入口路由器18a、出口路由器18b、數(shù)據(jù)中心服務(wù)器設(shè)備20、或與服務(wù)器設(shè)備20相關(guān)聯(lián)的數(shù)據(jù)中心中的任意其它網(wǎng)絡(luò)設(shè)備中的任意一個端接?;谙挛乃龅拇_定無線數(shù)據(jù)鏈路30遭受最小數(shù)據(jù)損失,離客戶端設(shè)備14最近的對等端點還可以端接到與客戶端設(shè)備14或移動無線接入點16a不同的網(wǎng)絡(luò)設(shè)備(例如,接入網(wǎng)26內(nèi)的路由器設(shè)備或固定無線接入點16b)處。
[0021]因此,示例性實施例使網(wǎng)絡(luò)設(shè)備12能夠由不同于客戶端設(shè)備14的網(wǎng)絡(luò)設(shè)備利用網(wǎng)絡(luò)設(shè)備12選擇的編碼方法(以及編碼參數(shù)),基于確定的接入網(wǎng)條件引起編碼的執(zhí)行。代表客戶端設(shè)備14引起編碼的執(zhí)行的網(wǎng)絡(luò)設(shè)備12消除了對任意客戶端設(shè)備14的任意修改(例如,通過在TCP第3層堆棧和互聯(lián)網(wǎng)協(xié)議(IP)第2層堆棧之間插入編碼層來修改客戶端設(shè)備14中的TCP堆棧)的必要性,因為編碼是由充當(dāng)“代理”編碼設(shè)備的另一網(wǎng)絡(luò)設(shè)備執(zhí)行的。因此,對TCP堆棧的任意修改(例如,在TCP第3層堆棧和IP第2層堆棧之間插入可執(zhí)行的編碼層)可以在對等端點(例如,圖1的16a和16b;圖2的16a和18b)中實現(xiàn)。
[0022]示例性實施例還消除了客戶端設(shè)備14分配大量設(shè)備資源(例如,CPU處理能力、存儲器設(shè)備存儲能力等)來執(zhí)行編碼的需求。具有不同的計算資源需求并且在數(shù)據(jù)流上執(zhí)行編碼的不同的編碼方法(例如,里德所羅門(Reed Solomon)、Turbo編碼、網(wǎng)絡(luò)編碼、XOR編碼)可以是計算密集型的。此外,相比于在接入網(wǎng)26和/或廣域網(wǎng)28內(nèi)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施中部署的網(wǎng)絡(luò)設(shè)備,客戶端設(shè)備(例如,筆記本電腦設(shè)備、智能電話、智能平板等)14具有縮減的計算能力(CPU處理能力或存儲器能力);此外,客戶端設(shè)備14的功率通常被限制為只在電池電源上操作。因此,示例性實施例允許編碼在網(wǎng)絡(luò)26和/或28中部署的網(wǎng)絡(luò)設(shè)備中被執(zhí)行并且被優(yōu)化來執(zhí)行計算密集型網(wǎng)絡(luò)服務(wù)操作(例如,編碼)。
[0023]示例性實施例還提供了選擇應(yīng)該被應(yīng)用于特定TCP傳輸流的編碼方法的靈活性。如下文的進一步詳細描述,網(wǎng)絡(luò)設(shè)備12可以基于與需要執(zhí)行編碼的網(wǎng)絡(luò)設(shè)備的可用處理能力相關(guān)的檢測到的網(wǎng)絡(luò)條件(包括接入網(wǎng)絡(luò)中的數(shù)據(jù)信道(例如,數(shù)據(jù)鏈路30)上的損失率、基于策略的值(包括與客戶端設(shè)備相關(guān)聯(lián)的策略)和/或TCP傳輸流)在不同的編碼方法(例如,XOR編碼、里德所羅門、Turbo編碼、網(wǎng)絡(luò)編碼等)之間進行選擇。因此,網(wǎng)絡(luò)設(shè)備12可以平衡相關(guān)編碼需求和可用的處理資源,以選擇要使用的編碼方法以及用于選擇的編碼方法的編碼參數(shù)。
[0024]示例性實施例允許對根據(jù)面向連接的協(xié)議(例如,TCP、流控制傳輸協(xié)議(SCTP)等)傳輸?shù)木W(wǎng)絡(luò)流量進行編碼,其中對具有雙向通信的反向信道的利用使得對等端點能夠協(xié)商編碼方法和/或編碼參數(shù),其中裝置12可以識別可以在對等端點之間協(xié)商的規(guī)定的編碼方法和/或參數(shù)。對等端點之間的協(xié)商可以利用(數(shù)據(jù)流內(nèi)的、例如標(biāo)識編碼方法和參數(shù)的頭部的)帶內(nèi)信令或(例如,利用單獨的控制信道進行協(xié)商的)帶外信令實現(xiàn);帶外信令還可以被用于對根據(jù)無連接協(xié)議(例如,UDP)傳輸?shù)木W(wǎng)絡(luò)流量進行編碼。
[0025]因此,示例性實施例允許動態(tài)選擇用于代表輸出網(wǎng)絡(luò)流量的客戶端設(shè)備對(例如,面向連接的或無連接的)網(wǎng)絡(luò)流量進行編碼的編碼方法。網(wǎng)絡(luò)流量的編碼可以利用前向糾錯(FEC)(例如,里德所羅門、Turbo編碼、網(wǎng)絡(luò)編碼、XOR編碼等)來向網(wǎng)絡(luò)流量流中添加冗余以解決數(shù)據(jù)分組的任何丟失。前向糾錯提供的冗余允許修復(fù)在通過網(wǎng)絡(luò)介質(zhì)傳輸期間丟失或破壞的任意數(shù)據(jù)分組。因此,網(wǎng)絡(luò)流量的基于FEC編碼可以減少或消除重傳丟失/破壞的數(shù)據(jù)分組的必要性。不采用FEC的其它編碼方法也可以被使用,例如,發(fā)送數(shù)據(jù)分組的冗余副本來避免可能的丟失/破壞的數(shù)據(jù)分組。針對可靠的協(xié)議,這在避免了重傳的需求的同時以更高的用于防止丟失/破壞數(shù)據(jù)分組的帶寬作為權(quán)衡。
[0026]圖2根據(jù)示例性實施例示出圖1的網(wǎng)絡(luò)設(shè)備12、16a、16b、18或20中的任一網(wǎng)絡(luò)設(shè)備的示例性實現(xiàn)方式。每個網(wǎng)絡(luò)設(shè)備12、16a、16b、18和/或20可以包括網(wǎng)絡(luò)接口電路40、處理器電路42、以及存儲器電路44。網(wǎng)絡(luò)接口電路40可以包括一個或多個不同的物理層收發(fā)器,該物理層收發(fā)器用于與經(jīng)由有線或無線數(shù)據(jù)鏈路可到達的任意其它網(wǎng)絡(luò)設(shè)備進行通信;網(wǎng)絡(luò)接口電路40還可以包括用于經(jīng)由有線以太網(wǎng)鏈路與圖1的設(shè)備進行通信的基于IEEE的以太網(wǎng)收發(fā)器和/或光纖收發(fā)器等。處理器電路42可以被配置為執(zhí)行本文所述的任意操作,并且存儲器電路44可以被配置為存儲如本文所述的任意數(shù)據(jù)或數(shù)據(jù)分組,例如,在緩沖器中存儲數(shù)據(jù)分組。
[0027]網(wǎng)絡(luò)設(shè)備12、16、18或20(包括網(wǎng)絡(luò)接口電路40、處理器電路42、存儲器電路44、以及它們相關(guān)聯(lián)的組件)的被公開的電路中的任何一者可以以多種形式實現(xiàn)。被公開的電路的示例性實現(xiàn)方式包括在邏輯陣列(例如,可編程邏輯陣列(PLA)、現(xiàn)場可編程門陣列(FPGA))中實現(xiàn)的、或者通過掩模編程的集成電路(例如,專用集成電路(ASIC)或任意定制的集成電路)實現(xiàn)的硬件邏輯。這些電路中的任意電路可以利用由相應(yīng)的內(nèi)部處理器電路(例如,微處理器電路(未示出))執(zhí)行的基于軟件的可執(zhí)行資源實現(xiàn)以及利用一個或多個集成電路實現(xiàn),其中對存儲于(存儲器電路40內(nèi)的)內(nèi)部存儲器電路中的可執(zhí)行代碼的執(zhí)行使得實現(xiàn)處理器電路的(一個或多個)集成電路在處理器存儲器中存儲應(yīng)用狀態(tài)變量,創(chuàng)建執(zhí)行如本文所述的電路的操作的可執(zhí)行應(yīng)用資源(例如,應(yīng)用實例)。因此,該說明書中使用的術(shù)語“電路”是指使用一個或多個集成電路實現(xiàn)的并且包括用于執(zhí)行所描述的操作的邏輯的基于硬件的電路、或包括處理器電路(利用一個或多個集成電路實現(xiàn)的)的基于軟件的電路,處理器電路包括處理器存儲器的保留部分,其用于存儲由處理器電路通過執(zhí)行可執(zhí)行的代碼而修改的應(yīng)用狀態(tài)數(shù)據(jù)和應(yīng)用變量。存儲器電路44可以例如使用諸如可編程只讀存儲器(PROM)或EPROM之類的非易失性存儲器、和/或諸如DRAM、SRAM之類的易失性存儲器來實現(xiàn)。
[0028]此外,對“輸出消息”或“輸出分組”(等等)的任何提及可以基于創(chuàng)建數(shù)據(jù)結(jié)構(gòu)形式的消息/分組并且將數(shù)據(jù)結(jié)構(gòu)存儲在所公開的裝置中的非暫態(tài)有形存儲器介質(zhì)(例如,在傳輸緩沖器中)中來實現(xiàn)。對“輸出消息”或“輸出分組”(等等)的任何提及還可以包括將存儲于非暫態(tài)有形存儲器介質(zhì)中的消息/分組經(jīng)由通信介質(zhì)(例如,根據(jù)需要為有線鏈路或無線鏈路)(根據(jù)需要還可以使用光傳輸)電傳輸(例如,根據(jù)需要經(jīng)由有線電流或無線電場)到另一網(wǎng)絡(luò)設(shè)備。類似地,對“接收消息”或“接收分組”(等等)的任何提及可以基于所公開的裝置檢測通信介質(zhì)上的消息/分組的電的(或光的)傳輸,并且將檢測到的傳輸作為數(shù)據(jù)結(jié)構(gòu)存儲在所公開的裝置中的非暫態(tài)有形存儲器介質(zhì)(例如,在接收緩沖器中)中。還要注意的是,存儲器電路44可以由處理器電路42動態(tài)實現(xiàn),例如,基于處理器電路42所執(zhí)行的存儲器地址分配和分割。
[0029]圖3根據(jù)示例性實施例示出代表客戶端設(shè)備選擇編碼方法的示例性方法。針對圖3或任意其它附圖所描述的操作可以被實現(xiàn)為(以加密或非加密形式)存儲于計算機或機器可讀非暫態(tài)有形存儲介質(zhì)(例如,軟磁盤、硬磁盤、R0M、EEPR0M、非易失性RAM、CD-R0M等)上的可執(zhí)行代碼,這些操作基于由使用一個或多個集成電路實現(xiàn)的處理器電路執(zhí)行代碼被完成;本文所描述的操作還可以被實現(xiàn)為被編碼在用于執(zhí)行的一個或多個非暫態(tài)有形介質(zhì)(例如,可編程邏輯陣列或設(shè)備、現(xiàn)場可編程門陣列、可編程陣列邏輯、專用集成電路等)中的可執(zhí)行邏輯。
[0030]此外,針對圖1-3中的任意附圖所描述的操作可以以任意適當(dāng)?shù)捻樞驁?zhí)行或者至少一些操作可以并行執(zhí)行。如本文所述的操作的執(zhí)行只是通過舉例的方式;同樣地,操作不一定需要由如本文所述的基于機器的硬件組件執(zhí)行;相反地,其它基于機器的硬件組件可以被用于以任意適當(dāng)?shù)捻樞驁?zhí)行所公開的操作或者并行執(zhí)行至少一些操作。
[0031]網(wǎng)絡(luò)設(shè)備12的處理器電路42被配置為在操作50中監(jiān)控去往或來自與接入網(wǎng)26通信的客戶端設(shè)備14的TCP流。例如,從邊緣路由器(例如,圖1的18a)接收進入流量的每個路由器設(shè)備和/或每個接入點16可以向網(wǎng)絡(luò)設(shè)備12發(fā)送新TCP流的通知。
[0032]在操作52中,網(wǎng)絡(luò)設(shè)備12的處理器電路42可以確定接入網(wǎng)條件,以便于為新的TCP流選擇編碼方法和相關(guān)聯(lián)的編碼參數(shù)。例如,處理器電路42可以針對相應(yīng)編碼設(shè)備的存儲器和處理能力確定需要由編碼設(shè)備同時編碼的傳送流的數(shù)量:如圖1A或IB所示,網(wǎng)絡(luò)設(shè)備
12的處理器電路42可以確定移動接入點16a可能需要為五(5)個客戶端設(shè)備14同時經(jīng)編碼的TCP流。網(wǎng)絡(luò)設(shè)備12的處理器電路42還可以在操作52中確定用于客戶端設(shè)備14和目的地20之間的網(wǎng)絡(luò)流量的傳送的至少一個數(shù)據(jù)信道30的損失率作為接入網(wǎng)條件中的一個條件;如之前針對圖1B所描述的,網(wǎng)絡(luò)設(shè)備12的處理器電路42可以從相應(yīng)的網(wǎng)絡(luò)設(shè)備(例如,接入點和/或路由器設(shè)備)接收針對接入網(wǎng)26(和/SWAN 28)中的任意數(shù)據(jù)鏈路的網(wǎng)絡(luò)性能信息,包括帶寬數(shù)據(jù)速率、誤碼率、損失率(例如,丟失數(shù)據(jù)的百分比)等。
[0033]網(wǎng)絡(luò)設(shè)備12的處理器電路42還可以(經(jīng)由相應(yīng)的設(shè)備接口電路40)接收源自客戶端設(shè)備14、接入點16、邊緣路由器18a或18b和/或“目的地”設(shè)備20的編碼請求,其中編碼請求可以指定針對被識別的TCP傳送流的被識別的編碼方法。網(wǎng)絡(luò)設(shè)備12的處理器電路42還可以選擇性地確定傳送流是否具有可識別的優(yōu)先級(例如,識別高優(yōu)先級網(wǎng)絡(luò)流量)、可識別的策略(例如,相對于其他可用的保護等級或服務(wù)質(zhì)量,規(guī)定的保護等和/或服務(wù)質(zhì)量是否被保證)或可識別的類型(例如,流媒體、文件傳送、網(wǎng)頁請求和響應(yīng)、文本消息等)。因此,網(wǎng)絡(luò)設(shè)備12的處理器電路42可以推斷特定的客戶端設(shè)備14 (例如,經(jīng)由有線連接22a連接的筆記本電腦)要求比與無線接入點16a通信的其他客戶端設(shè)備更高的保護等級。
[0034]在操作54中,網(wǎng)絡(luò)設(shè)備12的處理器電路42可以基于確定的接入網(wǎng)條件選擇用于一個或多個TCP傳送流的多個編碼方法中的一個。具體來說,處理器電路42可以針對給定TCP流“A”,基于傳送流類型、優(yōu)先級、策略、無線客戶端設(shè)備14的標(biāo)識等分析期望的(或所需的)可接受損失率等級。處理器電路42還可以分析用于在客戶端設(shè)備14和相應(yīng)的目的地設(shè)備20之間傳送TCP流的一個或多個數(shù)據(jù)信道30的損失率:如先前所述,處理器電路42可以檢測接入網(wǎng)26中的一個或多個數(shù)據(jù)信道30的損失率,例如以接入點16b針對相應(yīng)的客戶端設(shè)備16a檢測到的分組丟失率的形式。處理器電路42還可以執(zhí)行關(guān)于接入網(wǎng)26的更高級的網(wǎng)絡(luò)性能操作,包括檢測數(shù)據(jù)速率變化、數(shù)據(jù)速率變化的分布等。因此,網(wǎng)絡(luò)設(shè)備12的處理器電路42可以應(yīng)用更高級的流量工程技術(shù)來確定接入網(wǎng)26當(dāng)前的健康狀況和條件。網(wǎng)絡(luò)設(shè)備12的處理器電路42還可以將給定TCP流“A”的可接受損失率的期望等級和接入網(wǎng)條件(接入網(wǎng)26及其相關(guān)聯(lián)的數(shù)據(jù)鏈路30的當(dāng)前健康狀況和條件)與代表客戶端設(shè)備14執(zhí)行選擇的編碼方法的編碼端點(例如,16a和16b)的相關(guān)能力進行比較;因此,當(dāng)給定編碼端點(例如,16a)具有用于另一經(jīng)編碼的TCP流的相對少量的可用處理能力時,網(wǎng)絡(luò)設(shè)備12的處理器電路42可以選擇較低魯棒性的編碼方法(例如,異或(XOR)編碼)。
[0035]因此,在操作54中,網(wǎng)絡(luò)設(shè)備12的處理器電路42可以基于接入網(wǎng)條件(其可以包括執(zhí)行編碼的接入點的相關(guān)能力)選擇用于給定TCP流“A”的多個編碼方法中的一個,例如,異或(XOR)編碼、里德所羅門編碼、Turbo編碼、網(wǎng)絡(luò)編碼、如美國專利N0.8,271,687中所述的流式網(wǎng)絡(luò)編碼等。網(wǎng)絡(luò)設(shè)備12的處理器電路42還可以根據(jù)規(guī)定資源確定任意新的編碼方法相對于網(wǎng)絡(luò)設(shè)備12所維護的注冊編碼方法的規(guī)定列表是否可用:假設(shè)新的編碼方法可用,處理器電路42可以更新它的注冊編碼方法的規(guī)定列表,以通知代表客戶端設(shè)備14執(zhí)行編碼的網(wǎng)絡(luò)設(shè)備。
[0036]網(wǎng)絡(luò)設(shè)備12的處理器電路42還可以選擇針對選擇的編碼方法“M”的相關(guān)參數(shù)“M(P)”。針對基于里德所羅門的編碼可選擇的示例性參數(shù)可以包括被編碼產(chǎn)生線性組合“P(i ),,的數(shù)據(jù)塊“B”的數(shù)量“η”以及用于產(chǎn)生線性組合“P( i ),,的隨機系數(shù)的集合U,如美國專利N0.8,271,687的方程(I)所述。如美國專利N0.8,271,687所述,針對流式網(wǎng)絡(luò)編碼可選擇的示例性參數(shù)可以包括要被編碼產(chǎn)生差分編碼數(shù)據(jù)塊“P(i)”的數(shù)據(jù)塊的數(shù)量“η”和隨機種子 “seedN”。
[0037]在操作56中,網(wǎng)絡(luò)設(shè)備12的網(wǎng)絡(luò)接口電路40可以根據(jù)選擇的編碼方法“Μ”和相關(guān)聯(lián)的編碼參數(shù)“Μ(ρΓ引起對網(wǎng)絡(luò)流量執(zhí)行編碼,例如,基于向接入點16a和16b輸出指令以利用使用編碼參數(shù)“Μ(Α)(ρ1,...ρ η)”的被識別的編碼方法對被識別的傳送流“Α”進行編碼,使得圖1A中的接入點16a和16b在操作58中能夠利用接收到的指令將TCP傳輸替換為經(jīng)編碼的TCP(網(wǎng)絡(luò)編碼的TCP(NC-TCP))傳輸。如關(guān)于圖1B所說明的,指令可以沿著客戶端設(shè)備14和數(shù)據(jù)中心設(shè)備20之間的路徑32’被交替發(fā)送至另一網(wǎng)絡(luò)設(shè)備,例如,廣域網(wǎng)中的路由器18a或18b、與邊緣路由器18a通信的接入網(wǎng)26的邊緣路由器、或接入網(wǎng)26內(nèi)的內(nèi)部路由器設(shè)備。在另一實施例中,網(wǎng)絡(luò)設(shè)備12還可以執(zhí)行如本文所述的編碼,以使網(wǎng)絡(luò)設(shè)備12的網(wǎng)絡(luò)接口電路40能夠基于接收(未編碼的)TCP傳輸和/或輸出NC-TCP傳輸導(dǎo)致編碼的執(zhí)行。指令還可以包括對于檢索與執(zhí)行被識別的編碼方法相關(guān)聯(lián)的可執(zhí)行代碼的引用,例如,當(dāng)被識別的編碼方法是新注冊的編碼方法時以統(tǒng)一資源標(biāo)識符(URI)的形式。
[0038]網(wǎng)絡(luò)設(shè)備12的處理器電路42還可以通過在操作62中通過切換編碼方法“M”和/或一個或多個相關(guān)聯(lián)的參數(shù)來對在操作60中檢測到的網(wǎng)絡(luò)條件的變化進行響應(yīng)。例如,在操作60中,處理器電路42可以檢測相對于上文關(guān)于操作52所述的任意被識別的網(wǎng)絡(luò)條件的變化(包括損失率的改善或惡化、編碼設(shè)備同時編碼的傳送流的數(shù)量的增大或減小、來自客戶端設(shè)備或另一網(wǎng)絡(luò)設(shè)備的編碼請求變化、或優(yōu)先級和/或策略的變化(例如,通過網(wǎng)絡(luò)管理員)。因此,網(wǎng)絡(luò)設(shè)備12可以動態(tài)調(diào)整網(wǎng)絡(luò)中的變化以便于在傳輸層處提供經(jīng)優(yōu)化的編碼:示例性編碼可以包括基于編碼(例如,里德所羅門、Turbo編碼、網(wǎng)絡(luò)編碼等)的前向糾錯(FEC)0
[0039]根據(jù)示例性實施例,基于針對客戶端請求和充當(dāng)代表客戶端設(shè)備執(zhí)行編碼的代理的網(wǎng)絡(luò)設(shè)備的相關(guān)能力確定接入網(wǎng)內(nèi)的接入網(wǎng)條件的裝置,不同編碼方案可以被動態(tài)應(yīng)用于不同的TCP流。因此,編碼可以被應(yīng)用于客戶端設(shè)備的TCP流(或UDP流),而對客戶端設(shè)備沒有任意修改或副作用。此外,可以針對不同的網(wǎng)絡(luò)條件選擇不同的編碼方案,以在接入網(wǎng)內(nèi)提供對編碼的動態(tài)優(yōu)化。基于在接入網(wǎng)26內(nèi)注冊的編碼方法,不同的編碼方法還可以在接入網(wǎng)26內(nèi)被動態(tài)應(yīng)用,并且向適當(dāng)?shù)木W(wǎng)絡(luò)設(shè)備(例如,接入點16a、16b)發(fā)送指令以取回用于執(zhí)行的編碼方法(例如,從網(wǎng)絡(luò)設(shè)備12識別的規(guī)定存儲位置,例如,以統(tǒng)一資源標(biāo)識符的形式)。例如,可以利用向IP流而不是TCP流添加前向糾錯的編碼方法。
[0040]雖然本公開的示例性實施例是結(jié)合目前被認為是用于實施所附權(quán)利要求中指定的主題的最佳模式進行描述的,但是要理解的是,示例性實施例僅是說明性的,并且不限制所附權(quán)利要求中指定的主題。
【主權(quán)項】
1.一種方法,包括: 由網(wǎng)絡(luò)設(shè)備確定接入網(wǎng)中的接入網(wǎng)條件,所述接入網(wǎng)提供客戶端設(shè)備和經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)能到達的目的地之間的通信; 由所述網(wǎng)絡(luò)設(shè)備基于所述接入網(wǎng)條件選擇用于所述客戶端設(shè)備和所述目的地之間的網(wǎng)絡(luò)流量的多個編碼方法中的一個編碼方法,包括選擇用于所述一個編碼方法的編碼參數(shù);以及 由所述網(wǎng)絡(luò)設(shè)備根據(jù)所述一個編碼方法和選擇的編碼參數(shù),代表所述客戶端設(shè)備引起對所述網(wǎng)絡(luò)流量執(zhí)行編碼。2.根據(jù)權(quán)利要求1所述的方法,其中,所述引起包括所述網(wǎng)絡(luò)設(shè)備向所述接入網(wǎng)中的接入點輸出指定所述一個編碼方法和所述選擇的編碼參數(shù)的指令,使所述接入點響應(yīng)于所述指令能夠在所述網(wǎng)絡(luò)流量和經(jīng)編碼的網(wǎng)絡(luò)流量之間轉(zhuǎn)換。3.根據(jù)權(quán)利要求2所述的方法,其中: 所述接入點是固定無線接入點; 所述引起包括所述網(wǎng)絡(luò)設(shè)備向所述固定無線接入點和經(jīng)由無線數(shù)據(jù)鏈路與所述固定無線接入點通信的移動接入點輸出所述指令,使所述固定無線接入點和所述移動接入點能夠建立通過所述無線數(shù)據(jù)鏈路的所述經(jīng)編碼的網(wǎng)絡(luò)流量。4.根據(jù)權(quán)利要求2所述的方法,其中,所述接入點是在連接的車輛中的移動接入點,使所述經(jīng)編碼的網(wǎng)絡(luò)流量經(jīng)由所述數(shù)據(jù)網(wǎng)絡(luò)能夠在所述移動接入點和所述目的地之間傳輸。5.根據(jù)權(quán)利要求1所述的方法,其中,所述引起執(zhí)行編碼包括根據(jù)所述一個編碼方法把所述網(wǎng)絡(luò)流量的傳輸控制協(xié)議(TCP)傳輸替換為被編碼的數(shù)據(jù)分組的經(jīng)編碼的TCP傳輸,所述編碼方法包括前向糾錯(FEC)編碼或網(wǎng)絡(luò)編碼中的任意一個。6.根據(jù)權(quán)利要求1所述的方法,其中,所述確定包括從所述客戶端設(shè)備接收針對被識別的傳送流的編碼請求以利用在所述請求中指定的被識別的方法執(zhí)行所述編碼。7.根據(jù)權(quán)利要求1所述的方法,其中,所述引起包括響應(yīng)于在所述接入網(wǎng)條件中檢測到的變化,切換根據(jù)所述一個編碼方法對所述網(wǎng)絡(luò)流量的至少一個被識別的傳送流執(zhí)行的編碼,或者改變所述選擇的編碼參數(shù)。8.根據(jù)權(quán)利要求7所述的方法,其中,對接入網(wǎng)條件的所述確定包括以下各項中的至少一項: 針對用于執(zhí)行所述編碼的編碼設(shè)備的存儲器和處理能力,確定需要被同時編碼的傳送流的數(shù)量; 確定用于所述客戶端設(shè)備和所述目的地之間的所述網(wǎng)絡(luò)流量的傳送的至少一個數(shù)據(jù)信道的損失率;或者 確定至少一個所述被識別的傳送流的優(yōu)先級。9.根據(jù)權(quán)利要求8所述的方法,其中,所述切換包括基于相應(yīng)的損失率、相應(yīng)的優(yōu)先級、或需要被同時編碼的傳送流的所述數(shù)量的變化中的任意一項改變至少一個所述被識別的傳送流上的所述選擇的編碼參數(shù)。10.—種裝置,包括: 處理器電路,所述處理器被配置為: 確定接入網(wǎng)中的接入網(wǎng)條件,所述接入網(wǎng)提供客戶端設(shè)備和經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)能到達的目的地之間的通信,以及 基于所述接入網(wǎng)條件,選擇用于所述客戶端設(shè)備和所述目的地之間的網(wǎng)絡(luò)流量的多個編碼方法中的一個編碼方法,包括選擇用于所述一個編碼方法的編碼參數(shù);以及 設(shè)備接口電路,所述設(shè)備接口電路被配置為根據(jù)所述一個編碼方法和選擇的編碼參數(shù),代表所述客戶端設(shè)備引起對所述網(wǎng)絡(luò)流量執(zhí)行編碼。11.根據(jù)權(quán)利要求10所述的裝置,其中,所述引起包括所述網(wǎng)絡(luò)設(shè)備向所述接入網(wǎng)中的接入點輸出指定所述一個編碼方法和所述選擇的編碼參數(shù)的指令,使所述接入點響應(yīng)于所述指令能夠在所述網(wǎng)絡(luò)流量和經(jīng)編碼的網(wǎng)絡(luò)流量之間轉(zhuǎn)換。12.根據(jù)權(quán)利要求11所述的裝置,其中: 所述接入點是固定無線接入點; 所述引起包括所述網(wǎng)絡(luò)設(shè)備向所述固定無線接入點和經(jīng)由無線數(shù)據(jù)鏈路與所述固定無線接入點通信的移動接入點輸出所述指令,使所述固定無線接入點和所述移動接入點能夠建立通過所述無線數(shù)據(jù)鏈路的所述經(jīng)編碼的網(wǎng)絡(luò)流量。13.根據(jù)權(quán)利要求11所述的裝置,其中,所述接入點是在連接的車輛中的移動接入點,使所述經(jīng)編碼的網(wǎng)絡(luò)流量經(jīng)由所述數(shù)據(jù)網(wǎng)絡(luò)能夠在所述移動接入點和所述目的地之間傳輸。14.根據(jù)權(quán)利要求10所述的裝置,其中,所述引起執(zhí)行編碼包括根據(jù)所述一個編碼方法把所述網(wǎng)絡(luò)流量的傳輸控制協(xié)議(TCP)傳輸替換為被編碼的數(shù)據(jù)分組的經(jīng)編碼的TCP傳輸,所述編碼方法包括前向糾錯(FEC)編碼或網(wǎng)絡(luò)編碼中的任意一個。15.根據(jù)權(quán)利要求10所述的裝置,其中,所述確定包括從所述客戶端設(shè)備接收針對被識別的傳送流的編碼請求以利用在所述請求中指定的被識別的方法執(zhí)行所述編碼。16.根據(jù)權(quán)利要求10所述的裝置,其中,所述引起包括響應(yīng)于在所述接入網(wǎng)條件中檢測到的變化,切換根據(jù)所述一個編碼方法對所述網(wǎng)絡(luò)流量的至少一個被識別的傳送流執(zhí)行的編碼,或者改變所述選擇的編碼參數(shù)。17.根據(jù)權(quán)利要求16所述的裝置,其中,對接入網(wǎng)條件的所述確定包括以下各項中的至少一項: 針對用于執(zhí)行所述編碼的編碼設(shè)備的存儲器和處理能力,確定需要被同時編碼的傳送流的數(shù)量; 確定用于所述客戶端設(shè)備和所述目的地之間的所述網(wǎng)絡(luò)流量的傳送的至少一個數(shù)據(jù)信道的損失率;或者 確定至少一個所述被識別的傳送流的優(yōu)先級。18.根據(jù)權(quán)利要求17所述的裝置,其中,所述切換包括基于相應(yīng)的損失率、相應(yīng)的優(yōu)先級、或需要被同時編碼的傳送流的所述數(shù)量的變化中的任意一項改變至少一個所述被識別的傳送流上的所述選擇的編碼參數(shù)。19.在一個或多個非暫態(tài)有形介質(zhì)中編碼以由機器執(zhí)行的邏輯,所述邏輯當(dāng)由所述機器執(zhí)行時能操作來: 由網(wǎng)絡(luò)設(shè)備確定接入網(wǎng)中的接入網(wǎng)條件,所述接入網(wǎng)提供客戶端設(shè)備和經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)能到達的目的地之間的通信; 由所述網(wǎng)絡(luò)設(shè)備基于所述接入網(wǎng)條件選擇用于所述客戶端設(shè)備和所述目的地之間的網(wǎng)絡(luò)流量的多個編碼方法中的一個編碼方法,包括選擇用于所述一個編碼方法的編碼參數(shù);以及 由所述網(wǎng)絡(luò)設(shè)備根據(jù)所述一個編碼方法和選擇的編碼參數(shù),代表所述客戶端設(shè)備引起對所述網(wǎng)絡(luò)流量執(zhí)行編碼。20.根據(jù)權(quán)利要求19所述的邏輯,其中,所述引起包括所述網(wǎng)絡(luò)設(shè)備向所述接入網(wǎng)中的接入點輸出指定所述一個編碼方法和所述選擇的編碼參數(shù)的指令,使所述接入點響應(yīng)于所述指令能夠在所述網(wǎng)絡(luò)流量和經(jīng)編碼的網(wǎng)絡(luò)流量之間轉(zhuǎn)換。
【文檔編號】H04L29/06GK105830377SQ201480069488
【公開日】2016年8月3日
【申請日】2014年12月18日
【發(fā)明人】榮·潘, 阿肖克·克里希納吉·莫赫, 道格拉斯·陳, 維杰納瑞亞南·薩布瑞瑪尼安, 弗拉維奧·博諾米
【申請人】思科技術(shù)公司