欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種往返時延的測量方法、裝置及系統(tǒng)與流程

文檔序號:11147717閱讀:967來源:國知局
一種往返時延的測量方法、裝置及系統(tǒng)與制造工藝

本發(fā)明涉及通信領域,尤其涉及一種往返時延的測量方法、裝置及系統(tǒng)。



背景技術:

傳輸控制協(xié)議(Transmission Control Protocol,TCP)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。它通過重傳機制提供可靠的通信,具體的,TCP為每個數(shù)據(jù)包設置一個序列號,當接收端成功收到數(shù)據(jù)包A后向發(fā)送端發(fā)送數(shù)據(jù)包A的確認包(ACK),該確認包中攜帶有數(shù)據(jù)包A的序列號,如果發(fā)送端在一定時間內(nèi)未收到數(shù)據(jù)包A的確認包,那么,發(fā)送端則認為數(shù)據(jù)包A已丟失,進而重傳數(shù)據(jù)包A。

為了避免網(wǎng)絡擁塞,TCP采用滑窗限流,批量傳輸?shù)臋C制。具體的,發(fā)送端按照滑動窗口(Sliding Window,SW)規(guī)定的字節(jié)批量發(fā)送若干數(shù)據(jù)包(即包群),在一個批次的包群發(fā)送完成后,發(fā)送端停止發(fā)送數(shù)據(jù)包,直到一個往返時延(Round-Trip Time,RTT)后,即發(fā)送端收到接收端對上一批次的包群發(fā)送的確認包后,再啟動新批次的包群發(fā)送。

從上述傳輸機制可以看出,往返時延是決定TCP傳輸速率的重要指標,如圖1所示,在測量TCP鏈接的RTT時,通常在發(fā)送端和接收端之間設置監(jiān)測點,將監(jiān)測點接收到的數(shù)據(jù)包A和數(shù)據(jù)包A的確認包B之間的時間差作為RTT。

但是,上述RTT測量方法只能得到監(jiān)測點到接收端之間的RTT值,并不能真實地測量發(fā)送端與接收端之間的RTT值,如果監(jiān)測點距發(fā)送端端較遠,那么,上述RTT測量方法測量得到的RTT值誤差較大。



技術實現(xiàn)要素:

本發(fā)明的實施例提供一種往返時延的測量方法、裝置及系統(tǒng),可以一 定程度上提高RTT測量的準確度。

為達到上述目的,本發(fā)明的實施例采用如下技術方案:

第一方面,本發(fā)明的實施例提供一種往返時延的測量方法,所述方法用于測量發(fā)送端與接收端之間TCP鏈接上的RTT,包括:獲取在所述TCP鏈接上接收到數(shù)據(jù)包A的第一時間,所述數(shù)據(jù)包A為所述發(fā)送端向所述接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包;在接收到所述數(shù)據(jù)包A的確認包之后,計算所述發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,所述數(shù)據(jù)包C為在所述數(shù)據(jù)包A之后的數(shù)據(jù)包,所述數(shù)據(jù)包D為在所述數(shù)據(jù)包C之后與所述數(shù)據(jù)包C相鄰的數(shù)據(jù)包;若所述數(shù)據(jù)包C與所述數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值,則將接收到所述數(shù)據(jù)包C的第二時間與所述第一時間的差值作為所述TCP鏈接的本次RTT值。

這樣一來,基于TCP批量傳輸?shù)臋C制,若監(jiān)測到數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則確定數(shù)據(jù)包D為在第一包群之后的第二包群中的第一個數(shù)據(jù)包,此時,將接收到數(shù)據(jù)包D的第二時間與接收到數(shù)據(jù)包A的第一時間的差值,即接收第一包群與第二包群之間的時間差作為該TCP鏈接的本次RTT值,從而一定程度上提高RTT測量的準確度。

結合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,獲取在所述TCP鏈接上接收到所述數(shù)據(jù)包A的第一時間,可具體通過以下方式獲得:計算在所述TCP鏈接上接收到的數(shù)據(jù)包E和數(shù)據(jù)包A’之間的發(fā)包時間間隔,所述數(shù)據(jù)包A’為在所述數(shù)據(jù)包E之后與所述數(shù)據(jù)包E相鄰的數(shù)據(jù)包;若所述數(shù)據(jù)包E和所述數(shù)據(jù)包A’之間的發(fā)包時間間隔大于所述第一門限值,且小于所述第二門限值時,則將所述數(shù)據(jù)包A’確定為所述數(shù)據(jù)包A;查詢接收到所述數(shù)據(jù)包A的接收時間,并將所述接收時間作為所述第一時間。

其中,查詢接收到所述數(shù)據(jù)包A的接收時間,并將所述接收時間作為所述第一時間,可具體包括:根據(jù)所述數(shù)據(jù)包A的序列號,查詢所述數(shù)據(jù) 包A的確認包是否唯一;若所述數(shù)據(jù)包A的確認包唯一,則查詢接收到所述數(shù)據(jù)包A的接收時間,并將所述接收時間作為所述第一時間。

這樣,通過查詢該數(shù)據(jù)包A的確認包是否唯一,即可排除數(shù)據(jù)包A被接收端多次確認的情況,因為數(shù)據(jù)包A被接收端多次確認時會產(chǎn)生多個確認包,而通過這多個確認包無法準確確定接收端確認的是哪個數(shù)據(jù)包,進而造成RTT測量時得到的RTT值準確性降低。

結合第一方面,在第一方面的第二種可能的實現(xiàn)方式中,將接收到所述數(shù)據(jù)包D的第二時間與所述第一時間的差值作為所述TCP鏈接的本次RTT值之后,還包括:根據(jù)所述本次RTT值更新所述第一門限值和所述第二門限值,其中,更新后的所述第一門限值為第一比例系數(shù)與所述本次RTT值的乘積,更新后的所述第二門限值為第二比例系數(shù)與所述本次RTT值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

結合第一方面,在第一方面的第三種可能的實現(xiàn)方式中,在將接收到所述數(shù)據(jù)包D的第二時間與所述第一時間的差值作為所述TCP鏈接的本次RTT值之后,還包括:對所述本次RTT值與本次RTT測量之前得到的N個歷史RTT值求取平均值,N為大于0的整數(shù);根據(jù)所述平均值更新所述第一門限值和所述第二門限值,其中,更新后的所述第一門限值為第一比例系數(shù)與所述平均值的乘積,更新后的所述第二門限值為第二比例系數(shù)與所述平均值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

