專利名稱:用于同步流量整形的方法
技術領域:
本發明 一般地涉及計算機網絡流量,并且特別地涉及網絡流量整形。更為特別地,本發明涉及同步請求和響應的流量整形(traffic shaping )。
背景技術:
計算機網絡被廣泛地用于在專用、個人、公共和私人設置中交換信 息。網絡幫助經由通過通信介質發送和/或接收數據的設備來本地地或全 球地獲取和傳輸數據。大量信息每日通過遍布世界的網絡系統進行交 換。因為網絡管理器掙扎于通過減少丟失的數據、延遲、無次序的遞送 和錯誤來改善網絡的服務質量(QoS),網絡流量擁塞使發展慢下來。在 控制網絡流量、最小化網絡擁塞以及減少失敗的傳輸嘗試(超時)的嘗 試中,使用了流量整形。流量整形通過控制發送進網絡和從網絡中發送 出的流量的體量(volume)來優化網絡帶寬的性能。信息是以分段的形 式經由分組來發送的,該分組除包含傳輸的數據之外還包含目的地地 址。傳統的流量整形可以通過使用隊列來存儲分組、操控傳輸控制協議 (TCP)窗口、或默默地丟掉分組來實現。增長的帶寬消耗和對網絡 QoS的更高需求指示傳統的流量整形技術可能不夠用。盡管當前的流量 整形方法已被證明是有效的,但是還有與現有流量整形技術相關聯的許 多缺點,其常常導致不夠理想的網絡數據傳輸。流量整形通常在邊緣路由器或核心路由器上實現,并且提供一種機 制用以控制進入網絡中的數據傳輸的數量、體量和速率。用于流量整形的主要方法包括"漏桶"方法和"令牌桶"方法。漏桶實現還用于控制 將數據發送進網絡的速率,并且提供一種通過其可以將數據請求的浪涌 整形為穩定的數據流的機制。漏桶實現通常被用于將流量整形為流入網 絡的具有固定的準入速率的流,并且在提供用于將流量整形為具有可變 的準入速率的流時 一般是無效的。存在與傳統的網絡流量整形方法相關聯的多個問題。首先,數據分 組在被選擇用于進行處理之前可以放置在隊列中。隊列存儲分組,直到 操作系統選擇該隊列和分組進行處理為止。具有高優先級的隊列總是先 于低優先級的隊列被處理。由此,位于低優先級的隊列中的時間敏感信 息可能在位于較高優先級的隊列中的信息之后被處理。傳統的流量整形方法還包括調節TCP窗口以控制在網絡連接上的 數據流。減小TCP窗口迫使傳輸設備發送更少數據。增大TCP窗口的 大小允許更多數據流自傳輸設備。遺憾地是,TCP窗口的改變可能產生 不理想的結果。在繁忙的流量期間常常命令網絡設備減小或增大TCP 窗口的大小。如果沒有立即實現該改變,則會發生擁塞,并且延遲可能 導致數據傳輸的中斷或丟失的分組,迫使傳輸設備的客戶端(即,正執 行的應用)重傳數據。當前,流量整形僅通過在分組級操控流量來操作。在分組級操控流量導致超時和信息丟失。分組可能在高數據傳輸期間之前、之后或期間被丟掉。存在通過臨時減慢分組傳輸、降低傳輸速率以及選擇預定的分組用于傳輸來解決網絡流量問題的方法。已經證明這些方法中都不理 相發明內容^^開一種用于通過將任務處理成同步請求來實現流量整形的方法、 系統和計算機程序產品,其中任務表示包含在請求中的 一個或多個工作 單元。在請求被通過網絡發送之前,對該單個請求進行檢查以便推導出 該請求將在網絡中生成的工作量。因此,考慮了對請求內的工作量(或 任務數)而不是數據量的測量。應用級流量管理器查詢該請求中的工作量,其與網絡可以支持的工作量進行比較,并且該流量管理器生成許多 流量包絡。基于該查詢的結果,可以實現"任務裁剪"以將請求分成適 合流量包絡的較小的可管理任務。任務裁剪還可以阻止一個或多個個體 工作單元被準許前進穿過網絡的剩余部分。每個個體工作單元獨立于其 它單元進行調度,并且因此系統可僅準許執行工作的子集。因此,通過 實現任務裁剪,系統限制了數據傳輸請求中的浪涌,以便避免網絡擁塞。 在一個實施例中,本發明提供一種通過將完整無損的同步請求傳輸 穿過網絡來進行流量整形的方法。在開放系統互連(OSI)模型的應用 層通過確定進行處理所需的流量包絡數來確定請求的工作負荷。針對該 請求,如果僅需要單個流量包絡,則流量管理器確定是否可以發送該請 求。接著,流量管理器批準/使能將該完整無損的請求傳輸穿過網絡的剩 余部分。
在另 一個實施例中,本發明提供一種通過將分塊的同步請求傳輸穿 過網絡來進行流量整形的方法。在應用層確定請求的工作負荷。可基于 工作負荷將請求分割成較小的可管理任務。流量管理器確定這些較小的 任務中有多少可以繼續前進。如果請求需要一個以上的流量包絡,則請 求被分割成對應于所需包絡數的工作單元。以適合可用流量包絡的分塊 將工作單元(任務)通過網絡發送的剩余部分。系統準許如流量管理器
所允許的一樣多的較小任務繼續前進。流量管理器標識待傳輸穿過網絡 的包絡數。流量管理器使能/批準將包絡中的分塊的請求傳輸給網絡的剩 余部分。
在另 一個實施例中,本發明提供一種通過緊隨請求分塊和任務微調 之后傳輸同步請求來進行流量整形的方法。在應用層確定請求的工作負 荷之后,可以執行任務裁剪。與流量管理器(或流量管理器的部件)相 關聯的軟件實用程序對請求(或分塊的請求)進行微調,直到請求(或 任務)適合通過可用流量包絡傳輸進網絡為止。對請求(或任務)的"微 調,,移除冗余數據或重復性樣式而無信息損失。流量管理器使能/批準將 已微調的請求或任務傳輸到網絡的剩余部分。
本發明的上述以及其他的目的、特征和優點將在以下詳細寫出的說明中變得明顯。
當結合附圖進行閱讀時,通過參考以下對說明性實施例的詳細描 述,本發明自身及其優選的使用模式、其它目的和優點將得到最佳的理
解,其中
圖1是用來實現本發明的說明性實施例的示例數據處理系統的示
圖2是根據本發明的說明性實施例的其中帶有鏈接到流量管理器的 同步傳輸流量整形軟件的計算機可以實現流量整形的環境的示圖3說明根據本發明的說明性實施例的系統可以針對其實現同步流 量整形的環境;
圖4是說明根據本發明的一個實施例的實現對需要一個流量包絡的 任務的同步流量整形的邏輯流程圖5是說明根據本發明的一個實施例的利用任務裁剪實現對任務的 同步流量整形的邏輯流程圖。
具體實施例方式
本發明提供一種用于通過將任務處理成同步請求來實現流量整形 的方法、系統和計算機程序產品,其中任務表示包含在請求中的一個或 多個工作單元。在請求被通過網絡發送之前,對該單個請求進行檢查以
便推導出該請求將在網絡中生成的工作量。因此,考慮了對請求內的工 作量(或任務數)而不是數據量的測量。應用級流量管理器查詢該請求 中的工作量,其與網絡可以支持的工作量進行比較,并且該流量管理器 生成許多流量包絡。基于該查詢的結果,可以實現"任務裁剪"以將請 求分成適合流量包絡的較小的可管理任務。
任務裁剪還可以阻止一個或多個個體工作單元^皮準許前進穿過網 絡的剩余部分。每個個體工作單元獨立于其它單元進行調度,并且因此 流量管理器可僅準許執行工作的子集。因此,通過實現任務裁剪,流量管理器限制了數據傳輸請求中的浪涌,以便避免網絡擁塞。
在以下對本發明的示例性實施例的詳細描述中,足夠詳細地描述了
其中可以實現本發明的特定示例性實施例,以使本領域的普通技術人員 能夠實現本發明,并且應當理解也可以使用其它實施例,以及在不偏離 本發明的精神和范圍的條件下可以做出邏輯的、架構的、程序的、機械 的、電氣的和其它的改變。由此,以下詳細描述不應理解成限制意義, 并且本發明的范圍僅由所附權利要求書限定。
在對各圖的描述中,類似的元素被提供與前面的圖中的那些元素類 似的名字和參考標號。當后面的圖在不同的上下文中使用該元素或使用 具有不同功能的元素時,提供該圖號作為該元素的不同的前導標號(例
如lxx用于圖1而2xx用于圖2 )。提供分配給元素的特定標號僅僅是幫助進行描述,而不意味著暗示對本發明的任何(結構的或功能的)限制。 還應當理解,使用特定的參數名字僅是作為例子,而不意味著暗示
對本發明的任何限制。因此,可以以用來描述上面的參數的不同命名/
術語來實現本發明的各實施例,而無任何限制。
現在參考各圖,圖1描繪代表其中可以方便地實現本發明的各特征
的數據處理系統的框圖。計算機系統100包括經由系統總線/互連110 耦合到系統存儲器115和存儲裝置155的中央處理單元(CPU) 105。 存儲裝置155允許計算機系統100本地地保留數據。輸入/輸出控制器 (1/0控制器)120同樣耦合到系統總線110,輸入/輸出控制器120控 制通過若干輸入設備的訪問,在這些輸入設備中示出了鼠標125和鍵盤 127。 1/0控制器120還控制對輸出設備的訪問,在這些輸出設備中示出 了顯示器129。為了支持使用可移除存儲介質,1/O控制器120還可支 持一個或多個USB端口 (未具體示出)和可讀/寫致密盤(CDRW) / 數字視頻盤(DVD)驅動器(也未示出)。
計算機系統100還包括網絡接口設備(NID) 150,通過該網絡接口 設備計算機系統100能夠連接到外部設備或網絡(諸如因特網或局域網) 并與之進行通信。NID 150可以是調制解調器或網絡適配器,并且還可 以是無線收發器設備。本領域的普通技術人員將意識到,圖1中所描繪的硬件可以變化。 例如,作為所描繪的硬件的補充或替代可以使用其它外圍設備。因此, 所描繪的例子不意味著暗示關于本發明的架構限制。圖1中所描繪的數
據處理系統可以是例如IBM eServer pSeries系統,其是位于紐約州 Armonk的國際商業機器公司的產品,運行高級交互執行(AIX)操作系 統或者LINUX操作系統。
本發明的各種特征被提供為存儲在系統存儲器115或其它存儲裝置 內并由CPU105執行的軟件代碼。在該軟件代碼中存在用于使能經由 NID 150的網絡連接和通信的代碼,以及本發明專用的用于使能下面所 描迷的同步流量整形特征的代碼。為了簡單,使能同步流量整形特征的 代碼的集合體在此被稱為STS實用程序。在實際實現中,STS實用程序 可以集成在現有操作系統(OS )代碼內以提供下面所描述的同步流量整 形功能。在所描述的實施例中,STS實用程序集成到流量管理器中并且 是流量管理器的部件,其提供了增強的流量管理器功能。
因此,如圖l所示,除了上述硬件部件之外,數據處理系統100還 包括許多軟件部件,這些軟件部件包括操作系統(OS) 130 (例如, Microsoft Windows (孩史軟/>司的商標)或GNU /Linux (the Free Software Foundation和The Linux Mark Institute的注冊商標))、 一個或多 個軟件應用135和STS實用程序145。在實現中,OS 130和STS實用 程序145位于系統存儲器115內并在CPU 105上執行。根據該說明性實 施例,當CPU 105執行STS實用程序145時,STS實用程序145使得 在計算機系統100中執行的流量管理器能夠完成一系列功能處理,這些 功能處理包括(1)在計算機網絡內的同步流量整形,其針對需要單個 流量包絡的請求使用任務微調(trimming); ( 2 )使用具有多個流量包絡 的任務裁剪的同步流量整形;以及(3)使用任務裁剪的同步流量整形, 該任務裁剪包括選擇性地丟棄部分信息);以及下面通過圖2-5所描述 的和說明的其它特征/功能。如此處所使用,任務裁剪包括許多獨立的過 程,這些過程包括(a)請求分塊,其涉及將請求分割成較小的可管理 任務,其表示請求內的工作單元;(b)任務微調,通過任務微調每個任
19務的部分(例如冗余或者重復性部分)被微調以使該任務能夠適合流量包絡,而沒有任何相關信息損失;以及(c)選擇性丟棄,通過選擇性 丟棄,任務中的無需傳輸穿過網絡以在網絡內執行請求的那些部分不被 轉發到流量管理器用于傳輸穿過網絡。圖2中的網絡202說明其中可以實現本發明的示例數據網絡。網絡 202包括用作發送計算機系統的計算機系統200,以及其它計算機系統 210到214 (發送或接收計算機系統),所有這些計算機系統都可以類似 于圖1中的計算機系統100。計算機系統200包括同步流量整形和到數 據網絡204的數據傳輸所需的硬件和軟件。諸如公共因特網協議(IP) 網絡之類的數據網絡204鏈接到網絡交換機206。計算機系統200經由 鏈接到數據網絡204的網絡交換機206傳輸和接收數據。根據本發明的 的一個實施例,網絡交換機206包括流量管理器208以幫助進行流量整 形。在該說明性實施例中,網絡交換機206是組網設備,其4吏數據網絡 204能夠使用多個網絡連接。網絡交換機206可以是全雙工網絡交換機, 其允許同步來自多個計算機系統的任務的傳輸。計算機系統200經由數 據網絡204發送信息給遠程用戶。在流量管理器208處接收到來自計算 機系統200的數據傳輸請求。當流量管理器208接收請求時,流量管理 器208實現流量整形,其可包括流量裁剪,下面將對此進行更詳細的描 述。在該說明性實施例中,流量整形是通過確定從計算機系統200上的 客戶端應用("客戶端")發送到流量管理器208的同步請求的工作負荷 來實現的。確定請求的工作負荷而不是數據量可以避免不能容忍同步延 遲的網絡服務中的超時。流量管理器208確定傳輸請求所需的流量包絡 數,如圖3所說明,并且該方法繼續前進管理合適數量的流量包絡。特別地,流量管理器208計算在避免該網絡內的擁塞的同時準許傳 輸穿過數據網絡204的可接納的任務數。在一個實施例中,流量管理器 208將多個可傳輸流量包絡傳送給請求計算機系統200,并且計算機系 統200使用網絡軟件的應用層來確定請求的工作負荷。在另 一 實施例中,流量管理器自身完成對請求的工作負荷的確定,并基于該確定和其它檢 測到/測量的網絡參數執行所需要的流量整形。圖3是根據一個實施例的同步流量整形的實現的說明性實施例。客戶端應用300包括從數據網絡 304傳輸和接收信息所必需的軟件和硬件。更為具體地,客戶端應用300 使用傳輸控制協議/因特網協議(TCPAP )傳輸請求X 312給因特網。應 用層314接收來自客戶端應用300的請求,接著查詢流量管理器308以 確定完成將請求X 312傳輸到數據網絡304所需的流量包絡數。流量管 理器308以當前可傳輸的流量包絡310的數量來應答應用層314。對于 需要一個以上的包絡或任務微調來使請求適合單個包絡的請求,使用 STS實用程序145來執行任務裁剪328中的一個或多個功能(也即,請 求分塊、任務微調和/或選擇性丟棄),如下面所描迷。在另一實施例中,以及如虛線350所說明,STS實用程序的流量整 形功能是作為流量管理器功能的一部分來執行的。在本實施例中,應用 層314接收來自客戶端應用300的請求,接著將該請求轉發給流量管理 器308。當接收到該請求時,流量管理器308執行一系列功能,包括 (a)確定完成將請求X 312傳輸到數據網絡304所需的流量包絡數, 以及(b)執行所需的流量整形,以及(c)使能/批準將已整形的流量傳 輸到網絡。流量管理器308確定當前可傳輸的流量包絡310的數量。對 于需要一個以上的包絡或者任務微調以使請求適合單個包絡的請求, STS實用程序145 (其與流量管理器的部件相關聯或者是流量管理器的 部件)執行任務裁剪328中的一個或多個功能(也即,請求分塊、任務 微調和選擇性丟棄),如下面所描述。在本發明的一個實施例中,客戶端應用300發送請求X312到應用 層314。開放系統互連(OSI)模型中的應用層314提供一種供客戶端 應用300訪問數據網絡304的裝置。應用層314是用于支持從客戶端應 用300傳輸請求X312的協議。諸如數據、文本、語音、視頻等等之類 的提供給數據網絡304的信息可以由流量包絡310來表征。在當前實施 例中,應用層314接收準許以將請求X312分塊成四個流量包絡。流量 包絡310由包括長時間的平均傳輸速率、峰值速率和最大突發容限的一組參數來表征。每個信息參數的值基于所指定的QoS級別。在本發明的另 一實施例中,請求X 312必須分塊成適于適合流量包 絡310的數量的請求。當前的流量整形策略使用任務裁剪328來限制會 擁塞網絡的請求浪涌。任務裁剪由STS實用程序145來執行。請求X312 被分解成分塊的任務322,并作為適合可用流量包絡的同步請求326發 送進網絡。然而,如果分塊的任務不適合可用流量包絡,則進一步執行 任務裁剪。分塊的任務322被微調并轉發,并且剩余部分被標記成"不 可處理",如用剩余部分《效調325所說明的那樣。如在任務裁剪328中 所說明的那樣,承載著傳輸所需信息的已微調的任務324并入流量包絡 310以提供對同步請求326的流量整形。流量管理器308因此接收同步 請求326并傳輸已處理的請求330到數據網絡304。因此,如所提供的那樣,任務裁剪328首先將請求X312分塊成任 務322以補足由流量管理器308分配用于傳輸給數據網絡304的流量包 絡310的數量。接著,如果分塊的任務322不滿足流量包絡310的尺寸 需要,則分塊的任務322被微調。已微調的任務324接著與流量包絡310 進行合并(也即,用流量包絡進行封裝)以提供同步請求326。這些同 步請求326被發送給流量管理器308,并且被準許作為已處理的請求330 繼續前進到數據網絡304。請求X 312中的被微調的部分(剩余部分微調325 )被標記為"不 可處理"。當被批準的網絡流量包絡310已經被填滿,則剩余部分微調 325 #1標記成"不可處理"。在本發明的 一 個實施例中,請求完全適合單個流量包絡并且因此不 需要進行任何分塊。使用所說明的實施例,例如,請求X312未被分塊, 并且請求X 312被封裝在單個流量包絡中,并經由流量管理器308傳輸 給數據網絡304。在本發明的另一實施例中,請求X312可能需要一個 流量包絡,如流量管理器308所確定。然而,不像上面的實施例,請求 X 312可能需要微調形式的任務裁剪以適合在該單個包絡內。在這個例 子中,在請求X 312 ^^皮封裝到該流量包絡之前,請求X 312由STS實用 程序145進行微調。在將請求X312封裝到流量包絡之后,請求被發送到流量管理器308以便傳輸穿過網絡。圖4說明根據本發明的一個實施例說明對需要單個流量包絡的任務 的流量整形的實現的流程圖。處理開始于步驟400,其中到數據網絡的 信息傳輸的請求發送自客戶端設備。在步驟402處,應用層接收信息傳 輸"請求"。在步驟404處,應用層查詢流量管理器,其評估請求的工 作負荷,并在步驟406處確定傳輸該請求所需的流量包絡數。所需的流 量包絡數被確定并被發送到應用層。在另一實施例中,步驟404包括將 該請求傳輸到流量管理器,其使用與其相關聯的(或者是其部件的)STS 實用程序完成流量整形處理。因此,提供了增強的流量管理器功能。在步驟408處做出請求是否需要進行裁剪(也即,進行分塊和/或進 行微調)以適合可用流量包絡的判決。如果不需要針對現有請求進行任 何分塊和微調,則在步驟412處將請求(或請求所提供的任務)封裝在 流量包絡內。然而,如果請求需要進行分塊或微調,則在步驟410處將 請求發送到STS實用程序,以便進行進一步處理。在請求在步驟412 處被封裝在流量包絡內之后,在步驟414處流量包絡^皮傳輸給流量管理 器。在步驟416處,已處理的請求(在流量包絡內)被傳輸到數據網絡。 處理在步驟418處結束。圖5是說明對需要進行分塊和微調的請求的同步流量整形可以如何 實現的流程圖。處理開始于步驟500,其中在傳輸進網絡之前需要進行 另外的分塊或微調的請求被轉發給STS實用程序。STS實用程序在步驟 502處接收到該請求以及流量包絡的數目和大小。在步驟504處,確定 對該請求的傳輸是否需要進行分塊。如果請求需要進行分塊,則在步驟 506處該請求被分塊成與可用流量包絡數相等數目的任務。在步驟504處,如果該請求不需要進行分塊,或者在將請求分塊成 多個任務之后,在步驟508處接著做出下一個確定,該請求(或任務) 是否需要進行微調。如果需要進行微調,則在步驟512處該請求(或任 務)被發送給STS實用程序中的微調函數。在步驟514處,已微調的請 求(或任務)被封裝在流量包絡內。在步驟518處,請求(或任務)的 剩余部分被標記成"不可處理"。返回到判決框508,如果不需要任何微調,則在步驟510處請求被 封裝進流量包絡(無微調)。接著,在步驟520處流量包絡由流量管理 器進行調度。因此,如需要的那樣,在分塊和/或微調之后,所有請求和 /或任務被封裝進包絡,其由流量管理器進行調度用于傳輸。流量管理器 處理包含該請求(或任務)的包絡,并且接著在步驟522處流量管理器 將已處理的請求(或任務)作為同步請求傳輸給數據網絡。處理在步驟 524處結束。在上面的流程圖中,盡管以特定的順序描述和說明了該方法的各步 驟,但是指定的步驟順序的使用不意味著暗示對本發明的任何限制。在 不偏離本發明的精神和范圍的條件下可以對步驟的順序進行改變。由 此,使用特定順序不應理解成限制的意思,并且本發明的范圍僅由所附 權利要求書限定。因此,各實施例提供一種用于通過將任務處理成同步請求來實現流 量整形的方法、系統和計算機程序產品,其中任務表示包含一個或多個 工作單元的請求。每個個體工作單元獨立于其它單元進行調度,并且因 此系統可以僅準許執行工作的子集。考慮了對請求內的工作量而不是數 據量的測量以避免網絡上的擁塞。任務裁剪還可以實現以阻止一個或多 個個體工作單元的冗余部分被準許前進穿過網絡的剩余部分。使用任務 裁剪,請求被分割成較小的任務,并且接著在適合流量包絡的分塊中將 這些較小的任務通過網絡發送的剩余部分。系統準許如流量管理器所允 許的一樣多的較小的任務繼續前進,并因此限制了數據傳輸請求的浪 涌,同時充分地減少了網絡擁塞。最后,需要重點注意盡管已經并且將繼續在帶有安裝軟件的全功 能計算機系統的上下文中描述本發明的說明性實施例,但是本領域的普 通技術人員將意識到本發明的說明性實施例的軟件方面能夠作為各種 各樣形式的程序產品進行分發,并且不論用于實際實現這種分發的信號 承載介質的特定類型,本發明的說明性實施例同等適用。信號承載介質 的例子包括諸如軟盤、硬盤驅動器、CDROM之類的可記錄類型介質和 諸如數字和模擬通信鏈路之類的傳輸類型介質。盡管已參考優選的實施例具體地示出和描述了本發明,但是本領域 的普通技術人員應當理解在不偏離本發明的精神和范圍的條件下可以 做出形式和細節上的各種改變。
權利要求
1.一種方法,包括將針對從客戶端應用向網絡傳輸信息的請求轉發至流量管理器;接收來自所述流量管理器的響應,所述響應包括傳輸由所述請求提供的工作負荷所需的一個或多個流量包絡;計算可被傳輸穿過所述網絡且不會在所述網絡上導致擁塞的包絡數;確定傳輸所述請求是否需要裁剪;以及當需要裁剪時啟動所述對請求的裁剪以生成適合所述包絡的經裁剪的輸出;以及轉發所述封裝在一個或多個包絡內的經裁剪的輸出以便傳輸通過所述網絡。
2. 根據權利要求1所述的方法,其中接收自所述流量管理器的流 量包絡數受限于可以傳輸通過所述網絡且不會在所述網絡內導致擁塞 的包絡數,所述方法還包括將所述請求和所述經裁剪的輸出中的被傳輸 的一個封裝在所述一個或多個包絡內。
3. 根據權利要求2所述的方法,其中所述裁剪包括 阻止傳輸未被封裝在所述一個或多個包絡內的所述請求的剩余部分,其中僅僅將由所述一個或多個包絡表示的所述網絡能夠支持的工作 量由所述流量管理器傳輸通過所述網絡。
4. 根據權利要求1所述的方法,其中,當從所述流量管理器接收 到單個包絡時,所述確定何時需要裁剪包括確定所述請求是否需要進行微調以適合所述單個包絡; 當不需要進行微調時,傳輸所述請求而不進行微調;以及 當需要進行微調時,在傳輸所述請求之前微調所述請求以適合所述 包絡;其中所述請求傳輸通過所述網絡而不會在所述網絡內導致擁塞; 轉發封裝在一個或多個包絡內的經裁剪的輸出以便傳輸通過所述 網纟各;以及阻止傳輸未被封裝在所述包絡內的所述請求的剩余部分,其中僅僅 將由所述包絡表示的所述網絡能夠支持的工作量由所述流量管理器傳 輸通過所述網絡。
5. 根據權利要求1所述的方法,其中,當需要單個包絡用以傳輸 所述請求時,確定何時需要裁剪包括確定所述請求是否需要進行微調以適合所述單個包絡; 當不需要進行微調時,傳輸所述請求而不進行微調;以及 當需要進行微調時,在傳輸所述請求之前微調所述請求以適合所述 包絡;其中所述請求在單個包絡內進行傳輸。
6. 根據權利要求1所述的方法,其中,當從所述流量管理器接收 到多個包絡時,所述啟動所述裁剪包括將所述請求分塊成較小的任務,其中所述請求被分塊成與接收自所 述流量管理器的包絡數相同數量的任務,其中所述請求的工作負荷由網 絡可無擁塞地支持的包絡數來表示,并且其中所述任務代表所述請求所 完成的工作單元;微調所述任務中的一個或多個以使每個任務適合所述多個包絡之 一;以及轉發封裝在所述多個包絡內的所述任務,作為由所述流量管理器傳 輸通過所述網絡的同步請求,其中所述流量管理器接收所述包絡并傳輸 所述任務作為同步請求。
7. 根據權利要求1所述的方法,其中所述裁剪包括 移除所述請求中的一部分,所述部分包括所述請求內的冗余數據和重復樣式中的一個或多個,其中所述被移除部分的移除不會引起來自所 述請求的相關信息的損失;以及留下已移除部分,以指示所述已移除的部分不應當被轉發用于傳輸通過所述網絡。
8. 根據權利要求1所述的方法,其中所述啟動所述裁剪包括當需要將所述請求分塊成較小的任務時,將所述請求轉發到完成對請求分塊的實用程序;以及當需要微調以下之一時(a)所述請求和(b)至少一個所述較小 的任務,將所述請求轉發到完成所述微調的實用程序。
9. 根據權利要求2所述的方法,還包括將所述請求和任務封裝進所述一個或多個流量包絡,其中所述請求 的工作負荷被分割成與流量包絡數相等數目的工作單元;以及完成傳送所述一個或多個包絡到所述流量管理器,所述一個或多個 包絡在其中封裝了以下之一(a)在傳輸之前不需要進行裁剪的完整請 求;(b)已經被微調的請求;(c)從已被分塊成與包絡數相等數目的任 務的請求生成的多個任務;以及(d)多個任務,其中至少一個任務已 經被微調以適合所述包絡。
10. 根據權利要求1所述的方法,還包括 查詢所述請求內的工作量;將所述請求內的工作量與所述網絡能夠支持的工作量進行比較;以及確定用于傳輸所迷請求所必需的流量包絡數,其中所述確定評估與 諸如待由所述請求進行傳輸的數據、文本、聲音或視頻之類的信息量相 關的多個因素。
11. 一種方法,包括接收來自客戶端應用并要傳輸到網絡的請求; 評估與所述請求相關聯的工作量;計算可被傳輸通過所述網絡且不會在所述網絡上導致擁塞的包絡數;生成響應,所述響應包括在所述網絡上可以無擁塞地容納的包絡 數,其中所述包絡數被分配給所述請求;以及當檢測到接收到其中具有封裝了與所述請求相關聯的工作的包絡中的 一個或多個包絡時,將所述包絡中的所述一個或多個包絡作為同步 請求傳輸通過所述網絡。
12. 根據權利要求11所述的方法,還包括當所述請求在所述傳 輸之前需要進行裁剪時,激活對所述請求的裁剪以使所述請求適合所述 一個或多個包絡。
13. 根據權利要求12所述的方法,其中所述裁剪包括 將所述請求和所述經裁剪的輸出中的被傳輸的一個封裝在所述一個或多個包絡內,其中接收自所述流量管理器的流量包絡數受限于可以 傳輸通過所述網絡且不會在所述網絡內導致擁塞的包絡數;轉發封裝在所述一個或多個包絡內的經裁剪的輸出以便傳輸通過 所述網癥各;以及阻止傳輸未被封裝在所述包絡內的所述請求的剩余部分,其中僅僅 將由所述包絡表示的所述網絡能夠支持的工作量由所述流量管理器傳 輸通過所述網絡。
14. 根據權利要求11所述的方法,其中,當需要單個包絡用以傳 輸所述請求時,確定何時需要裁剪包括確定所述請求是否需要進行微調以適合所述單個包絡;以及 當不需要進行微調時,傳輸所述請求而不進行微調;以及 當需要進行微調時,在傳輸所述請求之前微調所述請求以適合所述 包絡;其中所述請求在單個包絡內進行傳輸。
15. 根據權利要求11所述的方法,其中當需要多個包絡用以傳輸 所述請求時,所述啟動所述裁剪包括將所述請求分塊成較小的任務,其中所述請求被分塊成與接收自所 述流量管理器的包絡數相同數量的任務,其中所述請求的工作負荷由網 絡可無擁塞地支持的包絡數來表示,并且其中所述任務代表所迷請求所 完成的工作單元;微調所述任務中的一個或多個以使每個任務適合所述多個包絡之 一;以及轉發封裝在所述多個包絡內的所述任務,作為由所述流量管理器傳 輸通過所述網絡的同步請求,其中所述流量管理器接收所述包絡并傳輸 所述任務作為同步請求。
16. 根據權利要求11所述的方法,其中所述裁剪包括 移除所述請求中的一部分,所述部分包括所述請求內的冗余數據和重復樣式中的一個或多個,其中所述被移除部分的移除不會引起來自所 述請求的相關信息的損失;以及標記所述已移除的部分,以指示所述已移除的部分不應當被轉發用 于傳輸通過所述網絡;當需要將所述請求分塊成較小的任務時,將所述請求轉發到完成對 請求分塊的實用程序;以及當需要微調以下之一時(a)所述請求和(b)至少一個所述較小 的任務,將所述請求轉發到完成所述^f效調的實用程序。
17. 根據權利要求12所述的方法,還包括將所述請求和任務封裝進所述一個或多個流量包絡,其中所述請求 的工作負荷被分割成與流量包絡數相等數目的工作單元;所述一個或多 個包絡在其中封裝以下之一(a)在傳輸之前不需要進行裁剪的完整請 求;(b)已經被微調的請求;(c)從已被分塊成與包絡數相等數目的任 務的請求生成的多個任務;以及(d)多個任務,其中至少一個任務已 經祐J鼓調以適合所述包絡。
18. 根據權利要求11所述的方法,還包括 查詢所述請求內的工作量;將所述請求內的工作量與所述網絡能夠支持的工作量進行比較;以及確定用于傳輸所述請求所必需的流量包絡數,其中所述確定評估與 諸如待由所述請求進行傳輸的數據、文本、聲音或^L頻之類的信息量相 關的多個因素。
19. 一種設備,包括 處理器和存儲器;應用程序,其生成將信息傳輸到網絡的請求;流量管理器控制裝置,用于從所述設備或向所述設備傳輸包括數據、文本、聲音和視頻的信息;程序指令,當所述處理器執行所述程序指令時,使能以下功能將針對從所述應用向網絡傳輸信息的請求轉發至流量管理器;收來自所述流量管理器的響應,所述響應包括傳輸由所述請 求提供的工作負荷所需的以及在所述網絡內可無擁塞地支持的一 個或多個流量包絡;確定傳輸所述請求是否需要裁剪;以及當需要裁剪時啟動所述對請求的裁剪以生成適合所述包絡的經裁剪的輸出;以及轉發所述封裝在一個或多個包絡內的經裁剪的輸出以 便傳輸通過所述網絡;將所述請求和所述經裁剪的輸出中的被傳輸的一個封裝在所 述一個或多個包絡內,其中接收自所述流量管理器的流量包絡數受 限于可以傳輸通過所述網絡且不會在所述網絡內導致擁塞的包絡 數;以及阻止傳輸未被封裝在所述一個或多個包絡內的所述請求的剩 余部分,其中僅僅將由所述一個或多個包絡表示的所述網絡能夠支 持的工作量由所述流量管理器傳輸通過所述網絡。 20.根據權利要求19所述的設備,其中當從所述流量管理器接收到單個包絡時,所述用于確定何時需要裁 剪的程序指令包括用于以下的指令確定所述請求是否需要進行微調以適合所述單個包絡;以及 當不需要進行微調時,傳輸所述請求而不進行微調;以及 當需要進行微調時,在傳輸所述請求之前微調所述請求以適合所述包絡;其中所述請求在單個包絡內進行傳輸,以及 當從所述流量管理器接收到多個包絡時,所述用于啟動所述裁剪的程序指令包括用于以下的指令將所述請求分塊成較小的任務,其中所述請求被分塊成與接收 自所述流量管理器的包絡數相同數目的任務,其中所述請求的工作 負荷由網絡可無擁塞地支持的包絡數來表示,并且其中所述任務代 表所述請求所完成的工作單元;微調所述任務中的一個或多個以使每個任務適合所述多個包 絡之一;以及轉發封裝在所述多個包絡內的所述任務,作為由所述流量管理 器傳輸通過所述網絡的同步請求,其中所述流量管理器接收所述包 絡并傳輸所述任務作為同步請求。
20.<image>image see original document page 8</image>
21. 根據權利要求19所述的設備,其中所述用于進行裁剪的指令 包括用于以下的指令移除所述請求中的一部分,所述部分包括所述請求內的冗余數據和重復樣式中的一個或多個,其中所述被移除部分的移除不會引起來自所 述請求的相關信息的損失;以及留下在裁剪期間從所述請求中移除的部分,防止其被轉發用于傳輸 通過所述網絡;當需要將所述請求分塊成較小的任務時,將所述請求轉發到完成對 請求分塊的實用程序;以及當需要微調以下之一時(a)所述請求和(b)至少一個所述較小 的任務,將所述請求轉發到完成所述微調的實用程序。
22. 根據權利要求19所述的設備,還包括用于以下的指令 將所述請求和任務封裝進所述一個或多個流量包絡,其中所述請求的工作負荷被分割成等于流量包絡數的數目的工作單元;以及完成傳送所述一個或多個包絡到所述流量管理器;所述一個或多個 包絡在其中封裝了以下之一(a)在傳輸之前不需要進行裁剪的完整請 求;(b)已經被微調的請求;(c)從已被分塊成與包絡數相等數目的任務的請求生成的多個任務;以及(d)多個任務,其中至少一個任務已 經^U款調以適合所述包絡。
23. —種方法,包括接收來自客戶端應用并要傳輸到網絡的請求; 評估與所述請求相關聯的工作量; 確定所述網絡上的帶寬的使用級別;計算可被傳輸通過所述網絡且不會在所述網絡上導致擁塞的包絡數;生成響應,所述響應包括在所述網絡上可以無擁塞地容納的包絡 數,其中所述包絡數被分配給所述請求;以及當檢測到接收到其中具有封裝了與所述請求相關聯的工作的包絡 中的一個或多個包絡時,將所述包絡中的所述一個或多個包絡作為同步 請求傳輸通過所述網絡。
24. 根據權利要求23所述的方法,還包括當所述請求在所述傳 輸之前需要進行裁剪時,激活對所述請求的裁剪以使所述請求適合所述 一個或多個包絡。
25. 根據權利要求24所述的方法,其中所述裁剪包括 將所述請求和所述經裁剪的輸出中的被傳輸的一個封裝在所述一個或多個包絡內,其中接收自所述流量管理器的流量包絡數受限于可以 傳輸通過所述網絡且不會在所述網絡內導致擁塞的包絡數;轉發封裝在所述一 個或多個包絡內的經裁剪的輸出以便傳輸通過 所述網絡;以及阻止傳輸未被封裝在所述包絡內的所述請求的剩余部分,其中僅僅 將由所述包絡表示的所述網絡能夠支持的工作量由所述流量管理器傳 輸通過所述網絡。
26. 根據權利要求23所述的方法,其中,當需要單個包絡用以傳 輸所述請求時,確定何時需要裁剪包括確定所述請求是否需要進行微調以適合所述單個包絡;以及 當不需要進行微調時,傳輸所述請求而不進行微調;以及當需要進行微調時,在傳輸所述請求之前微調所述請求以適合所述包絡;其中所述請求在單個包絡內進行傳輸。
27. 根據權利要求23所述的方法,其中當需要多個包絡用以傳輸 所述請求時,所述啟動所述裁剪包括將所述請求分塊成較小的任務,其中所述請求被分塊成與接收自所 述流量管理器的包絡數相同數目的任務,其中所述請求的工作負荷由網 絡可無擁塞地支持的包絡數來表示,并且其中所述任務代表所述請求所 完成的工作單元;微調所述任務中的一個或多個以使每個任務適合所述多個包絡之 一;以及轉發封裝在所述多個包絡內的所述任務,作為由所述流量管理器傳 輸通過所述網絡的同步請求,其中所述流量管理器接收所述包絡并傳輸 所述任務作為同步請求。
28. 根據權利要求23所述的方法,其中所述裁剪包括 移除所述請求中的一部分,所述部分包括所述請求內的冗余數據和重復樣式中的 一個或多個,其中所述被移除部分的移除不會引起來自所 述請求的相關信息的損失;以及標記所述已移除的部分,以指示所述已移除的部分不應當被轉發用 于傳輸通過所述網絡;當需要將所述請求分塊成較小的任務時,將所述請求轉發到完成對 請求分塊的實用程序;以及當需要微調以下之一時(a)所述請求和(b)至少一個所述較小 的任務,將所述請求轉發到完成所述微調的實用程序。
29. 根據權利要求24所述的方法,還包括將所述請求和任務封裝進所述一個或多個流量包絡,其中所述請求 的工作負荷被分割成等于流量包絡數的數目的工作單元;所述一個或多 個包絡在其中封裝以下之一(a)在傳輸之前不需要進行裁剪的完整請 求;(b)已經被微調的請求;(c)從已被分塊成與包絡數相等數目的任務的請求生成的多個任務;以及(d)多個任務,其中至少一個任務已 經被微調以適合所述包絡。
30. 根據權利要求23所述的方法,還包括 查詢所述請求內的工作量;將所述請求內的工作量與所述網絡能夠支持的工作量進行比較;以及確定用于傳輸所述請求所必需的流量包絡數,其中所述確定評估與 諸如待由所述請求進行傳輸的數據、文本、聲音或視頻之類的信息量相 關的多個因素。
31. —種設備,包括 處理器;以及流量管理器,其具有相關聯的流量整形實用程序,所述流量管理器 包括當在所述處理器上執行時完成以下功能的程序指令接收來自客戶端應用并要傳輸到網絡的請求; 評估與所述請求相關聯的工作量;評估可被傳輸通過所述網絡且不會在所述網絡上導致擁塞的包絡數;確定用于傳輸所述請求所必需的流量包絡數,其中所述確定評估與 諸如待由所述請求進行傳輸的數據、文本、聲音或視頻之類的信息量相 關的多個因素;生成響應,所述響應包括在所述網絡上可以無擁塞地容納的包絡 數,其中所述包絡數被分配給所述請求;以及當檢測到接收到其中具有封裝了與所述請求相關聯的工作的包絡 中的一個或多個包絡時,將所述包絡中的所述一個或多個包絡作為同步 請求傳輸通過所述網絡。
32. 根據權利要求31所述的設備,其中所述程序指令還包括用于 當所述請求在所述傳輸之前需要進行裁剪時,激活對所述請求的裁剪以 使所述請求適合所述一個或多個包絡的指令,其中所述裁剪包括將所述請求和所述經裁剪的輸出中的被傳輸的一個封裝在所述一個或多個包絡內,其中接收自所述流量管理器的流量包絡數受限于可以傳輸通過所述網絡且不會在所述網絡內導致擁塞的包絡數;轉發封裝在所述一個或多個包絡內的經裁剪的輸出以便傳輸通過 所述網全各;以及阻止傳輸未被封裝在所述包絡內的所述請求的剩余部分,其中僅僅 將由所述包絡表示的所述網絡能夠支持的工作量由所述流量管理器傳 輸通過所述網絡。
33. 根據權利要求31所述的設備,當需要單個包絡用以傳輸所述 請求時,所述用于確定何時需要裁剪的指令包括用于以下的指令確定所述請求是否需要進行微調以適合所述單個包絡;以及 當不需要進行微調時,傳輸所述請求而不進行微調;以及 當需要進行微調時,在傳輸所述請求之前微調所述請求以適合所述 包絡;其中所述請求在單個包絡內進行傳輸。
34. 根據權利要求31所述的設備,其中當需要多個包絡用以傳輸 所述請求時,所述用于啟動所述裁剪的指令包括用于以下的指令將所述請求分塊成較小的任務,其中所述請求被分塊成與接收自所 述流量管理器的包絡數相同數目的任務,其中所述請求的工作負荷由網 絡可無擁塞地支持的包絡數來表示,并且其中所述任務代表所述請求所 完成的工作單元;微調所述任務中的一個或多個以使每個任務適合所述多個包絡之 一;以及轉發封裝在所述多個包絡內的所述任務,作為由所述流量管理器傳 輸通過所述網絡的同步請求,其中所述流量管理器接收所述包絡并傳輸 所述任務作為同步請求。
35. 根據權利要求31所述的設備,其中所述裁剪包括用于以下的 指令移除所述請求中的一部分,所述部分包括所述請求內的冗余數據和 重復樣式中的一個或多個,其中所述被移除部分的移除不會引起來自所述請求的相關信息的損失;以及標記所述已移除的部分,以指示所述已移除的部分不應當被轉發用于傳輸通過所述網絡;當需要將所述請求分塊成較小的任務時,將所述請求轉發到完成對請求分塊的實用程序;以及當需要微調以下之一時(a)所述請求和(b)至少一個所述較小 的任務,將所述請求轉發到完成所述微調的實用程序。
36.根據權利要求32所述的設備,所述流量管理器還包括用于以 下的程序指令將所述請求和任務封裝進所述一個或多個流量包絡,其中所述請求 的工作負荷被分割成等于流量包絡數的數目的工作單元;所述一個或多 個包絡在其中封裝以下之一(a)在傳輸之前不需要進行裁剪的完整請 求;(b)已經被微調的請求;(c)從已被分塊成與包絡數相等數目的任 務的請求生成的多個任務;以及(d)多個任務,其中至少一個任務已 經被微調以適合所述包絡。
全文摘要
本發明提供了用于同步流量整形的方法。一種方法、系統和計算機程序產品通過將表示包含在請求中的一個或多個工作單元的任務處理成同步請求來實現流量整形。在請求被通過網絡發送之前,對請求進行檢查以便推導出請求將在網絡中生成的工作量。流量管理器查詢該請求中的工作量,其與網絡可以支持的工作量進行比較,并且生成許多流量包絡。基于該查詢的結果,可以實現“任務裁剪”以將請求分成適合流量包絡的較小的可管理任務。任務裁剪還可以僅使工作的子集被執行。因此,當調度請求時,考慮了對請求內的工作量而不是數據量的測量。
文檔編號H04L29/06GK101257445SQ20081008093
公開日2008年9月3日 申請日期2008年2月29日 優先權日2007年3月1日
發明者A·W·小羅貝爾, F·J·卡斯塔尼達, J·K·霍瓦斯 申請人:國際商業機器公司