專利名稱:通信系統(tǒng)中控制數(shù)據(jù)傳輸?shù)姆椒ê拖到y(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信網(wǎng)絡,更具體地說,涉及一種用于傳輸控制協(xié)議(TCP)信息量平滑化的方法和系統(tǒng)。
背景技術:
在安裝于終端站(end station)內(nèi)的某些現(xiàn)有的網(wǎng)絡接口卡(NIC)中,使用長期信息流的應用程序可在更長的時間周期內(nèi)傳輸信息。終端站又稱為終端。信息可通過網(wǎng)絡在發(fā)送終端和接收終端之間傳輸。該網(wǎng)絡可包括多個實現(xiàn)發(fā)送終端和接收終端之間的信息傳輸?shù)耐ㄐ琶襟w和通信設備。信息可通過網(wǎng)絡傳輸以不同的結構形態(tài)傳輸,如消息、數(shù)據(jù)包或幀。傳輸包含有該信息的結構形態(tài)的方法稱為協(xié)議。某些傳輸層數(shù)據(jù)協(xié)議可控制在一定時間內(nèi)可被傳輸?shù)男畔⒘?。傳輸控制協(xié)議(TCP)便是上述協(xié)議的一種。TCP可基于擁塞窗口(congestion window)和緩慢啟動(slow start)限制在一定時間內(nèi)傳輸?shù)男畔⒘?。在信息流傳輸開始時,擁塞窗口可設定為初始值。這可導致由發(fā)送終端傳輸至接收終端的信息量相對比較少。當接收終端接收到由發(fā)送終端傳輸?shù)男畔⒑?,返回確認信息給發(fā)送終端。
收到確認信息后,發(fā)送終端可將擁塞窗口的相關值增加至比初始值大,并基于該與擁塞窗口相關的較大值傳送隨后的信息。這將使得在相同時間段內(nèi)傳送的信息量要比與擁塞窗口相關的值較小時傳送的信息量大。擁塞窗口的大小可隨著與擁塞窗口相關的值的增加而增加。較大的擁塞窗口可使得在發(fā)送終端和接收終端之間的信息傳輸率更高。在接收到隨后的信息后,接收終端可發(fā)送隨后的確認信息。然后發(fā)送終端可基于確認信息的接收繼續(xù)增加擁塞窗口的大小。
在發(fā)送終端沒有收到對之前傳送的信息的確認信息的情況下,發(fā)送終端可確認接收終端沒有接收到之前傳輸?shù)男畔?。發(fā)送終端將重新傳輸或重新發(fā)送之前發(fā)送的沒有收到對應確認信息的信息。此外,發(fā)送終端可確認網(wǎng)絡中出現(xiàn)了擁塞,導致之前傳輸?shù)男畔]有被接收終端接收到。之前傳輸?shù)男畔⒖杀话l(fā)送終端視為“丟失”在網(wǎng)絡中。基于對確認網(wǎng)絡中出現(xiàn)擁塞或網(wǎng)絡擁塞的響應,發(fā)送終端還減小擁塞窗口的大小。擁塞窗口大小的減小使得發(fā)送終端和接收終端之間的信息傳輸率降低。信息傳輸率降低后,隨后可將擁塞窗口的大小再次增加。一個終端的最大信息傳輸率可由NIC的速度決定,該最大信息傳輸率可表示NIC通過通信媒體向網(wǎng)絡傳送或接收信息的最大速率。
隨著NIC速度的增加,在該速度下接收和發(fā)送信息所需的處理需求也隨之增加。例如,當接收終端接收到一個幀時,接收終端內(nèi)的NIC卡發(fā)送通知給該接收終端內(nèi)的中央處理器(CPU)。CPU執(zhí)行與處理接收或發(fā)送的數(shù)據(jù)包相關的協(xié)議相關處理任務。隨著NIC速度的增加,在一個時間段內(nèi)發(fā)送的上述通知或中斷的數(shù)量也隨之增加。上述中斷的量可增加至CPU不能再執(zhí)行其它任務的程度。接收終端的用戶可觀察到應用程序內(nèi)和/或用戶輸入響應的性能降低。
TCP卸載引擎(TOE),包括有TCP/IP(網(wǎng)際協(xié)議)優(yōu)化后的NIC處理TCP包的技術。該技術可從CPU中卸載這些任務。TOE應用的一個例子是10Gb以太網(wǎng)NIC。10Gb以太網(wǎng)包括IEEE 802.3ae規(guī)定的標準,并可定義10Gbps的數(shù)據(jù)傳輸率。該傳輸率又稱為“線路速率(line rate)”。在某些應用中,10Gb以太網(wǎng)可用于基于互聯(lián)網(wǎng)小型計算機系統(tǒng)接口(iSCSI)提供終端間的高速互連,例如個人計算機和計算機工作站,和計算機存儲設備,例如磁盤驅(qū)動器。此外,iSCSI可在包括終端站(例如個人計算機和計算機工作站)和服務器設備(例如互聯(lián)網(wǎng)服務器、郵件服務器和流媒體服務器)的網(wǎng)絡中提供各種設備之間的高速互連。在某些應用中,在計算機存儲設備和計算機工作站之間通過網(wǎng)絡傳送的信息可持續(xù)一段比一般信息傳輸周期長的時間。這些長時間段信息傳輸又稱為“長期(long lived)”信息流或“長期流”。
與網(wǎng)絡連接的多個設備均可傳輸信息。多個設備產(chǎn)生的總信息量可能超過在一個發(fā)送終端或終端站和一個接收終端或終端站之間傳輸信息的網(wǎng)絡的容量。產(chǎn)生的信息量的一部分可被網(wǎng)絡內(nèi)的設備拋棄。被拋棄的包含有信息的數(shù)據(jù)包視為丟失的數(shù)據(jù)包。隨著NIC接口速度的增加,網(wǎng)絡擁塞的可能性也隨之增加。此外,隨著長期流的數(shù)量增加,網(wǎng)絡擁塞的可能性也可能隨之增加。
比較本發(fā)明后續(xù)將要結合附圖介紹的系統(tǒng),現(xiàn)有技術的其它局限性和弊端對于本領域的普通技術人員來說是顯而易見的。
發(fā)明內(nèi)容
本發(fā)明提供一種用于TCP信息量平滑的系統(tǒng)和/或方法,以下將結合至少一副附圖對其進行詳細描述,并在權利要求書中給出更完整的介紹。
根據(jù)本發(fā)明的一個方面,提供一種通信系統(tǒng)中控制數(shù)據(jù)傳輸?shù)姆椒?,所述方法包括基于信息量定義對從TCP卸載引擎發(fā)送信息的時間進行調(diào)度。
優(yōu)選地,所述調(diào)度包括以以下一種速率傳輸所述信息大于所述信息生成速率的速率、約等于所述信息生成速率的速率和小于所述信息生成速率的速率。
優(yōu)選地,所述方法進一步包括基于所述信息的發(fā)送減少令牌計數(shù)值。
優(yōu)選地,所述方法進一步包括基于確定的比率增加所述令牌計數(shù)值。
優(yōu)選地,所述方法進一步包括為所述令牌計數(shù)器設置最大令牌計數(shù)值。
優(yōu)選地,所述方法進一步包括基于所述令牌計數(shù)器的當前值確定是否掛起或發(fā)送當前數(shù)據(jù)包。
優(yōu)選地,所述發(fā)送時間的調(diào)度基于至少以下其一進行服務級和至少一個信息流。
優(yōu)選地,所述信息流包括至少以下之一協(xié)議、源地址、目的地址、源端口和目的端口以及至少與OSI協(xié)議參考模型的高協(xié)議層5至7相關的報頭字段。
根據(jù)本發(fā)明的一個方面,提供一種通信系統(tǒng)中控制數(shù)據(jù)傳輸?shù)南到y(tǒng),所述系統(tǒng)包括至少一個處理器,基于信息量定義對從TCP卸載引擎發(fā)送信息的時間進行調(diào)度。
優(yōu)選地,所述調(diào)度包括以以下一種速率傳輸所述信息大于所述信息生成速率的速率、約等于所述信息生成速率的速率和小于所述信息生成速率的速率。
優(yōu)選地,所述至少一個處理器基于所述信息的發(fā)送減少令牌計數(shù)值。
優(yōu)選地,所述至少一個處理器基于確定的比率增加所述令牌計數(shù)值。
優(yōu)選地,所述至少一個處理器為所述令牌計數(shù)器設置最大令牌計數(shù)值。
優(yōu)選地,所述至少一個處理器基于所述令牌計數(shù)器的當前值確定是否掛起或發(fā)送當前數(shù)據(jù)包。。
優(yōu)選地,所述發(fā)送時間的調(diào)度基于至少以下其一進行服務級和至少一個信息流。
優(yōu)選地,所述信息流包括至少以下之一協(xié)議、源地址、目的地址、源端口和目的端口。
根據(jù)本發(fā)明的一個方面,提供一種機器可讀存儲器,其內(nèi)存儲的計算機程序包括至少一個代碼段,用于在通信系統(tǒng)中控制數(shù)據(jù)傳輸,所述至少一個代碼段由機器執(zhí)行以使所述機器執(zhí)行如下步驟基于信息量定義對從TCP卸載引擎發(fā)送信息的時間進行調(diào)度。
優(yōu)選地,所述機器可讀存儲器進一步包括以以下一種速率傳輸所述信息的代碼大于所述信息生成速率的速率、約等于所述信息生成速率的速率和小于所述信息生成速率的速率。
優(yōu)選地,所述機器可讀存儲器進一步包括基于所述信息的發(fā)送減少令牌計數(shù)值的代碼。
優(yōu)選地,所述機器可讀存儲器進一步包括基于確定的比率增加所述令牌計數(shù)值的代碼。
優(yōu)選地,所述機器可讀存儲器進一步包括為所述令牌計數(shù)器設置最大令牌計數(shù)值的代碼。
優(yōu)選地,所述機器可讀存儲器進一步包括基于所述令牌計數(shù)器的當前值確定是否掛起或發(fā)送當前數(shù)據(jù)包的代碼。
優(yōu)選地,所述發(fā)送時間的調(diào)度基于至少以下其一進行服務級和至少一個信息流。
優(yōu)選地,所述信息流包括至少以下之一協(xié)議、源地址、目的地址、源端口和目的端口以及至少與OSI協(xié)議參考模型的高協(xié)議層5至7相關的報頭字段。
本發(fā)明的各種優(yōu)點、各個方面和創(chuàng)新特征,以及具體實施例的細節(jié),將在以下的說明書和附圖中進行詳細介紹。
下面將結合附圖及實施例對本發(fā)明作進一步說明,附圖中圖1a是根據(jù)本發(fā)明一個實施例的網(wǎng)絡和終端站的示意圖;圖1b是根據(jù)本發(fā)明一個實施例的用于進行傳輸控制協(xié)議(TCP)信息量平滑化的終端站的框圖;圖1c是根據(jù)本發(fā)明一個實施例的包括有網(wǎng)絡接口卡(NIC)用于進行傳輸控制協(xié)議(TCP)信息量平滑化的終端站的框圖;圖2a是根據(jù)本發(fā)明一個實施例通過TCP網(wǎng)絡傳輸數(shù)據(jù)包的示意圖;圖2b是根據(jù)本發(fā)明一個實施例通過TCP網(wǎng)絡傳輸隨后的數(shù)據(jù)包的示意圖;圖2c是根據(jù)本發(fā)明一個實施例在TCP網(wǎng)絡中丟棄數(shù)據(jù)包的示意圖;圖3a是根據(jù)本發(fā)明一個實施依據(jù)用于進行TCP信息量平滑化的NIC內(nèi)的信息量定義(traffic profile)傳輸信息的示意圖;圖3b是根據(jù)本發(fā)明一個實施例在用于進行TCP信息量平滑化的NIC內(nèi)不遵循信息量定義且進行令牌桶填充的情況下進行信息傳輸?shù)氖疽鈭D;圖3c是根據(jù)本發(fā)明一個實施例在用于進行TCP信息量平滑化的NIC內(nèi)不遵循信息量定義且令牌桶已填滿的情況下進行信息傳輸?shù)氖疽鈭D;圖3d是根據(jù)本發(fā)明一個實施例在用于進行TCP信息量平滑化的NIC內(nèi)遵循信息量定義且進行令牌桶清空的情況下進行信息傳輸?shù)氖疽鈭D;圖4是根據(jù)本發(fā)明一個實施例用于以每個信息流為基礎執(zhí)行信息量平滑化的系統(tǒng)的框圖;圖5a是根據(jù)本發(fā)明一個實施例用于以每個服務級(COS)為基礎執(zhí)行信息量平滑化的系統(tǒng)的框圖;圖5b是根據(jù)本發(fā)明一個實施例用于對NIC總信息量執(zhí)行信息量平滑化的系統(tǒng)的框圖;圖6a是根據(jù)本發(fā)明一個實施例用于系統(tǒng)內(nèi)進行令牌桶填充的步驟的流程圖;圖6b是根據(jù)本發(fā)明一個實施例用于系統(tǒng)內(nèi)基于令牌桶進行TCP信息量平滑化的步驟的流程圖;圖7是根據(jù)本發(fā)明一個實施例的入口交換機信息量平滑化的框圖;圖8是根據(jù)本發(fā)明一個實施例的出口交換機信息量平滑化的框圖。
具體實施例方式
本發(fā)明提供一種對TCP信息量平滑化的方法和系統(tǒng)。信息量平滑化包括控制通信系統(tǒng)內(nèi)的數(shù)據(jù)傳輸?shù)姆椒ǎM一步包括基于信息量定義對來自TCP卸載引擎(TOE)的信息的傳輸時間進行調(diào)度的方法。信息量平滑化包括以大于、約等于或小于信息生成速率的速率傳送來自TOE的信息。某些現(xiàn)有的使用TOE的網(wǎng)絡接口卡(NIC)不能提供信息量調(diào)整機制。如果不提供信息量調(diào)整機制,網(wǎng)絡中數(shù)據(jù)包丟失的可能性會更大。
圖1a所示為根據(jù)本發(fā)明一個實施例的網(wǎng)絡和終端站的示意圖。參照圖1a所示的網(wǎng)絡包括多個以太網(wǎng)交換機10、20、30、40和50、外部網(wǎng)絡60和多個終端站(包括計算機工作站和服務器)。如圖1a中所示有多個計算機工作站22、24、26、32、34和36,此外還有多個服務器,包括數(shù)據(jù)庫服務器12、流媒體服務器14、文件服務器16和網(wǎng)絡管理服務器52。圖中還示出了多個終端站對網(wǎng)絡的接口11、13、15、21、23、25、31、33、35和50,以及多個網(wǎng)絡設備對網(wǎng)絡設備的接口41、51、53、55、57和59。
計算機工作站22、24、26、32、34和36包括終端站,可由用戶用于執(zhí)行程序和應用軟件,例如電子郵件、互聯(lián)網(wǎng)瀏覽器、數(shù)據(jù)庫訪問程序和媒體播放器。計算機工作站22包括與接口21連接的NIC。計算機工作站22可使用TOE通過接口21傳輸信息至網(wǎng)絡,或從網(wǎng)絡接收信息。同樣地,計算機工作站24、26、32、34和36可使用各自對應的接口23、25、31、33和35。
數(shù)據(jù)庫服務器12可將信息存儲在一個或多個數(shù)據(jù)庫內(nèi)。數(shù)據(jù)庫服務器12包括有與接口13連接的NIC。一個或多個包含有信息的記錄可從數(shù)據(jù)庫中獲得,并隨后通過接口13傳輸至該網(wǎng)絡。一個或多個記錄可通過接口13從該網(wǎng)絡中獲得并存儲于數(shù)據(jù)庫中。
流媒體服務器14可存儲一個或多個視頻、音頻或多媒體程序。流媒體服務器14包括有與接口15連接的NIC。程序的至少一部分可從次級存儲器中獲得,和/或緩存于主存儲器,并通過接口15傳輸至網(wǎng)絡。通過該網(wǎng)絡傳輸?shù)某掷m(xù)時間可大于、約等于或小于程序的持續(xù)時間。程序可通過接口15從網(wǎng)絡中接收并存儲。
文件服務器16可將信息存儲在一個或多個文件內(nèi)。文件服務器16包括有與接口11連接的NIC。通過接口11可以獲得文件并隨后發(fā)送至該網(wǎng)絡。通過接口11也可以從網(wǎng)絡中接口文件并存儲。
網(wǎng)絡管理服務器52可存儲與網(wǎng)絡中各種網(wǎng)絡通信設備和/或接口的配置和/或可用性有關的信息。網(wǎng)絡管理服務器52還可存儲與終端站以及與其連接的接口的配置和/或可用性有關的信息。網(wǎng)絡管理服務器52包括有與接口51連接的NIC。網(wǎng)絡管理服務器52可用于設定控制網(wǎng)絡通信設備、接口和/或終端站的性能和操作的配置參數(shù)。網(wǎng)絡管理服務器52可使用協(xié)議(例如簡單網(wǎng)絡管理協(xié)議(SNMP))來管理網(wǎng)絡。網(wǎng)絡管理服務器52可通過接口51發(fā)送包含有設定配置參數(shù)命令的信息至網(wǎng)絡,或發(fā)送包含有報告配置參數(shù)當前值的信息至網(wǎng)絡。網(wǎng)絡管理服務器52還可通過接口51從網(wǎng)絡接收包含有配置參數(shù)請求的信息。
以太網(wǎng)交換機10、20、30、40和50為典型的網(wǎng)絡通信設備,用于實現(xiàn)與該網(wǎng)絡連接的終端站之間的信息傳輸。交換機10包括一個或多個線路卡,與接口11、13、15和53連接。交換機10可通過接口13與數(shù)據(jù)庫服務器12通信,通過接口10與流媒體服務器14通信,通過接口11與文件服務器16通信,通過接口53與交換機50通信。交換機10可實現(xiàn)從終端站12、14、16和交換機50中的任何一個到其中任何其他終端站或交換機的信息傳輸。
交換機20包括一個或多個線路卡,與接口21、23、25和55連接。交換機20可通過接口21與工作站22通信,通過接口23與工作站24通信,通過接口25與工作站26通信,以及通過接口55與交換機50通信。交換機20可實現(xiàn)從終端站22、24、26和交換機50中的任何一個到其中任何其它終端站或交換機的信息傳輸。
交換機30包括一個或多個線路卡,與接口31、33、35和41連接。交換機30可通過接口31與工作站32通信,通過接口35與工作站34通信,通過接口33與工作站36通信,以及通過接口41與交換機40通信。交換機30可實現(xiàn)從終端站32、34、36和交換機40中的任何一個到其中任何其它終端站或交換機的信息傳輸。
交換機40包括一個或多個線路卡,與接口41和57連接。交換機40可通過接口41與交換機30通信,以及通過接口57與交換機50通信。交換機40可實現(xiàn)從交換機30和50的中任何一個到其中任何其它交換機的信息傳輸。
交換機50包括一個或多個線路卡,與接口51、53、55、57和59連接。交換機50可通過接口51與網(wǎng)絡管理服務器52通信,通過接口53與交換機10通信,通過接口55與交換機20通信,通過接口57與交換機40通信,以及通過接口59與外部網(wǎng)絡60通信。交換機50可實現(xiàn)從終端站52和交換機10、20和40中任何一個到其中任何其它終端站、交換機或外部網(wǎng)絡的信息傳輸。
外部網(wǎng)絡60包括一個或多個直接或間接與接口59連接的網(wǎng)絡。一個或多個終端站可與外部網(wǎng)絡60連接。
工作過程中,圖1a中所示的網(wǎng)絡包括有使得與該網(wǎng)絡連接的各終端站之間能夠傳輸信息的通信系統(tǒng)。該網(wǎng)絡也支持終端站向外部網(wǎng)絡60發(fā)送信息,或從外部網(wǎng)絡60接收信息。該網(wǎng)絡中可能會出現(xiàn)網(wǎng)絡擁塞,導致數(shù)據(jù)包丟失。例如,多個服務器12、14和16,以及多個工作站22、24、26、32、34和36可在大致重疊時間段內(nèi)向外部網(wǎng)絡60傳送信息。如果接口11、13和15的總線路速率大于接口53的線路速率,交換機10處就會出現(xiàn)網(wǎng)絡擁塞。如果接口21、23和25的總線路速率大于接口55的線路速率,交換機20處就會出現(xiàn)網(wǎng)絡擁塞。如果接口31、33和35的總線路速率大于接口41的線路速率,交換機30處就會出現(xiàn)網(wǎng)絡擁塞。如果接口53、55和57的總線路速率大于接口59的線路速率,交換機50處就會出現(xiàn)網(wǎng)絡擁塞。
圖1b所示為根據(jù)本發(fā)明一個實施例用于進行傳輸控制協(xié)議(TCP)信息量平滑化的終端站的框圖。參照圖1b所示為終端系統(tǒng)100和網(wǎng)絡接口160。終端系統(tǒng)100包括中央處理單元(CPU)110、存儲器控制器120、主機存儲器130、主機接口140和NIC 150。NIC 150包括TOE或者支持TCP的以太網(wǎng)控制器(TEEC)170。
CPU 110與存儲器控制器120以及主機存儲器130連接。CPU 110包括有恰當?shù)倪壿嫛㈦娐泛?或代碼,以傳輸命令和/或信息包至存儲器控制器120或主機存儲器130。主機存儲器130與CPU 110、存儲器控制器120以及主機接口140連接。主機存儲器130可包括恰當?shù)倪壿?、電路?或代碼,以用于存儲或?qū)懸约矮@取或讀取信息。主機存儲器130可采用多種存儲器技術,例如隨機訪問存儲器(RAM)。存儲器控制器120與CPU 110、主機存儲器130和主機接口140連接。存儲器控制器120可包括恰當?shù)倪壿嫛㈦娐泛?或代碼,以向主機存儲器130傳送命令,用以控制對主機存儲器130的讀/寫。對讀取主機存儲器進行控制的結果是可以對讀和/或?qū)懼鳈C存儲器130的時間進行調(diào)度。存儲器控制器130可以是包括有多個集成電路的芯片組內(nèi)的一個部件。主機接口140與存儲器控制器120、主機存儲器130和NIC 150連接。主機接口140可包括恰當?shù)倪壿?、電路?或代碼,以用于將從主機存儲器130讀取的信息傳輸給NIC 150。主機接口140還可用于將從NIC 150接收的信息傳輸給主機存儲器130并寫入其中。NIC 150與主機接口140以及網(wǎng)絡接口160連接。NIC150可包括恰當?shù)倪壿嫛㈦娐泛?或代碼,以用于通過接口160將信息從主機接口140發(fā)送至網(wǎng)絡。NIC 150可用于通過接口160從該網(wǎng)絡接收信息,并將接收的信息傳送給主機接口140。TOE 170可包括恰當?shù)倪壿?、電路?或代碼,用于執(zhí)行協(xié)議處理以及創(chuàng)建一個或多個數(shù)據(jù)包和/或一個或多個幀,以用于通過接口140傳輸信息至網(wǎng)絡。
工作過程中,CPU 110可執(zhí)行應用程序中的步驟,使用NIC 150中的TOE170通過接口160傳送信息至網(wǎng)絡。CPU 110可發(fā)出指令使計算機存儲設備(例如,磁盤驅(qū)動器)傳輸數(shù)據(jù)至主機存儲器130。隨后CPU 110可傳送指令給存儲器控制器120,使主機存儲器130傳輸數(shù)據(jù)至主機接口140。主機接口140可傳輸數(shù)據(jù)至NIC 150。NIC中的TOE 170可對數(shù)據(jù)執(zhí)行協(xié)議處理以創(chuàng)建一個或多個數(shù)據(jù)包和/或一個或多個幀,用于通過網(wǎng)絡傳輸數(shù)據(jù)給接收終端。存儲器控制器120可對從主機存儲器130讀取數(shù)據(jù)的時間進行調(diào)度,這樣的話,存儲器控制器120還可對從TCP卸載引擎向網(wǎng)絡發(fā)送包含有該數(shù)據(jù)的數(shù)據(jù)包的時間進行調(diào)度。存儲器控制器120可利用信息量定義來確定時間的調(diào)度。例如,信息量定義中可對從TOE向網(wǎng)絡傳輸信息的速率作出規(guī)定。該速率可大于、約等于或小于信息從CPU 110傳輸至主機存儲器130的速率。該速率還可大于、約等于或小于信息從計算機存儲設備傳輸至主機存儲器130的速率。信息傳輸至主機存儲器130以便隨后通過接口160傳輸至網(wǎng)絡的速率,可視為信息生成的速率。
圖1c所示為根據(jù)本發(fā)明一個實施例用于進行TCP信息量平滑化且包括有網(wǎng)絡接口卡的終端站的框圖。參照圖1c所示為終端系統(tǒng)105和網(wǎng)絡接口160。終端系統(tǒng)105包括中央處理單元(CPU)110、主機存儲器130和NIC 155。NIC 155包括存儲器控制器120、專用存儲器135和TOE或TEEC 170。
對比圖1b,圖1c所示的終端系統(tǒng)內(nèi),存儲器控制器120可位于NIC上。這樣可使得至少一部分信息量的調(diào)整由NIC 155來執(zhí)行。CPU 110、存儲器控制器120、主機存儲器130和TOE 170可參看圖1b中的描述。圖1c中,存儲器控制器120可與TOE 170連接。專用存儲器135可包括恰當?shù)倪壿?、電路?或代碼,以用于存儲或?qū)懸约矮@取或讀取信息。工作過程中,存儲器控制器120和/或TOE 170可使用專用存儲器135執(zhí)行與信息量平滑化相關的任務。
圖2a是根據(jù)本發(fā)明一個實施例通過TCP網(wǎng)絡傳輸數(shù)據(jù)包的示意圖。參照圖2a所示為以太網(wǎng)交換機202、多個終端站210和220、多個接口211、221和231、多個數(shù)據(jù)包216和226以及外部網(wǎng)絡234。以太網(wǎng)交換機202可包括有存儲器204。終端站210可包括NIC 212和CPU 214。終端站220可包括NIC 222和磁盤驅(qū)動器224。
NIC 212可使用協(xié)議(例如TCP)通過接口211傳送數(shù)據(jù)包216。NIC 222可使用協(xié)議(例如TCP)通過接口221傳送數(shù)據(jù)包226。數(shù)據(jù)包216中包括有CPU 214生成的信息。數(shù)據(jù)包226包括有磁盤驅(qū)動器224生成的信息。NIC 212與接口211連接。NIC 222與接口221連接。以太網(wǎng)交換機202與接口211、221和231連接。
工作過程中,終端站210將數(shù)據(jù)包216發(fā)送給與外部網(wǎng)絡234連接的接收終端站。以太網(wǎng)交換機202通過接口221接收數(shù)據(jù)包216。隨后以太網(wǎng)交換機202通過接口231將數(shù)據(jù)包216發(fā)送給外部網(wǎng)絡234。同樣地,終端站220通過以太網(wǎng)交換機202傳輸數(shù)據(jù)包226至與外部網(wǎng)絡234連接的接收終端站。接口211、221和231的線路速率大約為10Gbps。數(shù)據(jù)包216可包括有多個二進制比特,可通過接口211以10Gbps的速率擦傳輸。數(shù)據(jù)包226可包括多個二進制比特,可通過接口221以10Gbps的速率傳輸。數(shù)據(jù)包216可從終端站210傳輸至以太網(wǎng)交換機202。接收的數(shù)據(jù)包216可存儲在以太網(wǎng)202中的存儲器204內(nèi),然后通過接口231轉(zhuǎn)發(fā)至外部網(wǎng)絡234。數(shù)據(jù)包226可從終端站220傳輸至以太網(wǎng)交換機202。接收的數(shù)據(jù)包226可存儲在以太網(wǎng)交換機202中的存儲器204內(nèi),然后再通過接口231轉(zhuǎn)發(fā)至外部網(wǎng)絡234。
圖2b是根據(jù)本發(fā)明一個實施例通過TCP網(wǎng)絡傳輸隨后的數(shù)據(jù)包的示意圖。參照圖2b所示為以太網(wǎng)交換機202、多個終端站210和220、多個接口211、221、231、多個數(shù)據(jù)包216、217、226、227以及外部網(wǎng)絡234。以太網(wǎng)交換機202包括有存儲器204。終端站210包括NIC 212和CPU 214。終端站220包括NIC 222和磁盤驅(qū)動器224。
對比圖2a,圖2b所示為在隨后時間內(nèi)的數(shù)據(jù)包傳輸。在圖2b中,數(shù)據(jù)包216和226由以太網(wǎng)交換機202接收,并存儲于存儲器204中。數(shù)據(jù)包216和226可利用存儲器204的整個存儲容量。NIC 212可不采用信息量平滑。發(fā)送了數(shù)據(jù)包216后,終端站210可繼續(xù)以10Gbps的速率發(fā)送信息,通過接口211發(fā)送隨后的數(shù)據(jù)包217。NIC 222也可不采用信息量平滑。發(fā)送了數(shù)據(jù)包226后,終端站220繼續(xù)以10Gbps的速率發(fā)送信息,通過接口221發(fā)送隨后的數(shù)據(jù)包227。
圖2c是根據(jù)本發(fā)明一個實施例在TCP網(wǎng)絡中丟棄數(shù)據(jù)包的示意圖。參照圖2c所示為以太網(wǎng)交換機202、多個終端站210和220、多個接口211、221、231、多個數(shù)據(jù)包216、217、226、227以及外部網(wǎng)絡234。以太網(wǎng)交換機202可包括有存儲器204。終端站210包括NIC 212和CPU 214。終端站220包括NIC 222和磁盤驅(qū)動器224。
對比圖2b,圖2c所示為數(shù)據(jù)包的傳輸和丟棄。以太網(wǎng)交換機202通過接口211和221接收的信息量可通過接口231傳送出去。接口211和221的總線路速率可約等于20Gbps。此總線路速率大于接口231的10Gbps的線路速率。導致的結果是,到達以太網(wǎng)交換機202并存儲在存儲器204中的數(shù)據(jù)報的速率大于從以太網(wǎng)交換機202發(fā)送出去以及從存儲器204中重新讀出的速率。如圖2c中所示,數(shù)據(jù)包226從存儲器204中重新讀出并通過接口231發(fā)送出去。將數(shù)據(jù)包226從存儲器204中讀出可以釋放存儲器的空間,以便存儲隨后接收的數(shù)據(jù)包。數(shù)據(jù)包227可存儲于存儲器204中。但是存儲器204可能沒有空閑的空間來接收隨后的數(shù)據(jù)包227。因此,以太網(wǎng)交換機202丟棄數(shù)據(jù)包227。
圖3a是根據(jù)本發(fā)明一個實施依據(jù)用于進行TCP信息量平滑化的NIC內(nèi)的信息量定義(traffic profile)傳輸信息的示意圖。參照圖3a所示為NIC 302。NIC 302包括令牌桶304、令牌305、TOE 350和多個數(shù)據(jù)包306、308…310。數(shù)據(jù)包306、308…310可由TOE 350生成。
NIC 302可使用信息量定義來指定信息傳輸?shù)乃俾始s等于R bps(字節(jié)/秒)。速率R bps可小于NIC 302的線路速率。只要信息量生成的速率約等于Rbps,則信息量平滑化包括對以約等于信息生成速率的速率發(fā)送來自TOE的數(shù)據(jù)包306、308…310內(nèi)的信息進行調(diào)度。在給定的一段瞬時時間內(nèi),令牌桶304的狀態(tài)可包括令牌305。令牌可以一定的速率(例如速率R)到達令牌桶304。與令牌桶304相關的對應的令牌計數(shù)值隨著每個令牌的到達而增加。令牌計數(shù)值可增加至最大值Tmax。當前計數(shù)值達到Tmax時,視為令牌桶304已填滿。在TOE 350發(fā)送數(shù)據(jù)包306之后,令牌桶304內(nèi)的令牌數(shù)量將減少。該令牌數(shù)量的減少將改變與令牌桶304相關的對應令牌計數(shù)值。如果當前令牌計數(shù)值小于或等于0,信息量平滑算法將阻止NIC 302發(fā)送隨后的數(shù)據(jù)包308,直到令牌計數(shù)值大于0。當前令牌計數(shù)值小于或等于0時,視為令牌桶304已被清空。如果信息生成的速率約等于R bps,那么在TOE 350發(fā)送數(shù)據(jù)包306、308和310的瞬時時間時,令牌桶304的令牌計數(shù)值將大于0。
圖3b是根據(jù)本發(fā)明一個實施例在用于進行TCP信息量平滑化的NIC內(nèi)不遵循信息量定義且令牌桶已填滿的情況下進行信息傳輸?shù)氖疽鈭D。參照圖3b所示為NIC 302。NIC 302包括令牌桶304、多個令牌305、307、309和311、TOE 350以及多個數(shù)據(jù)包316、318、320…322。數(shù)據(jù)包316、318、320…322可由TOE 350產(chǎn)生。
NIC 302可使用信息量定義來規(guī)定信息傳輸速率約等于R bps。速率R bps可小于NIC 302的線路速率。如果信息量的生成速率約等于Q bps,且速率Q比速率R大,信息量平滑操作包括對在有限的一段時間周期內(nèi)以大致與信息生成速率相等的速率從TOE 350中發(fā)送數(shù)據(jù)包316、318、320…322內(nèi)的信息進行調(diào)度。該時間周期可基于令牌桶304的狀態(tài)確定。如果在一個時間增量內(nèi)數(shù)據(jù)包傳輸速率Q大于R,令牌計數(shù)值以超過令牌補充速率的速率遞減。在以大于R的速率Q傳輸開始時,令牌桶304的令牌計數(shù)值可達到值Tmax。這表示令牌桶304已填滿且不能再接收到達的令牌。在以大于R的速率Q傳輸信息的時間段內(nèi),tburst可小于或等于Tmax/(Q-R)。
圖3c是根據(jù)本發(fā)明一個實施例在用于進行TCP信息量平滑化的NIC內(nèi)不遵循信息量定義且進行令牌桶填充的情況下進行信息傳輸?shù)氖疽鈭D。參照圖3c所示為NIC 302。NIC 302包括令牌桶304、TOE 350和多個數(shù)據(jù)包318、320…322、324。數(shù)據(jù)包318、320…322、324可由TOE 350生成。
繼續(xù)圖3b的討論,如果令牌桶304的令牌計數(shù)值達到一個小于或等于0的值,而且信息量繼續(xù)以約等于Q bps(速率Q大于速率R)的速率生成時,信息量平滑化就是對以小于信息生成速率的速率發(fā)送來自TOE 350的數(shù)據(jù)包318、320…322、324內(nèi)的信息進行調(diào)度。當令牌桶304為空時,信息量平滑化操作將不再允許TOE 350以約等于Q bps的速率傳送信息。在這種情況下,依據(jù)數(shù)據(jù)包324生成的進度,TOE 350將不發(fā)送包含在數(shù)據(jù)包324中的信息。通過信息量平滑后,如圖3c所示,數(shù)據(jù)包324的傳輸將被阻止。可要求包括有NIC 302的終端系統(tǒng)105將該信息緩存在主機存儲器130內(nèi),直到安排允許該信息的傳送。直到令牌桶304的令牌計數(shù)值達到大于0的值且令牌桶304不再為空時,才能允許安排由TOE 350傳送數(shù)據(jù)包324。
圖3d是根據(jù)本發(fā)明一個實施例在用于進行TCP信息量平滑化的NIC內(nèi)遵循信息量定義且進行令牌桶清空的情況下進行信息傳輸?shù)氖疽鈭D。參照圖3d所示為NIC 302。NIC 302包括令牌桶304、多個令牌305、307、309和311以及多個數(shù)據(jù)包336、338…340。數(shù)據(jù)包336、338…340可由TOE 350生成。
繼續(xù)圖3c的討論,如果信息量生成的速率被降低為約等于T bps,其中在一個遞減的時間增量中,速率T小于速率R,令牌到達令牌桶304的速率大于令牌被移除的速率。如果傳輸以T小于R的速率繼續(xù),令牌桶304的令牌計數(shù)值將增加。如果在一個時間段開始時,令牌桶304為空,經(jīng)過一段速率T小于R的時間段后,令牌桶304的狀態(tài)因增加了令牌305而改變。如果在隨后的時間段內(nèi),傳輸仍以上述速率繼續(xù),令牌桶304的狀態(tài)可隨后因令牌307的到達而改變。如果傳輸仍以上述速率繼續(xù),令牌桶304的狀態(tài)可因為增加了令牌309以及隨后的令牌311而改變。隨著令牌305、307、309和311加入令牌桶304,相關的令牌計數(shù)值也隨之增加。在本發(fā)明的各個實施例中,該令牌計數(shù)值可增加直至達到最大值Tmax。此時,令牌桶304已滿,如果令牌桶304保持在填滿狀態(tài)時,不會再有令牌到達。
圖4是根據(jù)本發(fā)明一個實施例用于以每個信息流為基礎執(zhí)行信息量平滑化的系統(tǒng)的框圖。參照圖4所示,NIC 402包括信息量調(diào)整器404。該信息量調(diào)整器可對由NIC 402傳送的總信息流406的至少一個部分執(zhí)行信息量調(diào)整。總信息流406包括多個單獨的信息流408、410…412和多個信息量調(diào)整器414、416…418。信息量調(diào)整器414可對單個信息流408執(zhí)行信息調(diào)整。信息量調(diào)整器416可對單個信息流410執(zhí)行信息調(diào)整。信息量調(diào)整器418可對單個信息流412執(zhí)行信息調(diào)整。
一個信息流可基于由TOE或更高層協(xié)議生成的數(shù)據(jù)幀或數(shù)據(jù)包的報頭中包含的信息來唯一標識。例如,信息流可基于協(xié)議、源地址、目的地址、源端口、目的端口和/或在更高層協(xié)議中建立的報頭字段來唯一地標識。協(xié)議可標識用于通過網(wǎng)絡發(fā)送數(shù)據(jù)包的協(xié)議。這些協(xié)議包括TCP、用戶數(shù)據(jù)報協(xié)議(UDP)或在TCP之上運行的iSCSI。源和/或目的地址包括網(wǎng)際協(xié)議(IP)地址。源和/或目的端口可對用于通信中的發(fā)送終端站和接收終端站所使用的應用程序進行標識。這些端口可表示超文本傳輸協(xié)議(HTTP)、文件傳輸協(xié)議(FTP)或簡單郵件傳輸協(xié)議(SMTP)。
在本發(fā)明的各個實施例中,信息量調(diào)整器414可使用信息量定義來對信息流408中發(fā)送的信息執(zhí)行信息量調(diào)整。隨后的信息量調(diào)整器416使用不同于信息量調(diào)整器414的信息量定義的一個信息量定義。信息量調(diào)整器416對信息流410中發(fā)送的信息執(zhí)行信息量調(diào)整。但是該多個信息流408、410…412中的某些信息流并未執(zhí)行信息量調(diào)整。
圖5a是根據(jù)本發(fā)明一個實施例用于以每個服務級(COS)為基礎執(zhí)行信息量平滑化的系統(tǒng)的框圖。參照圖5a所示,NIC 502包括信息量調(diào)整器524。該信息量調(diào)整器可對NIC 502發(fā)送的總信息流526的至少一部分執(zhí)行信息量調(diào)整??傂畔⒘?26包括多個單獨的服務級528、…、528a。服務級528包括多個單獨的信息流508、510…512以及信息量調(diào)整器530。服務級528a包括多個單獨的信息流508a、510a…512a以及信息量調(diào)整器530a。
信息量調(diào)整器530可對各個信息流508、510…512中傳送的總信息執(zhí)行信息量調(diào)整。信息量調(diào)整器530a可對各個信息流508a、510a…512a中傳送的總信息執(zhí)行信息量調(diào)整。
一個信息流可基于TOE生成的數(shù)據(jù)幀和/或數(shù)據(jù)包的報頭中包含的信息與特定的COS相關聯(lián)。COS可基于服務類型(TOS)字段(例如,包含在報頭信息內(nèi))被唯一地標識。多個信息流可與一個公共的COS相關聯(lián)。COS可通過公共傳輸特征來標識信息流。例如,一個COS可標識信息流中的信息以接近常量的速率傳輸。另一個COS可標識信息流中的信息以變化的速率傳輸,但是具有特定的最大速率。COS還可用于標識使用一個或多個協(xié)議的信息流。COS還可標識信息流中信息發(fā)送的速率未指定的情況。
在本發(fā)明的各個實施例中,信息量調(diào)整器528可使用信息量定義來對發(fā)送的與COS 528相關的信息執(zhí)行信息量調(diào)整。COS 528內(nèi)發(fā)送的信息包括多個信息流508、510…512中傳送的信息的總量。隨后的信息量調(diào)整器530a可使用與信息量調(diào)整器530的信息量定義不同的一個信息量定義。COS 528a內(nèi)發(fā)送的信息包括多個信息流508a、510a…512a中傳送的信息的總量。多個COS528、…528a中的某些COS并未執(zhí)行信息量調(diào)整。
圖5b是根據(jù)本發(fā)明一個實施例用于對NIC總信息量執(zhí)行信息量平滑化的系統(tǒng)的框圖。參照圖5b所示,NIC 502包括信息量調(diào)整器544。該信息量調(diào)整器對NIC 502傳送的總信息流546執(zhí)行信息調(diào)整??傂畔⒘?46包括信息量調(diào)整器548、多個單獨的服務級552、…552a。服務級552包括多個單獨的信息流508、510…512和信息流聚合器(traffic aggregator)550。信息量聚合器550可將多個信息流508、510…512中傳輸?shù)男畔⒕酆显谝黄?。服務?52a包括多個單獨的信息流508a、510a…512a和信息量聚合器550a。信息量聚合器550a將多個信息流508a、510a…512a中傳輸?shù)男畔⒕酆显谝黄稹?br>
信息量調(diào)整器548可對NIC 502傳送的總信息執(zhí)行信息調(diào)整,該總信息包括單個COS 552和COS 552a內(nèi)的信息以及單個信息流508、510…512、508a、510a…512a內(nèi)的信息的總和。在本發(fā)明的各個實施例中,信息量調(diào)整器548可使用信息量定義對由NIC 502傳送的總信息執(zhí)行信息量調(diào)整。
圖6a是根據(jù)本發(fā)明一個實施例用于系統(tǒng)內(nèi)進行令牌桶填充的步驟的流程圖。參照圖6a,在步驟602中,狀態(tài)變量Tmax可設為預定的值。狀態(tài)變量Token_Cnt=0和Token_Fill_Rate=R。狀態(tài)變量Tmax用于確定令牌桶304中可存儲的令牌的最大數(shù)量。變量Token_Cnt用于確定令牌桶中當前含有的令牌數(shù)量。變量Token_Fill_Rate用于確定令牌加入令牌桶304中的速率。
步驟604中表示經(jīng)過了一個時間單位。步驟606中可確定令牌桶304的當前令牌計數(shù)值token_cnt是否達到最大值Tmax。如果當前令牌計數(shù)值token_cnt達到了最大值Tmax,那么步驟604后將繼續(xù)下一步。如果當前令牌計數(shù)值token_cnt沒有達到最大值Tmax,則以已確定的速率(例如R)來增加該令牌計數(shù)值token_cnt。因而,令牌計數(shù)值token_cnt可依據(jù)下面的等式增加Token_Cnt=Token_Cnt+R [1]然后跳回步驟604。
圖6b是根據(jù)本發(fā)明一個實施例用于系統(tǒng)內(nèi)基于令牌桶進行TCP信息量平滑化的步驟的流程圖。在本發(fā)明中的各個實施例中,圖6b中所示的處理流程可與圖6a中的處理流程同時執(zhí)行。參照圖6b,步驟604中可確定需要發(fā)送的數(shù)據(jù)包是否到達TOE 350,或者之前到達的數(shù)據(jù)包是否因為執(zhí)行信息量平滑化而被掛起。如果為否,處理流程將在步驟612等待直至有數(shù)據(jù)包到達。如果步驟612中確定數(shù)據(jù)包已到達或者數(shù)據(jù)包當前被掛起,則步驟614中確定當前令牌計數(shù)值token_cnt是否大于0。如果不大于0,則令牌桶可能為空。因此,步驟620中,因為執(zhí)行TCP信息量調(diào)整,數(shù)據(jù)包的發(fā)送被掛起,然后回到步驟612。如果令牌計數(shù)值token_cnt大于0,那么步驟616中發(fā)送該數(shù)據(jù)包。步驟618中,可根據(jù)已發(fā)送的數(shù)據(jù)幀中含有的二進制八比特組的數(shù)量遞減令牌計數(shù)值token_cnt。例如,如果發(fā)送的數(shù)據(jù)包中包括多個八比特組,即LEN,那么令牌計數(shù)值token_cnt可根據(jù)如下的式子遞減Token_Cnt=Token_Cnt-LEN [2]然后回到步驟612。
本發(fā)明的各個實施例提供一種TCP信息量平滑化的方法和系統(tǒng)。通過執(zhí)行信息量平滑,進入網(wǎng)絡中的交換設備的大量信息量被轉(zhuǎn)移。這樣可進一步改善與網(wǎng)絡連接的設備(例如計算機工作站、個人計算機和服務器)中執(zhí)行的應用程序性能。這還可以通過減少所需的存儲器空間來降低交換設備的成本。
本發(fā)明的各個實施例并不僅限于對使用傳輸控制協(xié)議(TCP)傳輸?shù)男畔?zhí)行信息量調(diào)整。信息量平滑包括對信息的傳輸時間進行調(diào)度,并可應用于由TCP卸載引擎發(fā)送的至少一個服務級內(nèi)的信息或一個或多個信息流內(nèi)的信息。信息流可基于協(xié)議、源地址、目的地址、源端口、目的端口和/或至少一個與OSI協(xié)議參考模型內(nèi)的高協(xié)議層5至7相關的報頭字段來標識。一個服務級可包括一個或多個信息流。信息量平滑還可應用于包括一個或多個信息流和/或一個或多個服務級的TOE傳送的總信息量。信息量平滑也可用于各種組合情況中。例如,信息量平滑可應用于一個或多個信息流,和/或應用于一個或多個服務級,和/或應用于TOE傳送的總信息量。
本發(fā)明的各個實施例可通過確定NIC傳輸?shù)男畔⒘縼韴?zhí)行信息量平滑。傳輸?shù)男畔⒘靠苫谟蒒IC傳輸?shù)男畔⒌目偙忍亓康闹辽僖徊糠謥頊y得。例如,可對由NIC傳輸?shù)囊粋€或多個完整幀或數(shù)據(jù)包包含的信息量執(zhí)行信息量平滑,或者對一個或多個完整幀或數(shù)據(jù)包內(nèi)每一個的有效載荷部分的信息量執(zhí)行信息量平滑。
圖7是根據(jù)本發(fā)明一個實施例的入口交換機信息量平滑化的框圖。圖7所示為以太網(wǎng)交換機702、入口704、多個緩存填充級706、708、710、712、接口715和NIC 722。NIC 722可通過接口715發(fā)送信息給入口704。入口704可基于從NIC 722接收信息來確定填充級,包括緩存填充級706、708、710或712。例如,填充級706、708、710和712分別對應1/4、1/2、3/4和完全緩存填充級?;谛畔⒘慷x以及緩存填充級的值,以太網(wǎng)交換機702可發(fā)送速率控制消息給NIC 722。該速率控制消息可指示NIC降低通過接口715傳送信息的速率。該速率控制消息可指示NIC降低對應緩存填充級發(fā)送信息的速率。例如,對于緩存填充級706、708、710或712,速率控制消息可對應地指示NIC 722分別將信息發(fā)送的速率降低1/4、1/2、3/4或者暫停傳輸。對于低于緩存填充級706的緩存填充級,不發(fā)送速率控制消息。對于在緩存填充級706和708之間的緩存填充級,速率控制消息對應填充級706。對于在緩存填充級708和710之間的緩存填充級,速率控制消息對應填充級708。對于在緩存填充級710和712之間的緩存填充級,速率控制消息對應填充級710。以太網(wǎng)交換機702可包括有多個入口704。以太網(wǎng)交換機702可對一個或多個入口704使用信息量定義。或者,以太網(wǎng)交換機702可包括有多個入口并使用對應的多個信息量定義。以太網(wǎng)交換機702可使用信息量定義連同在入口704接收的與一個或多個信息流相關的信息。
圖8是根據(jù)本發(fā)明一個實施例的出口交換機信息量平滑化的框圖。圖8所示為以太網(wǎng)交換機802、多個入口814、816、818、出口804、多個緩存填充級806、808、810、812、多個接口815、817、819和多個NIC 822、824、826。NIC 822可通過接口815傳輸信息給入口814。NIC 824可通過接口817傳輸信息給入口816。NIC 826可通過接口819傳輸信息給入口818。以太網(wǎng)交換機802可控制將通過任何入口814、816、818接收的信息通過出口804傳送出去。以太網(wǎng)交換機802可通過接口821從出口804傳送信息。出口804可基于從任何一個入口814、816、818接收信息來確定緩存填充級,包括填充級806、808、810或812。緩存填充級806、808、810和812表示分別對應緩存填充級706、708、710和712的緩存填充級?;谛畔⒘慷x以及表示緩存填充級的值,以太網(wǎng)交換機802可向任何一個NIC 822、824、826傳送速率控制消息。該速率控制消息可指示NIC降低通過對應的接口向以太網(wǎng)交換機發(fā)送信息的速率。速率控制消息可指示NIC降低對應緩存填充級發(fā)送信息的速率。例如,對于緩存級806、808、810或812,速率控制消息可對應地指示NIC分別將信息傳送速率降低1/4、1/2、3/4或暫停傳輸。對于低于緩存填充級806的緩存填充級,不發(fā)送速率控制消息。對于在緩存填充級806和808之間的緩存填充級,速率控制消息對應填充級806。對于在緩存填充級708和710之間的緩存填充級,速率控制消息對應填充級808。對于在緩存填充級810和812之間的緩存填充級,速率控制消息對應填充級810。該速率控制消息可基于NIC發(fā)送的信息以及在對應入口接收的信息對出口804處的填充級的影響程度發(fā)送給一個NIC或多個NIC。
以太網(wǎng)交換機802可包括多個入口804。以太網(wǎng)交換機802可使用與一個或多個入口814、816、818相關的信息量定義。以太網(wǎng)交換機802可包括多個入口和出口,并可基于入口和出口的組合使用對應的多個信息量定義。以太網(wǎng)交換機802可使用信息量定義連同與任何一個入口814、816、818接收的信息以及通過出口804發(fā)送的信息。以太網(wǎng)交換機802可使用與通過入口接收的以及通過出口發(fā)送的一個或多個信息流相關的信息量定義。
因此,本發(fā)明可由硬件、軟件或者硬軟件的結合來實現(xiàn)。本發(fā)明可在至少一個計算機系統(tǒng)中以集中的方式實現(xiàn),或者以不同部件分布在幾個交互連接的計算機系統(tǒng)中的分布式方式實現(xiàn)。任何種類的計算機系統(tǒng)或其他能夠?qū)崿F(xiàn)本發(fā)明的方法的設備都是適用的。硬件、軟件和固件的一個典型結合是具有計算機程序的通用計算機系統(tǒng),當該計算機程序被上載并執(zhí)行時,控制該計算機系統(tǒng)以便實現(xiàn)本發(fā)明所述的方法。
本發(fā)明還可嵌入包括有能夠?qū)崿F(xiàn)所述方法的各種特征的計算機程序產(chǎn)品中,當該程序加載到計算機系統(tǒng)中時能夠?qū)崿F(xiàn)本申請所述的方法。本文中所述的計算機程序是指,例如,以任何語言、代碼或符號表示的一組指令,能夠直接使具有信息處理能力的系統(tǒng)執(zhí)行特定功能,或者經(jīng)過以下一種或各種處理后使具有信息處理能力的系統(tǒng)執(zhí)行特定功能a)轉(zhuǎn)換成另一種語言、代碼或符號;b)以不同的材料復制。但是,本領域的普通技術人員可知的其他計算機程序的實現(xiàn)方法也可用于本發(fā)明。
以上已結合一定的實施例對本發(fā)明進行了描述,本領域的普通技術人員可知,可對本發(fā)明進行各種改變或等同替換而并不脫離本發(fā)明的范圍。此外,根據(jù)本發(fā)明的教導進行的以適應特定的環(huán)境或材料的各種修改也并未脫離本發(fā)明的范圍。因此,本發(fā)明并不限于公開的具體實施例,本發(fā)明包括落入權利要求范圍內(nèi)的所有實施例。
本申請全文引用并要求申請日為2005年4月22的美國臨時專利申請No.60/673,898的優(yōu)先權;本申請還全文引用以下專利申請美國專利申請No.10/651,459,申請日為2003年8月29日;美國臨時專利申請No.60/661,064,申請日為2005年3月11日。
權利要求
1.一種通信系統(tǒng)中控制數(shù)據(jù)傳輸?shù)姆椒?,所述方法包括基于信息量定義對從TCP卸載引擎發(fā)送信息的時間進行調(diào)度。
2.如權利要求1所述的方法,其特征在于,所述調(diào)度包括以以下一種速率傳輸所述信息大于所述信息生成速率的速率、約等于所述信息生成速率的速率和小于所述信息生成速率的速率。
3.如權利要求2所述的方法,其特征在于,所述方法進一步包括基于所述信息的發(fā)送減少令牌計數(shù)值。
4.如權利要求3所述的方法,其特征在于,所述方法進一步包括基于確定的比率增加所述令牌計數(shù)值。
5.如權利要求4所述的方法,其特征在于,所述方法進一步包括為所述令牌計數(shù)器設置最大令牌計數(shù)值。
6.一種通信系統(tǒng)中控制數(shù)據(jù)傳輸?shù)南到y(tǒng),所述系統(tǒng)包括至少一個處理器,基于信息量定義對從TCP卸載引擎發(fā)送信息的時間進行調(diào)度。
7.如權利要求6所述的系統(tǒng),其特征在于,所述調(diào)度包括以以下一種速率傳輸所述信息大于所述信息生成速率的速率、約等于所述信息生成速率的速率和小于所述信息生成速率的速率。
8.如權利要求7所述的系統(tǒng),其特征在于,所述至少一個處理器基于所述信息的發(fā)送減少令牌計數(shù)值。
9.一種機器可讀存儲器,其內(nèi)存儲的計算機程序包括至少一個代碼段,用于在通信系統(tǒng)中控制數(shù)據(jù)傳輸,所述至少一個代碼段由機器執(zhí)行以使所述機器執(zhí)行如下步驟基于信息量定義對從TCP卸載引擎發(fā)送信息的時間進行調(diào)度。
10.如權利要求9所述的機器可讀存儲器,其特征在于,所述機器可讀存儲器進一步包括以以下一種速率傳輸所述信息的代碼大于所述信息生成速率的速率、約等于所述信息生成速率的速率和小于所述信息生成速率的速率。
全文摘要
本發(fā)明公開了一種用于傳輸控制協(xié)議(TCP)信息量平滑的方法和系統(tǒng)。信息量平滑包括在通信系統(tǒng)中控制數(shù)據(jù)傳輸?shù)姆椒ǎ龇椒ㄟM一步包括基于信息量定義文件對從TCP卸載引擎(TOE)發(fā)送信息的時間進行調(diào)度。所述方法還包括以大于、約等于或小于信息生成速率的速率發(fā)送來自TOE的信息。某些現(xiàn)有的采用TOE的網(wǎng)絡接口卡(NIC)未提供支持信息量調(diào)整的機制。不提供信息量調(diào)整機制,則會使得網(wǎng)絡中丟失數(shù)據(jù)包的可能性更大。
文檔編號H04L29/06GK1832483SQ20061005929
公開日2006年9月13日 申請日期2006年3月9日 優(yōu)先權日2005年3月11日
發(fā)明者布魯斯·H·克萬, 普尼特·阿加瓦爾 申請人:美國博通公司