在進行下一次RTT測量時,仍然可以循環(huán)執(zhí)行上述更新方法,并且,可以使用上一次RTT測量后更新的第一門限值和第二門限值,將得到的發(fā)包時間間隔與更新后的第一門限值和第二門限值進行比較,進而動態(tài)測量TCP鏈接上的每次RTT值。

結合第一方面,在第一方面的第四種可能的實現(xiàn)方式中,在獲取在TCP鏈接上接收到所述數(shù)據(jù)包A的第一時間之前,還包括:計算建立所述TCP鏈接時的初始RTT值;根據(jù)所述初始RTT值設置所述第一門限值和所述第二門限值,其中,所述第一門限值為第一比例系數(shù)與所述初始 RTT值的乘積,所述第二門限值為第二比例系數(shù)與所述初始RTT值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

結合第一方面以及第一方面的第一至第四中可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,在監(jiān)測所述發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔之后,還包括:若所述數(shù)據(jù)包C與所述數(shù)據(jù)包D之間的發(fā)包時間間隔小于所述第一門限值,則繼續(xù)計算所述數(shù)據(jù)包D與數(shù)據(jù)包H之間的發(fā)包時間間隔,所述數(shù)據(jù)包H為在所述數(shù)據(jù)包D之后與所述數(shù)據(jù)包D相鄰的數(shù)據(jù)包;若所述數(shù)據(jù)包C與所述數(shù)據(jù)包D之間的發(fā)包時間間隔大于所述第二門限值,則放棄本次RTT測量。

結合第一方面以及第一方面的第一至第四中可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,在監(jiān)測所述發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔之后,還包括:若所述發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將所述數(shù)據(jù)包D的序列號與所述數(shù)據(jù)包A的序列號的差值作為SW的大小。

由于除了RTT是決定TCP傳輸速率的重要指標之外,SW也是決定TCP傳輸速率的重要指標,因此,可以看出,本發(fā)明實施例提供的RTT測量方法,能夠同時較為準確地測量RTT值和SW的大小,該方法適用于所有TCP鏈接,并且,可以對一條TCP鏈接上的數(shù)據(jù)流進行多次RTT測量,實現(xiàn)對RTT的動態(tài)跟蹤。

第二方面,本發(fā)明的實施例提供一種往返時延的測量裝置,所述裝置用于測量發(fā)送端與接收端之間傳輸控制協(xié)議TCP鏈接上的往返時延RTT,包括:獲取單元,用于獲取在所述TCP鏈接上接收到數(shù)據(jù)包A的第一時間,所述數(shù)據(jù)包A為所述發(fā)送端向所述接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包;計算單元,用于在接收到所述數(shù)據(jù)包A的確認包之后,計算所述發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,所述數(shù)據(jù)包C 為在所述數(shù)據(jù)包A之后的數(shù)據(jù)包,所述數(shù)據(jù)包D為在所述數(shù)據(jù)包C之后與所述數(shù)據(jù)包C相鄰的數(shù)據(jù)包;所述計算單元,還用于若所述數(shù)據(jù)包C與所述數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值,則將接收到所述數(shù)據(jù)包C的第二時間與所述第一時間的差值作為所述TCP鏈接的本次RTT值。

結合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述裝置還包括確定單元和查詢單元,其中,所述計算單元,還用于計算在所述TCP鏈接上接收到的數(shù)據(jù)包E和數(shù)據(jù)包A’之間的發(fā)包時間間隔,所述數(shù)據(jù)包A’為在所述數(shù)據(jù)包E之后與所述數(shù)據(jù)包E相鄰的數(shù)據(jù)包;所述確定單元,用于若所述數(shù)據(jù)包E和所述數(shù)據(jù)包A’之間的發(fā)包時間間隔大于所述第一門限值,且小于所述第二門限值時,則將所述數(shù)據(jù)包A’確定為所述數(shù)據(jù)包A;所述查詢單元,用于查詢接收到所述數(shù)據(jù)包A的接收時間,并將所述接收時間作為所述第一時間。

其中,所述查詢單元,具體用于查詢所述數(shù)據(jù)包A的確認包是否唯一;若所述數(shù)據(jù)包A的確認包唯一,則查詢接收到所述數(shù)據(jù)包A的接收時間,并將所述接收時間作為所述第一時間。

結合第二方面,在第二方面的第二種可能的實現(xiàn)方式中,所述裝置還包括:更新單元,用于根據(jù)所述本次RTT值更新所述第一門限值和所述第二門限值,其中,更新后的所述第一門限值為第一比例系數(shù)與所述本次RTT值的乘積,更新后的所述第二門限值為第二比例系數(shù)與所述本次RTT值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

結合第二方面,在第二方面的第三種可能的實現(xiàn)方式中,所述裝置還包括更新單元,其中,所述計算單元,還用于對本次RTT測量得到的所述本次RTT值與本次RTT測量之前得到的N個歷史RTT值求取平均值,N為大于0的整數(shù);所述更新單元,用于根據(jù)所述平均值更新所述第一門限值和所述第二門限值,其中,更新后的所述第一門限值為第一比例系數(shù) 與所述平均值的乘積,更新后的所述第二門限值為第二比例系數(shù)與所述平均值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

結合第二方面,在第二方面的第四種可能的實現(xiàn)方式中,所述裝置還包括設置單元,其中,所述計算單元,還用于計算建立所述TCP鏈接時的初始RTT值;所述設置單元,用于根據(jù)所述初始RTT值設置所述第一門限值和所述第二門限值,其中,所述第一門限值為第一比例系數(shù)與所述初始RTT值的乘積,所述第二門限值為第二比例系數(shù)與所述初始RTT值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

結合第二方面以及第二方面的第第一至四種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,所述計算單元,還用于若所述數(shù)據(jù)包C與所述數(shù)據(jù)包D之間的發(fā)包時間間隔小于所述第一門限值,則繼續(xù)計算所述數(shù)據(jù)包D與數(shù)據(jù)包H之間的發(fā)包時間間隔,所述數(shù)據(jù)包H為在所述數(shù)據(jù)包D之后與所述數(shù)據(jù)包D相鄰的數(shù)據(jù)包;若所述數(shù)據(jù)包C與所述數(shù)據(jù)包D之間的發(fā)包時間間隔大于所述第二門限值,則放棄本次RTT測量。

結合第二方面以及第二方面的第第一至四種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,所述計算單元,還用于若所述發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將所述數(shù)據(jù)包D的序列號與所述數(shù)據(jù)包A的序列號的差值作為滑動窗口SW的大小。

