專利名稱:基于分組的網絡中的加速數(shù)據傳輸?shù)闹谱鞣椒?br>
技術領域:
本發(fā)明涉及一種在基于分組的網絡中傳輸數(shù)據的方法,和/或一種用于控制基于分組的網絡中數(shù)據傳輸?shù)脑O備,和/或一種使用相應設備的通信網絡系統(tǒng),和/或一種相應的計算機程序產品。下面的說明書特別地針對在通信網絡中用于數(shù)據分組傳輸中以優(yōu)化傳輸性能的排隊/調度機制。
背景技術:
近年來,日益擴展的諸如互聯(lián)網的數(shù)據傳輸網絡、和諸如象綜合服務數(shù)字網(ISDN)的有線通信網絡這樣的通信網絡、或者象cdma2000(碼分多址)系統(tǒng)、通用移動通信系統(tǒng)(UMTS)、通用分組無線系統(tǒng)(GPRS)這樣的無線通信網絡、或者諸如無線局域網(WLAN)的其它無線通信系統(tǒng)出現(xiàn)在全世界。不同的組織,例如第三代合作伙伴計劃(3GPP)、國際電信聯(lián)盟(ITU)、第三代合作伙伴計劃2(3GPP2)、互聯(lián)網工程任務組(IETF)等等,正在制定電信網絡和多重接入環(huán)境的標準。
總的來說,這種網絡的系統(tǒng)架構是以客戶端/服務器為基礎的。在通信網絡的情況下,一個用戶的諸如移動臺、移動電話、固定電話、個人計算機(PC)、筆記本電腦、個人數(shù)字助理(PDA)等的用戶設備,通過各自的收發(fā)器和諸如空中接口、有線接口等的接口連接到接入網絡子系統(tǒng)。該接入網絡子系統(tǒng)控制著用戶設備的通信連接,并且通過接口與相應的核心或骨干網絡子系統(tǒng)連接。該核心(或骨干)網絡子系統(tǒng)經過通信連接將所傳輸?shù)臄?shù)據交換給目的地,比如另一個用戶設備、服務提供者(服務器/代理)或另一個通信網絡。要注意到,該核心網絡子系統(tǒng)可以與多個接入網絡子系統(tǒng)連接。取決于所使用的通信網絡,實際的網絡架構可以如本領域的技術人員所熟知并在各自的說明書中定義的那樣變化為,例如,UMTS、GSM、WLAN等等。
一般地,為了正確地建立并處理諸如用戶設備和另一個用戶終端、數(shù)據庫、服務器等的網元之間的連接,包含了一個或多個諸如支持節(jié)點或服務節(jié)點的中間網元。
TCP/IP(傳輸控制協(xié)議/互聯(lián)網協(xié)議)是例如LAN、WAN和互聯(lián)網中使用的網絡協(xié)議。隨著無線系統(tǒng)中日益增長的分組服務量,無線系統(tǒng)中TCP的使用增加了,并且相信在不遠的將來,無線系統(tǒng)中相當數(shù)量的通信量是基于TCP的?,F(xiàn)在,全部互聯(lián)網通信量的主要部分是基于TCP/IP的。在TCP中,數(shù)據被分割為該協(xié)議認為最優(yōu)化大小的數(shù)據塊來傳輸。該數(shù)據塊命名為區(qū)段,并且它們的大小必須不超過最大恒定值(最大區(qū)段大小或MSS)。
TCP是一個端到端協(xié)議。一般地,TCP不預先了解網絡特性。因而,適合于根據現(xiàn)有的網絡條件調整傳輸行為。一個重要的特征是所謂擁塞控制。擁塞可以出現(xiàn)在,例如,數(shù)據從一個大管道(快速鏈接)到達一個網絡節(jié)點并從一個較小的管道(較慢鏈接)發(fā)送的時候。擁塞也可以出現(xiàn)在若干輸入數(shù)據流到達輸出能力小于輸入總量的路由器等等的時候。在這種情況中,將輸入的數(shù)據,例如,緩沖在路由器或其它網元的緩沖器裝置中。
一個區(qū)段無論何時由服務器發(fā)送,它都必須到達確認該發(fā)送的區(qū)段的客戶端。服務器發(fā)送該區(qū)段到它接收到相應確認時的經過時間通常稱為往返時間(RTT)。圖6中示出了從服務器發(fā)送到客戶端的區(qū)段或分組1,和從客戶端發(fā)送到服務器的確認ACK 1。該TCP服務器有一個用于計算最大允許RTT估計的變量。這個變量叫做重傳超時(RTO)。此外,服務器有一個計算從發(fā)送了該區(qū)段以來的經過時間的計時器。如果在計時器到達RTO估計器的值之前,相應的確認沒有到達服務器,則服務器認為網絡中發(fā)生擁塞,并啟動擁塞避免動作。
TCP試圖使傳輸率適應網絡鏈接的負載和能力。這是由幾種機制完成的,象慢啟動、重傳超時、快速重傳等等(見,例如,IETF RFC2001中由W.Stevens于1997年1月發(fā)表的“TCP Slow Start,Congestion Avoidance,F(xiàn)ast Retransmit and Fast recovery Algorithms”)??焖僦貍骱椭貍鞒瑫r在TCP/IP分組丟失或者延時超過動態(tài)計時器RTO時,使其重傳。慢啟動使數(shù)據傳輸緩慢啟動,并且逐漸地增加窗口大小以便調整發(fā)送窗口的大小以與當前網絡傳遞區(qū)段(或分組)的能力匹配。慢啟動通常用于連接的開始、重傳計時器的期滿和/或長期被動TCP階段之后。
在下面,考慮蜂窩網絡中的TCP性能。如上所述,TCP是使用ACK到達率以逐漸利用網絡能力的傳輸層協(xié)議。另外,TCP在其慢啟動期間以非常低的吞吐量啟動,這發(fā)生在連接開始時以及有時是在連接期間。在蜂窩網絡中,由于無線接口上的低帶寬和高誤碼率,ACK接收的比率非常低。這意味著TCP發(fā)送器在慢啟動周期期間,將需要長時間以達到合理的吞吐量。
一種典型的利用TCP的網絡的實現(xiàn)方式是使用在網絡中傳輸TCP數(shù)據和ACK分組的所謂先入先出(FIFO)算法。在蜂窩網絡中,由于低鏈接數(shù)據率,網絡隊列可能變得很大。在這種情況下,由FIFO處理導致的網絡行為可以過度地延遲ACK的傳輸,以便阻止TCP發(fā)送器在合理的時間內達到足夠的吞吐量。
如上所述,TCP慢啟動可以發(fā)生在連接開始和計時器超時的如何時候。慢啟動的目的是以小數(shù)據率啟動,以保證網絡至少能夠供應非常少量的數(shù)據。這么做是為了避免網絡擁塞。TCP隨后依靠ACK的到達率逐漸地增加其數(shù)據率,直到達到合理的吞吐量。
然而,在蜂窩網絡中,由于低帶寬和高誤碼率,通常連接的往返時間(RTT)是很大的。這意味著,因為在發(fā)送數(shù)據窗口之后,發(fā)送側在接收到任何確認之前需要等待一個RTT,所以接收ACK的速率非常低。為此,TCP發(fā)送器在慢啟動模式中,在其可以達到合理的吞吐量之前,可能浪費很長時間。這可能使用戶感受到降低了的服務的經歷。要注意到,在網絡中通過必須經由連接轉發(fā)到達的數(shù)據的網絡節(jié)點所接收到的所有分組,都與從到達這個網絡節(jié)點的其它連接接收到的所有分組/數(shù)據一起排隊(或列隊)。這意味著在慢啟動期間,RTT包含很大的來自其它連接的排隊延時成分。
為解決加速連接的數(shù)據傳輸率的問題,已經做出了幾種嘗試。一般,意圖或者是增加連接開始時的數(shù)據率,或者是降低連接的RTT。
對于連接的慢啟動條件,為了降低慢啟動在長延時路徑上所用的時間,試圖例如,改變TCP的窗口增加算法。對此的一個示例是使用比慢啟動開始時的一個分組更大的窗口,其中提議了用最大4個分組的初始窗口。另一個示例定義為分組間隔,例如基于比率的間隔,其中數(shù)據源直接在大窗口發(fā)送,而不會使網絡超負荷。網絡側的另一種方案是為同一個傳輸建立許多并行的TCP連接,然而這在只有有限的傳輸能力可用時是有問題的,而且這也增加了網絡的總體負載。
已經提出了一種叫做基于隊列長度的加權公平排隊(QLWFQ)算法的調度/排隊算法。通常,依靠加權公平排隊算法,為了保證以公平的方式對待每個連接,將來自不同數(shù)據源并且要通過一個網絡節(jié)點發(fā)送的數(shù)據排序,即在合理的時間周期中傳輸每個連接的數(shù)據。在QLWFQ的情況下,調度分組(分配優(yōu)先級)以便最長時間的隊列得到最高的優(yōu)先級。然而,加權公平排隊通常獨立于連接等級信息,使得未考慮TCP連接中的改變。
發(fā)明內容
本發(fā)明的總體目的是提供一種新機制,依靠它可實現(xiàn)通信網絡中改良的具有分組的數(shù)據轉發(fā)/傳輸。
具體來說,本發(fā)明的目標是提供一種用于經由分組通信網絡排隊/調度加速傳輸?shù)臄?shù)據的改善的機制。
為了解決這個問題,根據本說明書中提供的一個方面,提出了例如,一種在基于分組的網絡中轉發(fā)數(shù)據的方法,該方法包括檢測多個連接的步驟、確定多個連接的每一個的緩沖器占用等級的步驟、為與其它連接相比具有較小緩沖器占用等級的連接設定優(yōu)先級的步驟,以及基于設定優(yōu)先級設定步驟的結果調度多個連接的分組的步驟。
此外,根據本說明書中提供的一個方面,提出了例如,一種用于在基于分組的網絡中控制數(shù)據轉發(fā)的設備,該設備包括用于檢測多個連接的檢測裝置、用于確定多個連接的每一個的緩沖器占用等級的確定裝置、用于為與其它連接相比具有較小緩沖器占用等級的連接設定優(yōu)先級的優(yōu)先級設定裝置,以及用于基于由優(yōu)先級設定裝置獲得的結果調度多個連接的分組的調度裝置。
此外,根據本說明書中提供的一個方面,提出了例如,一種在其中可以執(zhí)行基于分組的數(shù)據傳輸?shù)耐ㄐ啪W絡系統(tǒng),該系統(tǒng)至少包括一個可用于控制數(shù)據傳輸?shù)木W絡節(jié)點,其中該網絡節(jié)點包括上面指定的設備。
最后,根據本說明書中提供的一個方面提出了例如,一種包括處理器可執(zhí)行指令的計算機程序產品,用于控制處理器以執(zhí)行上面指定方法。
根據進一步的提練,如在各個從屬權利要求中定義的,提出的解決方案可以另外但不唯一地包括下列特征中的一個或多個-識別在指定類型的連接上發(fā)送的分組;-在緩沖器占用等級的確定中,確定網元緩沖器中的緩沖器占用等級;-優(yōu)先級設定可以包括基于所確定的緩沖器占用等級,為多個連接中的每一個分配優(yōu)先級指示,并處理多個連接的每一個的優(yōu)先級指示以調度分組;-在優(yōu)先級指示的分配中,可以將較高的優(yōu)先級等級分配給緩沖器占用等級比其它連接低的連接;-當經由多個連接中至少一個接收到新的分組時,可以更新分配給多個連接的每一個的優(yōu)先級指示;-在緩沖器占用等級的確定中,可以通過將多個連接中的一個的字節(jié)數(shù)與全部多個連接的字節(jié)數(shù)進行比較,來計算各個連接的緩沖器占用;-可以基于下面的方程式計算緩沖器占用
occupancy(i)=(bytes_enqueued_for_(i))/( bytes_enqueued_for_(j));其中i表示各個連接,occupancy(i)表示各個連接的緩沖器占用等級,bytes enqueued for表示在緩沖器中排隊的各個連接的字節(jié)數(shù),以及N表示多個連接的總數(shù);-所確定的多個連接的每一個的緩沖器占用等級可以與預定的參數(shù)進行比較以決定優(yōu)先級指示分配種類;-所確定的多個連接的每一個的緩沖器占用等級與預定參數(shù)之間的比較可以基于關系式occupancy(i)</N-δ;其中i表示各個連接,occupancy(i)表示各個連接的緩沖器占用等級,N表示多個連接的總數(shù),以及δ表示可配置參數(shù),其δ滿足關系式0<δ<1/N;-優(yōu)先級指示的分配可以包括基于緩沖器占用等級將定義各個連接的分組的傳輸概率的概率值指定給多個連接的每一個;-基于緩沖器占用等級將概率值指定給多個連接的每一個的概率值賦值可以基于方程式sched priorty(i)=(1-occupancy(i))/(N-1);其中i表示各個連接,sched_priorty(i)表示定義各個連接的分組的傳輸概率的概率值,occupancy(i)表示各個連接的緩沖器占用等級,以及N表示多個連接的總數(shù)。
-多個連接的每一個的優(yōu)先級指示的處理可以包括以根據多個連接的每一個的概率值的級別排序連接;-多個連接的每一個的數(shù)據分組的調度可以包括生成隨機數(shù)、基于多個連接的每一個的級別和該隨機數(shù)之間的比較選擇多個連接中的連接,以及調度所選連接的分組以發(fā)送它;-在連接的選擇中,可以選擇其級別大于該隨機數(shù)并且最接近于該隨機數(shù)的連接;-調度數(shù)據分組可以重復;-緩沖器占用等級的確定可以包括通過為各個連接所呈現(xiàn)的所有分組的總數(shù)據量的相加來計算各個連接的緩沖器占用,比較各個連接的總數(shù)據量與為緩沖器的多個隊列定義的唯一的預定閾值,以及基于比較步驟將各個連接指定給隊列之一,其中每一個隊列可以與唯一的優(yōu)先級等級相關聯(lián);-各個連接的總數(shù)據量與為緩沖器的多個隊列定義的唯一的預定數(shù)據量閾值之間的比較可以基于關系式bth(q)≤B<bth(q+1);其中B表示各個連接的總數(shù)據量,q表示多個隊列中的各個隊列,以及bth表示一個隊列的唯一預定數(shù)據量閾值;-在將各個連接指定給隊列之一中,將各個連接指定給其唯一預定數(shù)據量閾值小于或等于各個連接的總數(shù)據量的隊列;-在多個連接的每一個的優(yōu)先級指示的分配中,為其指定了各個連接的隊列的優(yōu)先級值可以分配為各個連接的優(yōu)先級指示;-多個連接的每一個的優(yōu)先級指示的處理可以包括以根據隊列的優(yōu)先級值的級別排序連接;-分組的調度可以包括選擇具有最高的優(yōu)先級指示的連接,以及調度所選連接的分組以發(fā)送它;-在多個連接中的兩個或多個被分配了相同的優(yōu)先級指示的情況下,分組的調度可以基于多個連接中的至少兩個或多個的啟發(fā)式算法;-在多個連接中至少一個的慢啟動條件的情況下,則可以執(zhí)行該機制;-連接可以包括至少一個TCP類型的連接。
此外,根據進一步的提練,如在各自從屬權利要求中定義的,提出的解決方案可以另外,但不排他地包括下列特性中的一個或多個-連接的優(yōu)先級設定可以包括多個連接的每一個的鏈接速度的仿真,其中分組的調度是基于鏈接速度仿真的;-可以基于各個連接的最大鏈接速度確定鏈接速度仿真參數(shù);-可以基于各個連接的往返時間確定鏈接速度仿真參數(shù);-可以基于當前分組是否是各個連接的隊列中的第一個分組來執(zhí)行確定;-在當前分組不是隊列中第一個分組的情況下,可以確定傳輸先前分組的調度時間,可以基于先前分組的調度時間、先前分組的分組大小和鏈接速度仿真參數(shù)計算當前分組的調度時間,其中調度分組的步驟是基于當前分組的調度時間,以及在當前分組是隊列中第一個分組的情況下,第一個分組的傳輸時間可以延遲固定的時間量;-可選擇地,其中在當前分組不是隊列中第一個分組的情況下,可以確定傳輸先前分組的調度時間,可以基于先前分組的調度時間、當前分組的分組大小和鏈接速度仿真參數(shù)計算當前分組的調度時間,其中調度分組的步驟是基于當前分組的調度時間,其中在當前分組是隊列中第一個分組的情況下,可以將傳輸虛擬先前分組的調度時間設定為0,然后可以基于所設定的虛擬先前分組的調度時間、當前分組的分組大小和鏈接速度仿真參數(shù)計算當前分組的調度時間,其中調度分組的步驟是基于當前分組的調度時間;-可以檢查發(fā)送器節(jié)點是否在擁塞避免狀態(tài)中,并且如果發(fā)送器節(jié)點在擁塞避免狀態(tài)中,可以禁止多個連接的每一個的鏈接速度仿真,其中分組的調度基于默認調度機制。
-可以檢查多個連接中的任何一個是否包含不能執(zhí)行多個連接的每一個的鏈接速度仿真的發(fā)送器節(jié)點和/或接收器節(jié)點,并且如果有一個不能執(zhí)行多個連接的每一個的鏈接速度仿真的發(fā)送器節(jié)點和/或接收器節(jié)點,則可以禁止多個連接的每一個的鏈接速度仿真,其中分組的調度基于默認調度機制。
依靠所提出的解決方案,可以實現(xiàn)下列優(yōu)點-所提出的機制中的一個無需改變TCP發(fā)送器或接收器。另一方面,所提出的機制中的另一個無需改變現(xiàn)有網絡的基礎設施。
-由于縮短了慢啟動周期,而改善了用戶體驗。在連接開始時,慢啟動連接的緩沖器占用通常比其它連接的小很多。通過給緩沖器占用較低的那些連接提供較高的優(yōu)先級(即,通過在其它連接之前調度慢啟動中的分組),能夠縮短RTT周期。另一方面,一旦該連接達到和其它連接一樣的緩沖器占用,每個連接都得到相同份額的資源。這對RTT非常大而慢啟動連接在得到帶寬的公平分配之前消耗很長一段時間的蜂窩網絡是非常有利的。
-所提出的機制可以伴隨連接等級的變化。這意味著,例如,TCP連接的優(yōu)先級隨著連接進行而變化,即在由于這個連接的較大的數(shù)據量而需要較大部分的緩沖器時。
-所提出的機制可以應用于多種應用。例如,該機制有效地支持“多功能呼叫(rich call)”(“多功能呼叫”描述了在一個呼叫中象語音、視頻和多媒體信息發(fā)送等的不同媒體類型的組合)和多重并發(fā)應用的終端。該機制也可以結合不同網絡接入技術應用,比如HSDPA(高速下行鏈路分組接入)和GPRS(通用分組無線業(yè)務)。另外,它可以在不同類型的網絡節(jié)點中實現(xiàn),象例如SGSN(服務GPRS支持節(jié)點)之類的核心網絡節(jié)點、IP路由器、無線接入網元等等。
-借助于所提出的機制,改善了網絡側和/或服務器(發(fā)送器)側的擁塞避免中的數(shù)據吞吐量。
通過參考說明書及附圖,本發(fā)明上面的和更進一步的目標、特征和優(yōu)勢將變得更明顯。
圖1示出了根據本發(fā)明第一種實施方式用于控制數(shù)據傳輸?shù)脑O備;圖2和3示出了根據本發(fā)明第一種實施方式的一個示例,說明調度機制的流程圖;圖4和5示出了根據本發(fā)明第一種實施方式的另一個示例,說明調度機制的流程圖;
圖6示出了說明往返時間(RTT)的示圖;圖7示出了信令示圖;圖8示出了根據第二種實施方式的一個示例,說明調度機制的模型的示圖;圖9示出了根據第二種實施方式的一個示例,說明調度機制的流程圖;以及圖10示出了根據第二種實施方式的另一個示例,說明調度機制的流程圖。
具體實施例方式
下面,參考附圖詳細說明本發(fā)明優(yōu)選的實施方式。要注意到本發(fā)明并不限制于在這里呈現(xiàn)在下面的示例,但還可以附上稍后提到的其它示例。
第一種實施方式根據第一種實施方式,總的來說,在所提出的傳輸控制機制中,給出與其它流程/連接相比發(fā)送數(shù)據量較小的流程/連接提供優(yōu)先處理。這特別對接近接入鏈接的蜂窩網絡的網絡節(jié)點有效,比如GPRS等情況下的SGSN,由于大多數(shù)傳輸緩沖發(fā)生于此的事實,因此在端到端傳輸路徑中這里可以形成“瓶頸”。特別地,使用一種有效的排隊/調度算法能夠,例如但不排他性地,加速連接的慢啟動。這是基于對在連接開始處慢啟動連接的緩沖器占用比其它連接的小很多的觀察。因此,通過給較低緩沖器占用的那些連接提供更高的優(yōu)先級(即,在其它連接之前調度慢啟動中的分組),縮短了往返時間(RTT),并且縮短了到實現(xiàn)各個連接的合理吞吐量為止的時間周期。一旦該連接達到與其它連接一樣的緩沖器占用等級,每個連接就得到了相同份額的資源。
在圖1中,示出了實現(xiàn)這種調度機制的設備1的一個示例。
該設備1可以是象無線網絡節(jié)點(例如SGSN)或路由器的網絡節(jié)點的一部分,例如,接入網絡子系統(tǒng)或核心網絡子系統(tǒng)的一部分,。即使在圖1中示出了用于說明該機制不同功能的獨立裝置,要注意到這些功能能夠以軟件實現(xiàn)并由網絡節(jié)點的一個或多個部分執(zhí)行,比如由中央處理單元(CPU)及其存儲器裝置執(zhí)行??梢栽谄渲袑崿F(xiàn)所提出機制的網絡節(jié)點可以包括用于執(zhí)行它們各自功能的、控制和/或通信功能性所需要的幾個裝置。這些裝置是,例如,用于執(zhí)行指令并處理數(shù)據(例如,傳輸內容和與數(shù)據相關的信令)的處理器單元、用于存儲指令和數(shù)據、用于作為處理器的工作區(qū)域等的存儲器裝置(例如,ROM、RAM、EEPROM等)、用于由軟件輸入數(shù)據和指令的輸入裝置(例如,軟盤、CD-ROM、EEPROM等)、用于給用戶和/或操作者提供監(jiān)視和操作可能性的用戶接口裝置(例如,屏幕、鍵盤等)、和用于在處理器單元控制下建立通信連接的接口裝置(例如,有線和無線接口裝置、天線等)。
要注意到,在下面,術語“節(jié)點”、“路由器”或者“網絡節(jié)點”涉及到所有實現(xiàn)所提出的調度機制的一個和相同的網元。
根據圖1,設備1包括用于檢測來自多個輸入連接的具體類型的連接的檢測器(檢測裝置)2。該檢測器適合檢測例如,TCP連接。此外,設備1包括用于識別經指定TCP連接輸入的流程的數(shù)據分組的識別裝置3。這種流程識別可以在,例如端口號碼、數(shù)據源和目的地IP地址或IPv6流程標簽的基礎上實現(xiàn)。將數(shù)據分組轉發(fā)到為隨后的傳輸緩沖每個連接的分組的緩沖器8(稍后描述)。在確定裝置4中,確定每個TCP連接的緩沖器占用,即緩沖器8中為每個TCP連接容納的流程專用緩沖器的長度,并且以此為基礎定義相應的緩沖器占用等級。分配裝置5將TCP連接的緩沖器占用等級用于給該TCP連接分配一個優(yōu)先級指示。對各個連接來說,這是以較低的緩沖器占用等級導致較高的優(yōu)先級指示,而較高的緩沖器占用等級導致較低的優(yōu)先級指示的方式完成的。在處理器(處理裝置)6中,將為每個連接所分配的優(yōu)先級指示用于處理。在這個處理中,生成用于決定哪個連接優(yōu)選地用于隊列中緩沖的數(shù)據分組的傳輸?shù)倪B接級別。在調度器(調度裝置)7中,執(zhí)行調度處理以基于分配給TCP連接的優(yōu)先級指示調度(或排隊)緩沖器8中存儲的數(shù)據分組。換句話說,調度器7基于優(yōu)先級指示選擇各個TCP連接,并將所選TCP連接的預定數(shù)據量從緩沖器發(fā)送到目的地,比如另一個網絡節(jié)點或終端單元。
優(yōu)選地,TCP連接的優(yōu)先級指示(即級別)僅在該網絡節(jié)點(即設備1)經由所檢測的TCP連接之一接收到新的數(shù)據分組時改變(或者重新計算)。此外,當經由該網絡節(jié)點或到該網絡節(jié)點建立了一個新的TCP連接時,設備1還起到將這個新的連接排列到已經存在的隊列中的作用。
下面,根據圖2和3參考流程圖,描述了由設備1執(zhí)行的調度機制的第一個示例。
當調度機制在步驟S10啟動時,在步驟S20中檢測出到網絡節(jié)點/路由器的TCP連接。在步驟S30中,經各個TCP連接輸入的數(shù)據分組被識別為屬于這個連接并存儲到網絡節(jié)點的流程專用緩沖器8中。
然后,在步驟S40中,確定該各個TCP連接的緩沖器占用等級。換句話說,計算在緩沖器中存儲并等待被排隊的每個連接的數(shù)據量。根據本示例,當節(jié)點經各個TCP連接,例如連接i,接收到數(shù)據分組時,例如,通過如下找出這個連接正在使用的緩沖器空間部分來計算該連接的緩沖器占用。
occupancy(i)=(bytes_enqueued_for_(i))/( bytes_enqueued_for_(j));其中,i表示各個的TCP連接,占用(i)表示連接i的緩沖器占用等級,“bytes_enqueued_for”表示在緩沖器8中排隊的各個連接的字節(jié)數(shù),而N表示到達該網絡節(jié)點的非0緩沖器占用的多個TCP連接的總數(shù)。
在隨后的步驟S50中,確定到達該節(jié)點的連接的緩沖器占用是否與要執(zhí)行的特殊調度算法不同。這是基于各個連接i的占用等級與預定參數(shù)δ以下面關系式形式的比較occupancy(i)<1/N-δ;
其中δ滿足關系式0<δ<1/N對于任何連接(即,對任何i)。
這里,δ是一個可配置的參數(shù),依賴于它可以認為,如果所有連接的占用等級大約相同,則無需優(yōu)先處理??梢栽冢?,網元操作期間或在其初始化周期定義參數(shù)δ。δ的具體值的選擇可以考慮網絡能力、各個網絡節(jié)點的傳輸鏈接能力(傳輸管道的容量)等等。例如,當網絡或網絡節(jié)點的能力相當高時,可以允許各個連接的緩沖器占用之間較大的差額。
當步驟S50中的判斷為否時,即,連接的占用等級大約相同,接下來是步驟S60,其中用于調度連接的數(shù)據分組的是可選擇的或固有的調度算法。優(yōu)選地,這個可選擇的調度算法可以使用,例如,F(xiàn)IFO(先入先出)調度。要注意到,優(yōu)選地在連接建立時執(zhí)行算法。一旦連接進入相等優(yōu)先級狀態(tài),上述機制可能被停止。
另一方面,當步驟S50中的判斷為是時,接下來是步驟S70。
基于每個連接的緩沖器占用等級,確定每個連接i的優(yōu)先級指示。在這個示例中,在步驟S70中,利用下面的方程式為每個連接i計算表示從N個連接中的任何一個發(fā)送分組的概率的概率值。
sched_priorty(i)=(1-occupancy(i))/(N-1)sched_priorty參數(shù)是發(fā)送連接i的分組的概率。在步驟S80中,利用各個連接的概率值sched_priorty處理每個連接的優(yōu)先級指示。具體來說,考慮概率值預先排列各個連接,開始于有最高概率值的連接(即,緩沖器占用等級最低的連接)并終止于有最低概率值的連接(即,緩沖器占用等級最高的連接)。然后,在下面的步驟S90中,以開始于有最高概率值的連接的概率級別排列連接。級別中的下一個連接是置于步驟S80中預先排列的第二個位置的連接,其中通過將這個連接(第二個連接)的概率值與先前連接(這里只有第一個連接)的概率值相加,計算它的優(yōu)先級指示。從而,在步驟S90中的級別中排列在最后的連接的優(yōu)先級指示為1.0。
為了更好地理解步驟S70到S90的功能,這里給出了一個具體的示例。假設有3個TCP連接1、2、3到達該節(jié)點。根據這些連接的每個的緩沖器占用,確定各個概率值sched_priorty,連接1為0.33,連接2為0.2,而連接3為0.47。然后,以連接3(0.47),連接1(0.8)然后連接2(1.0)的級別排列連接。要注意到括號中的數(shù)字表示來自較高優(yōu)先級的連接的概率范圍,即它們定義給出的優(yōu)先級等級的累積概率是什么。這意味著,例如,如果級別-1(在上述情況下為連接1)的最高概率是0.47而級別-2(在上述情況下為連接3)的占用調度優(yōu)先權是0.33,則連接1括號中的數(shù)字是0.47+0.33=0.80。類似的,對級別-3來說,括號中的數(shù)字是0.8+0.2。換句話說,括號中的數(shù)字給出了范圍從0到1的能夠用于調度的隨機數(shù)。例如,如果隨機數(shù)是0.9,則可以認識到它在0.8到1.0之間,于是確定要調度的是級別-3。另一種情況,如果隨機數(shù)是0.4,則要調度的是級別-1的連接。
在步驟S100中,當緩沖器8中的數(shù)據分組要調度以傳輸時,由隨機數(shù)生成器(未示出)生成0和1之間的第一個隨機數(shù)。這是在,例如,根據圖1的調度器7中完成的。然后,在步驟S110中,將所生成的隨機數(shù)與連接的概率級別,即它們的優(yōu)先級指示進行比較,并基于這個比較選擇一個連接。例如,該選擇基于大于該隨機數(shù)并最接近于該隨機數(shù)的連接的級別的結果。然而,還有另一種可能的標準,比如只是小于該隨機數(shù)等等。
參考上面的具體示例,假設所生成的隨機數(shù)是0.7,在0.47(連接3)和0.8(連接1)之間,則節(jié)點從連接1調度數(shù)據分組。
當選擇了連接(即數(shù)據分組)時,將該分組從緩沖器發(fā)送到由TCP連接指出的各個目的地(步驟S120)。
調度機制基于步驟S70到S90中的計算在網絡節(jié)點中繼續(xù)。具體來說,在步驟S130中,檢查緩沖器中是否存在數(shù)據分組。如果不再存在任何分組,則重新啟動調度機制,即等候新分組的到來(步驟S140)。
另一方面,當緩沖器8中存在分組時,執(zhí)行步驟S150,在其中對TCP連接之一檢查是否有新分組到達。如果在該網絡節(jié)點沒有接收到新分組,則從步驟S100重復該處理。另一方面,如果至少接收到一個屬于一個TCP連接的新分組,則從前面的步驟S30重復該處理(步驟S160)。
根據步驟S130和S150,該節(jié)點基于表示在發(fā)送出分組之后未改變的每個連接的級別的當前優(yōu)先級指示(級別)的計算結果繼續(xù)調度。連接的級別僅在新分組到達該節(jié)點時改變。此外,由于步驟S100和S110中每個連接的隨機化,不會漏掉任何一個連接。另外,連接的級別不會在發(fā)送了分組之后改變。這意味著由于分組已被發(fā)送,該連接不再保持有較高的優(yōu)先級。要注意到由于僅在分組到達時確定級別,在節(jié)點上計算并重新排列分組的負擔相對較小。
優(yōu)選地,在已經發(fā)送出為一個連接緩沖的所有分組時,為了不限制還有分組要發(fā)送的其它連接的分組的傳輸,從步驟S90中建立的級別中刪除這個TCP連接??梢裕缃Y合步驟S130,或者在一個單獨的步驟中(未示出),執(zhí)行這種連接的0緩沖器占用的相應確定。這也可以基于表示一個連接在預定的時間周期內緩沖器占用為0,并且從而可以禁止它的計時器期滿。
根據圖2和3的調度機制有利于加速快速慢啟動的連接。
下面根據圖4和5,參考流程圖,說明根據第一種實施方式的調度機制的另一個示例。
在根據這個示例在步驟S210中啟動了調度機制后,執(zhí)行對應于根據圖2的步驟S20和S30的檢測步驟S220和識別步驟S230,因此不在下面詳細說明。
在步驟S240中,確定TCP連接的緩沖器占用等級。換句話說,計算在緩沖器8中存儲并等待排隊的每個連接的總數(shù)據量。根據本示例,當節(jié)點接收到屬于各個TCP連接的數(shù)據分組時,計算各個連接的總字節(jié)數(shù)。
根據本示例,通過保持(虛擬的)隊列j(j=1、2、3、…、M-1、M)以將緩沖器8的緩沖器空間分組來準備該網絡節(jié)點。為定義為唯一預定優(yōu)先級值P(j)的每個隊列指定,其中隊列j的優(yōu)先級值高于隊列j+1。此外,唯一的預定字節(jié)閾值bth(j)與每個隊列相關聯(lián),這里bth(j)小于bth(j+1)。閾值bth用于與到達該網絡節(jié)點的各個連接的總數(shù)據量進行比較,并且用于對隊列1到M之一的連接指定。
據此,在步驟S250中,將在步驟S240中計算的總數(shù)據量與該網絡節(jié)點的唯一預定字節(jié)閾值bth進行比較。然后,在步驟S260中,基于下面的比較關系將隊列之一指定給該連接。
bth(j)≤B<bth(j+1);這里,B是所計算的該網絡節(jié)點中各個連接的總字節(jié)數(shù)。將各個連接指定給閾值小于或等于總數(shù)據量B的隊列,即隊列j。
當實現(xiàn)了將各個連接指定給隊列之一時,在步驟S270中,將這個隊列的唯一優(yōu)先級值分配給該連接作為它的優(yōu)先級指示。這意味著,根據對B的指定bth(j),這個連接的優(yōu)先級指示的值為P(j)。
在步驟S280中,以所分配的優(yōu)先級指示為基礎按級別排列TCP連接。
然后,在步驟S290中,檢查是否有兩個或多個連接分配了相同的優(yōu)先級指示,即指定了相同的隊列。如果是這樣(步驟S290為是),執(zhí)行步驟S300,其中至少為優(yōu)先級指示相同的那些連接的數(shù)據分組調度選擇選擇性的調度算法。這個選擇性的調度機制是基于,例如,啟發(fā)式調度算法,比如FIFO排隊。
另一方面,當步驟S290中的判斷為否(連接的優(yōu)先級指示不同)時,執(zhí)行步驟S310,其中首先選擇優(yōu)先級指示最高的TCP連接以傳輸其數(shù)據分組?;谶@個選擇,從緩沖器8中選擇并調度所選TCP連接的數(shù)據分組以傳輸?shù)礁鱾€TCP連接指出的目的地(步驟S320)。
然后,在步驟S330中,檢查緩沖器8中是否還有數(shù)據分組等待調度。如果現(xiàn)在不再有分組,則重新啟動調度機制,即等候新分組的到來(步驟S350)。
另一方面,當緩沖器8中有分組時,執(zhí)行步驟S340,其中重復從步驟S240向前的處理。
優(yōu)選地,當已經發(fā)出為一個連接緩沖的所有分組時,為了不限制仍然有分組要發(fā)送的其它連接的分組的傳輸,從步驟S280建立的級別中刪除這個TCP連接??梢越Y合,例如步驟S330,或者在一個單獨的步驟中(未示出)執(zhí)行這種連接的0緩沖器占用的相應確定。這也可以基于表示一個連接在一個預定的時間周期內緩沖器占用為0,并且從而可以禁止它的計時器期滿。
根據圖4和5示例的調度機制的優(yōu)勢在于,它不涉及高計算負載,這對高速路由器是非常理想的。
如上所述,根據圖2和3示例的調度機制計算代價更高,但是它加速了慢啟動的連接,使其比根據圖4和5示例的優(yōu)勢在于低計算代價但與第一種調度機制相比低效率的調度機制更快。
因此,作為實現(xiàn)所提出的網絡節(jié)點中的調度機制的另一個選擇,例如,可以將結合圖2和3中定義的調度機制與結合圖4和5中定義的調度機制以執(zhí)行兩種調度機制之間的選擇這樣的方式組合在一起。這樣的選擇可以基于,例如,網絡節(jié)點處TCP連接的數(shù)量。當這個TCP連接數(shù)量小于預定的閾值時,例如,執(zhí)行結合圖4和5中定義的調度機制,而當這個TCP連接數(shù)量大于預定的閾值時,例如,執(zhí)行結合圖2和3中定義的調度機制,反之亦然??梢裕?,在數(shù)據分組的識別(分別在步驟S30和S230)之后引入相應的選擇步驟。
要注意到,作為上述第一種實施方式的進一步的優(yōu)勢,當TCPACK分組屬于慢啟動連接時,至少暗中為它們設定優(yōu)先級。為了加速慢啟動,ACK分組的傳輸可能是重要的。
優(yōu)選地在SGSN或任何IP路由器中實現(xiàn)上面定義的調度機制。該方案可以與加權公平排隊(WFQ)技術一起工作,但是它們也可以結合其它排隊規(guī)程進行工作。
第二種實施方式下面,將參考圖7到10說明本發(fā)明的另一種實施方式。
與利用作為網絡基礎設施一部分的網絡節(jié)點中的加權公平排隊(WFQ)機制實現(xiàn)增加吞吐量的第一種實施方式(尤其用于加速慢啟動)相比,根據第二種實施方式,說明了一種機制,支持在TCP發(fā)送器,比如移動臺、服務器等處的設定優(yōu)先級調度。以此方式,避免了網絡實現(xiàn)的依賴性。
通常,在TCP發(fā)送器側,發(fā)送器(或服務器)認可相對高速的鏈接,至少比象發(fā)生最多傳輸緩沖的網絡節(jié)點(例如SGSN)一樣的蜂窩鏈接瓶頸高。因此,在發(fā)送器側,通常不執(zhí)行傳輸緩沖(然而,要注意到,為了可能的重新傳輸,可能保存所發(fā)送的數(shù)據/分組的拷貝)。按照慣例,因為沒有分組預先占有傳輸緩沖器中的位置,所以不執(zhí)行設定優(yōu)先級調度。
根據這種實施方式,通常,服務器在發(fā)送它之前通過基于(分組大小/鏈接速度)的量延遲每個分組,來仿真鏈接速度。利用這樣的鏈接速度仿真(LSE),在服務器側建立一個傳輸緩沖器,使得設定優(yōu)先級調度是可能的。
要注意到,對于根據第二種實施方式的調度機制的實現(xiàn),必須的是,給有關傳輸網絡基礎設施的至少一個網絡節(jié)點,比如要通過網絡發(fā)送數(shù)據的傳輸緩沖的網絡節(jié)點,象GPRS網絡基礎設施情況下的SGSN,提供每移動臺(MS)的緩沖器。
參考圖7到9,說明第二種實施方式的第一個示例。
圖7中,示出了用于說明一個TCP連接開始的TCP發(fā)送器和TCP接收器之間的信令圖。圖8中,圖示了說明在根據第二種實施方式的第一個示例的TCP發(fā)送器中應用的調度機制的模型。圖9中,示出了用于說明根據第二種實施方式的第一個示例的調度機制的流程圖。
參考圖7,連接開始可以定義為TCP發(fā)送器或接收器發(fā)送各自的SYN分組的時間(圖9,步驟S510)。在該連接的啟動階段,根據第二種實施方式的調度機制,TCP發(fā)送器(或接收器)檢查系統(tǒng)中是否有其它連接(比如TCP連接),如果有,系統(tǒng)中該其它TCP連接的設置是否包括與不能執(zhí)行下述(圖9中,步驟S520、S530)根據第二種實施方式的調度機制的TCP發(fā)送器/接收器類型進行通信的任何連接(即,其它TCP連接)。這種檢查可以通過,例如,利用信令機制來實現(xiàn),比如在該連接的兩個端點(發(fā)送器、接收器)運行的UDP(用戶數(shù)據報協(xié)議)應用。依靠這種信令機制,可以交換關于執(zhí)行根據第二種實施方式的調度機制的能力的信息,例如通過從一個發(fā)送器/接收器節(jié)點向另一個節(jié)點發(fā)送包括所有TCP連接使用同一個服務器的相應信息的UDP分組,或者通過發(fā)送請求并通過用相應確認(ACK)消息回答該請求。在沒有接收到該信息或該ACK的情況下,則假設相應確認節(jié)點不能執(zhí)行所提出的調度機制。
如果該發(fā)送器和/或接收器確定其它連接不使用根據第二種實施方式的調度機制,則該TCP發(fā)送器必須不激活下述調度。具體來說,LSE緩沖對該發(fā)送器和該接收器都是禁止的(圖9中的步驟S540),而依靠默認的調度機制調度分組以傳輸,比如基于FIFO算法的調度機制(圖9中的步驟S550)。
要注意到,如果在該連接期間的任何時候(即,在啟動根據步驟S530確定可能的LSE緩沖的連接之后),該發(fā)送器或接收器意識到有不使用這個調度機制的其它TCP連接,同樣要例如通過給服務器發(fā)送相應UDP分組最好盡可能快地禁止該調度機制。這還將結合下述圖9的步驟S630詳細說明。
一種實現(xiàn)檢查連接能力和禁止LSE緩沖的特征的有利方式是,例如,要求所有能夠使用LSE緩沖的TCP發(fā)送器加入多點傳送組。在這種情況下,例如手機(作為該連接的端點)僅向這個多播組發(fā)送第一個UDP分組。依靠這種方法,象手機一樣的端點節(jié)點不必知道該服務器的確切IP地址或有關性能增強代理(PEP)。然而,在這種情況下,要注意到PEP將只該手機發(fā)送單播響應。
此外,在步驟S540中禁止了基于LSE緩沖的調度機制的情況下,步驟S550中基于FIFO的調度機制的使用,有利于防止可能導致TCP發(fā)送器引起虛假重發(fā)(可能依次降低性能)的任何分組重新排序問題。另一方面,已經在隊列之前的分組可能延遲某些新的分組。
另一方面,當在步驟S530中確定所有連接使用根據第二種實施方式的基于LSE緩沖的調度機制時,執(zhí)行圖9中的步驟S560。在步驟S560中,檢查發(fā)送器節(jié)點(TCP發(fā)送器)是否在擁塞避免狀態(tài)。這可以通過,例如檢測該連接的擁塞窗口是否小于SS_THRESH值來辨別。
如果步驟S560中確定為是,則執(zhí)行步驟S570,其中以正常的方式執(zhí)行調度(即,數(shù)據和ACK分組的調度),例如使用基于FIFO的調度或者基于第一種實施方式的調度。
在步驟S550和S570之后,該過程返回到步驟S520。
如果步驟S560中確定為否,即該TCP連接不在擁塞避免狀態(tài),則接下來是步驟S580。
在步驟S580中,為了調度連接的分組,確定當前分組,即當前要在該TCP發(fā)送器的傳輸隊列中排隊的分組,是否為第一個分組。換句話說,在步驟S580中檢查隊列中是否有其它分組。
如果步驟S580中的判斷為否,即隊列中沒有其它分組,則執(zhí)行步驟S620,其中在該TCP發(fā)送器中將第一個分組的傳輸延遲一個固定的時間量。通常,該時間量在100ms的量級。然后執(zhí)行下面將說明的步驟S630。
另一方面,如果步驟S580中的判斷為是,即在隊列中當前分組之前至少有一個分組,則執(zhí)行步驟S590到S610。通常,按照S590到S610這些步驟,每次調度當前分組,使得以仿真該連接的鏈接速度(LSE)的數(shù)據率使在它之前的整個隊列變空。這也在圖8中得以說明。根據圖8,示出了TCP發(fā)送器處基于LSE調度的模型和如何維持隊列。
在接收到來自接收器的ACK之后(圖8),發(fā)送器確定隊列中先前分組(X-1)的調度時間(或出發(fā)時間),該時間也稱為T。這是在步驟S590中執(zhí)行的。要注意到先前分組(X-1)也可能屬于不同的TCP連接。
然后,在步驟S600中,在發(fā)送器中計算以該連接的鏈接速度發(fā)送先前分組(X-1)需要的時間。
在下面的步驟S610中,基于先前分組(X-1)的調度時間、先前分組的分組大小(要由發(fā)送器檢測或者可以從先前分組(未示出)中包含的信息中得出)和要設定的LSE參數(shù)計算當前分組X的調度時間。換句話說,分組X的調度時間是以這種形式計算的t(X)=T+pkt_size(X-1)/LSE,其中pkt_size(X-1)是表示先前分組(X-1)大小的值,而LSE是鏈接速度仿真的值。
LSE值是,例如,該連接的最大鏈接速度。此外,該LSE值是從該連接的估計的往返時間(RTT)導出的,靠下面方程式計算LSE=congestion_Window/RTT其中congestion_window是其分組要調度的連接的TCP窗口大小。
當計算了調度時間t(X)時,發(fā)送器在分組(X-1)到達接收器時調度分組X,使得下一個發(fā)送分組X。這也在圖8中較低的方框中示出了。
優(yōu)選地,使用上述調度機制的TCP節(jié)點適合于識別ACK分組并盡快發(fā)送所識別的分組。然而,在TCP中要遵循所謂延遲ACK規(guī)則的情況下,ACK的處理可能是具體協(xié)議規(guī)則的問題。從而,這種發(fā)送規(guī)則僅針對調度,同時不改變協(xié)議邏輯。
當在步驟S610或者S620中確定了當前分組的調度時間時,接下來是步驟S630,其中檢查發(fā)送器和/或接收器是否建立了任何新連接。如果步驟S630中的判斷為否,即沒有檢測到新連接,則為了處理剩余的分組,過程返回到步驟S580。另一方面,如果步驟S630中的判斷為是,即至少有一個新連接,則為了檢查該一個或多個新連接是否使用LSE緩沖,過程返回到步驟S530。這是為了保證在所建立連接的設置的任何末端節(jié)點(發(fā)送器/接收器)不能執(zhí)行上述調度機制時禁止LSE緩沖而執(zhí)行的。
接下來,結合圖10說明根據第二種實施方式的第二個示例。第二種實施方式的第二個示例是第一個示例的修改。結合根據圖10的流程圖說明了第二個示例與第一個示例的差別。
如圖10所示,在第二種實施方式的調度機制中要執(zhí)行的步驟S510至S580等效于第一種實施方式中描述的步驟。因而,為了簡便的緣故,省略其詳細說明。
在步驟S580之后,即在確定隊列中是否有任何其它分組之后,在步驟S580中的判斷為否的情況下,即隊列中沒有其它分組,執(zhí)行步驟S611。在步驟S611中,假定一個調度時間設為0的“虛擬”先前分組(X-1)。然后,執(zhí)行下面描述的步驟S621。
另一方面,如果步驟S580中的判斷為是,即在隊列中的當前分組之前至少有一個分組,執(zhí)行步驟S591和S601。與第一個示例類似,在步驟S591中,發(fā)送器確定隊列中先前分組(X-1)的調度時間(或出發(fā)時間),該時間也稱為T。要注意到先前分組(X-1)也可能屬于不同的TCP連接。
然后,在步驟S601中,在發(fā)送器中計算以該連接的鏈接速度發(fā)送當前分組X需要的時間。
在步驟S601之后,該過程繼續(xù)到執(zhí)行步驟S621,如上所述,在步驟S611之后。在步驟S621中,基于先前分組(X-1)的調度時間、當前分組X的分組大小(要由發(fā)送器檢測或者可以從先前分組(未示出)中包含的信息中得出)和要設置的LSE參數(shù),計算當前分組X的調度時間。換句話說,,分組X的調度時間是以這種形式計算的t(X)=T+pkt_size(X)/LSE其中pkt_size(X)是表示當前分組(X)大小的值,而LSE是鏈接速度仿真的值。
當步驟S580中的判斷為否時,(虛擬)分組(X-1)的調度時間設為0,以便步驟S621中的計算也對隊列中的第一個分組有效。
該LSE值是,例如,該連接的最大鏈接速度。此外,該LSE值是從該連接的估計的往返時間(RTT)導出的,靠下面方程式計算LSE=congestion_window/RTT其中congestion_window是其分組要調度的連接的TCP窗口大小。
當計算了調度時間t(X)時,發(fā)送器從而在隊列中調度分組X。
在步驟S621中調度了分組之后,執(zhí)行步驟S631。與圖9中的步驟S630類似,檢查發(fā)送器和/或接收器處是否建立了任何新連接。如果步驟S631中的判斷為否,即沒有檢測到新連接,則為了處理剩余的分組,過程返回到步驟S580。另一方面,如果步驟S631中的判斷為是,即至少有一個新連接,則為了檢查該一個或多個新連接是否使用LSE緩沖,過程返回到步驟S530。這是為了保證在所建立連接的設置的任何末端節(jié)點(發(fā)送器/接收器)不能執(zhí)行上述調度機制時禁止LSE緩沖而執(zhí)行的。
在這第二個示例中,TCP發(fā)送器比第二種實施方式的第一個示例中的方案更接近地模仿瓶頸路由器。
在第二種實施方式的第一個和第二個示例中,通過將用于LSE參數(shù)的鏈接速度值設為一個適當?shù)闹?,可能防止比不使用LSE緩沖的情況惡化的端到端延遲。換句話說,(由LSE緩沖+瓶頸(例如SGSN)處的緩沖延遲導致的服務器處的延遲)的量不比沒有LSE緩沖的傳統(tǒng)情況中(瓶頸處的緩沖延遲)更嚴重是可實現(xiàn)的。例如,如果鏈接速度所用的值設為實際鏈接速度的上限,即可實現(xiàn)。
此外,通過使用從TCP接收器到發(fā)送器的清楚信令能夠防止與來自沒有實現(xiàn)LSE緩沖的其它服務器的通信量相比實現(xiàn)了LSE緩沖的服務器的懲罰性通信量,以便如果有來自非LSE緩沖數(shù)據源的通信量則禁止LSE緩沖。
第二種實施方式的優(yōu)勢特別在于,不需要改變網絡基礎設施。從而,根據第二種實施方式的調度機制通常可應用于所有存在的基于分組的網絡,只要發(fā)送器和接收器節(jié)點能夠使用LSE緩沖實現(xiàn)這種調度方案。此外,這種調度機制允許TCP服務器加速擁塞避免中的吞吐量。而且,這種調度機制與其它連接相比也加速了慢啟動。后者可以通過用第二種實施方式中描述的LSE機制延遲所有分組然后為“較小的緩沖器”設定優(yōu)先級(例如,利用第一種實施方式中說明的方案),或者通過延遲除了沒被延遲(意味著它們通過其它連接設定了優(yōu)先級)的慢啟動連接之外的所有分組(擁塞)來實現(xiàn)。
即使結合TCP說明了根據第一種和第二種實施方式的調度機制的示例,將每個調度機制與其它類型的傳輸協(xié)議相結合也是可能的。而且,可以改變在調度機制中使用的參數(shù)的限制,以便使機制適合于具體的網絡應用。
如上所述,提供了一種可用于基于分組的網絡中的數(shù)據傳輸?shù)母牧嫉恼{度機制。檢測多個連接,并且為每個連接確定緩沖器占用等級。然后,為與其它連接相比緩沖器占用較小的連接設定優(yōu)先級,并基于設定優(yōu)先級的結果調度多個連接的分組。該調度機制在基于分組的網絡的網元中或發(fā)送器和接收器中實現(xiàn)。
應該理解到,上面的說明書和附圖只是試圖僅通過示例的方式說明本發(fā)明。因此,本發(fā)明所描述的實施方式可以在所附的權利要求書的范圍內變化。
權利要求
1.一種在基于分組的網絡中轉發(fā)數(shù)據的方法,該方法包括下列步驟檢測多個連接;為該多個連接中的每一個確定緩沖器占用等級,為與其它連接相比具有較小緩沖器占用等級的連接設定優(yōu)先級,以及基于設定優(yōu)先級步驟的結果調度該多個連接的分組。
2.根據權利要求1的方法,還包括識別在具體類型的連接上發(fā)送的分組的步驟。
3.根據權利要求1或2的方法,其中該確定緩沖器占用等級的步驟,確定在網元的緩沖器中的該緩沖器占用等級。
4.根據權利要求1到3中任意一個的方法,其中該設定優(yōu)先級的步驟,包括下列子步驟基于該所確定的緩沖器占用等級,為該多個連接中的每一個分配優(yōu)先級指示,處理該多個連接中的每一個的該優(yōu)先級指示以調度該分組。
5.根據權利要求4的方法,其中在該分配優(yōu)先級指示的步驟中,將較高的優(yōu)先級等級分配給與該其它連接相比具有較小緩沖器占用等級的連接。
6.根據權利要求4或5的方法,還包括在經由該多個連接中的至少一個接收到新的分組時,更新分配給該多個連接的每一個的該優(yōu)先級指示的步驟。
7.根據權利要求4到6之一的方法,其中該確定緩沖器占用等級的步驟包括通過將該多個連接之一的字節(jié)數(shù)與全部該多個連接的字節(jié)數(shù)進行比較,計算各個連接的緩沖器占用的步驟。
8.根據權利要求7的方法,其中該計算緩沖器占用的步驟是基于方程式occupancy(i)=(bytes_enqueued_for_(i))/(Σj=1Nbytes_enqueued_for_(j));]]>其中i表示該各個連接,occupancy(i)表示該各個連接的緩沖器占用等級,bytes_enqueued_for表示在該緩沖器中排隊的各個連接的字節(jié)數(shù),以及N表示該多個連接的總數(shù)。
9.根據權利要求4到8之一的方法,還包括將該所確定的多個連接的每一個的緩沖器占用等級與預定的參數(shù)進行比較,以決定該優(yōu)先級指示分配種類的步驟。
10.根據步驟9的方法,其中將該所確定的多個連接的每一個的緩沖器占用等級與預定的參數(shù)進行比較的步驟是基于關系式occupancy(i)<1/N-δ;其中i表示該各個連接,occupancy(i)表示該各個連接的緩沖器占用等級,N表示該多個連接的總數(shù),以及δ表示可配置參數(shù),其滿足關系式0<δ<1/N。
11.根據權利要求4到10之一的方法,其中該分配優(yōu)先級指示的步驟包括基于該緩沖器占用等級,將定義該各個連接的分組的傳輸概率的概率值指定給該多個連接的每一個的步驟。
12.根據權利要求11的方法,其中基于該緩沖器占用等級將概率值指定給該多個連接的每一個的步驟,其基于方程式sched_priorty(i)=(1-occupancy(i))/(N-1);其中i表示該各個連接,sched priorty(i)表示定義該各個連接的分組的傳輸概率的概率值,occupancy(i)表示該各個連接的緩沖器占用等級,以及N表示該多個連接的總數(shù)。
13.根據權利要求11或12的方法,其中該處理多個連接的每一個的該優(yōu)先級指示的步驟包括以根據該多個連接的每一個的概率值的級別排序該連接的步驟。
14.根據權利要求13的方法,其中該調度多個連接的每一個的該數(shù)據分組的步驟,包括子步驟生成隨機數(shù),基于該多個連接的每一個的級別和該隨機數(shù)之間的比較選擇該多個連接中的連接,以及調度該所選連接的分組以發(fā)送它。
15.根據權利要求14的方法,其中在該選擇連接的步驟中,選擇其級別高于該隨機數(shù)并且最接近于該隨機數(shù)的連接。
16.根據權利要求14到15中任意一個的方法,其中重復該調度數(shù)據分組的步驟。
17.根據權利要求4到6中任意一個的方法,其中該確定緩沖器占用等級的步驟,包括下列子步驟通過為各個連接所呈現(xiàn)的所有分組的總數(shù)據量的相加來計算各個連接的該緩沖器占用,比較該各個連接的總數(shù)據量與為該緩沖器的多個隊列定義的唯一的預定閾值,以及基于該比較步驟將該各個連接指定給該隊列之一,其中該每一個隊列與唯一的優(yōu)先級等級相關聯(lián)。
18.根據權利要求17的方法,其中該比較該各個連接的總數(shù)據量與為該緩沖器的多個隊列定義的唯一的預定數(shù)據量閾值的步驟,是基于關系式bth(q)≤B<bth(q+1);其中B表示該各個連接的總數(shù)據量,q表示該多個隊列中的各個隊列,以及bth表示一個隊列的該唯一預定數(shù)據量閾值。
19.根據權利要求17或18的方法,其中在該將該各個連接指定給該隊列之一的步驟中,將該各個連接指定給其唯一預定數(shù)據量閾值小于或等于該各個連接的總數(shù)據量的隊列。
20.根據權利要求17到19中任意一個的方法,其中在該給多個連接的每一個分配優(yōu)先級指示的步驟中,為其指定了該各個連接的該隊列的優(yōu)先級值被分配為該各個連接的優(yōu)先級指示。
21.根據權利要求20的方法,其中該處理該多個連接的每一個的該優(yōu)先級指示的步驟,包括以根據該隊列的優(yōu)先級值的級別排序該連接的步驟。
22.根據權利要求21的方法,其中該調度分組的步驟包括下列子步驟選擇該具有最高的優(yōu)先級指示的連接,以及調度該所選連接的分組以發(fā)送它。
23.根據權利要求20的方法,其中在該多個連接中的兩個或多個被分配了該相同的優(yōu)先級指示的情況下,該調度分組的步驟是基于該多個連接中的至少兩個或多個的啟發(fā)式算法。
24.根據前面的權利要求中任意一個的方法,其中在該多個連接中至少一個的慢啟動條件的情況下,則執(zhí)行該方法。
25.根據前面的權利要求中任意一個的方法,其中該連接包括至少一個TCP類型的連接。
26.一種用于在基于分組的網絡中控制數(shù)據轉發(fā)的設備,該設備包括用于檢測多個連接的檢測裝置,用于為該多個連接中的每一個確定緩沖器占用等級的確定裝置,用于為與其它連接相比具有較小緩沖器占用等級的連接設定優(yōu)先級的優(yōu)先級設定裝置,以及用于基于由優(yōu)先級設定裝置獲得的結果調度該多個連接的分組的調度裝置。
27.根據權利要求26的設備,還包括用于識別在具體類型的連接上發(fā)送的分組的識別裝置。
28.根據權利要求26或27的設備,其中該確定裝置確定在網元的緩沖器中的該緩沖器占用等級。
29.根據權利要求26到28中任意一個的設備,還包括用于基于該所確定的緩沖器占用等級,為該多個連接中的每一個分配優(yōu)先級指示的分配裝置,用于處理該多個連接中的每一個的該優(yōu)先級指示以調度分組的裝置。
30.根據權利要求29的設備,其中該分配裝置適合于將較高的優(yōu)先級等級分配給與該其它連接相比具有較小緩沖器占用等級的連接。
31.根據權利要求29或30的設備,該設備適合于在經由該多個連接中的至少一個接收到新的分組時,更新分配給該多個連接的每一個的優(yōu)先級指示。
32.根據權利要求29到31之一的設備,其中該確定裝置適合于通過將該多個連接之一的字節(jié)數(shù)與全部該多個連接的字節(jié)數(shù)進行比較,計算各個連接的緩沖器占用,確定該緩沖器占用等級。
33.根據權利要求32的設備,其中該確定裝置適合于基于下面的方程式計算緩沖器占用occupancy(i)=(bytes_enqueued_for_(i))/(Σj=1Nbytes_enqueued_for_(j));]]>其中i表示該各個連接,occupancy(i)表示該各個連接的緩沖器占用等級,bytes_enqueued_for表示在該緩沖器中排隊的各個連接的字節(jié)數(shù),以及N表示該多個連接的總數(shù)。
34.根據權利要求29到33之一的設備,還包括用于將該所確定的多個連接的每一個的緩沖器占用等級與預定的參數(shù)進行比較的裝置,以及用于基于該比較決定該優(yōu)先級指示分配種類的裝置。
35.根據步驟34的設備,其中用于將該所確定的多個連接的每一個的緩沖器占用等級與預定的參數(shù)進行比較的裝置適合于檢查關系式occupancy(i)<1/N-δ;其中i表示該各個連接,occupancy(i)表示該各個連接的緩沖器占用等級,N表示該多個連接的總數(shù),以及δ表示可配置參數(shù),其滿足關系式0<δ<1/N。
36.根據權利要求29到35中任意一個的設備,其中該分配裝置適合于,基于該緩沖器占用等級,將定義該各個連接的分組的傳輸概率的概率值指定給該多個連接中的每一個。
37.根據權利要求36的設備,其中該分配裝置適合于基于該緩沖器占用等級將概率值指定給該多個連接的每一個,其基于方程式sched_priorty(i)=(1-occupancy(i))/(N-1);其中i表示該各個連接,sched_priorty(i)表示定義該各個連接的分組的傳輸概率的概率值,occupancy(i)表示該各個連接的緩沖器占用等級,以及N表示該多個連接的總數(shù)。
38.根據權利要求36或37的設備,其中該用于處理多個連接的每一個的該優(yōu)先級指示的裝置適合于以根據該多個連接的每一個的概率值的級別排序該連接。
39.根據權利要求38的設備,其中調度裝置適合于生成隨機數(shù),基于該多個連接的每一個的級別和該隨機數(shù)之間的比較選擇該多個連接中的連接,以及調度該所選連接的分組以發(fā)送。
40.根據權利要求39的設備,其中在該連接的選擇中,調度裝置適合于選擇其級別高于該隨機數(shù)并且最接近于該隨機數(shù)的連接。
41.根據權利要求39到40中任意一個的設備,其中該調度裝置適合于重復該調度數(shù)據分組。
42.根據權利要求29到31中任意一個的設備,其中該確定裝置適合于通過為各個連接所呈現(xiàn)的所有分組的總數(shù)據量的相加來計算各個連接的緩沖器占用,比較該各個連接的總數(shù)據量與為該緩沖器的多個隊列定義的唯一的預定閾值,以及基于該比較步驟將該各個連接指定給該隊列之一,其中該每一個隊列與唯一的優(yōu)先級等級相關聯(lián)。
43.根據權利要求42的設備,其中該確定裝置適合于將該各個連接的總數(shù)據量與為該緩沖器的多個隊列定義的唯一的預定數(shù)據量閾值進行比較,其基于關系式bth(q)≤B<bth(q+1);其中B表示該各個連接的總數(shù)據量,q表示該多個隊列中的各個隊列,以及bth表示一個隊列的該唯一預定數(shù)據量閾值。
44.根據權利要求42或43的設備,其中該確定裝置適合于將該各個連接指定給該隊列之一,將該各個連接指定給其唯一預定數(shù)據量閾值小于或等于該各個連接的總數(shù)據量的隊列。
45.根據權利要求42到44中任意一個的設備,其中該分配裝置適合于將為其指定了該各個連接的該隊列的優(yōu)先級值分配為該各個連接的優(yōu)先級指示。
46.根據權利要求45的設備,其中用于處理的裝置適合于以根據該隊列的優(yōu)先級值的級別排序該連接。
47.根據權利要求46的設備,其中調度裝置適合于選擇該具有最高的優(yōu)先級指示的連接,以及調度該所選連接的分組以發(fā)送。
48.根據權利要求45的設備,其中在該多個連接中的兩個或多個被分配了該相同的優(yōu)先級指示的情況下,該調度裝置適合于基于該多個連接中的至少兩個或多個的啟發(fā)式算法調度該分組。
49.根據權利要求26到48中任意一個的設備,其中該設備被使用在發(fā)生多個連接中至少一個的慢啟動條件的情況下。
50.根據權利要求26到49中任意一個的設備,其中該連接包括至少一個TCP類型的連接。
51.一種在其中可以執(zhí)行基于分組的數(shù)據傳輸?shù)耐ㄐ啪W絡系統(tǒng),該系統(tǒng)包括至少一個可用于控制該數(shù)據傳輸?shù)木W絡節(jié)點,其中該網絡節(jié)點包括根據權利要求26到50之一的該設備。
52.根據權利要求51中的通信網絡系統(tǒng),其中該網絡節(jié)點是路由器。
53.根據權利要求51中的通信網絡系統(tǒng),其中該網絡節(jié)點是基于分組的無線業(yè)務的服務支持節(jié)點。
54.根據權利要求1中的方法,其中該連接優(yōu)先級設定的步驟包括下列子步驟仿真該多個連接的每一個的鏈接速度,其中該調度分組的步驟是基于該鏈接速度仿真的。
55.根據權利要求54中的方法,還包括基于各個連接的最大鏈接速度確定鏈接速度仿真參數(shù)的步驟。
56.根據權利要求54中的方法,還包括基于各個連接的往返時間確定鏈接速度仿真參數(shù)的步驟。
57.根據權利要求54到56中任意一個的方法,該方法還包括下列步驟確定當前分組是否是在該各個連接的隊列中的第一個分組。
58.根據權利要求57中的方法,其中在該確定步驟為否的情況下,該方法還包括下列步驟確定傳輸先前分組的調度時間,基于該先前分組的調度時間、該先前分組的分組大小和該鏈接速度仿真參數(shù)計算該當前分組的調度時間,其中該調度分組的步驟是基于該當前分組的調度時間。
59.根據權利要求57中的方法,其中在該確定步驟為是的情況下,該方法還包括下列步驟以固定的時間量延遲該第一個分組的傳輸時間。
60.根據權利要求57中的方法,其中在該確定步驟為否的情況下,該方法還包括下列步驟確定傳輸先前分組的調度時間,基于該先前分組的調度時間、該當前分組的分組大小和該鏈接速度仿真參數(shù)計算該當前分組的調度時間,其中該調度分組的步驟是基于該當前分組的調度時間。
61.根據權利要求57中的方法,其中在該確定步驟為是的情況下,該方法還包括下列步驟將傳輸虛擬先前分組的調度時間設定為0,以及基于該虛擬先前分組的設定調度時間、該當前分組的分組大小和該鏈接速度仿真參數(shù)計算該當前分組的調度時間,其中該調度分組的步驟是基于該當前分組的調度時間。
62.根據權利要求54到61中任意一個的方法,還包括下列步驟檢查發(fā)送器節(jié)點是否在擁塞避免狀態(tài)中,并且如果發(fā)送器節(jié)點在該擁塞避免狀態(tài)中,禁止該多個連接的每一個的鏈接速度仿真的步驟,其中該調度分組的步驟基于默認調度機制。
63.根據權利要求54到62中任意一個的方法,其中該檢測步驟還包括下列子步驟檢查該多個連接中的任何一個是否包含不能執(zhí)行該多個連接的每一個的該鏈接速度仿真步驟的發(fā)送器節(jié)點和/或接收器節(jié)點,并且如果有一個不能執(zhí)行該多個連接的每一個的該鏈接速度仿真步驟的發(fā)送器節(jié)點和/或接收器節(jié)點,則禁止所有發(fā)送器節(jié)點和接收器節(jié)點的該多個連接的每一個的該鏈接速度仿真的步驟,其中該調度分組的步驟基于默認調度機制。
64.根據權利要求26中的設備,其中該優(yōu)先級設定裝置適合于仿真該多個連接的每一個的鏈接速度,并且其中該調度裝置適合于基于該鏈接速度仿真調度該分組。
65.根據權利要求64中的設備,還包括用于基于各個連接的最大鏈接速度確定鏈接速度仿真?zhèn)鬏數(shù)拇_定裝置。
66.根據權利要求64中的設備,還包括用于基于各個連接的往返時間確定鏈接速度仿真?zhèn)鬏數(shù)拇_定裝置。
67.根據權利要求64到66中任意一個的設備,還包括第二個確定裝置,用于確定當前分組是否是各個連接的隊列中的該第一個分組。
68.根據權利要求67中的設備,還包括用于確定該先前分組傳輸?shù)恼{度時間的第三個確定裝置以及計算裝置,其中,在該第二個確定裝置確定該當前分組不是各個連接的隊列中的該第一個分組的情況下,該第三個確定裝置確定該先前分組傳輸?shù)恼{度時間,以及該計算裝置基于該先前分組的調度時間、該先前分組的分組大小和該鏈接速度參數(shù)計算該當前分組的調度時間,其中該調度裝置基于來自該計算裝置的該當前分組的調度時間調度該分組。
69.根據權利要求67或68中的設備,還包括延遲裝置其中在該第二個確定裝置確定該當前分組是各個連接的隊列中的該第一個分組的情況下,該延遲裝置將該第一個分組的傳輸時間延遲固定的時間量。
70.根據權利要求67中的設備,還包括用于確定該先前分組傳輸?shù)恼{度時間的第三個確定裝置以及計算裝置,其中,在該第二個確定裝置確定該當前分組不是各個連接的隊列中的該第一個分組的情況下,該第三個確定裝置確定該先前分組傳輸?shù)恼{度時間,并且該該計算裝置基于先前分組的調度時間、該當前分組的分組大小和該鏈接速度參數(shù)計算該當前分組的調度時間,其中該調度裝置基于來自該計算裝置的該當前分組的調度時間調度該分組。
71.根據權利要求67或70中的設備,還包括用于將虛擬先前分組傳輸?shù)恼{度時間設定為0的設定裝置,以及計算裝置,其中,在該第二個確定裝置確定該當前分組是各個連接的隊列中的該第一個分組的情況下,該設定裝置將該虛擬先前分組傳輸?shù)恼{度時間設定為0,并且該計算裝置基于該虛擬先前分組傳輸?shù)脑O定調度時間、該當前分組的分組大小和該鏈接速度參數(shù)計算該當前分組的調度時間,其中該調度裝置基于來自該計算裝置的該當前分組的調度時間調度該分組。
72.根據權利要求64到71中任意一個的設備,還包括用于檢查發(fā)送器節(jié)點是否在擁塞避免狀態(tài)中的檢查裝置,用于禁止該多個連接的每一個的該鏈接速度仿真的禁止裝置,其中在該發(fā)送器節(jié)點在該擁塞避免狀態(tài)中的情況下,該禁止裝置禁止該仿真,并且該調度裝置基于默認的調度機制調度該分組。
73.根據權利要求64到72中任意一個的設備,還包括用于檢查該多個連接中的任何一個是否包含不能執(zhí)行該多個連接的每一個的鏈接速度仿真步驟的發(fā)送器節(jié)點和/或接收器節(jié)點的檢查裝置,以及用于禁止所有發(fā)送器節(jié)點和接收器節(jié)點的該多個連接的每一個的鏈接速度仿真的第二個禁止裝置,其中在該檢查裝置確定有一個不能執(zhí)行該多個連接的每一個的該鏈接速度仿真的發(fā)送器節(jié)點和/或接收器節(jié)點的情況下,該禁止裝置禁止所有發(fā)送器節(jié)點和接收器節(jié)點的該多個連接的每一個的該鏈接速度仿真,其中該調度裝置基于默認的調度機制調度該分組。
74.一種包括處理器可執(zhí)行指令的計算機程序產品,用于控制處理器以執(zhí)行根據權利要求1的方法。
75.根據權利要求74的計算機程序產品,其中用于控制該處理器的該處理器可執(zhí)行指令還包括指令,以執(zhí)行根據權利要求2到25中任意一個和/或根據權利要求54到63中任意一個的方法。
全文摘要
提供一種用于在基于分組的網絡中數(shù)據傳輸?shù)母牧嫉恼{度機制。檢測多個連接,并為每個連接確定一個緩沖器占用等級。然后,為與其它連接相比具有較小緩沖器占用等級的連接設定優(yōu)先級,并基于設定優(yōu)先級的結果調度多個連接的分組。該調度機制實現(xiàn)于基于分組的網絡的網元或發(fā)送器和接收器中。
文檔編號H04L12/54GK1939005SQ200580010129
公開日2007年3月28日 申請日期2005年3月1日 優(yōu)先權日2004年4月1日
發(fā)明者約格施·普雷姆·斯瓦米, 克希姆·勒 申請人:諾基亞公司