專利名稱:一種改進的傳輸控制協(xié)議代理實現(xiàn)方法及裝置的制作方法
技術領域:
本發(fā)明涉及互聯(lián)網(wǎng)與通信技術領域,特別涉及一種改進的傳輸控制協(xié)議(TCP)代理實現(xiàn)方法及裝置。
背景技術:
現(xiàn)有TCP技術應用于有線網(wǎng)絡傳輸時,由于有線網(wǎng)絡的環(huán)回時延特性較穩(wěn)定,可以達到TCP機制期望的快速重傳及擁塞控制目標。但是,與無線通信相結合時,由于空口傳輸質量、無線網(wǎng)絡資源控制算法的多重影響,使得TCP發(fā)生更多的慢啟動和擁塞控制,嚴重影響無線通信環(huán)境中TCP的傳輸效率。因此,為了優(yōu)化TCP傳輸效率,充分利用無線傳輸資源,提出了所謂的TCP代理技術。TCP代理技術,即是在無線網(wǎng)絡控制器(RNC)中增加一個TCP代理模塊,用于模擬 TCP的部分傳輸功能,以提高慢啟動速度和重傳效率,從而達到提升無線網(wǎng)絡中TCP數(shù)傳性能?,F(xiàn)有的TCP代理的實現(xiàn)流程如圖1所示,包括如下步驟步驟101 核心網(wǎng)(CN)傳來的數(shù)據(jù)包通過TCP/IP組包后到達無線網(wǎng)絡控制器 (RNC)。步驟102 =RNC在收到這些數(shù)據(jù)包,將其按照TCP/IP協(xié)議定義的標準包格式,對數(shù)據(jù)包進行解析,提取出TCP層數(shù)據(jù)包。步驟103 =RNC判斷所述TCP層數(shù)據(jù)包是否為ACK包或攜帶ACK的數(shù)據(jù)包,若是,則執(zhí)行步驟104,否則正常轉發(fā)該TCP層數(shù)據(jù)包并退出本流程。步驟104 :RNC按照預先配置的固定參數(shù),分裂所述ACK包或攜帶ACK的數(shù)據(jù)包,即將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為多個,然后再轉發(fā)所述ACK包或攜帶ACK的數(shù)據(jù)包。例如,所述固定參數(shù)為N,將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為N+1個。通過將ACK包復制為多個進行轉發(fā),可以加速TCP層數(shù)傳過程中慢啟動與擁塞避免過程,達到減輕丟包、降低傳輸時延等效果。移動通信系統(tǒng)中對于ACK分裂個數(shù)的確定,目前普遍采用固定參數(shù)配置的方法, 即定義允許ACK分裂的個數(shù),不區(qū)分任何場景或業(yè)務統(tǒng)一配置一個固定的值。由于TCP代理功能的特性與該參數(shù)配置緊密相關,固定配置的方式不利于適應不同的應用場景??赡艹霈F(xiàn)例如過度分裂,導致高層窗口擴展過快使得業(yè)務量遠大于空口吞吐量;或是分裂數(shù)不足, 達不到加速數(shù)據(jù)傳輸?shù)哪康摹?br>
發(fā)明內容
有鑒于此,本發(fā)明的目的在于,提出一種改進的傳輸控制協(xié)議(TCP)代理實現(xiàn)方法及裝置,可以動態(tài)調整ACK包分裂的個數(shù),使其與場景或業(yè)務特性相適應。本發(fā)明實施例提出的一種改進的傳輸控制協(xié)議TCP代理實現(xiàn)方法,包括如下步驟A、無線網(wǎng)絡控制器RNC接收并緩存來自核心網(wǎng)的TCP/IP組包;B、RNC對所緩存的TCP/IP組包進行解析,提取出TCP層數(shù)據(jù)包;C、RNC判斷所述TCP層數(shù)據(jù)包是否為ACK包或攜帶ACK的數(shù)據(jù)包,若是,則執(zhí)行步驟D ;否則直接在空口上轉發(fā)該TCP層數(shù)據(jù)包并返回步驟A ;以及D、根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量,動態(tài)確定分裂ACK的個數(shù),并根據(jù)所確定的分裂ACK的個數(shù)將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為多個,在空口上轉發(fā)所述ACK包或攜帶ACK的數(shù)據(jù)包,并返回步驟A。較佳地,在RNC中預先配置第一閾值和第二閾值,其中第二閾值>第一閾值;所述根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量,動態(tài)確定分裂ACK的個數(shù)包括監(jiān)測業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率;計算業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率的比值k ;將所述比值k與所述預先設置的閾值進行比較,若比值k小于第一閾值,則將分裂 ACK的個數(shù)設置為等于預先設定的固定分裂數(shù)目N = N0 ;若比值k大于第二閾值,則將分裂 ACK的個數(shù)N歸零;若比值k在第一閾值和第二閾值之間,則調整分裂ACK的個數(shù)N。較佳地,所述第一閾值大于0且小于1 ;所述第二閾值大于0且小于或等于1。較佳地,所述若比值k在第一閾值和第二閾值之間,則調整分裂ACK的個數(shù)為與前一個k值相比,若k每增大一個步長Δ,則將分裂ACK的個數(shù)N減小一個粒度η,即設置N =Ν-η ;若k每減小一個步長Δ,則將分裂ACK的個數(shù)N增大一個粒度η,即設置N = Ν+η, 其中,A為k的變化步長,η為分裂數(shù)目N的粒度,取值為大于等于1且小于等于Ntl的整
數(shù),Δ與η的配置需要保證& >=(^red2-TArnsAl)/Δ , Thresh1和Thresh2分別代表第一
η
閾值和第二閾值。較佳地,在第一閾值和第二閾值之間設置I個閾值區(qū)間,對應各個閾值區(qū)間設置相應的分裂調整粒度[nQ,ηι,……,ni,ni+1,……,rvJ ;1為大于或等于1的整數(shù);所述將分裂ACK的個數(shù)N增大一個粒度η為判斷比值k所處于的閾值區(qū)間,確定該閾值區(qū)間對應的分裂調整粒度,將分裂ACK的個數(shù)N增大一個所確定的分裂調整粒度。本發(fā)明實施例提出的一種改進的傳輸控制協(xié)議TCP代理實現(xiàn)裝置,包括接收及緩存模塊,用于接收并緩存來自核心網(wǎng)的TCP/IP組包;解析模塊,用于對接收及緩存模塊所緩存的TCP/IP組包進行解析,提取出TCP層數(shù)據(jù)包;判斷模塊,用于判斷所述解析模塊所提取的TCP層數(shù)據(jù)包是否為ACK包或攜帶ACK 的數(shù)據(jù)包,若是,則將所述ACK包或攜帶ACK的數(shù)據(jù)包傳送至分裂模塊;否則將該TCP層數(shù)據(jù)包傳送至空口發(fā)送模塊;分裂模塊,根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量,動態(tài)確定分裂ACK的個數(shù),并根據(jù)所確定的分裂ACK的個數(shù)將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為多個,將所復制的ACK包或攜帶ACK的數(shù)據(jù)包傳送至空口發(fā)送模塊;空口發(fā)送模塊,在空口上轉發(fā)來自所述判斷模塊的TCP層數(shù)據(jù)包或來自分裂模塊的ACK包或攜帶ACK的數(shù)據(jù)包。所述分裂模塊包括閾值配置單元,用于保存預先配置的第一閾值和第二閾值,其中第二閾值>第一閾值;監(jiān)測單元,用于監(jiān)測業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率,并計算業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率的比值k ;比較單元,用于將所述監(jiān)測單元計算的比值k與所述閾值配置單元中預先設置的閾值進行比較,并輸出比較結果;調整單元,若所述比較單元輸出的比較結果為比值k小于第一閾值,則將分裂ACK 的個數(shù)N設置為等于預先設定的固定分裂數(shù)目;若所述比較結果為比值k大于第二閾值,則將分裂ACK的個數(shù)N歸零;若所述比較結果為比值k在第一閾值和第二閾值之間,則調整分裂ACK的個數(shù)N。分裂處理單元,用于根據(jù)所述調整單元輸出的分裂ACK的個數(shù)N,將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為N+1個。較佳地,所述閾值配置單元進一步在第一閾值和第二閾值之間設置I個閾值區(qū)間,對應各個閾值區(qū)間設置相應的分裂調整粒度[nQ,Ii1,……,ni,ni+1,……,Ii1J5I為大于或等于1的整數(shù);所述比較單元在得到比較結果為比值k在第一閾值和第二閾值之間時,進一步確定比值k所處于的閾值區(qū)間對應的分裂調整粒度,并將該分裂調整粒度通知調整單元;所述調整單元用于以所述分裂調整粒度為單位,調整分裂ACK的個數(shù)N。從以上技術方案可以看出,RNC根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量, 動態(tài)確定分裂ACK的個數(shù),可以使TCP窗口擴張速度與實際業(yè)務相適應,避免ACK包分裂過度或不足的情況出現(xiàn)。
圖1為現(xiàn)有技術中的TCP代理的實現(xiàn)流程圖;圖2為本發(fā)明實施例提出的一種TCP代理的實現(xiàn)流程圖;圖3為本發(fā)明實施例提出的動態(tài)調整ACK包分裂個數(shù)的一種處理流程圖。
具體實施例方式本發(fā)明提出的在TCP代理中分裂ACK包的方案,主要是按照實際的應用場景或業(yè)務特性,動態(tài)調整ACK包的分裂個數(shù),從而達到適應底層傳輸特性、控制業(yè)務源速率的目的。為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合附圖對本發(fā)明作進一步的詳細闡述。圖2示出了本發(fā)明實施例提出的一種TCP代理的實現(xiàn)流程,包括如下步驟步驟201 =CN傳來的數(shù)據(jù)包通過TCP/IP組包后到達RNC。步驟202 =RNC接收并緩存所述數(shù)據(jù)包。步驟203 =RNC按照TCP/IP協(xié)議定義的標準包格式,對所述緩存的數(shù)據(jù)包進行解析,提取出TCP層數(shù)據(jù)包。步驟204 =RNC判斷所述TCP層數(shù)據(jù)包是否為ACK包或攜帶ACK的數(shù)據(jù)包,若是,則執(zhí)行步驟205,否則正常轉發(fā)該TCP層數(shù)據(jù)包并退出本流程。步驟205 =RNC根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量,動態(tài)確定分裂 ACK的個數(shù)。步驟206 =RNC根據(jù)所確定的ACK個數(shù),分裂所述ACK包或攜帶ACK的數(shù)據(jù)包,即將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為多個,然后再轉發(fā)所述ACK包或攜帶ACK的數(shù)據(jù)包。以上流程中,步驟205為本發(fā)明方案的核心環(huán)節(jié)。以下對該步驟進行詳細闡述監(jiān)控業(yè)務源速率與空口傳輸速率之間的關系,如下步驟20 至205c所述;再根據(jù)實際的情況確定ACK分裂的數(shù)目,如下步驟205d所述。步驟20 監(jiān)測業(yè)務源數(shù)據(jù)傳輸速率為了明確高層業(yè)務源的數(shù)據(jù)下發(fā)狀態(tài),需要定時監(jiān)測業(yè)務源的數(shù)據(jù)下發(fā)速率Rateiu = TrafTicVolumeiuZTM0nit0rljeri0d(1)其中=Rateiu表示在RNC側監(jiān)測到的高層業(yè)務源速率,Traf HcVolumeiu表示RNC側測量得到的高層業(yè)務量,該值可通過RLC層業(yè)務量測量實現(xiàn);TMonitorPeriod表示業(yè)務源速率監(jiān)測周期,該參數(shù)為可配置參數(shù)。步驟20 監(jiān)測空口數(shù)據(jù)傳輸速率。Rateuu = Thrptuu(公式 2)其中,Rateuu表示空口數(shù)據(jù)傳輸速率,Thrptuu表示空口吞吐量,可通過物理層(Li) 測量上報,其上報周期可配置;或者,可以通過L2計算獲取。步驟205c 計算業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率的比值k k = RatenZRateuu(3)其中k為業(yè)務源速率與空口傳輸速率之比,通過公式C3)計算;在理想情況下,期望業(yè)務源速率與空口速率保持一致(k趨于1),這樣可以保證業(yè)務源數(shù)據(jù)下發(fā)后可以獲得有效的傳輸。步驟205d 分裂ACK機制調整。具體又可以分為如下幾個子步驟子步驟a 初始啟動時,分裂ACK包的個數(shù)為預先設定的固定參數(shù)隊。一般來說,業(yè)務發(fā)起時,TCP首先進入慢啟動階段,在這個階段,空口可提供的傳輸速率會高于業(yè)務源下發(fā)的數(shù)據(jù)速率,比值k小于1,這時期望啟動分裂ACK機制,加速慢啟動進行,使TCP發(fā)送窗口快速膨脹。因此,業(yè)務建立時啟動分裂ACK機制,定義ACK分裂數(shù)目為N,設置初始設置的ACK 分裂數(shù)目為N = N。。其中,N。為可配置參數(shù)。子步驟b 根據(jù)k的取值動態(tài)調整ACK分裂數(shù)目N。初始啟動時隨著TCP發(fā)送窗口的快速擴展,k(k值計算見公式(3))值從0開始逐漸增大,當k逼近1,說明業(yè)務源速率與空口提供的傳輸能力基本保持一致,此時若繼續(xù)以較大的分裂數(shù)目進行ACK分裂已起不到促進業(yè)務傳輸?shù)男Ч炊赡軐е赂邔訑?shù)據(jù)在L2 長時間緩存,加重了 L2的緩存負擔。因此,隨著k值的增大可相應減小ACK分裂數(shù)目N。當空口質量發(fā)生變化,或是忽然有多個新用戶接入時,造成空口傳輸能力減小。這種情況下,空口吞吐量將小于業(yè)務源速率(k > 1),此時TCP層為適應空口的變化,將逐漸減少下發(fā)的數(shù)據(jù)量,直至重新達到穩(wěn)態(tài)(k趨于1),這時是以相對小的速率在進行傳輸。當空口質量恢復,或有用戶釋放,空口傳輸能力增大時,由于業(yè)務源速率未及時提升出現(xiàn)k< 1的現(xiàn)象,這時需要TCP加快業(yè)務源數(shù)據(jù)發(fā)送。同時,隨著k值的增大,期望逐漸保持數(shù)據(jù)源與空口傳輸能力的一致,相應也需要減小ACK分裂數(shù)目N。在RNC中預先配置兩個以上的閾值,其中最大的閾值為終止分裂閾值,最小的閾值為起始分裂閾值。將所述比值k與所述閾值進行比較,若比值k小于起始分裂閾值,則按照設定的固定分裂數(shù)目分裂ACK包;若比值k大于終止分裂閾值,則分裂數(shù)目歸零,停止 ACK包的分裂;若比值k在這兩個閾值之間,則對分裂數(shù)目進行動態(tài)調整。所述起始分裂閾值大于0且小于1 ;所述終止分裂閾值大于0且小于或等于1。圖3為本發(fā)明實施例提出的動態(tài)調整ACK包分裂個數(shù)的一種處理流程,設置第一閾值Thresh1 (起始分裂閾值)、第二閾值Thresh2 (終止分裂閾值),其中第二閾值Thresh2 >第一閾值Thresh1,第一閾值的取值范圍大于0且L小于1,第二閾值的取值范圍大于0且小于或等于1,該流程包括如下步驟步驟301 初始啟動階段,由于業(yè)務源速率為0,則k = 0,將ACK包分裂數(shù)目N設置為預先設定的初始值隊。步驟302 每隔預定時長,重新監(jiān)測比值k。步驟303 判斷比值k是否大于或等于預先設置的第一閾值Thresh1,若k < Thresh1,則將N設置為等于初始值N = N0,并轉至執(zhí)行步驟302 ;若k大于或等于第一閾值Hiresh1,則執(zhí)行步驟304。步驟304 判斷比值k是否大于或等于第二閾值Thresh2,若是,則設置N = 0,停止 ACK包分裂,并返回步驟302 ;否則,執(zhí)行步驟305。步驟305 當k的取值滿足Thresh1 <= k < Thresti2時,若k每增大一個步長Δ, 則將N減小一個粒度n,即設置N = N-n ;若k每減小一個步長Δ,則將N增大一個粒度η, 即設置N = Ν+η,并返回步驟302。當然,若k增大一個步長,則N減小一個粒度;若k減小(或增大)m個步長,則 N也相應增大(或減小m個粒度)。其中,Δ為k的變化步長,Δ與η的配置需要保證
^->^{Thresh2-Thresh{)l^ n為分裂數(shù)目N的粒度,取值為大于等于1且小于等于N。的 η整數(shù)。更進一步地,在起始分裂閾值和終止分裂閾值之間,還可以設置至少一個閾值,例如,在起始分裂閾值和終止分裂閾值之間設置I個閾值區(qū)間,對應各個閾值區(qū)間設置相應的分裂調整粒度[nQ,ηι,……,ni,ni+1,……,rvJ ;1為大于或等于1的整數(shù)。判斷比值k 所處于的閾值區(qū)間,確定該閾值區(qū)間對應的分裂調整粒度,將分裂ACK的個數(shù)N減少一個所確定的分裂調整粒度。例如,當k處于Threshi與Threshw間時,其分裂數(shù)目減少的粒度取為該閾值區(qū)間對應的分裂調整粒度η”從以上實施例可以看出,最初階段k較小,配置一個較大的隊。若k減小,說明業(yè)務源速率在增大,逐漸趨近于空口速率,當趨近1保持一致時,沒有必要過度加大業(yè)務源速率,這時分裂就可以減少,也就是k越大需要的分裂就越少,k越小需要的分裂就越多。那么,就應該是k每增大一個步長,N就減少一個粒度N = N-n ;反之,若k減小,則相應增大一個粒度。圖3所示實施例中是根據(jù)業(yè)務源速率與空口傳輸速率之間的關系來調整分裂ACK 的個數(shù)。實際也可以根據(jù)已經(jīng)緩存的TCP數(shù)據(jù)包的數(shù)目來調整分裂ACK的個數(shù)。例如,若 RNC緩存的TCP數(shù)據(jù)包較多,表明需要加快空口傳輸,此時為避免RNC換成堵塞業(yè)務源速率可以減慢,則減少分裂ACK的個數(shù);如果緩存的TCP數(shù)據(jù)包較少,則可以適當增加分裂ACK 的個數(shù)以適當提高業(yè)務源速率。當然,可以將業(yè)務源速率與空口傳輸速率之間的關系以及已緩存的TCP數(shù)據(jù)包數(shù)目這兩方面因素綜合起來,共同對分裂ACK的個數(shù)進行調整。例如定義可配置的業(yè)務量閾值門限下限為TrafficVolumeL?!ぃ舷逓?TrafficVolumeUPPEE,其中 TrafficVolumeUPPEK > TrafficVolumeLOffEE ;已緩存的業(yè)務量為 TrafficVolumeiu ;M為基于業(yè)務量的ACK分裂個數(shù)。a)當 TrafTicVolumeiu < Traff icVolumeLOffEE,則 M 設置初始值 M = M0。b)若 TrafficVolumeLOffEE < = TrafficVolumeiu < TrafficVo 1 umeUPPEE, 當 TrafficVolumeiu 每增大 Δ Traffic Volume,貝 Ij M = M_m ;當 TrafficVolumeiu 每減小 Δ TrafficVolume,貝U M = M+mc)直至 TrafficVolumeiu > = Traff icVolumeUPPEE,則設置 M = 0,停止分裂功能。Δ TrafficVolume 為業(yè)務量的變化量,需要保證 Mtl > = (Traff icVolumeUPPEE-Traf f icVolumeLOffEE) / Δ TrafficVolume ;m為分裂數(shù)目調整的粒度,取值范圍大于1小于Mtl的整數(shù);與基于速率的方法相同,可以根據(jù)實際需要設計多級閾值,按照閾值劃分的等級, 設計每個等級中業(yè)務量變化粒度和對應ACK數(shù)目的調整粒度。實際應用中支持此業(yè)務量方法與速率方法共同使用允許同時配置分別生效,即按照各自的原則調整ACK數(shù)目。也允許同時配置共同生效,如必須同時滿足業(yè)務量變化和速率變化,才調整ACK數(shù)目,調整ACK數(shù)目時,可以兩者取小或取大或取和,甚至采用其他計算方式。這里不限制實際應用中,對多種方法采用的組合方式,由實際應用需求決定。本發(fā)明實施例還提出一種TCP代理實現(xiàn)裝置,該裝置位于RNC中,包括接收及緩存模塊,用于接收并緩存來自核心網(wǎng)的TCP/IP組包;解析模塊,用于對接收及緩存模塊所緩存的TCP/IP組包進行解析,提取出TCP層數(shù)據(jù)包;判斷模塊,用于判斷所述解析模塊所提取的TCP層數(shù)據(jù)包是否為ACK包或攜帶ACK 的數(shù)據(jù)包,若是,則將所述ACK包或攜帶ACK的數(shù)據(jù)包傳送至分裂模塊;否則將該TCP層數(shù)據(jù)包傳送至空口發(fā)送模塊;分裂模塊,根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量,動態(tài)確定分裂ACK的個數(shù),并根據(jù)所確定的分裂ACK的個數(shù)將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為多個,將所復制的ACK包或攜帶ACK的數(shù)據(jù)包傳送至空口發(fā)送模塊;空口發(fā)送模塊,在空口上轉發(fā)來自所述判斷模塊的TCP層數(shù)據(jù)包或來自分裂模塊的ACK包或攜帶ACK的數(shù)據(jù)包。較佳地,所述分裂模塊包括閾值配置單元,用于保存預先配置的第一閾值和第二閾值,其中第二閾值>第一閾值;監(jiān)測單元,用于監(jiān)測業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率,并計算業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率的比值k ;比較單元,用于將所述監(jiān)測單元計算的比值k與所述閾值配置單元中預先設置的閾值進行比較,并輸出比較結果;調整單元,若所述比較單元輸出的比較結果為比值k小于第一閾值,則將分裂ACK 的個數(shù)N設置為等于預先設定的固定分裂數(shù)目;若所述比較結果為比值k大于第二閾值,則將分裂ACK的個數(shù)N歸零;若所述比較結果為比值k在第一閾值和第二閾值之間,則調整分裂ACK的個數(shù)N。分裂處理單元,用于根據(jù)所述調整單元輸出的分裂ACK的個數(shù)N,將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為N+1個。所述閾值配置單元還可以進一步在第一閾值和第二閾值之間設置I個閾值區(qū)間, 對應各個閾值區(qū)間設置相應的分裂調整粒度[IVn1,……,I^rv1,……,Ii1J ;I為大于或等于1的整數(shù);所述比較單元在得到比較結果為比值k在第一閾值和第二閾值之間時,進一步確定比值k所處于的閾值區(qū)間對應的分裂調整粒度,并將該分裂調整粒度通知調整單元;所述調整單元用于以所述分裂調整粒度為單位,調整分裂ACK的個數(shù)N。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種改進的傳輸控制協(xié)議TCP代理實現(xiàn)方法,其特征在于,包括如下步驟A、無線網(wǎng)絡控制器RNC接收并緩存來自核心網(wǎng)的TCP/IP組包;B、RNC對所緩存的TCP/IP組包進行解析,提取出TCP層數(shù)據(jù)包;C、RNC判斷所述TCP層數(shù)據(jù)包是否為ACK包或攜帶ACK的數(shù)據(jù)包,若是,則執(zhí)行步驟D; 否則直接在空口上轉發(fā)該TCP層數(shù)據(jù)包并返回步驟A ;以及D、根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量,動態(tài)確定分裂ACK的個數(shù),并根據(jù)所確定的分裂ACK的個數(shù)將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為多個,在空口上轉發(fā)所述ACK包或攜帶ACK的數(shù)據(jù)包,并返回步驟A。
2.根據(jù)權利要求1所述的方法,其特征在于,在RNC中預先配置第一閾值和第二閾值, 其中第二閾值>第一閾值;所述根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量,動態(tài)確定分裂ACK的個數(shù)包括監(jiān)測業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率; 計算業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率的比值k ;將所述比值k與所述預先設置的閾值進行比較,若比值k小于第一閾值,則將分裂ACK 的個數(shù)設置為等于預先設定的固定分裂數(shù)目N = N0 ;若比值k大于第二閾值,則將分裂ACK 的個數(shù)N歸零;若比值k在第一閾值和第二閾值之間,則調整分裂ACK的個數(shù)N。
3.根據(jù)權利要求2所述的方法,其特征在于,所述第一閾值大于0且小于1;所述第二閾值大于0且小于或等于1。
4.根據(jù)權利要求2所述的方法,其特征在于,所述若比值k在第一閾值和第二閾值之間,則調整分裂ACK的個數(shù)為與前一個k值相比,若k每增大一個步長Δ,則將分裂ACK 的個數(shù)N減小一個粒度n,即設置N = N-n ;若k每減小一個步長Δ,則將分裂ACK的個數(shù) N增大一個粒度η,即設置N = Ν+η,其中,Δ為k的變化步長,η為分裂數(shù)目N的粒度,取值為大于等于1且小于等于Ntl的整數(shù),A與η的配置需要保證&>=(TTzmsA2-TT^碑)/Δ,ηThresh1和Hiresh2分別代表第一閾值和第二閾值。
5.根據(jù)權利要求4所述的方法,其特征在于,在第一閾值和第二閾值之間設置I個閾值區(qū)間,對應各個閾值區(qū)間設置相應的分裂調整粒度[nQ,ηι,……,ni,ni+1,……,H1J5I為大于或等于1的整數(shù);所述將分裂ACK的個數(shù)N增大一個粒度η為判斷比值k所處于的閾值區(qū)間,確定該閾值區(qū)間對應的分裂調整粒度,將分裂ACK的個數(shù)N增大一個所確定的分裂調整粒度。
6.一種改進的傳輸控制協(xié)議TCP代理實現(xiàn)裝置,其特征在于,包括 接收及緩存模塊,用于接收并緩存來自核心網(wǎng)的TCP/IP組包;解析模塊,用于對接收及緩存模塊所緩存的TCP/IP組包進行解析,提取出TCP層數(shù)據(jù)包;判斷模塊,用于判斷所述解析模塊所提取的TCP層數(shù)據(jù)包是否為ACK包或攜帶ACK的數(shù)據(jù)包,若是,則將所述ACK包或攜帶ACK的數(shù)據(jù)包傳送至分裂模塊;否則將該TCP層數(shù)據(jù)包傳送至空口發(fā)送模塊;分裂模塊,根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量,動態(tài)確定分裂ACK的個數(shù),并根據(jù)所確定的分裂ACK的個數(shù)將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為多個,將所復制的ACK包或攜帶ACK的數(shù)據(jù)包傳送至空口發(fā)送模塊;空口發(fā)送模塊,在空口上轉發(fā)來自所述判斷模塊的TCP層數(shù)據(jù)包或來自分裂模塊的 ACK包或攜帶ACK的數(shù)據(jù)包。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述分裂模塊包括閾值配置單元,用于保存預先配置的第一閾值和第二閾值,其中第二閾值>第一閾值;監(jiān)測單元,用于監(jiān)測業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率,并計算業(yè)務源數(shù)據(jù)傳輸速率與空口數(shù)據(jù)傳輸速率的比值k ;比較單元,用于將所述監(jiān)測單元計算的比值k與所述閾值配置單元中預先設置的閾值進行比較,并輸出比較結果;調整單元,若所述比較單元輸出的比較結果為比值k小于第一閾值,則將分裂ACK的個數(shù)N設置為等于預先設定的固定分裂數(shù)目;若所述比較結果為比值k大于第二閾值,則將分裂ACK的個數(shù)N歸零;若所述比較結果為比值k在第一閾值和第二閾值之間,則調整分裂 ACK的個數(shù)N。分裂處理單元,用于根據(jù)所述調整單元輸出的分裂ACK的個數(shù)N,將所述ACK包或攜帶 ACK的數(shù)據(jù)包復制為N+1個。
8.根據(jù)權利要求7所述的裝置,其特征在于,所述閾值配置單元進一步在第一閾值和第二閾值之間設置I個閾值區(qū)間,對應各個閾值區(qū)間設置相應的分裂調整粒度[rv H1,……,ni,ni+1,……,IV1] ;1為大于或等于1的整數(shù);所述比較單元在得到比較結果為比值k在第一閾值和第二閾值之間時,進一步確定比值k所處于的閾值區(qū)間對應的分裂調整粒度,并將該分裂調整粒度通知調整單元;所述調整單元用于以所述分裂調整粒度為單位,調整分裂ACK的個數(shù)N。
全文摘要
本發(fā)明公開了一種改進的傳輸控制協(xié)議TCP代理實現(xiàn)方法,包括如下步驟A、無線網(wǎng)絡控制器RNC接收并緩存來自核心網(wǎng)的TCP/IP組包;B、RNC對所緩存的TCP/IP組包進行解析,提取出TCP層數(shù)據(jù)包;C、RNC判斷所述TCP層數(shù)據(jù)包是否為ACK包或攜帶ACK的數(shù)據(jù)包,若是,則執(zhí)行步驟D;否則直接在空口上轉發(fā)該TCP層數(shù)據(jù)包并返回步驟A;以及D、根據(jù)已緩存的數(shù)據(jù)量和/或監(jiān)測到的空口吞吐量,動態(tài)確定分裂ACK的個數(shù),并根據(jù)所確定的分裂ACK的個數(shù)將所述ACK包或攜帶ACK的數(shù)據(jù)包復制為多個,在空口上轉發(fā)所述ACK包或攜帶ACK的數(shù)據(jù)包,并返回步驟A。本發(fā)明還公開了一種改進的TCP代理實現(xiàn)裝置。本發(fā)明方案可以動態(tài)調整ACK包分裂的個數(shù),使其與場景或業(yè)務特性相適應。
文檔編號H04L29/06GK102195941SQ20101012292
公開日2011年9月21日 申請日期2010年3月11日 優(yōu)先權日2010年3月11日
發(fā)明者成建敏, 王亮 申請人:鼎橋通信技術有限公司