第三方面,本發(fā)明的實施例提供一種往返時延的測量系統(tǒng),包括上述第二方面中任一項所述的往返時延的測量裝置,以及與所述往返時延的測量裝置均相連的接收端和發(fā)送端。

本發(fā)明的實施例提供一種往返時延的測量方法、裝置及系統(tǒng),可用于測量發(fā)送端與接收端之間TCP鏈接上的RTT,首先,可獲取在該TCP鏈接上接收到數(shù)據(jù)包A的第一時間,該數(shù)據(jù)包A為發(fā)送端向接收端發(fā)送的第 一包群中的第一個數(shù)據(jù)包;在接收到該數(shù)據(jù)包A的確認包之后,計算發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,該數(shù)據(jù)包C為在數(shù)據(jù)包A之后的數(shù)據(jù)包,該數(shù)據(jù)包D為在數(shù)據(jù)包C之后與數(shù)據(jù)包C相鄰的數(shù)據(jù)包;若該數(shù)據(jù)包C與該數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將接收到該數(shù)據(jù)包D的第二時間與第一時間的差值作為該TCP鏈接的本次RTT值。這樣一來,基于TCP批量傳輸?shù)臋C制,若監(jiān)測到數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則確定數(shù)據(jù)包D為在第一包群之后的第二包群中的第一個數(shù)據(jù)包,此時,將接收到數(shù)據(jù)包D的第二時間與接收到數(shù)據(jù)包A的第一時間的差值,即接收第一包群與第二包群之間的時間差作為該TCP鏈接的本次RTT值,從而一定程度上提高RTT測量的準確度。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹。

圖1為現(xiàn)有技術中RTT測量方法的示意圖;

圖2為本發(fā)明實施例中進行RTT測量的架構示意圖;

圖3為本發(fā)明實施例提供的一種往返時延的測量方法的流程圖一;

圖4為本發(fā)明實施例提供的RTT測量方法的示意圖;

圖5為本發(fā)明實施例提供的一種往返時延的測量方法的流程圖二;

圖6為本發(fā)明實施例提供的三次握手機制的示意圖;

圖7為本發(fā)明實施例提供的一種往返時延的測量裝置的結構示意圖一;

圖8為本發(fā)明實施例提供的一種往返時延的測量裝置的結構示意圖二;

圖9為本發(fā)明實施例提供的一種往返時延的測量裝置的結構示意圖三;

圖10為本發(fā)明實施例提供的一種往返時延的測量裝置的結構示意圖 四;

圖11為本發(fā)明實施例提供的一種往返時延的測量系統(tǒng)的結構示意圖;

圖12為本發(fā)明實施例提供的一種往返時延的測量裝置的硬件結構示意圖。

具體實施方式

下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。

另外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括一個或者更多個該特征。在本發(fā)明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。

本文中術語“和/或”,僅僅是一種描述關聯(lián)對象的關聯(lián)關系,表示可以存在三種關系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,一般表示前后關聯(lián)對象是一種“或”的關系。

如圖2所示,TCP協(xié)議具有批量傳輸?shù)臋C制,具體的,接收端與發(fā)送端之間通過“三次握手(three times handshake;three-way handshake)機制”建立TCP鏈接,該TCP鏈接建立后,發(fā)送端傳輸一個包群,該包群內(nèi)包含若干個數(shù)據(jù)包,接收端在接收到發(fā)送端批量發(fā)送的數(shù)據(jù)包后,向發(fā)送端回復確認包(ACK),當發(fā)送端接收到該確認包后啟動新的一輪包群的發(fā)送。

而RTT是指:TCP協(xié)議中從發(fā)送端發(fā)送一個數(shù)據(jù)包,到收到接收端發(fā)送的確認包所經(jīng)歷的時間,也就是發(fā)送端連續(xù)發(fā)送兩次包群之間的時間間隔,即圖2中的R1,對于RTT測量裝置點來說,發(fā)送端與接收端之間在該TCP鏈接上的一次RTT,是指:監(jiān)測到第一包群中第一個數(shù)據(jù)包,到監(jiān)測到第二包群中第一個數(shù)據(jù)包的時間差,即圖2中的R2,因此,本 發(fā)明的實施例提供的RTT測量方法通過識別包群間隔,計算發(fā)送端與接收端之間在該TCP鏈接上的一次RTT,該方法可以連續(xù)測量該TCP鏈接上每一次的RTT值,并且容易在網(wǎng)絡中間任意位置上實現(xiàn)。

需要說明的是,在本發(fā)明實施例中涉及到的數(shù)據(jù)包A、數(shù)據(jù)包A’、數(shù)據(jù)包B、數(shù)據(jù)包C等數(shù)據(jù)包中,A、B、C等英文字母僅用于區(qū)分數(shù)據(jù)包,不會對數(shù)據(jù)包的順序、大小等屬性特征進行限制。

實施例1

本發(fā)明的實施例提供一種往返時延的測量方法,如圖3所示,包括:

101、獲取在TCP鏈接上接收到數(shù)據(jù)包A的第一時間,該數(shù)據(jù)包A為發(fā)送端向接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包。

102、在接收到該數(shù)據(jù)包A的確認包之后,計算發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,該數(shù)據(jù)包C為在數(shù)據(jù)包A之后的數(shù)據(jù)包,該數(shù)據(jù)包D為在數(shù)據(jù)包C之后與該數(shù)據(jù)包C相鄰的數(shù)據(jù)包。

103、若該數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將接收到該數(shù)據(jù)包D的第二時間與該第一時間的差值作為該TCP鏈接的本次RTT值。

在步驟101中,RTT測量裝置位于接收端和發(fā)送端之間,當接收端與發(fā)送端之間通過“三次握手機制”建立TCP鏈接后,RTT測量裝置可分別監(jiān)測到發(fā)送端向接收端批量發(fā)送的包群(例如第一包群)中的每個數(shù)據(jù)包到達RTT測量裝置的時間,以及接收端針對每個接收到的數(shù)據(jù)包向發(fā)送端發(fā)送的確認包到達RTT測量裝置的時間。

此時,若接收到接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包(本發(fā)明實施例中稱為數(shù)據(jù)包A)的確認包,RTT測量裝置可獲取從發(fā)送端在該TCP鏈接上接收該數(shù)據(jù)包A的第一時間T1(T1>0),即第一包群中的第一個數(shù)據(jù)包到達RTT測量裝置的時間。

