本發明涉及測試領域,更具體地說,涉及一種測試網絡延時的方法和裝置。
背景技術:
隨著網絡的發展,網絡傳輸速率越來越快,對網絡性能要求也越來越高。其中,網絡延時是評價網絡性能的基本指標,也是測試延時抖動、網絡寬帶性能指標的基礎。網絡延時測試在網絡性能檢測、網絡行為分析、網絡應用設計等領域有著廣泛的應用。
網絡延時測試是通過測試數據包從源端開始進入網絡到它開始離開網絡進入目的端之間的時間得出網絡延時結果。網絡延時測試通常是測試往返延時,在現有技術中,測試以下三個部分:
報文從源端到目的端的傳輸時間;
目的端設備對數據包處理時間,即包處理時間;
目的端到源端的包傳輸時間。
其中,目的端設備對數據包處理的時間,是根據目的端的硬件條件決定,不能體現網絡的性能。
現有技術中采用icmp協議構造數據包或udp協議構造數據包作為測試數據包進行測試,但是目的端或傳輸路徑中的一些節點會將icmp數據包過濾掉,導致不能進行測試,即使可以進行測試但是測試結果也會有不夠精確的問題。udp數據包雖然可以不被過濾,但測試結果通常也會存在較大誤差。隨著網絡速率的提升,網絡延時測試的精度要求越來越高,但是使用上述方法都不能精準的測試出網絡延時。
因此,如何提高測試精度,準確測試網絡延時是領域技術人員需要解決的問題。
技術實現要素:
本發明的目的在于提供一種測試網絡延時的方法,以提高測試精度,準確測試網絡延時。
為實現上述目的,本發明實施例提供了如下技術方案:
一種測試網絡延時的方法,包括:
將數據包a從源端發送至目的端,并確定所述源端發送所述數據包a的第一時間信息,以及所述目的端接收所述數據包a的第二時間信息;
將所述目的端構造的數據包b發送至所述源端,并確定所述目的端發送所述數據包b的第三時間信息,以及所述源端接收所述數據包b的第四時間信息;
根據所述第一時間信息、所述第二時間信息、所述第三時間信息以及所述第四時間信息確定所述數據包a和所述數據包b的傳輸總時間,將所述傳輸總時間作為網絡延時時間。
優選地,所述將數據包a從源端發送至目的端,并確定所述源端發送所述數據包a的第一時間信息,以及所述目的端接收所述數據包a的第二時間信息,包括:
將數據包a通過udp協議從源端發送至目的端,并確定所述源端發送所述數據包a的第一時間信息,以及所述目的端接收所述數據包a的第二時間信息。
優選地,所述將所述目的端構造的數據包b發送至所述源端,并確定所述目的端發送所述數據包b的第三時間信息,以及所述源端接收所述數據包b的第四時間信息,包括:
將所述目的端構造的數據包b通過udp協議發送至所述源端,并確定所述目的端發送所述數據包b的第三時間信息,以及所述源端接收所述數據包b的第四時間信息。
優選地,所述根據所述第一時間信息、所述第二時間信息、所述第三時間信息以及所述第四時間信息確定所述數據包a和所述數據包b的傳輸總時間,將所述傳輸總時間作為網絡延時時間,包括:
所述目的端將所述第二時間信息和第三時間信息發送至所述源端;
所述源端利用以下規則確定所述數據包a和所述數據包b的傳輸總時間:
rtt=(t2-t1)+(t4-t3);
其中,rtt為所述網絡延時時間,t1為所述第一時間信息,t2為所述第二時間信息,t3為所述第三時間信息,t4為所述第四時間信息;
將所述傳輸總時間作為網絡延時時間。
優選地,所述目的端將所述第二時間信息和第三時間信息發送至源端,包括:
所述目的端將所述第二時間信息和第三時間信息通過tcp協議發送至所述源端。
優選地,所述根據所述第一時間信息、所述第二時間信息、所述第三時間信息以及所述第四時間信息確定所述數據包a和所述數據包b的傳輸總時間,將所述傳輸總時間作為網絡延時時間,包括:
所述目的端計算所述第二時間信息與第三時間信息的差值,將所述差值發送至所述源端;
所述源端利用以下規則確定所述數據包a和所述數據包b的傳輸總時間:
rtt=(t4-t1)-(t3-t2);
其中,rtt為所述網絡延時時間,t1為所述第一時間信息,t2為所述第二時間信息,t3為所述第三時間信息,t4為所述第四時間信息,(t3-t2)為所述差值。
優選地,所述目的端計算所述第二時間信息與第三時間信息的差值,將所述差值發送至源端,包括:
目的端計算所述第二時間信息與第三時間信息的差值,將所述差值通過tcp協議發送至源端。
優選地,所述第一時間信息、第四時間信息在源端物理層記錄,所述第二時間信息、第三時間信息在目的端物理層記錄。
一種測試網絡延時的裝置,包括:
第一發送模塊,用于將數據包a從源端發送至目的端,并確定所述源端發送所述數據包a的第一時間信息,以及所述目的端接收所述數據包a的第二時間信息;
第二發送模塊,用于將所述目的端構造的數據包b發送至所述源端,并確定所述目的端發送所述數據包b的第三時間信息,以及所述源端接收所述數據包b的第四時間信息;
計算模塊,用于根據所述第一時間信息、所述第二時間信息、所述第三時間信息以及所述第四時間信息確定所述數據包a和所述數據包b的傳輸總時間,將所述傳輸總時間作為網絡延時時間。
優選地,所述第一時間信息、第四時間信息在源端物理層記錄,所述第二時間信息、第三時間信息在目的端物理層記錄。
本發明提供的一種測試網絡延時的方法,將數據包a從源端發送至目的端,并確定所述源端發送所述數據包a的第一時間信息,以及所述目的端接收所述數據包a的第二時間信息;將所述目的端構造的數據包b發送至所述源端,并確定所述目的端發送所述數據包b的第三時間信息,以及所述源端接收所述數據包b的第四時間信息;根據所述第一時間信息、所述第二時間信息、所述第三時間信息以及所述第四時間信息確定所述數據包a和所述數據包b的傳輸總時間,將所述傳輸總時間作為網絡延時時間。
可見,在本方案中,通過對第一時間信息、第二時間信息、第三時間信息、第四時間信息的計算,可以只計算所述數據包a和所述數據包b的傳輸總時間,省略目的端設備對數據包的處理時間,也就是忽略了目的端硬件的影響,因此可以大大的提高網絡延時測試的精度。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例公開的一種測試網絡延時的方法流程圖;
圖2為本發明實施例公開的一種具體的測試網絡延時的方法流程圖;
圖3為本發明實施例公開的一種測試網絡延時的裝置結構示意圖;
圖4為本發明實施例公開的一具體的第一發送模塊結構示意圖;
圖5為本發明實施例公開的一具體的第二發送模塊示結構意圖;
圖6為本發明實施例公開的一具體的計算模塊結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例公開了本發明提供的一種測試網絡延時的方法,以實現提高測試精度,準確測試網絡延時。
參見圖1,本發明實施例提供的一種測試網絡延時的方法,包括:
s101,將數據包a從源端發送至目的端,并確定所述源端發送所述數據包a的第一時間信息,以及所述目的端接收所述數據包a的第二時間信息。
具體地,源端構造數據包a作為測試數據包,并將數據包a通過一種網絡協議發送至目的端,同時,源端記錄發送數據包a的第一時間信息,即記錄數據包a離開源端的時間戳。當數據包a到達目的端時,目的端記錄接收數據包a的第二時間信息,即記錄數據包a到達目的端的時間戳。
s102,將所述目的端構造的數據包b發送至所述源端,并確定所述目的端發送所述數據包b的第三時間信息,以及所述源端接收所述數據包b的第四時間信息。
可以理解的是,目的端在收到數據包a后構造新的數據包b,并將數據包b發送到源端。目的端記錄發送數據包b的第三時間信息,即記錄數據包b離開目的端的時間戳。當源端收到數據包b時,記錄源端接收數據包b的第四時間信息,即記錄數據包b到達源端的時間戳。
s103,根據所述第一時間信息、所述第二時間信息、所述第三時間信息以及所述第四時間信息確定所述數據包a和所述數據包b的傳輸總時間,將所述傳輸總時間作為網絡延時時間。
具體地,目的端將第二時間信息和第三時間信息,或第二時間信息與第三時間信息的差值發送至源端,源端利用四個時間信息計算出數據包a與數據包b的傳輸總時間,也就是說,此傳輸總時間中不包括目的端對數據包的處理時間。
因此,通過對第一時間信息、第二時間信息、第三時間信息、第四時間信息的計算,可以只計算所述數據包a和所述數據包b的傳輸總時間,省略目的端設備對數據包的處理時間,也就是避免了目的端硬件的影響,因此可以大大的提高網絡延時測試的精度。
本發明實施例公開了一種具體地網絡延時方法,區別于上一實施例,本實施例對上一實施例中的確定所述數據包a和所述數據包b的傳輸總時間做了具體的限定,其他步驟內容與上一實施例大致相同,詳細內容可以參見上一實施例相對應的部分,此處不再贅述。具體的:
源端利用以下規則確定所述數據包a和所述數據包b的傳輸總時間:
rtt=(t2-t1)+(t4-t3);
其中,rtt為所述網絡延時時間,t1為所述第一時間信息,t2為所述第二時間信息,t3為所述第三時間信息,t4為所述第四時間信息;
將所述傳輸總時間作為網絡延時時間。
可以理解的,t2-t1為數據包a的傳輸時間,t4-t3為數據包b的傳輸時間。因此,傳輸總時間就是數據包a的傳輸時間與數據包b的傳輸時間之和。
需要說明的是,在rtt=(t2-t1)+(t4-t3)=(t4-t1)-(t3-t2)的公式中,t4與t1為源端記錄的時間信息,t3、t2為目的端記錄的時間信息,因此在目的端向源端發送時間信息之前,可以將t3與t2做差,將差值一個數據發送至源端,使用rtt=(t4-t1)-(t3-t2)計算延時時間。因此,源端向目的端只傳輸一個數據時,可以降低傳輸后數據不準確性的可能。
通過本實施例介紹的方法確定所述數據包a和所述數據包b的傳輸總時間即網絡延時時間,就是數據包a的傳輸時間與數據包b的傳輸時間之和。可以將目的端對數據包處理的時間省略,因此避免了目的端硬件環境的影響,增加了網絡延時測試的精度。
本發明實施例公開了一種具體地網絡延時方法,相對于上一實施例,本實施例對技術方案做了進一步的說明和優化。參見圖2,本發明實施例提供的一種測試網絡延時的方法,包括:
s201,將數據包a通過udp協議從源端發送至目的端,并確定所述源端發送所述數據包a的第一時間信息,以及所述目的端接收所述數據包a的第二時間信息。
需要說明的是,用于測試的數據包a是通過udp協議構造的數據包,并通過udp協議傳輸到目的端。因為udp協議是一個無狀態的傳輸協議,所以它在傳遞數據時非常快,因此用于傳輸測試包也就更快,測試延時更準確。可以傳輸測試包的傳輸協議還有icmp,但是目的端或者傳輸路徑中的一些節點會過濾icmp數據包,因此使用udp協議也可以避免此問題。
s202,將所述目的端構造的數據包b通過udp協議發送至所述源端,并確定所述目的端發送所述數據包b的第三時間信息,以及所述源端接收所述數據包b的第四時間信息。
可以理解的是,當目的端向源端傳輸用于測試的數據包b也可以選擇udp協議進行傳輸,滿足了數據包不被過濾以及傳輸速度快的條件。
s203,所述目的端將所述第二時間信息和第三時間信息通過tcp協議發送至所述源端。
具體地,所述目的端將第二時間信息和第三時間信息作為數據包,發送至源端。對于時間信息的傳輸要求是可靠的傳輸,保證到達源端的時間信息是準確的。但是udp協議是面向無連接的協議,如果網絡質量不好,就很容易丟包,數據容易丟失,因此不能保證傳輸到源端的時間信息是準確的。而傳輸協議中的tcp協議,具有面向可靠連接的機制,雖然傳輸速率較低但傳輸數據可靠。因此當傳輸時間信息時,不要求傳輸速度但要求傳輸的準確性,選擇tcp協議作為傳輸協議,將包括第二時間信息和第三時間信息的數據包傳輸到源端,保證了源端接收到的時間信息為準確的。
s204,根據所述第一時間信息、所述第二時間信息、所述第三時間信息以及所述第四時間信息確定所述數據包a和所述數據包b的傳輸總時間,將所述傳輸總時間作為網絡延時時間。
具體的,源端利用以下規則確定所述數據包a和所述數據包b的傳輸總時間:
rtt=(t2-t1)+(t4-t3);
其中,rtt為所述網絡延時時間,t1為所述第一時間信息,t2為所述第二時間信息,t3為所述第三時間信息,t4為所述第四時間信息;
將所述傳輸總時間作為網絡延時時間。
可以理解的,t2-t1為數據包a的傳輸時間,t4-t3為數據包b的傳輸時間。因此,傳輸總時間就是數據包a的傳輸時間與數據包b的傳輸時間之和。
需要說明的是,在rtt=(t2-t1)+(t4-t3)=(t4-t1)-(t3-t2)的公式中,t4與t1為源端記錄的時間信息,t3、t2為目的端記錄的時間信息,因此在目的端向源端發送時間信息之前,可以將t3與t2做差,將差值一個數據發送至源端,使用rtt=(t4-t1)-(t3-t2)計算延時時間。
因此,通過采用udp協議發送測試包可以提高測試包傳輸的速率并且避免了被目的端以及其他節點過濾掉,同時采用tcp協議傳輸時間信息的數據包,可以保證時間信息的準確,再通過對第一時間信息、第二時間信息、第三時間信息、第四時間信息的計算,可以只計算所述數據包a和所述數據包b的傳輸總時間,省略目的端設備對數據包的處理時間,也就是忽略了目的端硬件的影響,因此可以大大的提高網絡延時測試的精度。
本發明實施例公開了一種具體地網絡延時方法,區別于上一實施例,本實施例對上一實施例中的時間信息記錄位置做了具體的限定,其他步驟內容與上一實施例大致相同詳細內容可以參見上一實施例相對應的部分,此處不再贅述。具體的:
將第一時間信息、第四時間信息記錄在源端的物理層記錄,第二時間信息、第三時間信息在目的端的物理層記錄。
具體的,當數據包a離開源端網卡時,記錄第一時間信息,當數據包到達目的端網卡時,記錄第二時間信息;當數據包b離開目的端網卡時,記錄第三時間信息,當數據包b到達源端網卡時,記錄第四時間信息。
本發明實施例中,由于時間信息的數據包與測試包是分開發送到源端的,可以不用在數據包構造之前確定時間信息,因此可以將時間信息移到物理層記錄,更準確的記錄數據包離開的時間。也就是說,如果時間信息是放到測試包中進行傳輸的,比如將數據包b離開目的端的第三時間信息放到數據包b中傳輸到源端,此時第三時間信息就是數據包b構造之前的時間,而不是真正的離開目的端的時間,這個時間距離真正發送數據包的時間還遠,會導致測量誤差,但是在物理層網卡位置記錄第三時間信息,就是數據包b離開目的端那一時刻的時間信息。
因此,將時間信息與測試數據包分開發送之后,可以將時間信息記錄到網卡,也就是說將時間信息記錄到離開目的端的位置,可以減少時間信息記錄的誤差。
下面對本發明實施例提供的一種網絡延時測試裝置進行介紹,下文描述的一種網絡延時測試裝置與上文描述的一種網絡延時測試方法可以相互參照。
參見圖3,本發明實施例提供的一種網絡延時測試裝置,包括第一發送模塊301,第二發送模塊302,計算模塊303。
第一發送模塊301,用于將數據包a從源端發送至目的端,并確定所述源端發送所述數據包a的第一時間信息,以及所述目的端接收所述數據包a的第二時間信息。
第二發送模塊302,用于將所述目的端構造的數據包b發送至所述源端,并確定所述目的端發送所述數據包b的第三時間信息,以及所述源端接收所述數據包b的第四時間信息。
計算模塊303,用于根據所述第一時間信息、所述第二時間信息、所述第三時間信息以及所述第四時間信息確定所述數據包a和所述數據包b的傳輸總時間,將所述傳輸總時間作為網絡延時時間。
因此,計算模塊303通過對第一發送模塊301確定的第一時間信息、第二時間信息,以及第二發送模塊302確定的第三時間信息、第四時間信息的計算,可以只計算所述數據包a和所述數據包b的傳輸總時間,省略目的端設備對數據包的處理時間,也就是避免了目的端硬件的影響,因此可以大大的提高網絡延時測試的精度。
參見圖4,上述實施例中的第一發送模塊301具體包括:
發送單元301a,用于源端通過udp協議構造數據包a,并通過udp協議發送至目的端。
確定單元301b,用于在源端網卡確定數據包a離開源端的第一時間信息。
接收單元301c,用于在目的端網卡確定數據包a到達目的端的第二時間信息。
參見圖5,上述實施例中的第二發送模塊302具體包括:
第一發送單元302a,用于在目的端通過udp協議構造數據包b,并通過udp協議發送到源端。
第一確定單元302b,用于在目的端確定數據包b離開目的端的第三時間。
第二確定單元302c,用于在目的端確定數據包b離開目的端第三時間信息與數據包b到達目的端的第二時間信息的差值。
接收單元302d:用于在源端網卡位置記錄數據包b到達源端的第四時間信息。
第二發送單元302e,用于在目的端通過tcp協議發送第三時間信息和第二時間信息,或第二確定單元302c確定的差值。
參見圖6,上述實施例中的計算模塊303具體包括:
第一計算單元303a,用于在源端接收到第二時間信息和第三時間信息時,通過規則rtt=(t2-t1)+(t4-t3)計算數據包a和所述數據包b的傳輸總時間。
第二計算單元303b,用于在源端接收到數據包b離開目的端第三時間信息與數據包b到達目的端的第二時間信息的差值時,通過規則rtt=(t4-t1)-(t3-t2)計算數據包a和所述數據包b的傳輸總時間。
根據上述一種具體地網絡延時測試裝置,可以具體地應用到以下具體實施例中,具體的:
s301,第一發送模塊301的發送單元301a按照udp協議構造測試數據包a,然后將數據包a發送給目的端。
s302,第一發送模塊301的確定單元301b在源端網卡確定數據包a離開源端網卡的第一時間信息,例如時間戳t1。并將時間戳t1存放到源端物理層的延時計算模塊303中。
s303,第一發送模塊301的接收單元301c在目的端網卡確定數據包a到達目的端的第二時間信息,例如時間戳t2。并將時間戳t2存放到目的端物理層的通信模塊中。
s304,目的端對數據包a進行響應,第二發送模塊302的第一發送單元302a在目的端通過udp協議構造數據包b,并通過udp協議發送到源端。
s305,第二發送模塊302的第一確定單元302b在目的端確定數據包b離開目的端的第三時間,例如時間戳t3,并將時間戳t3存放到目的端物理層的通信模塊中。
s306,第二發送模塊302的接收單元302d在源端網卡位置記錄數據包b到達源端的第四時間信息,例如時間戳t4,并將時間戳t4傳遞到源端物理層的延時計算模塊303。
s307,第二發送模塊302的第二發送單元302e在目的端通過tcp協議發送第三時間信息即時間戳t3和第二時間信息即時間戳t2。
s308,計算模塊303的第一計算單元303a在源端接收到第二時間信息和第三時間信息時,通過規則rtt=(t2-t1)+(t4-t3)計算數據包a和所述數據包b的傳輸總時間。
因此,第一發送模塊301的第一發送單元301a通過采用udp協議發送測試包可以提高測試包傳輸的速率并且避免了被目的端以及其他節點過濾掉,同時第二發送模塊302的第二發送單元302e采用tcp協議傳輸時間信息的數據包,可以保證時間信息的準確,計算模塊303再通過對第一時間信息、第二時間信息、第三時間信息、第四時間信息的計算,可以只計算所述數據包a和所述數據包b的傳輸總時間,省略目的端設備對數據包的處理時間,也就是忽略了目的端硬件的影響,因此可以大大的提高網絡延時測試的精度。
本發明實施例公開了一種具體地網絡延時方法,區別于上一實施例,本實施例對上一實施例中第二發送模塊302的第一確定單元302b改為第二確定單元302c,其他步驟內容與上一實施例大致相同,詳細內容可以參見上一實施例相對應的部分,此處不再贅述。具體的:
第二發送模塊302的第二確定單元302c在目的端確定數據包b離開目的端第三時間信息與數據包b到達目的端的第二時間信息的差值。相應地,第二發送模塊302的第二發送單元302e在目的端通過tcp協議發送第二確定單元302c確定的差值,計算模塊303第二計算單元303b在源端接收到數據包b離開目的端第三時間信息與數據包b到達目的端的第二時間信息的差值時,通過規則rtt=(t4-t1)-(t3-t2)計算數據包a和所述數據包b的傳輸總時間。
因此,發送第二確定單元302c確定的差值,就是只向源端發送一個數據,更有效地提高了時間信息的準確發送,以便提高傳輸總時間的準確度即網絡延時測試的精度。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。