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

用于網絡數據路徑質量的非協(xié)作測量方法

文檔序號:7908868閱讀:304來源:國知局

專利名稱::用于網絡數據路徑質量的非協(xié)作測量方法
技術領域
:本發(fā)明涉及通信網絡中網絡路徑質量的測量方法,更具體地說,涉及一種用于從路徑的單個端點測量數據路徑質量的方法和設備。
背景技術
:對于數據中心、因特網服務提供者、網上交易、因特網行為的科學研究以及許多其他目的來說,測量通信網絡(特別是因特網)的端到端路徑質量的能力是至關重要的??赏ㄟ^丟包、包亂序(包的接收順序與其發(fā)送順序不同)、延時以及其他路徑度量來測量路徑質量。測量這些路徑度量的方法被粗略劃分為主動測量和被動測量。主動測量方法包括在設計成僅用于路徑測量目的的網絡路徑的兩個端點之間發(fā)送網絡包。被動測量方法并不發(fā)送任何網絡包,而是分析采集到的網絡包來推測網絡路徑質量。許多主動測量方法需要網絡路徑的兩個端點之間的協(xié)作,并且需要在這兩個端點上安裝特定的程序或者裝置。通過控制這兩個端點,這類方法可以測量許多路徑度量,并控制和校準測量精度。然而,因為網絡路徑一般跨越多個自主網絡,需要控制兩個端點的需求嚴重限制這類方法的使用和應用范圍。另外,對于不同網絡應用和環(huán)境,安裝所需的軟件或裝置也是不容易的。非協(xié)作測量方法不會受到這一限制,其允許單個端點(或測量節(jié)點)進行海量網絡路徑的測量。非協(xié)作測量方法的測量節(jié)點發(fā)送探測包(probepacket)以獲得來自遠端端點(或節(jié)點)的響應包以用于路徑測量。雖然非協(xié)作測量方法已經被研究和發(fā)展多年了,但是其依然受到至少兩個主要問題的限制。第一個主要問題是絕大多數現(xiàn)有的方法并不能提供可靠的測量。首先,他們發(fā)送的探測包(或其發(fā)送速率)常被看作是異常的,從而被路徑上的防火墻、入侵檢測系統(tǒng)和其他安全裝置濾除。因此,將不會有響應包返回到測量節(jié)點。第二,某些方法的探測包可以成功地獲得響應包,但是這些響應包不能包含路徑測量所需的信息。第三,雖然某些方法的探測包可以成功地獲得包含路徑測量所需的信息的響應包,但是這些測量結果不能反映正常數據包所經歷的實際路徑質量(也就是,數據路徑質量)。對于第一類不可靠問題,眾所周知的是,現(xiàn)在路由器和端系統(tǒng)并不總能響應來自ICMPPing以及其他依賴ICMP包的測量工具所發(fā)出的(高速率的)ICMP數據包,因為ICMP包常被應用在各類網絡攻擊中。對于使用TCPSYN包、TCPRST包和向封閉端口(closedport)發(fā)送UDP包的測量方法也受到同樣的制約。例如,S.Mvage在“Ming—種基于TCP的網絡測量工具”(USENIX會議文集,因特網技術和系統(tǒng)1999(Sting:aTCP-basedNetworkMeasurementTool,"Proc.USENIXSymp.InternetTechnologiesandSystems1999))中提出Ming。其通過發(fā)送一系列具有零廣告窗大小的亂序探測TCP數據包來測量正向傳輸路徑(或正向)或反向傳輸路徑(或反向)丟包統(tǒng)計。這些高度異常的數據包很容易被包過濾機制屏蔽掉。作為另一實施例,X.Luo和Rjhang在“用于端到端包亂序測量的新方法”(ACM/USENIXIMC2005會議文集)("NovelApproachestoEnd-to-EndPacketReorderingMeasurement”Proc.ACM/USENIXIMC2005)中提出的指示字(POINTER)通過4發(fā)送具有不可接受的TCP序列(unacceptableTCPsequence)和確認號來測量正向傳輸路徑和反向傳輸路徑包亂序統(tǒng)計。對于第二類不可靠問題,R.Mahajan,N.Spring,D.Wetherall和T.Anderson在“用戶級因特網路徑診斷”(ACMSOSP2003會議文集)(“her-LevelInternetPathDiagnosis,”Proc.ACMSOSP2003)提出了Tulip。Tulip使用UDP包和ICMP包來定位(localize)網絡路徑上的丟包和包亂序事件。其丟包和亂序的測量都是基于位于路徑上的路由器和遠端節(jié)點支持因特網協(xié)議(IP)的標識字段的連續(xù)增量的假設。然而,對于此時的許多端系統(tǒng)和路由器來說,該假設并不成立。第三類不可靠問題涉及使用非數據探測包進行測量的方法。非數據探測包或響應(包)指不被用于傳送網絡應用的數據的網絡包,如ICMP包、TCPSYN包、TCPRST包和純TCP確認包(TCPACK)的包。非數據探測包和響應包并不能準確測量數據包所經歷的網絡路徑質量,因為路由器和端系統(tǒng)對數據包和非數據包進行不同的處理。這兩者之間的差異是相當顯著的。除了基于ICMP和UDP的方法,Sting、P0INTER、和R.Sherwood和N.Spring在“在TCP邊車(sidecar)中巡測因特網”(ACM/USENIXIMC2006會議文集)(〃TouringtheInternetinaTCPSidecar,“Proc.ACM/USENIXIMC2006)中提出的TCP邊車也面臨這一問題,因為它們要獲取TCPACK以用于反向傳輸路徑測量。上述方法均面臨可靠性問題,這是由于它們通過非數據信道(在數據傳輸協(xié)議中的單個或多個控制包)或異常協(xié)議行為來測量數據路徑的質量。它們的測量結果容易被路徑上的中間節(jié)點(intermediarynode)出于善意(如監(jiān)視襲擊)或惡意(如操縱測量結果)篡改?,F(xiàn)有技術的第二個主要問題是,它們提供了一組非常有限的路徑質量度量。由于不同的網絡應用需要經歷具有不同質量的網絡路徑,因此使用盡可能多的度量來測量路徑質量是至關重要的。三種限制導致了有限的質量度量組。首先,許多非協(xié)作方法,如Ping及其變形的方法,可以測量往返路徑的度量,而不能測量單向路徑的度量,例如在正向傳輸路徑中發(fā)生的丟包(也就是,從測量節(jié)點到遠端節(jié)點),和在反向傳輸路徑中發(fā)生的丟包(也就是,從遠端節(jié)點到測量節(jié)點)。因為網絡路徑通常是非對稱的,并且在它們的通信量中,許多應用也是非對稱的,所以正向傳輸路徑的質量和反向傳輸路徑質量在應用性能上的影響是不同的。第二個限制是現(xiàn)有方法一般僅可測量一種或兩種類型的質量度量。例如,Ping可測量往返延時和往返丟包,sicbping(基于TCP邊車框架的協(xié)議)可以測量往返延時,Sting可以測量正向傳輸路徑和反向傳輸路徑的丟包統(tǒng)計,POINTER可以測量正向傳輸路徑和反向傳輸路徑的包亂序統(tǒng)計。雖然Tulip可測量丟包、包亂序和排隊延時,但是其也面臨上述的可靠性問題,如其使用不同的探測包來測量丟包和亂序,但其不能測量所有的丟包場景。雖然可以使用多個工具來獲得更多組質量度量,但是實際上該方法效率很低,難以調整且易于出現(xiàn)測量和配置錯誤。第三個限制是現(xiàn)有方法不能測量不同響應包大小的路徑度量。雖然Ming可以測量單向丟包,但是其僅可測量TCPACK的反向傳輸路徑丟包,該TCPACK是很小、大小固定的包。POINTER也出現(xiàn)同樣的限制,其獲取TCPACK來測量反向傳輸路徑包亂序。眾所周知的是,大包更容易出現(xiàn)丟包,而小包更容易出現(xiàn)包亂序。由于不對響應包大小進行控制,現(xiàn)有方法僅能測量特定包大小的路徑度量。使用同一探測來測量多個度量是一個難題,因為探測包必須在返回的響應包中獲取足夠的信息用于路徑質量測量。使用ICMP不能獲得該目的,這是由于響應包包含的信息非常有限。使用TCPSYN,TCPRST和TCPACK也不能獲得該目的,這是因為單個這類包不能測量多個度量,并且它們的大小也不能被測量節(jié)點所控制。結果表明,現(xiàn)在缺乏可測量多種質量度量并確保足夠的測量精度和可靠性的方法和工具。
發(fā)明內容本發(fā)明提供了從路徑的單個端點(其可稱為測量節(jié)點)同時測量網絡路徑多個質量度量的新方法和新設備。測量節(jié)點發(fā)送由多個探測數據包組成的探測以獲取至少一個來自測量路徑的遠端端點(或節(jié)點)的響應包。為實現(xiàn)本發(fā)明,該探測的探測數據包必須一個接一個地發(fā)送而不能有延時,或者延時不會引起從遠端節(jié)點發(fā)起的包重傳。而且探測數據包的大小可以由測量節(jié)點來設置。探測和響應數據包攜帶正常網絡應用的數據。響應數據包的可能順序是可預先確定的,并且提供足以確定各個探測包的傳送狀態(tài)和每個新響應數據包的傳送狀態(tài)的信息。探測數據包能夠以與它們的發(fā)送次序相同或不同的次序接收。此外,每個探測數據包都可以在正向傳輸路徑上接收或丟失,每個響應數據包都可以在反向傳輸路徑上接收或丟失。如果多個響應數據包被接受,它們的接收次序可以與它們的發(fā)送次序相同或不同。該包傳送狀態(tài)可用于計算正向傳輸路徑和反向傳輸路徑丟包統(tǒng)計、正向傳輸路徑和反向傳輸路徑包亂序統(tǒng)計和每一數據包的往返時間(RTT)。作為本發(fā)明的第一個重要方面,所述探測數據包和正常網絡應用的數據包無法通過包頭值進行區(qū)分。此外,探測數據包可根據正常網絡應用的協(xié)議來設置以獲得響應數據包。根據以上這些,其結果是,探測和響應數據包都可以看作是正常的數據通信。另一好處是探測數據包與同一路徑上傳送的正常應用數據包將被用相同的方法來處理。因此,測量結果更加精確地反應了正常應用數據包所經歷的路徑質量。作為本發(fā)明第二個重要方面,探測包攜帶至少一個正常網絡應用的真實消息,該消息被設計成用于獲取來自遠端節(jié)點的至少一個真實消息以用于數據路徑質量測量。因此,響應包攜帶來自遠端節(jié)點的至少一個消息或者一個應用消息的一部分。出于本發(fā)明的目的,這些應用消息可以是任何在應用層協(xié)議中被允許的消息。換句話說,通過該探測和響應包發(fā)送的消息是根據正常應用層協(xié)議進行交換的。其結果是,應用消息可被看作是正常的網絡應用的通信。作為本發(fā)明的第三重要方面,每個響應數據包被設計成包含一個序列號和一個確認號(用于數據可靠性服務)。對于每個探測包的傳送場景(如,以相同的次序接收該探測包、以及第一探測包丟失),在正向傳輸鏈路上該響應數據包的順序(由它們的次序和確認號確定)是可區(qū)別的。此外,這些順序可以在發(fā)送探測數據包之后通過測量節(jié)點預先確定。因此,響應數據包包含足夠的信息來確定每個探測數據包的傳送狀態(tài)和每個響應數據包的傳送狀態(tài)。另外,一個可靠的數據傳輸協(xié)議有可能提供測量節(jié)點以控制響應數據包的大小的機制。作為本發(fā)明的一個實施例,傳輸控制協(xié)議(TCP)數據包可用于測量數據路徑質量以顯示本發(fā)明在此應用中的實例。當然,其他類型的數據包(如流控制傳輸協(xié)議)也可以使用。根據本發(fā)明的指導思想,本領域技術人員也可采用其他數據包實現(xiàn)本發(fā)明。在使用TCP數據包的實施例中,發(fā)送兩個探測TCP數據包來獲取至多兩個新的響應TCP數據包用于數據路徑質量測量。每個探測TCP數據包攜帶超文本傳輸通訊協(xié)議(HTTP)GET數據,該數據可觸發(fā)由一個或多個響應TCP數據包攜帶的HTTP響應數據。從上述內容可以看出,本發(fā)明避免了現(xiàn)有的非協(xié)作測量方法所面臨的兩個主要問題。由于使用正常數據包互換和正常的網絡應用數據互換來實現(xiàn)測量,本發(fā)明提供了可靠的測量。此外,響應數據包包含足夠的信息來獲得至少三種類型的數據路徑質量度量。丟包和包亂序度量被用于正向傳輸路徑、反向傳輸路徑、和不同大小的探測和響應數據包的組合。在后附的權利要求中特別指出了本發(fā)明的各個具有新穎性的特征,并且該權利要求進一步構成了本發(fā)明公開的一部分。為了更好地理解本發(fā)明,其運行優(yōu)勢,和使用目的,可以參照示出并描述了本發(fā)明的優(yōu)選實施例的附圖和下列說明書。參考下列說明書結合附圖,能夠更容易地理解本發(fā)明的目的、特征和優(yōu)點。附圖中,相同的附圖標記在各幅附圖中用于表示相同的部件或功能相似的部件,其中,帶有字母符號的附圖標記可用于識別各幅附圖中選定組成實施例的附加類型、實施例或變形,其中圖1是示出本發(fā)明的特定實施例的框圖;圖2是示出了在根據本發(fā)明的特定實施例中的連續(xù)探測回合(successiveproberound)的流程圖;圖3是示出了在根據本發(fā)明的典型測量節(jié)點的框圖;圖4是示出了根據本發(fā)明的用于網絡服務的測量節(jié)點執(zhí)行的典型測量進程的時間軸圖表;圖5是示出了在根據本發(fā)明的特定實施例中的兩個連續(xù)探測回合中的服務器響應的時間軸圖表;圖6是示出了在根據本發(fā)明的特定實施例中的接收亂序的探測的服務器響應的時間軸圖表;圖7是示出了在根據本發(fā)明的特定實施例中的僅接收第二探測數據包的服務器響應的時間軸圖表;圖8是示出了在根據本發(fā)明的特定實施例中的僅接收第一探測數據包的服務器響應的時間軸圖表;圖9是示出了在根據本發(fā)明的特定實施例中的不接收探測數據包的服務器響應的時間軸圖表;圖10是示出了在根據本發(fā)明的特定實施例中的接收亂序的探測(包括TCPACK)的服務器響應的時間軸圖表;圖11是示出了在根據本發(fā)明的特定實施例中支持的部分路徑度量組的框圖。具體實施例方式減圖1是示出了根據本發(fā)明的特定實施例的框圖。其包括測量節(jié)點101和遠端節(jié)點103、105和107。該測量節(jié)點101通過網絡113通常包括多個跳轉點(hop)(如路由器)發(fā)送兩個探測TCP數據包Pl109和P2111到遠端節(jié)點103。該遠端節(jié)點103,響應接收109和111,并發(fā)送兩個響應TCP數據包Rl115和R2117到101。該數據包109、111、115和117可在101和103之間建立的同一TCP連接中發(fā)送。該探測TCP數據包在正向傳輸路徑119上發(fā)送,在此所述響應TCP數據包在反向傳輸路徑121上發(fā)送。同時,測量節(jié)點101可在101和105之間建立的另一TCP連接中將兩個探測數據包P1,123和p2,125發(fā)送給遠端節(jié)點105。然而,P1,123和p2,125以逆序被105接收。兩個亂序的數據包從105獲取兩個響應數據包R1’127和R2’129。同時,測量節(jié)點101可在101和107之間建立的另一TCP連接中將兩個探測數據包P1”131和p2”133發(fā)送給遠端節(jié)點107。然而,p2”133在網絡113中丟失。Pl”131從107獲取兩個響應數據包Rl,,135和R2”137。響應TCP數據包和它們的到達次序提供足夠的信息給101以確定Pl109是被103接收了還是在119上丟失了,P2111是被103接收了還是在119上丟失了。如果109和111都被103接收的話,101可確定它們是以相同的次序接收或是以相反的次序接收。同時,101可確定Rl115是否在121上丟失,或R2117是否在121上丟失。如果115和117均被接收,101可確定它們是以與傳輸次序相同的次序接收或是相反的次序接收。此外,如果探測TCP數據包和該探測包獲取的響應TCP數據包都沒有丟失的話,可以計算每個探測TCP數據包的往返時間(RTT)。圖2是示出了在根據本發(fā)明的特定實施例中的連續(xù)探測回合的流程圖。在發(fā)送兩個探測TCP數據包201之后,該測量節(jié)點是處于接收模式,以用于從遠端節(jié)點獲取響應TCP數據包。在接收響應TCP數據包203之后,發(fā)送探測包201之后的響應TCP數據包將用于確定每個探測TCP數據包的傳送狀態(tài)和每個響應TCP數據包的傳送狀態(tài)205。如果在207能作出判斷,在發(fā)送兩個新的探測TCP數據包201之前,可在209執(zhí)行某些準備工作。如果不能在211作出這一判斷,該測量節(jié)點將等待下一響應TCP數據包203。在收集連續(xù)數量的探測回合的包傳送狀態(tài)和RTT之后,可計算多個數據路徑質量的度量的統(tǒng)計量。例如,可計算第一個探測TCP數據包的平均RTT。同時,也可以計算第一個探測TCP數據包的平均丟包率(也就是,正向傳輸路徑丟包率)。同樣的,也可以計算第一個響應TCP數據包的平均丟包率(也就是反向傳輸路徑丟包率)。如果可以接收兩個探測TCP數據包,可計算它們的平均包亂序率(也就是,正向傳輸路徑包亂序率)。類似地,如果可以接收兩個響應TCP數據包,可計算它們的平均包亂序率(也就是,反向傳輸路徑包亂序率)。在Web會話中的測量圖3是示出了在根據本發(fā)明的典型測量節(jié)點的詳細框圖。測量節(jié)點301從用戶305獲得httpURL303。使用該URL303,HTTP模塊307在HTTP層327準備用于URL303的HTTPGET消息309,并將該消息309傳遞給TCP層313的測量核心311。該測量核心3118負責準備和分發(fā)探測TCP數據包Pl315和P2317。該探測TCP數據包315和317在其數據載荷中攜帶HTTPGET消息309。該測量核心311還可負責接收在其數據載荷中攜帶HTTP響應消息的響應TCP數據包Rl319和R2321,和負責確定數據包傳送狀態(tài)和計算每個包RTT。另外,用戶305可輸入探測和響應包大小323、采樣率和樣式325。該包大小請求323被傳遞給HTTP模塊307以滿足包大小的要求。采樣率和樣式325被傳遞給測量核心311以滿足采樣處理的要求。圖4是示出了根據本發(fā)明的用于web服務的測量節(jié)點執(zhí)行的典型測量的時間軸圖表。該測量節(jié)點401發(fā)送TCPSYN包403以與web服務器405建立TCP連接。在接收TCPSYN-ACK數據包407以后,該測量節(jié)點401發(fā)送攜帶用于url-1的HTTPGET消息431的探測TCP數據包CO,409。在接收請求431之后,web服務器405準備用于url_l的HTTPGET消息441,該用于url-1的HTTPGET消息441在連續(xù)的多個響應TCP數據包Sl413、S2415、S3417、S4419、S5421等中發(fā)送。在接收由TCPACK433獲取的S2415和S3417之后,該測量節(jié)點401通過分發(fā)第一個兩雙探測TCP數據包Cl’423和C2’425,啟動第一個探測回合來進行數據路徑質量測量,這兩個探測TCP數據包分別獲取兩個響應TCP數據包S4419和S5421。這兩個探測TCP數據包Cl,423和C2,425也可攜帶相同的用于url_l的HTTPGET消息431。新的探測回合可在接收到響應TCP數據包S5421后開始。因此,這一TCP連接中執(zhí)行的測量由兩個連續(xù)階段準備階段427和探測階段4組成。HTTP樽塊HTTP模塊利用應用層的HTTP進行路徑測量,但是測量核心可利用任何基于TCP的應用層協(xié)議進行路徑測量。HTTP模塊和測量核心之間的接口是基于從HTTP模塊傳遞給測量核心的HTTPGET消息的。因此可獨立于測量核心之外設計和實現(xiàn)HTTP模塊。該HTTP模塊的主要任務包括找到一個或多個用于用戶指定包大小的合格httpURL和準備用于該合格httpURL的HTTPGET消息。如果httpURL的HTTPGET消息能夠被改造成具有特定探測包大小的探測數據包,且該HTTPGET消息能夠從服務器獲取具有特定響應包大小的至少5個響應數據包,那么該httpURL可以被認為是合格的。提出最少5個相應數據包的要求是因為在準備階段427有三個額外的數據響應包413,415和417。用Zp和Ir分別表示以字節(jié)為單位的用戶指定探測包大小和響應包大小。所有的包大小包括IP和TCP報頭。因此,合格的URL的HTTPGET消息的長度將不會超過Zp-40字節(jié)(假定40比特TCP/IP報頭)。此外,對應的HTTP響應消息的長度,包括HTTP響應報頭和消息體,必須是至少5X(Zr-40)字節(jié)。校驗HTTPGET消息的長度是較為簡單的。然而,檢驗URL是否符合響應數據包的大小要求需要進行一些工作。如果在HTTP響應消息中出現(xiàn)內容長度報頭字段,那么總長度是該字段值和HTTP響應報頭長度之和。否則,HTTP模塊將下載整個HTTP響應消息以確定其長度。如果不能獲得合格的URL,該HTTP模塊將執(zhí)行web信息采集以重獲所有的可用URL,該網頁信息采集始于web服務器的根部并向下采集一定的深度。此外,合格URL的HTTPGET消息必須包括200(OK)響應。該404(未找到)響應不能使用以避免在該站點上引起安全警報。類似地,需要避免那些不具有消息體的HTTP響應消息(例如,304(未被修改的))。為了制作用于HTTPGET消息的Zp-字節(jié)探測數據包,該HTTP模塊通過HTTP參考字段來擴展包大小。因為某些網站服務器僅僅接受與其自身網頁相關的請求,該HTTP模塊首先將請求的URL添加到參考字段以避免可能的阻滯。如果該包大小仍然不足,該HTTP模塊進一步不斷重復添加一個定制串直到滿足用戶指定包大小,其中該定制串包括探測ID和可能的其他合適信息(如聯(lián)系郵件地址)。此外,為了降低在分發(fā)探測過程中由于可能存在的上下文切換引起的延時,該HTTP模塊將在開始測量之前制作用于合格的httpURL的HTTPGET消息。該HTTP模塊通過在每個用于路徑測量的探測數據包中包括HTTPGET消息來使用HTTP/1.1的請求管線特征(requestpipeliningfeature)。該管線HTTPGET消息可以請求單個或多個URL。也可以采用其他方法來配置探測數據包,例如在數個連續(xù)探測數據包之間發(fā)送大HTTPGET消息,或在單個探測數據包中包括多個HTTPGET消息。但是這些可選方法將會引入響應數據包返回延時和發(fā)送太多HTTPGET消息的問題。此外,HTTP響應消息通常不會完全占據最后一個響應數據包。因此,響應數據包可以包含一部分來自兩個HTTP響應消息的數據。另一方面,可以看到某些響應數據包僅包含HTTP響應消息的最后一個組塊。因此,這些響應包不滿足包大小需求。在這種情況下,該HTTP模塊將使用下一HTTP響應消息來繼續(xù)同一TCP連接中的測量。另一重要機制是防止web服務器壓縮HTTP響應消息,例如,該壓縮可以是由Apache服務器的mocLdeflate模塊來執(zhí)行的。壓縮的HTTP響應消息將影響測量,這是因為用于合格URL的響應數據包的預計數量減少了。因此,每個HTTPGET消息指定Acc印t編碼:identity;q=1,*;q=0",在此,“identity;q=1"是指〃identity"編碼(也就是,無轉換)將在整個響應上執(zhí)行,且"*;q=0"意指避免其他編碼方法。除了使用合格URL用于測量,也可在HTTP/1.1中使用范圍請求特征來使用不合格的URL用于路徑測量。范圍請求可用于請求來自接收范圍請求的web服務器的同一對象的多個交迭范圍。對于不合格的URL,可以通過范圍請求來進行擴展以滿足最小的大小要求(也就是,5個響應數據包)。例如,如果一個web服務器僅包含200字節(jié)的單個網絡對象,下列范圍請求報頭可以嵌入到每個HTTPGET消息中“范圍字節(jié)=-200,-200,-200,-200〃。每個字節(jié)-范圍-指定器“_200”請求服務器返回網絡對象的最后200字節(jié)。為響應該范圍請求,服務器將返回800字節(jié)的單個HTTP響應消息中的4個范圍響應。測量核心測量核心的設計和實現(xiàn)獨立于特定TCP應用。其在一個或多個并行TCP連接中執(zhí)行測量。為了支持更高的采樣率和非周期性采樣樣式,通常使用多個TCP連接。POSIX線程庫(Threadslibrary)可以用來管理單個TCP連接和整個測量進程。此外,因為某些web服務器可能限制一個IP地址發(fā)起的并行TCP連接的數量,可將不同的源IP地址分配給這些連接。在一個測量進程中使用到的TCP連接的數量是可配置參數。該測量核心建立并維持用于測量進程的多個TCP連接。其還可以根據用戶指定的采樣樣式(如周期的和泊松的)和采樣率在測量開始前準備探測計劃表。該探測計劃表包含一個探測任務列表,每個探測任務包含分發(fā)時間和探測數量。探測任務一生成就入隊到探測進度隊列中。執(zhí)行測量的方式和機制對于每個TCP連接來說都是相同的。每個TCP連接中的測量是在兩個連續(xù)階段中執(zhí)行的準備階段和探測階段。準備階段是用作于執(zhí)行探測階段的基礎工作的。在探測階段,分發(fā)由HTTP模塊準備好的HTTPGET消息的探測,分析響應數據包和當進程結束或遇到異常時終止連接。在準備階段,測量節(jié)點配置探測和響應數據包大小。測量節(jié)點401在TCPSYN包403中公告其最大段長(MSS),稱為MSk字節(jié)。服務器405在TCPSYN-ACK包407中公告其最大段長(MSS),稱為MSk字節(jié)。接著,該測量節(jié)點401可將探測數據包大小設置成至多MSSs+40字節(jié),將響應數據包大小設置成至多min{MSSc,MSk}+40字節(jié)。這一階段的另一目的是,增大服務器對兩個TCP數據段的擁塞窗口以開始該探測階段429。如果服務器的初始擁塞窗口已經是至少兩個TCP數據段(通過接收初始HTTPGET消息431之后的兩個響應數據包來檢測),接著第一探測回合可以開始而不發(fā)送TCPACK433。探測階段在接收到來自服務器405的兩個新的響應TCP數據包415和417后就立刻開始。為了分發(fā)探測,測量核心首先從探測-計劃表隊列中重獲探測任務。此外,任何已過期的探測任務(其分發(fā)時間已經過了當前時間)將從隊列中移除并丟棄。當所述探測計劃表為空時,測量核心關閉TCP連接。在獲得未過期的探測任務后,該測量核心執(zhí)行高精度休眠(highresolutionsleep)(例如,使用clock_nanosle印()intime,h)直到到達分發(fā)時間。在醒來后,從HTTP模塊已經準備好的HTTPGET消息列表中隨機獲取一對HTTPGET消息,其中每一個HTTPGET消息都在探測數據包中發(fā)送。可使用Linux原始套接字來制作和發(fā)送探測數據包,且Iibpcap1.0.0庫可以用于捕獲探測和響應數據包。由于繞過了Linux的TCP/IP數據棧,Linux核心將不會發(fā)現(xiàn)測量核心發(fā)起的TCP連接,因而它會用TCPRST包響應每個接收到的響應數據包。解決這一問題通常的方法是使用Linux的IP表來濾掉RST包。另一重要問題是精確地給每個探測和響應數據包產生時間戳以用于RTT測量。如果將Iibpcap用于捕獲這些包,來自每個探測和響應數據包的pCap_pkthdr結構的時間戳可用于以微秒的精度測量RTT。作為另一可選方案,使用來自gettimeofdayO的用戶級時間戳不是那么可靠,因為該其精確性將受到系統(tǒng)上下文切換的影響。圖5是示出了在根據本發(fā)明的兩個連續(xù)探測回合中的服務器響應的時間軸圖表。測量節(jié)點501在第一個探測回合發(fā)送兩個探測數據包503和505以獲取來自服務器511的兩個響應數據包507與509。在接收新響應數據包507和509之后,測量節(jié)點501在第二個測試回合發(fā)送兩個新的探測數據包513和515以從服務器511獲取兩個新的響應數據包517禾口519。分別采用Cmln來表示探測數據包和采用Sm|n來表示響應數據包,且m和η分別為TCP數據包的序列號(SN)和確認號(AN)。因為探測和響應數據包包含MSS-大小的TCP數據段,僅是出于方便的目的,m(=1,2,...)用于列舉響應TCP數據段,且n(=1',2',...)用于列舉響應TCP數據段。例如C3'11521攜帶來自測量節(jié)點501的第三數據段和來自服務器的用于第一數據段的確認,且S3|3'523攜帶來自服務器511的第三數據段和來自測量節(jié)點501的用于第一個三段數據的確認。當AN不重要時,僅使用Cm和Sm,例如第一個兩個探測數據包Cl'525和C2'527。11雖然在發(fā)送第一探測數據包的時刻,兩個數據段都會被接收到,但是每個探測數據包僅確認從服務器接收到的一個數據段。例如,甚至在接收兩個響應數據包507和509之后,C3'1521僅確認服務器的第一數據段。此外,探測數據包公告兩個TCP數據段的接收窗以約束服務器的發(fā)送窗。其結果是,每個探測數據包,如果沒有亂序的話,僅獲取一個新的響應數據包。例如,C3'|1521獲取S3|3'523,且C4'|25四獲取S4|4'531。新響應數據包是攜帶來自服務器的新數據段的TCP數據包。RTT是基于探測數據包和其獲取的新響應數據包(例如C3'1513和S3|3'517)而測量的。因此,在沒有丟包時,通??梢栽谝粋€探測回合中獲得兩個RTT觀測值。然而,使用第一個探測包的RTT來測量更加精確,因為所述第二個探測包的RTT可能被第一個包偏置。在正向傳輸路徑上,兩個探測TCP數據包可能發(fā)生5種可能路徑事件F0兩個探測數據包以相同的次序到達服務器;FR兩個探測數據包以相反的次序到達服務器;Fl第一個探測數據包丟失,但是第二個到達服務器;F2第一個探測數據包到達服務器,但是第二個丟失,和F3兩個探測數據包均丟失。在反向傳輸路徑上,兩個新響應數據包也可能發(fā)生5種可能路徑事件:R0,RR,Rl,R2和R3(通過將F0-F3中的“探測”替換成“響應”,并將“服務器”替換成“測量節(jié)點”)。其結果是,可能有18中可能的丟失-亂序,如表1中所示17個事件用"V"表示,一個事件用F3表示。其他用“_”表示的事件是不可能事件,因為最多只能有一個新響應數據包被獲取(也就是,沒有第二個響應數據包)。對于F3,沒有新的響應數據包被獲取。表權利要求1.一種非協(xié)作測量通信網絡的數據路徑質量的方法,其特征在于,包括(a)測量節(jié)點發(fā)送探測包并接收從遠端節(jié)點來的響應數據包,所述探測數據包包括至少兩個攜帶正常網絡應用的數據的數據包,且來自所述遠端節(jié)點的響應包含至少一個數據包,該所述至少一個數據包攜帶網絡應用消息;(b)接收并處理所述遠端響應中的所述數據包,所述響應能提供至少三種類型的數據路徑質量度量,和(c)從所述步驟(b)中處理的所述數據路徑質量獲得關于所述測量節(jié)點和所述遠端節(jié)點之間的數據路徑質量測量或估計。2.根據權利要求1所述的方法,其特征在于,進一步包括在執(zhí)行步驟(c)之前多次重復步驟(a)和(b)。3.根據權利要求2所述的方法,其特征在于,所述三種類型的路徑質量度量是往返時間、丟包率和包亂序率。4.根據權利要求3所述的方法,其特征在于,所述丟包率包括獨立的正向路徑丟包率和反向路徑丟包率。5.根據權利要求3所述的方法,其特征在于,所述包亂序率包括獨立的正向路徑包亂序率和反向路徑包亂序率。6.根據權利要求1所述的方法,其特征在于,所述通信網絡支持TCP/IP協(xié)議且所述網絡應用使用TCP協(xié)議且所述探測和所述響應的所述數據包是TCP數據包。7.根據權利要求6所述的方法,其特征在于,所述遠端節(jié)點是網絡服務器,來自所述測量節(jié)點的應用消息是HTTPGET消息,且來自所述網絡服務器的應用消息是HTTP響應消息。8.根據權利要求7所述的方法,其特征在于,所述在步驟(a)中以用戶指定的預定的探測包大小、預定的采樣率和預定的采樣樣式發(fā)送所述探測。9.根據權利要求7所述的方法,其特征在于,在所述步驟(b)中,以用戶指定的預定響應包大小接收所述響應。10.一種用于執(zhí)行權利要求1的方法、并能發(fā)送探測數據包給遠端節(jié)點、接收和處理來自所述遠端節(jié)點的響應的設備,其特征在于,包括(a)用戶輸入終端,(b)探測準備模塊,和(c)測量核心;其中所述用戶輸入終端用于指定關于所述遠端節(jié)點的特性、用于所述探測和所述響應的包大小、以及探測采樣率和采樣樣式的信息,所述探測準備模塊使用來自所述用戶終端的關于所述遠端節(jié)點的特性、以及用于所述探測和所述響應的包大小的信息配置所述探測;所述測量核心負責以基于所述用戶輸入終端指定的所述信息的探測采樣率和采樣樣式發(fā)送所述探測給所述遠端節(jié)點,和處理來自所述遠端節(jié)點的響應以獲取一組數據路徑質量度量。11.根據權利要求10所述的設備,其特征在于,所述設備是連接處于測量中的通信網絡的通用計算機,其中所述用戶輸入終端、探測準備模塊和測量核心是至少部分通過軟件執(zhí)行構建的。12.根據權利要求10所述的設備,其特征在于,所述探測準備模塊是使用網絡服務器用于數據路徑質量測量的HTTP模塊,所述HTTP模塊能夠找到一個或多個合格httpURL用于用戶指定包大小,和準備用于每個所述合格httpURL的HTTPGET消息。13.根據權利要求12所述的設備,其特征在于,所述HTTPGET消息必須引起來自所述遠端節(jié)點的200(OK)響應。14.根據權利要求12所述的設備,其特征在于,所述HTTPGET消息不包含來自所述遠端節(jié)點的404(未找到)響應或304(未修改)響應。15.根據權利要求10所述的設備,其特征在于,所述測量核心獨立于所述探測準備模塊基于的所述TCP應用的類型進行操作。16.根據權利要求10所述的設備,其特征在于,所述測量核心以單個TCP連接操作,或以兩個或多個并行TCP連接進行操作。17.根據權利要求1所述的設備,其特征在于,所述響應的所述數據包包括序列號和確認號。18.根據權利要求17所述的設備,其特征在于,所述響應的所述數據包的大小由用戶預定。全文摘要本發(fā)明涉及一種以非協(xié)作方式測量網絡路徑質量的方法和設備,其發(fā)送由多組探測網絡包組成的探測給遠端節(jié)點,并從該遠端節(jié)點接收由至少一個響應網絡包組成的響應。探測和響應網絡包均攜帶正常網絡應用的消息并可根據其傳輸協(xié)議進行交換,這樣本方法避免了使用非數據網絡包的方法所面臨的可靠性問題。同時本方法所觸發(fā)的響應數據包能提供足夠的信息來以有效的方法獲取一組豐富的數據路徑質量度量。文檔編號H04L12/26GK102150395SQ201080001287公開日2011年8月10日申請日期2010年6月11日優(yōu)先權日2009年6月11日發(fā)明者張蛟川,羅夏樸,陳煥華申請人:香港理工大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
曲靖市| 湛江市| 报价| 大理市| 融水| 晋宁县| 浦县| 杭州市| 北流市| 图们市| 荣昌县| 江北区| 万山特区| 当阳市| 拜泉县| 宣化县| 鸡西市| 板桥市| 卫辉市| 土默特左旗| 屯留县| 石门县| 屏东县| 绍兴县| 沈阳市| 阳谷县| 诏安县| 彝良县| 花莲县| 防城港市| 大足县| 崇仁县| 蒙城县| 五寨县| 拉萨市| 沧源| 察隅县| 邮箱| 中西区| 夏河县| 弥勒县|