具體的,RTT測量裝置可記錄接收到的各個數(shù)據(jù)包的接收時間,并將該各個數(shù)據(jù)包的接收時間存儲至自身的存儲單元,并且,RTT測量裝置可實時計算接收到的各個數(shù)據(jù)包之間的時間間隔,該時間間隔即為發(fā)送端發(fā)送各個數(shù)據(jù)包之間的發(fā)包時間間隔,由于TCP協(xié)議具有批量傳輸?shù)臋C制,也就是說,當發(fā)送端將第一包群進行發(fā)送結束后,當發(fā)送端接收到該第一 包群內(nèi)的數(shù)據(jù)包的確認包后,才啟動新的一輪包群(即第二包群)的發(fā)送,因此,第一包群的最后一個數(shù)據(jù)包與第二包群的第一個數(shù)據(jù)包之間的發(fā)包間隔時間,通常大于每個包群內(nèi)數(shù)據(jù)包之間的發(fā)包時間間隔,那么,當RTT測量裝置監(jiān)測到該數(shù)據(jù)包A的前一個數(shù)據(jù)包(本發(fā)明實施例中稱為數(shù)據(jù)包E)與該數(shù)據(jù)包A之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則可認為該數(shù)據(jù)包E為第一包群的前一個包群(即第三包群)中的最后一個數(shù)據(jù)包。

此時,RTT測量裝置查詢該數(shù)據(jù)包A的確認包是否唯一,即排除數(shù)據(jù)包A被接收端多次確認的情況,因為數(shù)據(jù)包A被接收端多次確認時會產(chǎn)生多個確認包,RTT測量裝置通過這多個確認包無法準確確定接收端確認的是哪個數(shù)據(jù)包,進而造成RTT測量時得到的RTT值準確性降低。

具體的,由于TCP為每個數(shù)據(jù)包設置一個序列號,當接收端成功收到數(shù)據(jù)包A后,向發(fā)送端發(fā)送數(shù)據(jù)包A的確認包,該確認包中也攜帶有數(shù)據(jù)包A的序列號,因此,RTT測量裝置可以解析監(jiān)測到的各個數(shù)據(jù)包的序列號和各個確認包的序列號,通過對比,確定數(shù)據(jù)包A的確認包是否唯一,若數(shù)據(jù)包A的確認包唯一,RTT測量裝置則從存儲器中已經(jīng)記錄的接收該數(shù)據(jù)包A的接收時間作為該第一時間T1。

示例性的,如圖4所示,下行方向表示發(fā)送端向接收端發(fā)送各個數(shù)據(jù)包,上行方向表示接收端向發(fā)送端發(fā)送對應的確認包,RTT測量裝置會記錄每一個接收到的數(shù)據(jù)包的接收時間,當監(jiān)測到在該TCP鏈接上接收到的數(shù)據(jù)包E和數(shù)據(jù)包A’之間的發(fā)包時間間隔J1(J1>0)大于第一門限值,且小于所述第二門限值時,則確定該數(shù)據(jù)包A’為發(fā)送端向所述接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包,即數(shù)據(jù)包A,此時,RTT測量裝置從上行方向上查找與數(shù)據(jù)包A的序列號相同的確認包B是否唯一,若數(shù)據(jù)包A的確認包B唯一,RTT測量裝置則將存儲器中已經(jīng)記錄的接收該數(shù)據(jù)包A的接收時間作為該第一時間T1。

其中,第一門限值和第二門限值的具體取值可以由本領域技術人員根據(jù)實際經(jīng)驗進行預置,又或者,第一門限值和第二門限值的具體取值可以是由RTT測量裝置根據(jù)本次RTT測量的前一次RTT測量得到的RTT值計算的,本發(fā)明后續(xù)實施例將對此做詳細介紹,故此處不再贅述。

至此,RTT測量裝置獲取到從發(fā)送端在該TCP鏈接上接收數(shù)據(jù)包A的第一時間T1。

在步驟102中,由于發(fā)送端發(fā)送的第二包群一定是在接收到第一包群的確認包之后發(fā)送的,也就是說,在發(fā)送端接收到數(shù)據(jù)包A的確認包之后,才會發(fā)送第二包群的第一個數(shù)據(jù)包,因此,在接收到該數(shù)據(jù)包A的確認包之后,RTT測量裝置可連續(xù)計算發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,數(shù)據(jù)包C與數(shù)據(jù)包D均為數(shù)據(jù)阿伯A之后的數(shù)據(jù)包,且數(shù)據(jù)包D為在數(shù)據(jù)包C之后與該數(shù)據(jù)包C相鄰的數(shù)據(jù)包(本發(fā)明實施例中所指的相鄰數(shù)據(jù)包,是指按照時間的先后順序RTT測量裝置連續(xù)接收到的兩個數(shù)據(jù)包)。

進一步地,由于發(fā)送端按照滑動窗口(Sliding Window,SW)規(guī)定的字節(jié)發(fā)送包群,而包群內(nèi)的大多數(shù)數(shù)據(jù)包都按照預定字節(jié)大小進行封裝(即數(shù)據(jù)包為滿包),而每個包群內(nèi)的最后一個或幾個數(shù)據(jù)包的大小可能會小于該預定字節(jié)大小,出現(xiàn)非滿包的情況。

而由于非滿包(可能是大小極小的包)的傳輸時延可能與滿包的傳輸時延有差別,因此,為了增加RTT測量的準確性,RTT測量裝置可連續(xù)計算數(shù)據(jù)包為滿包的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔。

在步驟103中,若在步驟102中計算出數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔J2(J2>0)大于第一門限值,且小于第二門限值時,RTT測量裝置則記錄接收該數(shù)據(jù)包D的第二時間T2,以便于計算該TCP鏈接的本次RTT值。

示例性的,仍如圖4所示,當RTT測量裝置在下行方向上,計算得到數(shù)據(jù)包A的確認包B之后的數(shù)據(jù)包C與相鄰的數(shù)據(jù)包D之間的發(fā)包時間間隔J2大于第一門限值,且小于所述第二門限值時,可以認為數(shù)據(jù)包D為第一包群之后的包群(及第二包群)中的第一個數(shù)據(jù)包,此時,RTT測量裝置記錄接收該數(shù)據(jù)包D的第二時間T2。

