?

TCP往返時延被動測量方法綜述

2010-09-19 05:36
大眾商務·下半月 2010年7期

楊 樂

【摘 要】時延測量對于網絡的管理、協議開發與技術發展具有重要意義。本文對近年來TCP往返時延被動測量方法進行歸納、分析和比較,著重討論了各種方法的優缺點,以及適用場合。最后簡單提出了下一步研究應該注意的問題和研究方向。

【關鍵詞】往返時延;被動測量;網絡測量

中圖分類號:TP18文獻標識碼:A 文章編號:1009-8283(2010)07-0312-01

1 簡介

時延、帶寬、丟包率是Internet度量指標中最基本的三大指標。時延測量對于網絡的運營管理、協議開發與技術發展具有重要意義。當前網絡通信中的流量仍然以TCP為主,TCP業務性能測量研究的意義重大,而往返時延(Round-trip time,RTT)是研究TCP連接行為的重要測度,它是指從TCP發端發出報文到接收到通信對端立即返回的確認報文所經歷的時長。對RTT進行測量的意義在于:(1)估計連接的擁塞窗口大小、超時重傳時間以及路徑可用帶寬;(2)幫助尋找限制流速和導致擁塞的因素;(3)幫助提高隊列管理性能以及緩沖預留;(4)在P2P網絡中改善節點分布。

目前RTT測量主要在端點使用主動式測量方法進行,容易對網絡流量產生干擾,并且不便于部署在監測設備中。RTT被動測量是指在網絡鏈路上設置測量點,通過分析流量數據的方式來估計通過測量點的TCP連接的RTT。

RTT被動測量存在的困難在于:(1)通信雙方雙向傳輸路徑可能不對稱;(2)丟包和亂序會給RTT測量帶來不利影響;(3)端系統的響應延遲;(4)存在多種不同的TCP擁塞控制機制。

2 TCP往返時延的被動測量方法

2.1 SYN-ACK方法

SYN-ACK方法,通過監測TCP三次握手建立連接的過程來估計RTT。用監測到的最后一個SYN和第一個ACK之間的時間間隔來計算RTT。使用此方法的前提:SYNACK和ACK的傳輸沒有被延遲;SYNACK在傳輸中沒有丟包,ACK在到達監測點前沒有丟包;SYN和ACK在傳輸的過程中時間抖動不大。SYN-ACK方法的不足之處在于:丟包可能導致RTT估計過長,超過3秒的RTT被認為是不準確的。有些操作系統會使用DelayACK方式工作,導致RTT估計錯誤。為了減少錯誤,SYN-ACK方法使用HTTP請求和應答之間的時延作為RTT估計的上界。

2.2 SLOW-START方法

SLOW-START方法基本思想是TCP連接在慢啟動階段隨著擁塞窗口(cwnd)的增長,可以在傳輸中觀測到明顯的發送輪次。觀測點可以通過測量發送各發送輪次中分組的到達時間間隔來估計RTT。此方法要求在單向流上至少監測到連續的5個段,其中前面的四個段是最大報文段(MSS),因此不能用于TCP流只傳輸少量數據的情況。

2.3 PRE方法

在TCP擁塞控制機制的作用下,TCP發送方會連續發送多個報文直到到達發送窗口限制,之后必須收到接收方的確認報文后才能繼續發送。TCP發送行為呈現出多個輪次,在高速鏈路中報文發送間隙遠小于輪次間隙,可以將監測到的較大的報文到達間隙認定為輪次間隙。將輪次間隙加上本輪前面的報文到達間隔即為RTT。此方法的主要問題在于當觀測的TCP流傳輸中出現停頓時,監測點難以將其與輪次間隔時間區分開來。

2.4 TIMESTAMP方法

