本申請(qǐng)是申請(qǐng)日為2010年2月16日、申請(qǐng)?zhí)枮?01080007339.4、發(fā)明名稱為“用于測(cè)量可用帶寬的有效和容損失方法和機(jī)制”的申請(qǐng)的分案申請(qǐng)。本發(fā)明涉及確定網(wǎng)絡(luò)中的帶寬。更具體地,本發(fā)明涉及使用包括一個(gè)或多個(gè)網(wǎng)絡(luò)接口的任何設(shè)備確定帶寬。
背景技術(shù):
:測(cè)量網(wǎng)絡(luò)性能的標(biāo)準(zhǔn)可以是其帶寬。在網(wǎng)絡(luò)中,帶寬通常定義為在給定時(shí)間段(例如秒)從一點(diǎn)可以傳送到另一點(diǎn)的數(shù)據(jù)量。帶寬可以以每秒比特(bps)或每秒字節(jié)(bps)來表示。具有高帶寬的鏈路例如能夠傳送足夠多的信息以在視頻呈現(xiàn)中維持圖像連續(xù)。未使用的容量或可用帶寬可以指示網(wǎng)絡(luò)的性能。具體地,關(guān)于網(wǎng)絡(luò)中路徑的可用帶寬的信息可以有助于主機(jī)在給定位置可用的多個(gè)候選網(wǎng)絡(luò)中選擇合適的網(wǎng)絡(luò)來使用。已知測(cè)量可用帶寬的幾個(gè)方法。然而這些方法可能具有以下缺陷。例如,一個(gè)問題可能是測(cè)量的延遲性。使用傳輸控制協(xié)議(tcp)的可用帶寬測(cè)量方法由于tcp的“慢啟動(dòng)”流控制行為而顯示出高的測(cè)量延遲性,例如多于10秒?,F(xiàn)有的可用帶寬測(cè)量方法具有高測(cè)量延遲性的另外的原因是因?yàn)檫@些方法盡可能準(zhǔn)確的測(cè)量可用帶寬。這些方法沒有關(guān)注減少測(cè)量延遲性或傳輸?shù)臄?shù)據(jù)量。例如,iperf(tcp/udp帶寬測(cè)量工具)測(cè)試?yán)^續(xù)直到預(yù)定時(shí)間段過去或直到傳輸?shù)陌宋蛔止?jié)量達(dá)到預(yù)定值。即使通過更短時(shí)間段或要發(fā)送的更少數(shù)量的數(shù)據(jù)可以達(dá)到測(cè)量準(zhǔn)確度的充分級(jí)別,發(fā)生了測(cè)試。然而,確定更多的優(yōu)化的參數(shù)值需要調(diào)整過程。而iperf沒有調(diào)整過程。pathchirp(一種udp帶寬測(cè)量工具)具有調(diào)整過程,其需要幾個(gè)測(cè)試循環(huán)來調(diào)整測(cè)試分組的內(nèi)部傳輸間隔。這造成更高的測(cè)量延遲性和更長(zhǎng)的測(cè)試周期。另一個(gè)問題是一些可用帶寬測(cè)量方法需要從用戶輸入?yún)?shù)來提高測(cè)量精度,或減少延遲或測(cè)量需要的數(shù)據(jù)的數(shù)量。例如,上述pathchirp中的調(diào)整過程可能希望測(cè)量的可用帶寬的上限和下限以及分組大小作為輸入?yún)?shù)。上述的iperf工具允許發(fā)送測(cè)量周期或八位字節(jié)的數(shù)目,但是最大傳輸速率和分組大小由用戶指定。當(dāng)這些參數(shù)沒有由用戶指定時(shí),可使用預(yù)配置的缺省值。然而預(yù)配置的缺省值可造成測(cè)量精度降低,測(cè)量延遲或發(fā)送的數(shù)據(jù)的數(shù)量增加。另外的問題是實(shí)際上不存在對(duì)于分組損耗是健壯的可用帶寬測(cè)量方法。基于tcp的方法對(duì)于分組損耗可以是健壯的,但是其基本測(cè)量基于tcp應(yīng)用的吞吐量。然而,由于tcp窗口流控制,基于tcp的方法不測(cè)量大于該吞吐量的可用帶寬。因此,已知的方法和處理不能夠測(cè)量或及時(shí)提供網(wǎng)絡(luò)的帶寬信息。如上所述,這些方法和處理包括測(cè)量延遲或需要用戶輸入。技術(shù)實(shí)現(xiàn)要素:為了克服上述問題,公開的實(shí)施例提供稱為單脈沖方法的新的可用帶寬方法。公開的實(shí)施例的單脈沖方法減少了測(cè)量延遲和發(fā)送的數(shù)據(jù)的數(shù)量,而不需要從用戶輸入?yún)?shù)。公開的單脈沖方法還設(shè)計(jì)來對(duì)于分組損耗是健壯的。使用設(shè)計(jì)來對(duì)于分組損耗是健壯的算法來確定測(cè)試分組的數(shù)量。公開的實(shí)施例使用分組簇來避免在計(jì)算中計(jì)算丟失的分組。分組簇排除了丟失的分組之間的時(shí)間段。因此,公開的實(shí)施例介紹了一種用于確定網(wǎng)絡(luò)環(huán)境中的可用帶寬的方法。該方法包括發(fā)送多個(gè)測(cè)試分組。每個(gè)測(cè)試分組包括序列號(hào)。該方法還包括接收與所述多個(gè)測(cè)試分組對(duì)應(yīng)的多個(gè)測(cè)試接收分組。每個(gè)測(cè)試接收分組包括所對(duì)應(yīng)的測(cè)試分組的所述序列號(hào)。該方法還包括根據(jù)多個(gè)成功傳送的測(cè)試分組形成至少一個(gè)分組簇。該方法還包括基于所述至少一個(gè)分組簇和在所述至少一個(gè)分組簇中的第一測(cè)試分組和最后一個(gè)測(cè)試分組之間的內(nèi)部到達(dá)時(shí)間確定可用帶寬。根據(jù)公開的實(shí)施例,介紹了一種用于在無需用戶輸入的情況下確定網(wǎng)絡(luò)中的可用帶寬的方法。該方法包括動(dòng)態(tài)確定從發(fā)送節(jié)點(diǎn)要發(fā)送的測(cè)試分組的數(shù)量。每個(gè)測(cè)試分組包括序列號(hào)。該方法還包括向接收節(jié)點(diǎn)發(fā)送所述數(shù)量的測(cè)試分組。該方法還包括從接收節(jié)點(diǎn)接收與所述測(cè)試分組對(duì)應(yīng)的多個(gè)測(cè)試接收分組。每個(gè)測(cè)試接收分組包括其相應(yīng)的測(cè)試分組的所述序列號(hào)。該方法還包括基于至少一個(gè)網(wǎng)絡(luò)參數(shù)設(shè)置測(cè)試分組大小或傳輸速率的值。該方法還包括通過單脈沖算法使用至少一個(gè)分組簇確定所述發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)之間的可用帶寬,所述分組簇包括所述多個(gè)的測(cè)試接收分組和所述值。根據(jù)公開的實(shí)施例還提供一種用于確定網(wǎng)絡(luò)環(huán)境中的可用帶寬的單脈沖方法。該單脈沖方法包括從發(fā)送節(jié)點(diǎn)向接收節(jié)點(diǎn)發(fā)送具有序列號(hào)的測(cè)試分組。單脈沖方法還包括在所述發(fā)送節(jié)點(diǎn)接收具有所述序列號(hào)的測(cè)試接收分組。單脈沖方法還包括在分組簇中放置至少兩個(gè)傳送的測(cè)試分組,從而傳送的測(cè)試分組中的序列號(hào)是連續(xù)的。單脈沖方法還包括使用單脈沖算法中的分組簇來確定所述發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)之間的可用帶寬。附圖說明包括附圖來提供本發(fā)明的另外的理解,該附圖組成說明書的一部分。下面列出的附圖例示了本發(fā)明的實(shí)施例,以及該說明書用于解釋在權(quán)利要求書中公開的本發(fā)明的原理,其中:圖1例示了根據(jù)公開的實(shí)施例的具有節(jié)點(diǎn)的網(wǎng)絡(luò)環(huán)境;圖2例示了根據(jù)公開的實(shí)施例的用于實(shí)施單脈沖方法來確定可用帶寬的流程圖;圖3例示了根據(jù)公開的實(shí)施例的用于分組簇算法以形成分組簇的狀態(tài)機(jī);圖4例示了根據(jù)公開的實(shí)施例的測(cè)量往返路徑的可用帶寬的實(shí)例性單脈沖序列圖;圖5例示了根據(jù)公開的實(shí)施例的測(cè)量前向路徑的可用帶寬的實(shí)例性單脈沖序列圖;圖6例示了根據(jù)公開的實(shí)施例的測(cè)量后向路徑的可用帶寬的實(shí)例性單脈沖序列圖;圖7例示了根據(jù)公開的實(shí)施例的單脈沖協(xié)議分組的框圖;圖8例示了根據(jù)公開的實(shí)施例的開始消息分組的框圖;圖9例示了根據(jù)公開的實(shí)施例的數(shù)據(jù)消息分組的框圖;圖10例示了根據(jù)公開的實(shí)施例的回聲或回聲應(yīng)答消息分組的框圖;以及圖11例示了根據(jù)公開的實(shí)施例的報(bào)告消息分組的框圖。具體實(shí)施方式現(xiàn)在詳細(xì)介紹本發(fā)明的優(yōu)選實(shí)施例。在附圖中例示了本發(fā)明的優(yōu)選實(shí)施例的實(shí)例。圖1示出網(wǎng)絡(luò)環(huán)境100具有節(jié)點(diǎn)102、104和106。因?yàn)楣?jié)點(diǎn)可位于多于一個(gè)的網(wǎng)絡(luò)中,因此網(wǎng)絡(luò)環(huán)境100稱為“環(huán)境”。從而多于一個(gè)的網(wǎng)絡(luò)可在網(wǎng)絡(luò)環(huán)境100中可用。節(jié)點(diǎn)102可以是源節(jié)點(diǎn),因?yàn)樗袚?dān)主動(dòng)的角色來沿網(wǎng)絡(luò)環(huán)境100中的路徑啟動(dòng)可用帶寬測(cè)試。節(jié)點(diǎn)104可是目標(biāo)節(jié)點(diǎn),因?yàn)樗袚?dān)被動(dòng)的角色來根據(jù)公開的實(shí)施例啟動(dòng)可用帶寬測(cè)試。節(jié)點(diǎn)102包括以傳輸速率發(fā)送分組的網(wǎng)絡(luò)接口1021。節(jié)點(diǎn)104包括以傳輸速率發(fā)送分組的網(wǎng)絡(luò)接口1041。前向路徑110是從源節(jié)點(diǎn)102到目標(biāo)節(jié)點(diǎn)104的路徑。后向路徑112是從目標(biāo)節(jié)點(diǎn)104到源節(jié)點(diǎn)102的路徑。往返路徑114是前向路徑110和后向路徑112的連接,其起始和終止于源節(jié)點(diǎn)102。節(jié)點(diǎn)106也可以使用上述指定給節(jié)點(diǎn)102和104的路徑。實(shí)際上,術(shù)語“源節(jié)點(diǎn)”和“目標(biāo)節(jié)點(diǎn)”僅用于參考,網(wǎng)絡(luò)環(huán)境100中的任何節(jié)點(diǎn)可用作源節(jié)點(diǎn)或目標(biāo)節(jié)點(diǎn)來測(cè)量可用帶寬。根據(jù)公開的實(shí)施例,定向可用帶寬可指前向路徑110或后向路徑112的可用帶寬。在確定定向可用帶寬中,也可使用術(shù)語最大傳輸單元(mtu)和往返時(shí)間(rtt)。圖2例示了根據(jù)公開的實(shí)施例實(shí)施單脈沖(burst)方法來確定可用帶寬的流程圖。單脈沖算法或方法可測(cè)量往返可用帶寬、前向路徑可用帶寬和后向路徑可用帶寬。通過從發(fā)送節(jié)點(diǎn)向接收節(jié)點(diǎn)發(fā)送測(cè)試分組以及在發(fā)送節(jié)點(diǎn)接收測(cè)試接收分組來執(zhí)行步驟202。下面將更詳細(xì)公開這些步驟。返回圖1,當(dāng)確定前向路徑可用帶寬時(shí),源節(jié)點(diǎn)102向目標(biāo)節(jié)點(diǎn)104以傳輸速率rt(bps)發(fā)送大小為l(八位字節(jié))的一個(gè)或多個(gè)測(cè)試分組116,其包括因特網(wǎng)協(xié)議(ip)標(biāo)頭。于是源節(jié)點(diǎn)102等待從目標(biāo)節(jié)點(diǎn)104的測(cè)試接收分組118。對(duì)于后向路徑可用帶寬,目標(biāo)節(jié)點(diǎn)104向源節(jié)點(diǎn)102發(fā)送一個(gè)或多個(gè)測(cè)試分組120。目標(biāo)節(jié)點(diǎn)104于是等待來自源節(jié)點(diǎn)102的測(cè)試接收分組122。作為定向可用帶寬測(cè)試,前向和后向可用帶寬分析可以是已知的。往返路徑可用帶寬測(cè)試可以使用測(cè)試分組124和測(cè)試接收分組126。測(cè)試分組和相應(yīng)的測(cè)試接收分組通過承載在每個(gè)分組中的序列號(hào)來標(biāo)識(shí)。測(cè)試分組的發(fā)送方和接收方以及計(jì)算可用帶寬的實(shí)體依據(jù)如下所述的執(zhí)行的測(cè)試的類型來確定。在往返路徑可用帶寬測(cè)試的情況下,測(cè)試接收分組126可包括與測(cè)試分組124相同數(shù)量的有效載荷以在前向和后向路徑中裝載瓶頸鏈路。在定向可用帶寬測(cè)試的情況下,測(cè)試接收分組不包括有效載荷來裝載瓶頸鏈路。測(cè)試分組中的發(fā)送的八位字節(jié)的數(shù)目具有分別表示為nmin和nmax的下限和上限。在執(zhí)行公開的實(shí)施例的操作時(shí),源節(jié)點(diǎn)102作為發(fā)送方,至少發(fā)送nmin個(gè)八位字節(jié)的測(cè)試分組,以及當(dāng)在發(fā)送nmin個(gè)八位字節(jié)或發(fā)送nmax個(gè)八位字節(jié)之后接收測(cè)試接收分組時(shí)停止發(fā)送。因此,發(fā)送的測(cè)試分組的數(shù)量基于往返時(shí)間或rtt以及可用帶寬來動(dòng)態(tài)確定。此外,測(cè)量延遲取決于rtt、可用帶寬和傳輸速率。返回圖2,通過基于測(cè)試分組和測(cè)試接收分組形成分組簇來執(zhí)行步驟206。根據(jù)公開的實(shí)施例,分組簇定義為具有連續(xù)的序列號(hào)的至少兩個(gè)測(cè)試分組的傳送時(shí)間的集合。對(duì)于往返路徑可用帶寬測(cè)試,當(dāng)相應(yīng)的測(cè)試接收分組由源節(jié)點(diǎn)102接收時(shí)測(cè)試分組看作是傳送的。對(duì)于前向路徑可用帶寬測(cè)試,當(dāng)測(cè)試分組由目標(biāo)節(jié)點(diǎn)104接收時(shí)測(cè)試分組看作是傳送的。對(duì)于后向路徑可用帶寬測(cè)試,當(dāng)測(cè)試分組由源節(jié)點(diǎn)102接收時(shí)測(cè)試分組看作是傳送的。在每個(gè)簇中分組簇可以以最小序列號(hào)的升序來排列。pi可以表示具有序列號(hào)為i的測(cè)試分組,以及ck可以表示第k個(gè)分組簇。如果測(cè)試分組p1、p3、p2、p5、p6、p8、p10和p11以所列出的順序接收,則分組簇將是c1=[p1,p3,p2]、c2=[p5,p6]、和c3=[p10,p11]。分組p8沒有形成分組簇。公開的實(shí)施例公開了根據(jù)步驟202和204中編輯的測(cè)試分組傳送時(shí)間的陣列形成分組簇的列表的算法。該算法的復(fù)雜性可以與不需要重新對(duì)測(cè)試分組排序的測(cè)試分組的數(shù)目相關(guān)。對(duì)于往返路徑和后向路徑可用帶寬測(cè)試,分組簇算法通過源節(jié)點(diǎn)102執(zhí)行。對(duì)于前向路徑可用帶寬測(cè)試,分組簇算法通過目標(biāo)節(jié)點(diǎn)104執(zhí)行。讓a[]表示整數(shù)陣列,其中a[i]存儲(chǔ)第(i-1)個(gè)測(cè)試分組的傳送時(shí)間,其中i表示陣列的索引。陣列中的0的傳送時(shí)間指示相應(yīng)的測(cè)試分組沒有傳送。測(cè)試接收分組看作往返可用帶寬測(cè)試的測(cè)試分組。陣列的大小由最大序列號(hào)減1來限定。術(shù)語last表示最后一個(gè)測(cè)試分組的序列號(hào),術(shù)語add_cluster(intmin_a,intmax_a,intn)可以是創(chuàng)建新的分組簇的過程,該分組簇的最小傳送時(shí)間、最大傳送時(shí)間和簇中的分組的數(shù)目分別通過min_a、max_a和n給出。術(shù)語min(x,y)和max(x,y)可分別代表返回x和y之間的最小值和最大值的函數(shù)。一旦完成測(cè)試分組的發(fā)送和接收測(cè)試接收分組,就調(diào)用分組簇算法。在往返路徑可用帶寬測(cè)試的一個(gè)實(shí)施例中,當(dāng)在步驟204中已經(jīng)傳送了最后一個(gè)發(fā)送的測(cè)試分組時(shí),即當(dāng)源節(jié)點(diǎn)102接收最后發(fā)送的測(cè)試分組的測(cè)試接收分組時(shí),測(cè)試分組的發(fā)送和測(cè)試接收分組的接收可看作結(jié)束了。在另外的往返路徑可用帶寬測(cè)試的實(shí)施例中,源節(jié)點(diǎn)102在步驟202發(fā)送最后的測(cè)試分組之后發(fā)送明確的完成指示分組。當(dāng)源節(jié)點(diǎn)102在步驟202接收到來自目標(biāo)節(jié)點(diǎn)104的明確的完成指示接收分組時(shí),發(fā)送測(cè)試分組和接收測(cè)試接收分組可看作結(jié)束。在前向路徑可用帶寬測(cè)試的一個(gè)實(shí)施例中,源節(jié)點(diǎn)102在步驟202發(fā)送最后的測(cè)試分組之后發(fā)送明確的完成指示分組。當(dāng)目標(biāo)節(jié)點(diǎn)104在步驟202接收到來自源節(jié)點(diǎn)102的明確的完成指示分組時(shí),發(fā)送測(cè)試分組和接收測(cè)試接收分組可看作結(jié)束。在后向路徑可用帶寬測(cè)試的一個(gè)實(shí)施例中,目標(biāo)節(jié)點(diǎn)104在步驟202發(fā)送最后的測(cè)試分組之后發(fā)送明確的完成指示分組。當(dāng)源節(jié)點(diǎn)102在步驟202接收到來自目標(biāo)節(jié)點(diǎn)104的明確的完成指示分組時(shí),發(fā)送測(cè)試分組和接收測(cè)試接收分組可看作結(jié)束。分組簇算法遵循圖3中所示的狀態(tài)機(jī)。狀態(tài)機(jī)包括3個(gè)狀態(tài):簇外、合格簇以及簇內(nèi),其中簇外的狀態(tài)是初始狀態(tài)。狀態(tài)簇外指示與a[i]對(duì)應(yīng)的測(cè)試分組沒有傳送。狀態(tài)簇內(nèi)指示與a[i]對(duì)應(yīng)的測(cè)試分組輸入當(dāng)前簇。狀態(tài)合格簇指示當(dāng)且僅當(dāng)與a[i]和a[i+1]對(duì)應(yīng)的測(cè)試分組被傳送,以及與a[i-1]對(duì)應(yīng)的測(cè)試分組沒有傳送時(shí),與a[i]對(duì)應(yīng)的測(cè)試分組屬于新的簇。在圖3中,每個(gè)箭頭表示狀態(tài)遷移,其中與箭尾和箭頭關(guān)聯(lián)的狀態(tài)分別表示源和目的狀態(tài)。沒有源狀態(tài)的狀態(tài)遷移指示開始狀態(tài)機(jī)的初始狀態(tài)遷移。沒有目的狀態(tài)的狀態(tài)遷移指示結(jié)束狀態(tài)機(jī)的最終狀態(tài)遷移。與每個(gè)遷移關(guān)聯(lián)并由字符“/”分隔的標(biāo)簽指示一對(duì)條件和動(dòng)作,其中標(biāo)簽中的“/”的左側(cè)文字和右側(cè)文字分別指示條件和動(dòng)作。如果當(dāng)狀態(tài)遷移的源狀態(tài)是當(dāng)前狀態(tài)時(shí)保持與該遷移關(guān)聯(lián)的條件,則在進(jìn)入目的狀態(tài)之前采取與該狀態(tài)遷移關(guān)聯(lián)的動(dòng)作。具有空條件的狀態(tài)遷移指示無條件發(fā)生狀態(tài)遷移。具有空動(dòng)作的狀態(tài)遷移指示對(duì)于該狀態(tài)遷移不采取任何動(dòng)作。到狀態(tài)簇外的初始狀態(tài)遷移具有動(dòng)作i=0;當(dāng)i<last&&a[i]>0,則發(fā)生從簇外狀態(tài)到合格簇狀態(tài)的狀態(tài)遷移,以及在該遷移中采取動(dòng)作n=1;min_a=max_a=a[i];i++;。當(dāng)i<last并且a[i]==0,則發(fā)生從簇外狀態(tài)到相同狀態(tài)的狀態(tài)遷移,并在該狀態(tài)遷移中采取i++;動(dòng)作。當(dāng)i==last以及在該遷移中不采取任何動(dòng)作,則發(fā)生從簇外的狀態(tài)的最終的狀態(tài)遷移。當(dāng)i<last&&a[i]>0發(fā)生從合格簇狀態(tài)到簇內(nèi)狀態(tài)的狀態(tài)遷移,以及在該遷移中采取n++;min_a=min(min_a,a[i]);max_a=max(max_a,a[i]);i++;的動(dòng)作。當(dāng)i<last&&a[i]==0,則發(fā)生從狀態(tài)合格簇到狀態(tài)簇外的狀態(tài)遷移,以及在該遷移中采取i++;的動(dòng)作。當(dāng)i==last則發(fā)生從狀態(tài)合格簇的最終的狀態(tài)遷移,以及在該遷移中沒有采取任何動(dòng)作。當(dāng)i<last&&a[i]>0則發(fā)生從狀態(tài)簇內(nèi)到相同的狀態(tài)的狀態(tài)遷移,以及在該遷移中采取n++;min_a=min(min_a,a[i]);max_a=max(max_a,a[i]);i++;的動(dòng)作。當(dāng)i<last&&a[i]==0則發(fā)生從狀態(tài)簇內(nèi)到狀態(tài)簇外的狀態(tài)遷移,以及在該遷移中采取add_cluster(min_a,max_a,n);i++;的動(dòng)作。當(dāng)i==last則發(fā)生從狀態(tài)簇內(nèi)的最終的狀態(tài)遷移,以及在該遷移中采取add_cluster(min_a,max_a,n);的動(dòng)作。傳送的測(cè)試分組于是給予上述的標(biāo)準(zhǔn)從簇外移動(dòng)到簇內(nèi)。測(cè)試分組可以不移動(dòng)到分組簇,以及從可用帶寬分析中退出。因此,使用圖3中所示的狀態(tài)機(jī),可以根據(jù)如上所述的傳送的測(cè)試分組來形成分組簇。通過設(shè)置值以便執(zhí)行單脈沖方法來確定可用帶寬來執(zhí)行步驟208。用戶可以經(jīng)由輸入或其他接口設(shè)置這些值。然而,可不接收輸入,以及可以不需要其來設(shè)置這些值。在公開的實(shí)施例中,設(shè)置一對(duì)值l和rt。如上所述,l可以表示測(cè)試分組的大小(以八位字節(jié)為單位)。如上所述,rt可以表示傳輸速率(以每秒比特為單位(bps))。如果用戶沒有指定,則l和rt可以如下來確定。如果路徑mtu是已知的,則l設(shè)置為路徑mtu。否則,l設(shè)置為最小mtu。例如,對(duì)于ipv4網(wǎng)絡(luò),l可設(shè)置為576個(gè)八位字節(jié),而對(duì)于ipv6網(wǎng)絡(luò),l可設(shè)置為1280個(gè)八位字節(jié)。rt可設(shè)置為大約或等于測(cè)試分組的輸出接口的最大速度的值。如圖1所示,節(jié)點(diǎn)102包括網(wǎng)絡(luò)接口1021,節(jié)點(diǎn)104包括網(wǎng)絡(luò)接口1041。在后向路徑可用帶寬測(cè)試的情況下,rt可以由源節(jié)點(diǎn)102指定為源的輸入接口的最大速度,并傳送到目標(biāo)節(jié)點(diǎn)。優(yōu)選地,諸如節(jié)點(diǎn)104的目標(biāo)節(jié)點(diǎn),應(yīng)該具有最大速度大于用于源節(jié)點(diǎn)102的網(wǎng)絡(luò)接口1021的網(wǎng)絡(luò)接口1041。通過使用單脈沖方法或算法確定可用帶寬來執(zhí)行步驟210。根據(jù)公開的實(shí)施例的可用帶寬,可以使用下面的公式1來確定:其中mk表示第k個(gè)分組簇中測(cè)試分組的數(shù)目(mk≥2),dk表示第k個(gè)分組簇中第一和最后一個(gè)測(cè)試分組之間的以秒為單位的內(nèi)部傳送時(shí)間,以及c表示分組簇的總數(shù)目。因?yàn)闇y(cè)試分組可以不按順序傳送,簇的第一傳送的測(cè)試分組可以不具有簇中的最小序列號(hào)。類似地,簇中的最后的傳送的測(cè)試分組可以不具有簇中的最大的序列號(hào)。更詳細(xì)公開每個(gè)度量的單脈沖方法和算法。為了簡(jiǎn)要,在所有測(cè)量算法中,如果在時(shí)間段dmax[秒](dmax大于在正常運(yùn)行的網(wǎng)絡(luò)中的最大的可能rtt值,例如5秒)中單脈沖測(cè)試沒有完成或序列號(hào)超出其最大值,則源節(jié)點(diǎn)102和目標(biāo)節(jié)點(diǎn)104可立即刪除其狀態(tài)以及該測(cè)試被看作失敗。此外,當(dāng)甚至在接收第一測(cè)試接收分組之前發(fā)送的八位字節(jié)的總數(shù)目達(dá)到閾值nmax時(shí),測(cè)試分組的發(fā)送方停止發(fā)送測(cè)試分組。nmax可這樣設(shè)置,從而nmax/l不大于在序列號(hào)超出其最大值之前發(fā)送的測(cè)試分組的最大數(shù)目。圖4例示了根據(jù)公開的實(shí)施例的測(cè)量往返路徑可用帶寬的實(shí)例性單脈沖序列圖400。在這種情況下,如線402所示的回聲分組和如線404所示的回聲應(yīng)答分組分別用作測(cè)試分組和測(cè)試接收分組?;芈暫突芈晳?yīng)答消息的大小為l。源節(jié)點(diǎn)102至少發(fā)送nmin個(gè)八位字節(jié)的回聲消息402(以速率rt),以及當(dāng)在發(fā)送nmin八位字節(jié)之后接收到回聲應(yīng)答消息時(shí)或當(dāng)發(fā)送nmax八位字節(jié)時(shí)停止發(fā)送。在計(jì)算可用帶寬時(shí),源節(jié)點(diǎn)102使用回聲消息402的到達(dá)時(shí)間作為測(cè)試分組的傳送時(shí)間。在圖4中,丟失第4個(gè)回聲應(yīng)答消息4040,創(chuàng)建2個(gè)分組簇c1={p1,p2,p3}和c2={p5,p6}。因此,這些分組簇可用在使用如上所述的單脈沖方法確定可用帶寬中。在往返路徑可用帶寬測(cè)試的另外的實(shí)施例中,源節(jié)點(diǎn)102可在發(fā)送具有非零序列號(hào)的回聲消息之前,通過發(fā)送一個(gè)或多個(gè)可達(dá)性測(cè)試分組以及等待從目標(biāo)節(jié)點(diǎn)104響應(yīng)于可達(dá)性測(cè)試消息返回的可達(dá)性測(cè)試接收分組來首先檢查目標(biāo)節(jié)點(diǎn)104是否支持單脈沖方法。在這種情況下,具有零(0)序列號(hào)的回聲或數(shù)據(jù)消息用作可達(dá)性測(cè)試消息以及具有零(0)序列號(hào)的回聲應(yīng)答或數(shù)據(jù)確認(rèn)消息用作可達(dá)性測(cè)試接收分組??蛇_(dá)性測(cè)試和可達(dá)性測(cè)試接收分組不用于形成分組簇??蛇_(dá)性測(cè)試分組可包含空有效載荷。在往返路徑可用帶寬測(cè)試的另外的實(shí)施例中,源節(jié)點(diǎn)102可作為明確完成指示分組發(fā)送結(jié)束消息,以及目標(biāo)節(jié)點(diǎn)104可響應(yīng)于從源節(jié)點(diǎn)102接收的結(jié)束消息返回作為明確的完成指示接收分組的結(jié)束消息。圖5例示了根據(jù)公開的實(shí)施例的測(cè)量前向路徑可用帶寬的實(shí)例性單脈沖序列圖500。在這種情況下,數(shù)據(jù)消息502和數(shù)據(jù)確認(rèn)消息504分別用作測(cè)試分組和測(cè)試接收分組。數(shù)據(jù)消息502的大小為l。數(shù)據(jù)確認(rèn)消息不包含有效載荷。源節(jié)點(diǎn)102至少發(fā)送nmin個(gè)八位字節(jié)的數(shù)據(jù)消息502,以及當(dāng)在發(fā)送nmin八位字節(jié)之后接收到數(shù)據(jù)確認(rèn)消息504時(shí)或當(dāng)發(fā)送nmax八位字節(jié)時(shí)停止發(fā)送,發(fā)送結(jié)束消息508以及之后等待報(bào)告消息510。目標(biāo)節(jié)點(diǎn)104等待直到接收到結(jié)束消息508以及之后返回報(bào)告消息510。在圖5中,丟失了第3個(gè)數(shù)據(jù)確認(rèn)消息506。目標(biāo)節(jié)點(diǎn)104使用數(shù)據(jù)消息502作為測(cè)試分組來計(jì)算可用帶寬,以及僅存在一個(gè)形成的表示為c1的分組簇,即c1={p1,p2,p3,p4,p5}。該分組簇于是可用于確定可用帶寬。在前向路徑可用帶寬測(cè)試的另外的實(shí)施例中,源節(jié)點(diǎn)102可在發(fā)送具有非零序列號(hào)的數(shù)據(jù)消息之前,通過發(fā)送一個(gè)或多個(gè)可達(dá)性測(cè)試分組以及等待從目標(biāo)節(jié)點(diǎn)104響應(yīng)于可達(dá)性測(cè)試消息返回的可達(dá)性測(cè)試接收分組來首先檢查目標(biāo)節(jié)點(diǎn)104是否支持單脈沖方法。在這種情況下,具有零(0)序列號(hào)的回聲或數(shù)據(jù)消息用作可達(dá)性測(cè)試消息以及具有零(0)序列號(hào)的回聲應(yīng)答或數(shù)據(jù)確認(rèn)消息用作可達(dá)性測(cè)試接收分組??蛇_(dá)性測(cè)試和可達(dá)性測(cè)試接收分組不用于形成分組簇??蛇_(dá)性測(cè)試分組可包含空有效載荷。在前向路徑可用帶寬測(cè)試的另外的實(shí)施例中,源節(jié)點(diǎn)102可在發(fā)送具有非零序列號(hào)的數(shù)據(jù)消息之前,通過向目標(biāo)節(jié)點(diǎn)104發(fā)送一個(gè)或多個(gè)具有零(0)序列號(hào)的數(shù)據(jù)消息以及等待從目標(biāo)節(jié)點(diǎn)104響應(yīng)于具有零(0)序列號(hào)的數(shù)據(jù)消息返回的數(shù)據(jù)確認(rèn)消息來首先檢查目標(biāo)節(jié)點(diǎn)104是否支持單脈沖方法。在前向路徑可用帶寬測(cè)試的另外的實(shí)施例中,目標(biāo)節(jié)點(diǎn)104可分別返回或發(fā)送數(shù)據(jù)確認(rèn)消息,代替對(duì)于每個(gè)數(shù)據(jù)消息返回?cái)?shù)據(jù)確認(rèn)消息。例如,目標(biāo)節(jié)點(diǎn)104可對(duì)于每10個(gè)數(shù)據(jù)消息發(fā)送數(shù)據(jù)確認(rèn)消息,以及發(fā)送節(jié)點(diǎn)102因此接收數(shù)據(jù)確認(rèn)消息。具有零(0)序列號(hào)的數(shù)據(jù)和數(shù)據(jù)確認(rèn)消息不用于形成分組簇。具有零(0)序列號(hào)的數(shù)據(jù)消息可包含空有效載荷。圖6例示了根據(jù)公開的實(shí)施例的測(cè)量后向路徑可用帶寬的實(shí)例性單脈沖序列圖600。在這種情況下,數(shù)據(jù)消息602和數(shù)據(jù)確認(rèn)消息604分別用作測(cè)試分組和測(cè)試接收分組。數(shù)據(jù)消息602的大小為l。數(shù)據(jù)確認(rèn)消息604不包含有效載荷。源節(jié)點(diǎn)102可發(fā)送開始消息以啟動(dòng)測(cè)試。開始消息606可包含由源節(jié)點(diǎn)102指定的rt。如果開始消息606沒有包含rt,則目標(biāo)節(jié)點(diǎn)104將確定rt的值。.目標(biāo)節(jié)點(diǎn)104至少發(fā)送nmin個(gè)八位字節(jié)的數(shù)據(jù)消息602(以速率rt),以及當(dāng)在發(fā)送nmin八位字節(jié)之后接收到數(shù)據(jù)確認(rèn)消息604時(shí)或當(dāng)發(fā)送nmax八位字節(jié)時(shí)停止發(fā)送,以及發(fā)送結(jié)束消息608。源節(jié)點(diǎn)102等待直到接收到結(jié)束消息608。在圖6中,丟失了第3個(gè)數(shù)據(jù)確認(rèn)消息610,從而創(chuàng)建兩個(gè)分組簇c1={p1,p2}和c2={p4,p5}。于是使用這些分組簇來使用如上所述的單脈沖方法或算法確定計(jì)算可用帶寬。在后向路徑可用帶寬測(cè)試的另外的實(shí)施例中,目標(biāo)節(jié)點(diǎn)104可在發(fā)送具有非零序列號(hào)的數(shù)據(jù)消息之前,通過發(fā)送一個(gè)或多個(gè)可達(dá)性測(cè)試分組以及等待從目標(biāo)節(jié)點(diǎn)104響應(yīng)于可達(dá)性測(cè)試消息返回的可達(dá)性測(cè)試接收分組來首先檢查源節(jié)點(diǎn)102是否支持單脈沖方法。在這種情況下,具有零(0)序列號(hào)的回聲或數(shù)據(jù)消息用作可達(dá)性測(cè)試消息以及具有零(0)序列號(hào)的回聲應(yīng)答或數(shù)據(jù)確認(rèn)消息用作可達(dá)性測(cè)試接收分組??蛇_(dá)性測(cè)試和可達(dá)性測(cè)試接收分組不用于形成分組簇??蛇_(dá)性測(cè)試分組可包含空有效載荷。當(dāng)具有零(0)序列號(hào)的回聲和回聲應(yīng)答消息分別用作可達(dá)性測(cè)試和可達(dá)性測(cè)試接收分組,該消息可在有效載荷中包含隨機(jī)生成的值以確保開始消息的發(fā)送方是與可達(dá)性測(cè)試接收分組的發(fā)送方相同。在后向路徑可用帶寬測(cè)試的另外的實(shí)施例中,源節(jié)點(diǎn)102可分別返回或發(fā)送數(shù)據(jù)確認(rèn)消息,代替對(duì)于每個(gè)數(shù)據(jù)消息返回?cái)?shù)據(jù)確認(rèn)消息。例如,源節(jié)點(diǎn)102可對(duì)于每10個(gè)數(shù)據(jù)消息發(fā)送數(shù)據(jù)確認(rèn)消息。下面的分析可用于單脈沖方法或算法的值和特征,具體地,用在確定所示的公式1中使用的值。br,bf和bb表示往返可用帶寬、前向路徑可用帶寬和后向路徑可用帶寬。b取決于使用的可用帶寬測(cè)量類型表示br,bf或bb(b≤rt)。如果當(dāng)測(cè)量br時(shí)瓶頸鏈路正在共享上行鏈路和下行鏈路之間的帶寬,并且包括在前向路徑和后向路徑中,則保持如下公式2所示的關(guān)系:min(bf,bb)/2≤br≤min(bf,bb).(2)否則,保持如下公式3的關(guān)系:br=min(bf,bb).(3)應(yīng)該注意,測(cè)量br時(shí)的瓶頸鏈路和測(cè)量bf或bb時(shí)的瓶頸鏈路可以是不同的。trtt表示第一測(cè)試分組和測(cè)試接收分組交換(即,在往返路徑可用帶寬測(cè)試情況下具有非零序列號(hào)的第一回聲和回聲應(yīng)答交換以及在定向可用帶寬測(cè)試情況下具有非零序列號(hào)的第一數(shù)據(jù)和數(shù)據(jù)確認(rèn)交換)的rtt。n、nt和nr分別表示發(fā)送的八位字節(jié)的總數(shù)目、測(cè)試分組的八位字節(jié)的總數(shù)目和測(cè)試接收分組的總數(shù)目。術(shù)語表示返回其值為不小于x的最小整數(shù)的整數(shù)的取底函數(shù)。在該分析中,公開的實(shí)施例假定nmin≤nt≤nmax以及nmax/l不大于在序列號(hào)超出其最大值之前發(fā)送的測(cè)試分組的最大數(shù)目。nt通過如下來給出:術(shù)語d表示以秒為單位的測(cè)量延遲。假定沒有分組損耗或亂序的分組,下述說明獲得單脈沖的三種測(cè)試類型中的每個(gè)的n和d。在這種情況下,c=1,因此如下來計(jì)算可用帶寬:b=8(m1-1)l/d1.(5)因?yàn)閙1=nt/l,則如下所示:d1=8(nt-l)/b(6)針對(duì)往返路徑可用帶寬測(cè)試,僅適用回聲和回聲應(yīng)答消息。因此,n=nt+nr.(7)因?yàn)榛芈暫突芈晳?yīng)答消息具有相同的消息長(zhǎng)度,則:nr=nt.(8)因?yàn)楣?和7導(dǎo)出如下:因此,針對(duì)前向路徑可用帶寬測(cè)試,示出如下分析。la、ls和lr分別表示包括udp和ip標(biāo)頭的數(shù)據(jù)確認(rèn)消息、開始消息和報(bào)告消息的長(zhǎng)度。因?yàn)閿?shù)據(jù)確認(rèn)消息沒有包含有效載荷,因此如下所示:nr=ntla/l.(11)因?yàn)槌藬?shù)據(jù)和數(shù)據(jù)確認(rèn)消息使用之外,還使用了開始和報(bào)告消息,則n=nr+nt+ls+lr.(12)因此,td、ta和tr分別表示第一數(shù)據(jù)消息和報(bào)告消息的消息傳送延遲。因?yàn)閠rtt=td+ta,則針對(duì)后向路徑可用帶寬測(cè)試,可示出如下的分析。lf表示包括udp和ip標(biāo)頭的結(jié)束消息的長(zhǎng)度。數(shù)據(jù)確認(rèn)消息不包含有效載荷。除了數(shù)據(jù)和數(shù)據(jù)確認(rèn)消息之外,還使用了開始和結(jié)束消息。因此:nr=ntla/l.(15)使用上述關(guān)系,則因此,錯(cuò)<trtt(2+rt/b).誤!沒有找到參考源。表1總結(jié)了關(guān)于發(fā)送的八位字節(jié)的總數(shù)目以及測(cè)量延遲的數(shù)學(xué)分析。在表1中和分別表示n和d的上限。表1因?yàn)閠rtt與rt獨(dú)立,rt越接近b,和就越小。當(dāng)rt=b時(shí)給出最小的和值。公開的實(shí)施例還提供了單脈沖協(xié)議來執(zhí)行單脈沖方法。sbp使用udp作為傳輸協(xié)議。一對(duì)源和目標(biāo)節(jié)點(diǎn)通過ip源和目的地址以及源和目的udp端口號(hào)來標(biāo)識(shí)。對(duì)于測(cè)量往返路徑可用帶寬測(cè)量,可能使用udp端口7(udp回聲協(xié)議)來承載回聲、回聲應(yīng)答和結(jié)束消息。對(duì)于無需使用明確的完成指示的結(jié)束消息來測(cè)量往返路徑可用帶寬,因?yàn)閕cmp回聲和回聲應(yīng)答消息承載包含在單脈沖回聲和回聲應(yīng)答消息中的相應(yīng)的信息,還可能使用icmp回聲。在圖7中例示了sbp分組700的示例性格式。sbp標(biāo)頭中的所有無符號(hào)整數(shù)字段和有效載荷作為網(wǎng)絡(luò)字節(jié)順序來編碼。sbp消息700包括可變長(zhǎng)度有效載荷之前的4個(gè)八位字節(jié)標(biāo)頭。該標(biāo)頭包括4比特類型字段702、之后的8比特會(huì)話標(biāo)識(shí)符字段704和之后的20比特?zé)o符號(hào)整數(shù)序列號(hào)字段706。對(duì)于trtt=5秒和l=576個(gè)八位字節(jié),通過8(220-1)l/trtt=966366720bps來給出tr的最大值(以及因此最大可測(cè)量可用帶寬)。有效載荷708可以是空。根據(jù)udp標(biāo)頭已知sbp分組大小。類型字段702指示消息類型。錯(cuò)誤!沒有發(fā)現(xiàn)參考源。表2示出了消息類型。類型消息名稱0x0開始0x1結(jié)束0x2報(bào)告0x3數(shù)據(jù)0x4數(shù)據(jù)確認(rèn)0x5回聲0x6回聲應(yīng)答表2會(huì)話標(biāo)識(shí)符字段704是源節(jié)點(diǎn)102分配的隨機(jī)值。在整個(gè)相同測(cè)試運(yùn)轉(zhuǎn)中使用相同的會(huì)話標(biāo)識(shí)符。將序列號(hào)字段706設(shè)置為零(0)用于開始、結(jié)束和報(bào)告消息。這些消息可在最多重轉(zhuǎn)兩次以對(duì)于分組丟失是健壯的。數(shù)據(jù)和回聲消息具有從一(1)開始的序列號(hào)。相應(yīng)的數(shù)據(jù)確認(rèn)和回聲應(yīng)答消息分別具有與數(shù)據(jù)和回聲消息相同的序列號(hào)。在一些實(shí)施例中,其中使用具有零(0)序列號(hào)的回聲(和回聲應(yīng)答)以及數(shù)據(jù)(和數(shù)據(jù)確認(rèn))消息,在發(fā)送具有非零序列號(hào)的回聲和數(shù)據(jù)消息之前來檢查回聲和數(shù)據(jù)消息的接收節(jié)點(diǎn)是否支持單脈沖方法。有效載荷708對(duì)于結(jié)束消息總是為空。圖8例示了根據(jù)公開的實(shí)施例的開始消息分組800的框圖??蛇x的4八位字節(jié)最大傳輸速率字段802包含32比特?zé)o符號(hào)整數(shù),其包括源節(jié)點(diǎn)102請(qǐng)求的以kbps為單位的最大傳輸速率。如上公開了其他字段。圖9例示了根據(jù)公開的實(shí)施例的數(shù)據(jù)消息分組900的框圖??勺冮L(zhǎng)度數(shù)據(jù)字段902包含零或更多八位字節(jié)。如上公開了其他字段。圖10例示了根據(jù)公開的實(shí)施例的回聲或回聲應(yīng)答消息分組1000的框圖??勺冮L(zhǎng)度數(shù)據(jù)字段1002包含零或多個(gè)八位字節(jié)。回聲應(yīng)答消息的可變長(zhǎng)度數(shù)據(jù)字段1002必須從相應(yīng)的回聲消息中復(fù)制。如上公開了其他字段。圖11例示了根據(jù)公開的實(shí)施例的報(bào)告消息分組1100的框圖。測(cè)試持續(xù)時(shí)間字段1102是包含以秒為單位的最大測(cè)試持續(xù)時(shí)間的32比特?zé)o符號(hào)整數(shù)。接收的總的八位字節(jié)字段1104是包含接收的八位字節(jié)的總數(shù)目的32比特?zé)o符號(hào)整數(shù)。成功的分組的數(shù)目1106是包含成功傳送的測(cè)試分組的數(shù)目的32比特?zé)o符號(hào)整數(shù)。本領(lǐng)域技術(shù)人員可以理解,在本發(fā)明的公開的實(shí)施例中可以進(jìn)行修改和改變而不偏離本發(fā)明的精神和范圍。因此,本發(fā)明旨在涵蓋上述公開的實(shí)施例的修改和改變,只要他們落入任意權(quán)利要求和其等同物的范圍中。當(dāng)前第1頁12