當然,在步驟102之后,若監(jiān)測到的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔J2小于該第一門限值,即說明數(shù)據(jù)包D仍屬于第一包群內(nèi)的數(shù)據(jù)包,那么,RTT測量裝置可繼續(xù)監(jiān)測該數(shù)據(jù)包D與后續(xù)相鄰的數(shù)據(jù)包H之間的發(fā)包時間間隔;又或者,若監(jiān)測到的數(shù)據(jù)包C與數(shù)據(jù)包D之 間的發(fā)包時間間隔J2大于該第二門限值,即認為當前發(fā)送端無數(shù)據(jù)包發(fā)送,此時,RTT測量裝置可放棄本次RTT測量。

而對于RTT測量裝置來說,發(fā)送端與接收端之間在該TCP鏈接上的一次RTT,是指:監(jiān)測到第一包群中第一個數(shù)據(jù)包,到監(jiān)測到第二包群中第一個數(shù)據(jù)包的時間差,即圖2中的R2,因此,在該TCP鏈接上本次RTT測量裝置測量的RTT值(即本次RTT值)R2=第二時間T2-第一時間T1。

至此,本發(fā)明的實施例提供一種往返時延的測量方法,可用于測量發(fā)送端與接收端之間TCP鏈接上的RTT,首先,可獲取在該TCP鏈接上接收到數(shù)據(jù)包A的第一時間,該數(shù)據(jù)包A為發(fā)送端向接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包;在接收到該數(shù)據(jù)包A的確認包之后,計算發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,該數(shù)據(jù)包C為在數(shù)據(jù)包A之后的數(shù)據(jù)包,該數(shù)據(jù)包D為在數(shù)據(jù)包C之后與數(shù)據(jù)包C相鄰的數(shù)據(jù)包;若該數(shù)據(jù)包C與該數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將接收到該數(shù)據(jù)包D的第二時間與第一時間的差值作為該TCP鏈接的本次RTT值。這樣一來,基于TCP批量傳輸?shù)臋C制,若監(jiān)測到數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則確定數(shù)據(jù)包D為在第一包群之后的第二包群中的第一個數(shù)據(jù)包,此時,將接收到數(shù)據(jù)包D的第二時間與接收到數(shù)據(jù)包A的第一時間的差值,即接收第一包群與第二包群之間的時間差作為該TCP鏈接的本次RTT值,從而一定程度上提高RTT測量的準確度。

實施例2

本發(fā)明的實施例提供一種往返時延的測量方法,如圖5所示,包括:

201、計算建立TCP鏈接時的初始RTT值。

202、根據(jù)該初始RTT值設置第一門限值和第二門限值,其中,第一門限值為第一比例系數(shù)與初始RTT值的乘積,第二門限值為第二比例系數(shù)與初始RTT值的乘積。

203、獲取在TCP鏈接上接收到數(shù)據(jù)包A的第一時間,該數(shù)據(jù)包A為發(fā)送端向接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包。

204、在接收到該數(shù)據(jù)包A的確認包之后,計算發(fā)送端發(fā)送的數(shù)據(jù)包 C與數(shù)據(jù)包D之間的發(fā)包時間間隔。

205、若該發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則記錄接收該數(shù)據(jù)包D的第二時間。

206、將該第二時間與該第一時間的差值作為該TCP鏈接的本次RTT值。

207、根據(jù)該本次RTT值更新該第一門限值和該第二門限值,其中,更新后的第一門限值為第一比例系數(shù)與本次RTT值的乘積,更新后的第二門限值為第二比例系數(shù)與本次RTT值的乘積。

208、若該發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將該數(shù)據(jù)包D的序列號與該數(shù)據(jù)包A的序列號的差值作為SW的大小。

具體的,RTT測量裝置位于接收端和發(fā)送端之間,而接收端與發(fā)送端之間通過“三次握手機制”建立TCP鏈接。

其中,所謂的三次握手的機制,是指為了提供可靠的數(shù)據(jù)傳送,接收端和發(fā)送端對每次數(shù)據(jù)的傳輸進行協(xié)商,使數(shù)據(jù)的發(fā)送和接收同步。如圖6所示,第一次握手是指,在建立TCP鏈接時,發(fā)送端發(fā)送SYN(synchronous)報文到接收端,該SYN報文中包含該TCP鏈接的配置信息,以使得接收端根據(jù)配置信息進行初始化配置。第二次握手是指,接收端進行初始化配置后發(fā)送響應消息(即SYN報文+ACK)指示發(fā)送端該TCP鏈接的配置完成。第三次握手是指,發(fā)送端收到接收端的響應消息后發(fā)送確認信息(即ACK),指示接收端該TCP鏈接已經(jīng)建立,準備傳輸數(shù)據(jù)。

可以看出,發(fā)送端與接收端在建立TCP鏈接時的初始RTT值(即該TCP鏈接上的第一次RTT值),為RTT測量裝置從接收到發(fā)送端在第一次握手時發(fā)送SYN報文,至RTT測量裝置接收到接收端發(fā)送的響應消息的時間W1,以及RTT測量裝置從接收到接收端發(fā)送的響應消息至,RTT測量裝置接收到發(fā)送端發(fā)送的確認信息的時間W2。

因此,在步驟201中,RTT測量裝置根據(jù)上述W1與W2,計算在建立該TCP鏈接時的初始RTT值,即RTT測量裝置=W1+W2。

然而,步驟201中得到的初始RTT值,只能代表該TCP鏈接上傳輸?shù)臄?shù)據(jù)流在開始時刻的RTT值,為了能夠動態(tài)測量在該TCP鏈接上整個 數(shù)據(jù)流的在進行數(shù)據(jù)發(fā)送和接收時RTT值的變化,可進一步執(zhí)行步驟202-207。

在步驟202中,RTT測量裝置根據(jù)步驟201中得到的該初始RTT值,設置第一門限值和第二門限值,其中,第一門限值為第一比例系數(shù)與初始RTT值的乘積,第二門限值為第二比例系數(shù)與初始RTT值的乘積,該第一比例系數(shù)小于第二比例系數(shù)。即:

第一門限值M1=第一比例系數(shù)*初始RTT值

第二門限值M2=第二比例系數(shù)*初始RTT值

例如,第一比例系數(shù)可以是0.2-0.3范圍內(nèi)的任意值,第二比例系數(shù)可以是2-3范圍內(nèi)的任意值,本領域技術人員可以根據(jù)實際經(jīng)驗或特定的算法選擇第一比例系數(shù)和第二比例系數(shù),本發(fā)明實施例對此不做限定。

