楊 樂
【摘 要】時(shí)延測量對于網(wǎng)絡(luò)的管理、協(xié)議開發(fā)與技術(shù)發(fā)展具有重要意義。本文對近年來TCP往返時(shí)延被動測量方法進(jìn)行歸納、分析和比較,著重討論了各種方法的優(yōu)缺點(diǎn),以及適用場合。最后簡單提出了下一步研究應(yīng)該注意的問題和研究方向。
【關(guān)鍵詞】往返時(shí)延;被動測量;網(wǎng)絡(luò)測量
中圖分類號:TP18文獻(xiàn)標(biāo)識碼:A 文章編號:1009-8283(2010)07-0312-01
1 簡介
時(shí)延、帶寬、丟包率是Internet度量指標(biāo)中最基本的三大指標(biāo)。時(shí)延測量對于網(wǎng)絡(luò)的運(yùn)營管理、協(xié)議開發(fā)與技術(shù)發(fā)展具有重要意義。當(dāng)前網(wǎng)絡(luò)通信中的流量仍然以TCP為主,TCP業(yè)務(wù)性能測量研究的意義重大,而往返時(shí)延(Round-trip time,RTT)是研究TCP連接行為的重要測度,它是指從TCP發(fā)端發(fā)出報(bào)文到接收到通信對端立即返回的確認(rèn)報(bào)文所經(jīng)歷的時(shí)長。對RTT進(jìn)行測量的意義在于:(1)估計(jì)連接的擁塞窗口大小、超時(shí)重傳時(shí)間以及路徑可用帶寬;(2)幫助尋找限制流速和導(dǎo)致?lián)砣囊蛩?(3)幫助提高隊(duì)列管理性能以及緩沖預(yù)留;(4)在P2P網(wǎng)絡(luò)中改善節(jié)點(diǎn)分布。
目前RTT測量主要在端點(diǎn)使用主動式測量方法進(jìn)行,容易對網(wǎng)絡(luò)流量產(chǎn)生干擾,并且不便于部署在監(jiān)測設(shè)備中。RTT被動測量是指在網(wǎng)絡(luò)鏈路上設(shè)置測量點(diǎn),通過分析流量數(shù)據(jù)的方式來估計(jì)通過測量點(diǎn)的TCP連接的RTT。
RTT被動測量存在的困難在于:(1)通信雙方雙向傳輸路徑可能不對稱;(2)丟包和亂序會給RTT測量帶來不利影響;(3)端系統(tǒng)的響應(yīng)延遲;(4)存在多種不同的TCP擁塞控制機(jī)制。
2 TCP往返時(shí)延的被動測量方法
2.1 SYN-ACK方法
SYN-ACK方法,通過監(jiān)測TCP三次握手建立連接的過程來估計(jì)RTT。用監(jiān)測到的最后一個(gè)SYN和第一個(gè)ACK之間的時(shí)間間隔來計(jì)算RTT。使用此方法的前提:SYNACK和ACK的傳輸沒有被延遲;SYNACK在傳輸中沒有丟包,ACK在到達(dá)監(jiān)測點(diǎn)前沒有丟包;SYN和ACK在傳輸?shù)倪^程中時(shí)間抖動不大。SYN-ACK方法的不足之處在于:丟包可能導(dǎo)致RTT估計(jì)過長,超過3秒的RTT被認(rèn)為是不準(zhǔn)確的。有些操作系統(tǒng)會使用DelayACK方式工作,導(dǎo)致RTT估計(jì)錯(cuò)誤。為了減少錯(cuò)誤,SYN-ACK方法使用HTTP請求和應(yīng)答之間的時(shí)延作為RTT估計(jì)的上界。
2.2 SLOW-START方法
SLOW-START方法基本思想是TCP連接在慢啟動階段隨著擁塞窗口(cwnd)的增長,可以在傳輸中觀測到明顯的發(fā)送輪次。觀測點(diǎn)可以通過測量發(fā)送各發(fā)送輪次中分組的到達(dá)時(shí)間間隔來估計(jì)RTT。此方法要求在單向流上至少監(jiān)測到連續(xù)的5個(gè)段,其中前面的四個(gè)段是最大報(bào)文段(MSS),因此不能用于TCP流只傳輸少量數(shù)據(jù)的情況。
2.3 PRE方法
在TCP擁塞控制機(jī)制的作用下,TCP發(fā)送方會連續(xù)發(fā)送多個(gè)報(bào)文直到到達(dá)發(fā)送窗口限制,之后必須收到接收方的確認(rèn)報(bào)文后才能繼續(xù)發(fā)送。TCP發(fā)送行為呈現(xiàn)出多個(gè)輪次,在高速鏈路中報(bào)文發(fā)送間隙遠(yuǎn)小于輪次間隙,可以將監(jiān)測到的較大的報(bào)文到達(dá)間隙認(rèn)定為輪次間隙。將輪次間隙加上本輪前面的報(bào)文到達(dá)間隔即為RTT。此方法的主要問題在于當(dāng)觀測的TCP流傳輸中出現(xiàn)停頓時(shí),監(jiān)測點(diǎn)難以將其與輪次間隔時(shí)間區(qū)分開來。
2.4 TIMESTAMP方法
TIMESTAMP方法利用TCP報(bào)文中的時(shí)間戳標(biāo)記來尋找各報(bào)文段之間的觸發(fā)關(guān)系,使用測量點(diǎn)收到相關(guān)報(bào)文的時(shí)刻測量RTT。此方法存在的問題主要有:(1)時(shí)間戳精度依賴于具體的端系統(tǒng)實(shí)現(xiàn)。發(fā)送方在發(fā)送一系列突發(fā)的段時(shí),這些段可能被打上相同的時(shí)間戳。接收方可能會在不同時(shí)刻應(yīng)答這些段,但是這些應(yīng)答的時(shí)間戳都是一樣的。因此可能導(dǎo)致監(jiān)測點(diǎn)產(chǎn)生誤判,從而影響RTT測量的準(zhǔn)確性。(2)丟包導(dǎo)致后續(xù)應(yīng)答的時(shí)間戳均為之前收到的正確段的時(shí)間戳,因此高估RTT。(3)不對稱路由會導(dǎo)致發(fā)送和接收數(shù)據(jù)通過不同的路徑,導(dǎo)致測量失敗。 2.5 SELF-CLOCKING方法
SELF-CLOCKING方法基本思想是使用自相關(guān)(autocorrelation)方法進(jìn)行RTT估計(jì),使用一個(gè)周期內(nèi)的報(bào)文數(shù)量計(jì)算離散自相關(guān)函數(shù),其中的最大值就是估計(jì)出來的RTT。存在的問題主要在于:(1)根據(jù)奈奎斯特間隔(Nyquist period)的限制,只能測量出不小于時(shí)間戳精度2倍的RTT。(2)每個(gè)RTT都出現(xiàn)的突發(fā)間隙模式可能會比真正的RTT有更高的相關(guān)強(qiáng)度。(3)測量區(qū)間長度設(shè)置不合理的話可能會導(dǎo)致無法正確地計(jì)算自相關(guān)強(qiáng)度。(4)延遲變化會導(dǎo)致出現(xiàn)多個(gè)相關(guān)峰值(5)背景流量或其他因素造成的擁塞可能會擾亂流量的自相似性。這導(dǎo)致在很小的偏移上出現(xiàn)很強(qiáng)的相關(guān)。
2.6 RUNNING方法
RUNNING方法基本思想是維持一個(gè)有限狀態(tài)機(jī)來模仿發(fā)送方的擁塞窗口變化狀況,通過判定數(shù)據(jù)包與ACK包之間的觸發(fā)關(guān)系來估計(jì)RTT。此方法計(jì)算通過測量點(diǎn)的數(shù)據(jù)分組和對應(yīng)的ACK之間的時(shí)間差,然后計(jì)算ACK和被觸發(fā)的數(shù)據(jù)包之間的時(shí)間差,從而得到RTT。也就是說分別計(jì)算兩個(gè)方向的半路徑RTT,相加得到全路徑RTT。此方法的主要問題在于當(dāng)窗口估計(jì)錯(cuò)誤或者發(fā)送方?jīng)]有足夠數(shù)據(jù)時(shí),可能會出現(xiàn)錯(cuò)誤的估計(jì)。
2.7 SPECTRAL ANALYSIS方法
SPECTRAL ANALYSIS方法基本思想是:(1)使用前256個(gè)分組的到達(dá)間隔生成RTT初始估計(jì)值。(2)使用滑動窗口估計(jì)來設(shè)置RTT估計(jì)的上界。(3)使用序列號/應(yīng)答號之間的關(guān)系來尋找DATA-ACK-DATA關(guān)聯(lián),設(shè)置RTT估計(jì)的下界。(4)使用自相關(guān)函數(shù)和Lomb-Scargle周期圖來估計(jì)RTT。
3 總結(jié)
在上述方法中,SYN-ACK方法只能測量到TCP連接建立時(shí)的RTT,不能提供持續(xù)的數(shù)據(jù);SLOW-START方法只適用于成塊數(shù)據(jù)傳輸,不能對交互式數(shù)據(jù)流進(jìn)行測量;PRE方法不能很好地測量交互式數(shù)據(jù)流;TIMESTAMP方法依賴TCP的時(shí)間戳選項(xiàng),不具備普遍性;SELF-CLOCKING方法同樣依賴TCP的時(shí)間戳選項(xiàng);RUNNING方法分析了不同TCP實(shí)現(xiàn)版本的差異,采用擁塞窗口跟蹤方法來判定往來包的觸發(fā)關(guān)系,但是在丟包、亂序的情況下容易對cwnd估計(jì)錯(cuò)誤;SPECTRAL ANALYSIS方法不考慮TCP各實(shí)現(xiàn)版本的區(qū)別,不用觀察連接慢啟動階段,但是計(jì)算代價(jià)較大。
總的來說,RTT被動測量還需要解決的問題主要有:(1)消除時(shí)延抖動的影響;(2)不同端系統(tǒng)實(shí)現(xiàn)的延遲應(yīng)答機(jī)制給RTT測量帶來了不確定因素。(3)交互式會話的RTT較難測量。
時(shí)延測量對于網(wǎng)絡(luò)的運(yùn)營管理、協(xié)議開發(fā)與技術(shù)發(fā)展具有重要意義。在本文中,歸納和總結(jié)了TCP往返時(shí)延被動測量的相關(guān)研究,著重討論了各種方法的優(yōu)缺點(diǎn),以及適用場合。并對一些可能的研究發(fā)展方向進(jìn)行了簡要的概述,期望借此能推動國內(nèi)對TCP往返時(shí)延的關(guān)注和研究。
げ慰嘉南:
[1]Hao Jiang, Constantinos Dovrolis. Passive estimation of TCP round-trip times. SIGCOMM, 2002.
[2]張軼博,雷振明. 一種被動式RTT測量算法. 北京郵電大學(xué)學(xué)報(bào), 2004,27(5).