專利名稱:一種rtt統計方法和rtt統計系統的制作方法
技術領域:
本發明涉及數據傳輸技術,更具體地說,涉及一種RTT統計方法和RTT統計系統。
背景技術:
RTT(Round-Trip Time,往返時延)在計算機網絡中是一個重要的性能指標,它表示從發送端發送數據開始,到發送端收到來自接收端的確認(接收端收到數據后便立即發送確認)總共經歷的時延。發送方發送tcp (Transmission Control Protocol)報文到收到ack(ACKnowledge Character)回復之間的時間,稱為一個RTT(Round-Trip Time,往返時延)樣本,記為to。由于tcp協議棧的優化操作,接收方收到tcp報文后,并不會立即回復 ack確認包,而是延遲幾百ms,期望能附帶到其它數據包上搭載過去。這樣,通過上述方法統計到的RTT樣本并不等于真實的RTT,而是包含了 tcp協議棧優化時延AR。可以用公式表示為Rn = Rt+ Δ R ;其中,Rt表示真實的RTT ;Rn表示統計出的一次普通RTT樣本;Δ R表示tcp協議棧優化的時延。通過對現實網絡中tcp數據進行分析,Δ R因子的值在0 200ms之間,對最終的 RTT統計結果影響非常大。現有的統計方法主要包括兩種,下面進行詳細介紹1)、統計方法一采用如下公式來計算真實的tcp往返時延R = (R1+R2+R3+. . . +Rn) /n ;對多次統計出的to累加求平均值,這樣一定程度上平緩了 AR因子的影響,但是效果不明顯。采用此統計方法計算出的RTT與實際RTT相差很大。2)、統計方法二Rn = aR+(l-a)RnR = (R1+R2+R3+. . . +Rn) /n此統計方法中,為了消除AR因子的隨機抖動,利用加權平均算法對RTT樣本1 進行平滑,其中a是平滑因子,典型的值是0. 9。這個公式的含義是,按照上一次統計出的R 占有0. 9的權重,新的RTT樣本1 占有0. 1的權重,來更新1 的值,最后再對平滑后的1 累加求平均值。此種方法較方法一有所改進,采用平滑算法對每次統計出的RTT樣本進行了平滑,減小了因子抖動的影響,使最終的R更接近于真實RTT。但是仍然存在如下缺陷如果多次RTT樣本中AR因子都比較大,那么最終統計出的結果R仍然比真實RTT相差較大。
發明內容
本發明要解決的技術問題在于,針對現有技術的上述統計結果不準確、誤差較大的缺陷,提供一種RTT統計方法和RTT統計系統。
本發明解決其技術問題所采用的技術方案是構造一種RTT統計方法,包括步驟A、對于預設時間內的RTT樣本,在每一預設單位時間內,分別從每一預設數目的連續RTT樣本中提取最小的RTT樣本,從而得到對應于每一預設單位時間的第一次采樣的 RTT樣本集合;B、分別從對應于每一預設單位時間的第一次采樣的RTT樣本集合中提取最小的 RTT樣本,從而得到對應于預設時間的第二次采樣的RTT樣本集合;C、依據第一次采樣的RTT樣本集合中RTT樣本的數量,確定第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重;D、依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,計算近似RTT。在本發明所述的RTT統計方法中,所述可信權重包括多個等級值。在本發明所述的RTT統計方法中,其中,步驟C具體包括Cl、判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否大于所述多個等級值中的最大等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為最大等級值;若否,則進入步驟C2 ;C2、判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否等于所述多個等級值中的一個等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為該等級值。在本發明所述的RTT統計方法中,在步驟A之前還包括步驟A01、判斷預設時間內的RTT樣本是否包含有三次握手數據包對應的RTT樣本,若是,則從預設時間內的RTT樣本中分離出三次握手數據包對應的RTT樣本;若否,則進入步驟A;A02、設置三次握手數據包對應的RTT樣本的可信權重為多個等級值中的最大等級值。在本發明所述的RTT統計方法中,步驟D具體包括依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,以及三次握手數據包對應的RTT樣本及其可信權重,計算近似RTT。在本發明所述的RTT統計方法中,在步驟A之前還包括步驟A03、判斷每一預設單位時間內的RTT樣本的數量是否小于預設數目,若是,則丟棄該預設單位時間內的RTT樣本。本發明還提供一種RTT統計系統,包括第一采樣單元,用于對于預設時間內的RTT樣本,在每一預設單位時間內,分別從每一預設數目的連續RTT樣本中提取最小的RTT樣本,從而得到對應于每一預設單位時間的第一次采樣的RTT樣本集合;第二采樣單元,用于分別從對應于每一預設單位時間的第一次采樣的RTT樣本集合中提取最小的RTT樣本,從而得到對應于預設時間的第二次采樣的RTT樣本集合;確定單元,用于依據第一次采樣的RTT樣本集合中RTT樣本的數量,確定第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重;計算單元,用于依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,計算近似RTT。在本發明所述的RTT統計系統中,所述可信權重包括多個等級值。在本發明所述的RTT統計系統中,所述確定單元具體包括第一判斷單元,用于判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否大于所述多個等級值中的最大等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為最大等級值;若否,則由第二判斷單元進行處理;第二判斷單元,用于判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否等于所述多個等級值中的一個等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為該等級值。在本發明所述的RTT統計系統中,還包括分離單元,用于判斷預設時間內的RTT樣本是否包含有三次握手數據包對應的 RTT樣本,若是,則從預設時間內的RTT樣本中分離出三次握手數據包對應的RTT樣本;若否,則由第一采樣單元進行處理;設置單元,用于設置三次握手數據包對應的RTT樣本的可信權重為多個等級值中的最大等級值;其中,計算單元具體用于依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,以及三次握手數據包對應的RTT樣本及其可信權重,計算近似RTT。本發明的有益效果是,通過對一段時間內的RTT樣本進行兩次采樣,然后再對采樣后的RTT樣本集合的每一 RTT樣本確定可信權重,從而計算得出近似RTT。該方案使得預設單位時間內,即使90%的RTT樣本都是錯誤的,只要連續多個RTT樣本內,有一個正確的 RTT樣本,那么正確的RTT樣本就可以被篩選出來。為提取出來的RTT樣本設置可信權重, 使得計算得出的近似RTT逼近真實的RTT。進一步地,在預設單位時間內,如果發送方與接收方之間的數據包交互很少,使得 RTT樣本的數量未達到最低的預設數目,則認為此單位時間內的RTT樣本數過少,不足以計算出正確的RTT,因此不對此單位時間統計RTT值,保證整體統計結果的準確性。
下面將結合附圖及實施例對本發明作進一步說明,附圖中圖1是依據本發明一實施例的RTT統計方法流程圖;圖2是步驟103的詳細流程圖;圖3是依據本發明另一實施例的RTT統計方法流程圖;圖4是依據本發明另一實施例的RTT統計系統結構示意圖;圖5是確定單元403的詳細結構示意圖;圖6是依據本發明另一實施例的RTT統計系統結構示意圖。
具體實施例方式圖1是依據本發明一實施例的RTT統計方法100流程圖。方法100包括如下步驟
6
步驟101、對于預設時間內的RTT樣本,在每一預設單位時間內,分別從每一預設數目的連續RTT樣本中提取最小的RTT樣本,從而得到對應于每一預設單位時間的第一次采樣的RTT樣本集合;步驟102、分別從對應于每一預設單位時間的第一次采樣的RTT樣本集合中提取最小的RTT樣本,從而得到對應于預設時間的第二次采樣的RTT樣本集合;步驟103、依據第一次采樣的RTT樣本集合中RTT樣本的數量,確定第二次采樣的 RTT樣本集合中對應的RTT樣本的可信權重;步驟104、依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,計算近似RTT。在本發明一實施例中,近似RTT的數值等于第二次采樣的RTT樣本集合中每一 RTT 樣本與其對應的可信權重的乘積之和,再除以可信權重之和,所得的商值。S卩,假設第二次采樣的RTT樣本集合為(M1、M2、…、Mn),其對應的可信權重為(Cl、C2、…、Cn),則近似 RTT可表示為Rt' = (Ml X C1+M2 X C2+— +Mn X Cn) / (C1+C2+— +Cn)在本發明中,可信權重包括多個等級值,具體數值可依據實際情況進行設置,例如但不限于設置為1、2、…、10。等級值的設置方式對近似RTT的計算結果影響很小,可以忽略不計。在本發明一實施例中,步驟103具體包括如下步驟,如圖2所示步驟1031、判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否大于所述多個等級值中的最大等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為最大等級值;若否,則進入步驟1032 ;步驟1032、判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否等于所述多個等級值中的一個等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為該等級值。對于設置為1、2、…、10,10個等級值的可信權重為例,假設預設時間為20s,預設單位時間為5s,則總共有四個預設單位時間。如果第一個預設單位時間的第一次采樣的 RTT樣本集合中RTT樣本的數量為11,則第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重就設置為最大等級值10。第二個預設單位時間的第一次采樣的RTT樣本集合中RTT 樣本的數量為8,則第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重就設置為8。 依次類推,第三個預設單位時間的第一次采樣的RTT樣本集合中RTT樣本的數量為3,則第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重就設置為3 ;第四四個預設單位時間的第一次采樣的RTT樣本集合中RTT樣本的數量為1,則第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重就設置為1。此處的數值僅為了闡述之用,并不作為對本發明的限制。對于上述示例,4個預設單位時間表示為tl、t2、t3、t4,第一次采樣的RTT樣本集合表示為N1、N2、N3、N4,第二次采樣的RTT樣本集合表示為M,其中M中包括4個RTT樣本即M1、M2、M3、M4,Ml是附集合中最小的RTT樣本,M2是N2集合中最小的RTT樣本,M3是 N,3集合中最小的RTT樣本、M4是N4集合中最小的RTT樣本。M1、M2、M3、M4,Ml對應的可信權重分別表示為Cl、C2、C3、C4,在此例中,Cl = 10、C2 = 8、C3 = 3、C4 = 1。近似RTT表示為IV,那么步驟104的近似RTT的計算過程可以表示如下Rt' = (Ml X C1+M2 X C2+M3 X C3+M4 X C4) / (C1+C2+C3+C4)= (Ml X10+M2 X 8+M3 X 3+M4 X1)/(10+8+3+1)= (Ml X 10+M2 X 8+M3 X 3+M4 X 1) /22對于TCP數據包,有可能會存在三次握手數據包,由于TCP協議棧對三次握手數據包的回復包不做優化延遲處理,因此,根據TCP三次握手數據包統計出的RTT樣本基本等于實際的RTT。所以,還需要在步驟101之前進行如下步驟,如圖3所示步驟101 ‘、判斷預設時間內的RTT樣本是否包含有三次握手數據包對應的RTT樣本,若是,則進入步驟101 〃,從預設時間內的RTT樣本中分離出三次握手數據包對應的RTT 樣本;若否,則進入步驟101;步驟101〃 ‘、設置三次握手數據包對應的RTT樣本的可信權重為多個等級值中的最大等級值。對于包含有三次握手數據包對應的RTT樣本時,步驟104的計算結果要做適應性調整,需要把三次握手數據包對應的RTT樣本計算進去。即,依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,以及三次握手數據包對應的 RTT樣本及其可信權重,計算近似RTT。為了簡要起見,圖3中未示出步驟101-104,詳細內容可參見圖1,此處不再贅述。假設包含有1個三次握手數據包對應的RTT樣本S,其對應的可信權重即為Ms,在設置為1、2、…、10,10個等級值的可信權重的例子中,Ms = 10,最后計算得到的近似RTT 為Rt' = (Ml X C1+M2 X C2+M3 X C3+M4 X C4+S X Ms) / (C1+C2+C3+C4)= (Ml X 10+M2 X 8+M3 X 3+M4 X 1+S X 10) / (10+8+3+1)= (Ml X 10+M2 X 8+M3 X 3+M4 X 1+S X 10) /22在本發明又一實施例中,在步驟101之前還包括步驟步驟101"“(未示出)、判斷每一預設單位時間內的RTT樣本的數量是否小于預設數目,若是,則丟棄該預設單位時間內的RTT樣本。步驟101〃 “可在步驟101' ,101"、 101"‘的之前,也可在其之后,本發明對此不加限制。這里的預設數目例如但不限于10 個、30個等等。圖4是依據本發明另一實施例的RTT統計系統結構示意圖,RTT統計系統400包括彼此通信連接的第一采樣單元401、第二采樣單元402、確定單元403、計算單元404。第一采樣單元401,用于對于預設時間內的RTT樣本,在每一預設單位時間內,分別從每一預設數目的連續RTT樣本中提取最小的RTT樣本,從而得到對應于每一預設單位時間的第一次采樣的RTT樣本集合;第二采樣單元402,用于分別從對應于每一預設單位時間的第一次采樣的RTT樣本集合中提取最小的RTT樣本,從而得到對應于預設時間的第二次采樣的RTT樣本集合;確定單元403,用于依據第一次采樣的RTT樣本集合中RTT樣本的數量,確定第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重;計算單元404,用于依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,計算近似RTT。
其中,可信權重包括多個等級值。詳細內容可參見上文關于RTT統計方法的描述, 此處不再贅述。在本發明一實施例中,確定單元403具體包括第一判斷單元4031、第二判斷單元 4033,如圖5所示。第一判斷單元4031,用于判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否大于所述多個等級值中的最大等級值,若是,則設置第二次采樣的RTT樣本集合中對應的 RTT樣本的可信權重為最大等級值;若否,則由第二判斷單元4032進行處理;第二判斷單元4032,用于判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否等于所述多個等級值中的一個等級值,若是,則設置第二次采樣的RTT樣本集合中對應的 RTT樣本的可信權重為該等級值。對于包含有三次握手數據包對應的RTT樣本時,RTT統計系統400還可以包括分離單元405、設置單元406,如圖6所示。分離單元405,用于判斷預設時間內的RTT樣本是否包含有三次握手數據包對應的RTT樣本,若是,則從預設時間內的RTT樣本中分離出三次握手數據包對應的RTT樣本; 若否,則由第一采樣單元401進行處理;設置單元406,用于設置三次握手數據包對應的RTT樣本的可信權重為多個等級值中的最大等級值。將三次握手數據包對應的RTT樣本及其可信權重發送給計算單元,以便計算近似RTT。在此實施例中,計算單元404具體用于依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,以及三次握手數據包對應的RTT樣本及其可信權重,計算近似RTT。另外,本發明的RTT統計系統還可以包括丟棄單元(未示出),用于判斷每一預設單位時間內的RTT樣本的數量是否小于預設數目,若是,則丟棄該預設單位時間內的RTT樣本。本發明通過對一段時間內的RTT樣本進行兩次采樣,然后再對采樣后的RTT樣本集合的每一 RTT樣本確定可信權重,從而計算得出近似RTT。該方案使得預設單位時間內, 即使90%的RTT樣本都是錯誤的,只要連續多個RTT樣本內,有一個正確的RTT樣本,那么正確的RTT樣本就可以被篩選出來。為提取出來的RTT樣本設置可信權重,使得計算得出的近似RTT逼近真實的RTT。進一步地,在預設單位時間內,如果發送方與接收方之間的數據包交互很少,使得RTT樣本的數量未達到最低的預設數目,則認為此單位時間內的RTT樣本數過少,不足以計算出正確的RTT,因此不對此單位時間統計RTT值,保證整體統計結果的準確性。本發明中,在預設單位時間內,即使90%的RTT樣本都是錯誤的,只要連續多個 RTT樣本或者預設的時間段內,有一個正確的RTT樣本,那么正確的RTT樣本就可以被篩選出來。在某單位時間內,如果發送方與接收方之間的數據包交互很少,使得RTT樣本數未達到最低的要求的數目,則認為此單位時間內的RTT樣本數過少,不足以計算出正確的RTT, 因此不對此單位時間統計RTT值,保證整體統計結果的準確性。關于近似RTT的計算過程可參見圖1-圖3所示,此處不再贅述。RTT統計方法的內容適用于RTT統計系統,同理,RTT統計系統的內容也適用于RTT統計方法。
權利要求
1.一種RTT統計方法,其特征在于,包括步驟A、對于預設時間內的RTT樣本,在每一預設單位時間內,分別從每一預設數目的連續 RTT樣本中提取最小的RTT樣本,從而得到對應于每一預設單位時間的第一次采樣的RTT樣本集合;B、分別從對應于每一預設單位時間的第一次采樣的RTT樣本集合中提取最小的RTT樣本,從而得到對應于預設時間的第二次采樣的RTT樣本集合;C、依據第一次采樣的RTT樣本集合中RTT樣本的數量,確定第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重;D、依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一RTT樣本的可信權重,計算近似RTT。
2.根據權利要求1所述的RTT統計方法,其特征在于,所述可信權重包括多個等級值。
3.根據權利要求2所述的RTT統計方法,其特征在于,其中,步驟C具體包括Cl、判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否大于所述多個等級值中的最大等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為最大等級值;若否,則進入步驟C2;C2、判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否等于所述多個等級值中的一個等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為該等級值。
4.根據權利要求2所述的RTT統計方法,其特征在于,在步驟A之前還包括步驟 A01、判斷預設時間內的RTT樣本是否包含有三次握手數據包對應的RTT樣本,若是,則從預設時間內的RTT樣本中分離出三次握手數據包對應的RTT樣本;若否,則進入步驟 A;A02、設置三次握手數據包對應的RTT樣本的可信權重為多個等級值中的最大等級值。
5.根據權利要求4所述的RTT統計方法,其特征在于,步驟D具體包括依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,以及三次握手數據包對應的RTT樣本及其可信權重,計算近似RTT。
6.根據權利要求1所述的RTT統計方法,其特征在于,在步驟A之前還包括步驟 A03、判斷每一預設單位時間內的RTT樣本的數量是否小于預設數目,若是,則丟棄該預設單位時間內的RTT樣本。
7.一種RTT統計系統,其特征在于,包括第一采樣單元,用于對于預設時間內的RTT樣本,在每一預設單位時間內,分別從每一預設數目的連續RTT樣本中提取最小的RTT樣本,從而得到對應于每一預設單位時間的第一次采樣的RTT樣本集合;第二采樣單元,用于分別從對應于每一預設單位時間的第一次采樣的RTT樣本集合中提取最小的RTT樣本,從而得到對應于預設時間的第二次采樣的RTT樣本集合;確定單元,用于依據第一次采樣的RTT樣本集合中RTT樣本的數量,確定第二次采樣的 RTT樣本集合中對應的RTT樣本的可信權重;計算單元,用于依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,計算近似RTT。
8.根據權利要求7所述的RTT統計系統,其特征在于,所述可信權重包括多個等級值。
9.根據權利要求8所述的RTT統計系統,其特征在于,所述確定單元具體包括第一判斷單元,用于判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否大于所述多個等級值中的最大等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為最大等級值;若否,則由第二判斷單元進行處理;第二判斷單元,用于判斷第一次采樣的RTT樣本集合中RTT樣本的數量是否等于所述多個等級值中的一個等級值,若是,則設置第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重為該等級值。
10.根據權利要求8所述的RTT統計系統,其特征在于,所述RTT統計系統還包括 分離單元,用于判斷預設時間內的RTT樣本是否包含有三次握手數據包對應的RTT樣本,若是,則從預設時間內的RTT樣本中分離出三次握手數據包對應的RTT樣本;若否,則由第一采樣單元進行處理;設置單元,用于設置三次握手數據包對應的RTT樣本的可信權重為多個等級值中的最大等級值;其中,所述計算單元具體用于依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一 RTT樣本的可信權重,以及三次握手數據包對應的RTT樣本及其可信權重,計算近似RTT。
全文摘要
本發明涉及一種RTT統計方法和RTT統計系統,包括對于預設時間內的RTT樣本,在每一預設單位時間內,分別從每一預設數目的連續RTT樣本中提取最小的RTT樣本,得到第一次采樣的RTT樣本集合;分別從對應于每一預設單位時間的第一次采樣的RTT樣本集合中提取最小的RTT樣本,從而得到第二次采樣的RTT樣本集合;依據第一次采樣的RTT樣本集合中RTT樣本的數量,確定第二次采樣的RTT樣本集合中對應的RTT樣本的可信權重;依據第二次采樣的RTT樣本集合和第二次采樣的RTT樣本集合中每一RTT樣本的可信權重,計算近似RTT。本技術方案計算得出的近似RTT逼近真實的RTT,保證了統計結果的準確性。
文檔編號H04L1/00GK102185673SQ20111006943
公開日2011年9月14日 申請日期2011年3月22日 優先權日2011年3月22日
發明者李凡, 雷建 申請人:深信服網絡科技(深圳)有限公司