在步驟203中,RTT測量裝置可獲取在該TCP鏈接上接收到該數(shù)據(jù)包A的第一時間T1(T1>0),即第一包群中的第一個數(shù)據(jù)包到達RTT測量裝置的時間,具體可參見步驟101中的相關描述。

在步驟204中,在接收到該數(shù)據(jù)包A的確認包之后,RTT測量裝置可連續(xù)計算發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔J2,該數(shù)據(jù)包C與數(shù)據(jù)包D為前后相鄰的數(shù)據(jù)包,具體可參見步驟102中的相關描述。

在步驟205中,可以進一步將步驟204中得到的發(fā)包時間間隔與步驟202中計算的第一門限值和第二門限值進行比較,若數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔J2大于第一門限值,且小于第二門限值時,RTT測量裝置則記錄接收該數(shù)據(jù)包D的第二時間T2。

示例性的,如圖4所示,當RTT測量裝置在下行方向上,監(jiān)測到數(shù)據(jù)包A的確認包B之后的數(shù)據(jù)包C與相鄰的數(shù)據(jù)包D之間的發(fā)包時間間隔J2大于第一門限值,且小于所述第二門限值時,可以認為數(shù)據(jù)包D為第一包群之后的包群(及第二包群)中的第一個數(shù)據(jù)包,此時,RTT測量裝置記錄接收該數(shù)據(jù)包D的第二時間T2。

在步驟206中,對于RTT測量裝置來說,發(fā)送端與接收端之間在該TCP鏈接上的一次RTT,是指:監(jiān)測到第一包群中第一個數(shù)據(jù)包,到監(jiān)測到第二包群中第一個數(shù)據(jù)包的時間差,即圖2中的R2,因此,在該TCP 鏈接上本次RTT測量裝置測量的RTT值(即本次RTT值)R2=第二時間T2-第一時間T1。

在步驟207中,為了保證后續(xù)RTT測量時使用的第一門限值和該第二門限值更加準確,RTT測量裝置可以根據(jù)步驟206中得到的該本次RTT值,更新該第一門限值和該第二門限值,其中,更新后的第一門限值為第一比例系數(shù)與本次RTT值的乘積,更新后的第二門限值為第二比例系數(shù)與本次RTT值的乘積。即:

更新后的第一門限值M3=第一比例系數(shù)*本次RTT值

更新后的第二門限值M4=第二比例系數(shù)*本次RTT值

這樣,在步驟207之后進行下一次RTT測量時,RTT測量裝置仍然可以循環(huán)執(zhí)行步驟203-206中的方法,不同的是,在循環(huán)執(zhí)行步驟205時,RTT測量裝置可以使用上一次RTT測量后更新的第一門限值M3和第二門限值M4,將步驟204中得到的發(fā)包時間間隔與更新后的第一門限值M3和第二門限值M4進行比較。

又或者,RTT測量裝置還可以對步驟206中得到的本次RTT值與進行本次RTT測量之前得到的N(N>0)個歷史RTT值求取平均值(該平均值可以是算術平均值,也可以是幾何平均值);進而,根據(jù)該平均值更新第一門限值和第二門限值,其中,該第一門限值為第一比例系數(shù)與該平均值的乘積,該第二門限值為第二比例系數(shù)與該平均值的乘積。

進一步地,在TCP協(xié)議中,發(fā)送端按照滑動窗口SW規(guī)定的字節(jié)批量發(fā)送若干數(shù)據(jù)包(即包群),在一個批次的包群發(fā)送完成后,發(fā)送端停止發(fā)送數(shù)據(jù)包,直到一個RTT后,發(fā)送端再啟動新批次的包群發(fā)送。

從上述傳輸機制可以看出,除了RTT是決定TCP傳輸速率的重要指標之外,SW也是決定TCP傳輸速率的重要指標。

因此,在步驟208中,為了計算該TCP鏈接上SW的大小,當步驟204中監(jiān)測到的該發(fā)包時間間隔J2大于第一門限值,且小于第二門限值,由于該TCP鏈接上的數(shù)據(jù)包都是按照序列號的大小依次發(fā)送的,因此,RTT測量裝置可以將該數(shù)據(jù)包D的序列號與該數(shù)據(jù)包A的序列號的差值作為該SW的大小,即通過第一包群中第一個數(shù)據(jù)包的序列號與第二包群中第一個數(shù)據(jù)包的序列號的差值,計算該SW的大小。

可以看出,本發(fā)明實施例提供的RTT測量方法,能夠同時較為準確地測量RTT值和SW的大小,該方法適用于所有TCP鏈接,并且,可以對一條TCP鏈接上的數(shù)據(jù)流進行多次RTT測量,實現(xiàn)對RTT的動態(tài)跟蹤。

需要說明的是,步驟208可以在步驟205-207之間的任意時間執(zhí)行,本發(fā)明實施例對此不作限制。

至此,本發(fā)明的實施例提供一種往返時延的測量方法,可用于測量發(fā)送端與接收端之間TCP鏈接上的RTT,首先,可獲取在該TCP鏈接上接收到數(shù)據(jù)包A的第一時間,該數(shù)據(jù)包A為發(fā)送端向接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包;在接收到該數(shù)據(jù)包A的確認包之后,計算發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,該數(shù)據(jù)包C為在數(shù)據(jù)包A之后的數(shù)據(jù)包,該數(shù)據(jù)包D為在數(shù)據(jù)包C之后與數(shù)據(jù)包C相鄰的數(shù)據(jù)包;若該數(shù)據(jù)包C與該數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將接收到該數(shù)據(jù)包D的第二時間與第一時間的差值作為該TCP鏈接的本次RTT值。這樣一來,基于TCP批量傳輸?shù)臋C制,若監(jiān)測到數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則確定數(shù)據(jù)包D為在第一包群之后的第二包群中的第一個數(shù)據(jù)包,此時,將接收到數(shù)據(jù)包D的第二時間與接收到數(shù)據(jù)包A的第一時間的差值,即接收第一包群與第二包群之間的時間差作為該TCP鏈接的本次RTT值,從而一定程度上提高RTT測量的準確度。

實施例3

本發(fā)明的實施例提供一種往返時延的測量裝置(即RTT測量裝置),該裝置用于測量發(fā)送端與接收端之間TCP鏈接上的RTT,如圖7所示,該裝置包括:

獲取單元11,用于獲取在所述TCP鏈接上接收到數(shù)據(jù)包A的第一時間,所述數(shù)據(jù)包A為所述發(fā)送端向所述接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包;