TIMESTAMP方法利用TCP報文中的時間戳標記來尋找各報文段之間的觸發關系,使用測量點收到相關報文的時刻測量RTT。此方法存在的問題主要有:(1)時間戳精度依賴于具體的端系統實現。發送方在發送一系列突發的段時,這些段可能被打上相同的時間戳。接收方可能會在不同時刻應答這些段,但是這些應答的時間戳都是一樣的。因此可能導致監測點產生誤判,從而影響RTT測量的準確性。(2)丟包導致后續應答的時間戳均為之前收到的正確段的時間戳,因此高估RTT。(3)不對稱路由會導致發送和接收數據通過不同的路徑,導致測量失敗。 2.5 SELF-CLOCKING方法

SELF-CLOCKING方法基本思想是使用自相關(autocorrelation)方法進行RTT估計,使用一個周期內的報文數量計算離散自相關函數,其中的最大值就是估計出來的RTT。存在的問題主要在于:(1)根據奈奎斯特間隔(Nyquist period)的限制,只能測量出不小于時間戳精度2倍的RTT。(2)每個RTT都出現的突發間隙模式可能會比真正的RTT有更高的相關強度。(3)測量區間長度設置不合理的話可能會導致無法正確地計算自相關強度。(4)延遲變化會導致出現多個相關峰值(5)背景流量或其他因素造成的擁塞可能會擾亂流量的自相似性。這導致在很小的偏移上出現很強的相關。

2.6 RUNNING方法

RUNNING方法基本思想是維持一個有限狀態機來模仿發送方的擁塞窗口變化狀況,通過判定數據包與ACK包之間的觸發關系來估計RTT。此方法計算通過測量點的數據分組和對應的ACK之間的時間差,然后計算ACK和被觸發的數據包之間的時間差,從而得到RTT。也就是說分別計算兩個方向的半路徑RTT,相加得到全路徑RTT。此方法的主要問題在于當窗口估計錯誤或者發送方沒有足夠數據時,可能會出現錯誤的估計。

2.7 SPECTRAL ANALYSIS方法

SPECTRAL ANALYSIS方法基本思想是:(1)使用前256個分組的到達間隔生成RTT初始估計值。(2)使用滑動窗口估計來設置RTT估計的上界。(3)使用序列號/應答號之間的關系來尋找DATA-ACK-DATA關聯,設置RTT估計的下界。(4)使用自相關函數和Lomb-Scargle周期圖來估計RTT。

3 總結

在上述方法中,SYN-ACK方法只能測量到TCP連接建立時的RTT,不能提供持續的數據;SLOW-START方法只適用于成塊數據傳輸,不能對交互式數據流進行測量;PRE方法不能很好地測量交互式數據流;TIMESTAMP方法依賴TCP的時間戳選項,不具備普遍性;SELF-CLOCKING方法同樣依賴TCP的時間戳選項;RUNNING方法分析了不同TCP實現版本的差異,采用擁塞窗口跟蹤方法來判定往來包的觸發關系,但是在丟包、亂序的情況下容易對cwnd估計錯誤;SPECTRAL ANALYSIS方法不考慮TCP各實現版本的區別,不用觀察連接慢啟動階段,但是計算代價較大。

總的來說,RTT被動測量還需要解決的問題主要有:(1)消除時延抖動的影響;(2)不同端系統實現的延遲應答機制給RTT測量帶來了不確定因素。(3)交互式會話的RTT較難測量。

時延測量對于網絡的運營管理、協議開發與技術發展具有重要意義。在本文中,歸納和總結了TCP往返時延被動測量的相關研究,著重討論了各種方法的優缺點,以及適用場合。并對一些可能的研究發展方向進行了簡要的概述,期望借此能推動國內對TCP往返時延的關注和研究。

げ慰嘉南:

[1]Hao Jiang, Constantinos Dovrolis. Passive estimation of TCP round-trip times. SIGCOMM, 2002.

[2]張軼博,雷振明. 一種被動式RTT測量算法. 北京郵電大學學報, 2004,27(5).

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合