計算單元12,用于在接收到所述數(shù)據(jù)包A的確認包之后,計算所述發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,所述數(shù)據(jù)包C為在所述數(shù)據(jù)包A之后的數(shù)據(jù)包,所述數(shù)據(jù)包D為在所述數(shù)據(jù)包C之后與所述數(shù)據(jù)包C相鄰的數(shù)據(jù)包;以及,若所述數(shù)據(jù)包C與所述數(shù)據(jù)包D 之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值,則將接收到所述數(shù)據(jù)包C的第二時間與所述第一時間的差值作為所述TCP鏈接的本次RTT值。

進一步地,如圖8所示,所述裝置還包括確定單元13和查詢單元14,其中,

所述計算單元12,還用于計算在所述TCP鏈接上接收到的數(shù)據(jù)包E和數(shù)據(jù)包A’之間的發(fā)包時間間隔,所述數(shù)據(jù)包A’為在所述數(shù)據(jù)包E之后與所述數(shù)據(jù)包E相鄰的數(shù)據(jù)包;

所述確定單元13,用于若所述計算單元12中所述數(shù)據(jù)包E和所述數(shù)據(jù)包A’之間的發(fā)包時間間隔大于所述第一門限值,且小于所述第二門限值時,則將所述數(shù)據(jù)包A’確定為所述數(shù)據(jù)包A;

所述查詢單元14,用于查詢接收到所述數(shù)據(jù)包A的接收時間,并將所述接收時間作為所述第一時間.

進一步地,所述查詢單元14,具體用于根據(jù)所述數(shù)據(jù)包A的序列號,查詢所述數(shù)據(jù)包A的確認包是否唯一;若所述數(shù)據(jù)包A的確認包唯一,則查詢接收到所述數(shù)據(jù)包A的接收時間,并將所述接收時間作為所述第一時間。

進一步地,如圖9所示,所述裝置還包括:

更新單元15,用于根據(jù)所述本次RTT值更新所述第一門限值和所述第二門限值,其中,更新后的所述第一門限值為第一比例系數(shù)與所述本次RTT值的乘積,更新后的所述第二門限值為第二比例系數(shù)與所述本次RTT值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

又或者,如圖9所示,所述計算單元12,還用于對本次RTT測量得到的所述本次RTT值與本次RTT測量之前得到的N個歷史RTT值求取平均值,N為大于0的整數(shù);

所述更新單元15,用于根據(jù)所述計算單元12中的平均值更新所述第一門限值和所述第二門限值,其中,更新后的所述第一門限值為第一比例系數(shù)與所述平均值的乘積,更新后的所述第二門限值為第二比例系數(shù)與所述平均值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

進一步地,如圖10所示,所述裝置還包括設置單元16,其中,

所述計算單元12,還用于計算建立所述TCP鏈接時的初始RTT值;

所述設置單元16,用于根據(jù)所述計算單元12中的初始RTT值設置所述第一門限值和所述第二門限值,其中,所述第一門限值為第一比例系數(shù)與所述初始RTT值的乘積,所述第二門限值為第二比例系數(shù)與所述初始RTT值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

進一步地,所述計算單元12,還用于若所述數(shù)據(jù)包C與所述數(shù)據(jù)包D之間的發(fā)包時間間隔小于所述第一門限值,則繼續(xù)計算所述數(shù)據(jù)包D與數(shù)據(jù)包H之間的發(fā)包時間間隔,所述數(shù)據(jù)包H為在所述數(shù)據(jù)包D之后與所述數(shù)據(jù)包D相鄰的數(shù)據(jù)包;若所述數(shù)據(jù)包C與所述數(shù)據(jù)包D之間的發(fā)包時間間隔大于所述第二門限值,則放棄本次RTT測量。

進一步地,所述計算單元12,還用于若所述發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將所述數(shù)據(jù)包D的序列號與所述數(shù)據(jù)包A的序列號的差值作為滑動窗口SW的大小。

至此,本發(fā)明的實施例提供一種往返時延的測量裝置,可用于測量發(fā)送端與接收端之間TCP鏈接上的RTT,首先,可獲取在該TCP鏈接上接收到數(shù)據(jù)包A的第一時間,該數(shù)據(jù)包A為發(fā)送端向接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包;在接收到該數(shù)據(jù)包A的確認包之后,計算發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,該數(shù)據(jù)包C為在數(shù)據(jù)包A之后的數(shù)據(jù)包,該數(shù)據(jù)包D為在數(shù)據(jù)包C之后與數(shù)據(jù)包C相鄰的數(shù)據(jù)包;若該數(shù)據(jù)包C與該數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將接收到該數(shù)據(jù)包D的第二時間與第一時間的差值作為該TCP鏈接的本次RTT值。這樣一來,基于TCP批量傳輸?shù)臋C制,若監(jiān)測到數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則確定數(shù)據(jù)包D為在第一包群之后的第二包群中的第一個數(shù)據(jù)包,此時,將接收到數(shù)據(jù)包D的第二時間與接收到數(shù)據(jù)包A的第一時間的差值,即接收第一包群與第二包群之間的時間差作為該TCP鏈接的本次RTT值,從而一定程度上提高RTT測量的準確度。

實施例4

圖11為本發(fā)明實施例提供的一種往返時延的測量系統(tǒng)的結構示意圖,該系統(tǒng)包括上述任一種往返時延的測量裝置(即RTT測量裝置)100, 以及與該往返時延的測量裝置100均數(shù)據(jù)相連的接收端200和發(fā)送端300。

具體的,本發(fā)明實施例提供的系統(tǒng)可以用于實施上述圖1-圖6所示的本發(fā)明各實施例實現(xiàn)的方法,為了便于說明,僅示出了與本發(fā)明實施例相關的部分,具體技術細節(jié)未揭示的,請參照圖1-圖6所示的本發(fā)明各實施例,故此處不再贅述。

示例性的,圖12為本發(fā)明實施例提供的一種RTT測量裝置100的實體結構示意圖,本發(fā)明實施例提供的RTT測量裝置100可以用于實施上述圖1-圖6所示的本發(fā)明各實施例實現(xiàn)的方法,為了便于說明,僅示出了與本發(fā)明實施例相關的部分,具體技術細節(jié)未揭示的,請參照圖1-圖6所示的本發(fā)明各實施例。

其中,該RTT測量裝置100包括處理器21、收發(fā)器22以及存儲器23,并且,該處理器21、收發(fā)器22以及存儲器23通過總線24進行通信。

具體的,收發(fā)器22從存儲器23中獲取從發(fā)送端接收到數(shù)據(jù)包A的第一時間,所述數(shù)據(jù)包A為第一包群中的第一個數(shù)據(jù)包;在收發(fā)器22接收到所述數(shù)據(jù)包A的確認包之后,處理器21計算所述發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,所述數(shù)據(jù)包C與所述數(shù)據(jù)包D為前后相鄰的數(shù)據(jù)包;若所述發(fā)包時間間隔大于第一門限值,且小于第二門限值時,處理器21則將接收所述數(shù)據(jù)包D的第二時間記錄在存儲器23中;進而,處理器21通過處理器21計算所述第二時間與所述第一時間的差值,并將所述第二時間與所述第一時間的差值作為所述TCP鏈接的本次RTT值。

進一步地,收發(fā)器22從存儲器23中獲取從發(fā)送端接收到數(shù)據(jù)包A的第一時間,具體包括步驟:處理器21計算在所述TCP鏈接上接收到的數(shù)據(jù)包E和數(shù)據(jù)包A’之間的發(fā)包時間間隔,所述數(shù)據(jù)包A’為在所述數(shù)據(jù)包E之后與所述數(shù)據(jù)包E相鄰的數(shù)據(jù)包;若所述數(shù)據(jù)包E和所述數(shù)據(jù)包A’之間的發(fā)包時間間隔大于所述第一門限值,且小于所述第二門限值時,處理器21則確定所述數(shù)據(jù)包A’為所述數(shù)據(jù)包A,此時,處理器21查詢接收到所述數(shù)據(jù)包A的接收時間,并將所述接收時間作為所述第一時間。

具體的,處理器231可先根據(jù)所述數(shù)據(jù)包A的序列號,查詢所述數(shù)據(jù)包A的確認包是否唯一;若所述數(shù)據(jù)包A的確認包唯一,則查詢接收到所述數(shù)據(jù)包A的接收時間,并將所述接收時間作為所述第一時間。

進一步地,在處理器21將所述第二時間與所述第一時間的差值作為所述TCP鏈接的本次往返時延RTT值之后,還可以包括步驟:處理器21根據(jù)所述本次RTT值更新所述第一門限值和所述第二門限值,并將更新后的第一門限值和第二門限值存儲至存儲器23中,其中,更新后的所述第一門限值為第一比例系數(shù)與所述本次RTT值的乘積,更新后的所述第二門限值為第二比例系數(shù)與所述本次RTT值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

進一步地,在處理器21將所述第二時間與所述第一時間的差值作為所述TCP鏈接的本次往返時延RTT值之后,還可以包括步驟:處理器21對本次RTT測量得到的所述本次RTT值與本次RTT測量之前得到的N個歷史RTT值求取平均值,N為大于0的整數(shù);進而,處理器21根據(jù)所述平均值更新所述第一門限值和所述第二門限值,并將更新后的第一門限值和第二門限值存儲至存儲器23,其中,更新后的所述第一門限值為第一比例系數(shù)與所述平均值的乘積,更新后的所述第二門限值為第二比例系數(shù)與所述平均值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

進一步地,在收發(fā)器22則通過處理器21,從存儲器23中獲取從發(fā)送端接收數(shù)據(jù)包A的第一時間之前,還可以包括步驟:處理器21計算建立所述TCP鏈接時的初始RTT值;并且,處理器21根據(jù)所述初始RTT值設置所述第一門限值和所述第二門限值,其中,所述第一門限值為第一比例系數(shù)與所述初始RTT值的乘積,所述第二門限值為第二比例系數(shù)與所述初始RTT值的乘積,所述第一比例系數(shù)小于所述第二比例系數(shù)。

進一步地,在處理器21計算所述發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔之后,還可以包括步驟:若所述發(fā)包時間間隔小于所述第一門限值,處理器21則繼續(xù)計算所述數(shù)據(jù)包D與后續(xù)相鄰的數(shù)據(jù)包之間的發(fā)包時間間隔;若所述發(fā)包時間間隔大于所述第二門限值,處理器21則放棄本次RTT測量。

進一步地,在處理器21監(jiān)測所述發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D 之間的發(fā)包時間間隔之后,還可以包括步驟:若所述發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則處理器21通過處理器21將所述數(shù)據(jù)包D的序列號與所述數(shù)據(jù)包A的序列號的差值作為SW的大小。

至此,本發(fā)明的實施例提供一種往返時延的測量裝置及系統(tǒng),可用于測量發(fā)送端與接收端之間TCP鏈接上的RTT,首先,可獲取在該TCP鏈接上接收到數(shù)據(jù)包A的第一時間,該數(shù)據(jù)包A為發(fā)送端向接收端發(fā)送的第一包群中的第一個數(shù)據(jù)包;在接收到該數(shù)據(jù)包A的確認包之后,計算發(fā)送端發(fā)送的數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔,該數(shù)據(jù)包C為在數(shù)據(jù)包A之后的數(shù)據(jù)包,該數(shù)據(jù)包D為在數(shù)據(jù)包C之后與數(shù)據(jù)包C相鄰的數(shù)據(jù)包;若該數(shù)據(jù)包C與該數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則將接收到該數(shù)據(jù)包D的第二時間與第一時間的差值作為該TCP鏈接的本次RTT值。這樣一來,基于TCP批量傳輸?shù)臋C制,若監(jiān)測到數(shù)據(jù)包C與數(shù)據(jù)包D之間的發(fā)包時間間隔大于第一門限值,且小于第二門限值時,則確定數(shù)據(jù)包D為在第一包群之后的第二包群中的第一個數(shù)據(jù)包,此時,將接收到數(shù)據(jù)包D的第二時間與接收到數(shù)據(jù)包A的第一時間的差值,即接收第一包群與第二包群之間的時間差作為該TCP鏈接的本次RTT值,從而一定程度上提高RTT測量的準確度。

所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。

在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。

另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。

所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)或處理器(processor)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。

以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
手机| 理塘县| 三明市| 洪湖市| 陵川县| 巴马| 阿图什市| 阳江市| 漳平市| 龙里县| 连江县| 永善县| 大悟县| 石柱| 肥乡县| 平原县| 昆山市| 常德市| 岑溪市| 廉江市| 礼泉县| 赤壁市| 泸定县| 休宁县| 循化| 孟村| 清镇市| 清水河县| 榆林市| 青河县| 绥阳县| 承德县| 巴青县| 湛江市| 昭苏县| 祁门县| 西城区| 天镇县| 陇南市| 赫章县| 乌审旗|