可用帶寬測量方法和裝置與流程
2023-04-28 15:19:59 2

本發明實施例涉及網絡技術,尤其涉及一種可用帶寬測量方法和裝置。
背景技術:
近年來,伴隨著網際網路的快速發展,信息傳播的深度和廣度達到了前所未有的程度,正在深刻影響著人們的生活方式。隨著網際網路的迅猛發展,網際網路應用日益廣泛,豐富的多媒體業務的擴展促使帶寬容量發生了巨大的變化,網際網路的帶寬容量隨著技術的快速進步而成倍地增長。眾所周知,傳輸帶寬與用戶體驗有著不可分割的緊密聯繫,因此,如何測量評估帶寬的各項相關指標的是人們非常重視和關注的,可用帶寬測量的結果也為網絡的管理和優化提供了有效的信息。
現有技術中,發送端需要測量一段傳輸路徑上由發送端至該傳輸路徑的接收端的上行方向上的可用帶寬時,需要向接收端發送探測數據包,由接收端計算上行方向上的可用帶寬,再由接收端將計算結果發送給發送端,導致可用帶寬的計算效率低。
技術實現要素:
本發明實施例提供一種可用帶寬測量方法和裝置,以克服現有技術由於接收端計算可用帶寬效率低的問題。
本發明實施例提供一種可用帶寬測量方法,包括:
發送端以第一發包時間間隔依次向待測傳輸路徑的接收端發送至少兩個測試數據包,所述第一發包時間間隔用於使得所述待測傳輸路徑的傳輸瓶頸處的吞吐量達到所述傳輸瓶頸處的瓶頸帶寬;
所述發送端接收所述接收端發送的所述至少兩個測試數據包的響應數據包,各個所述響應數據包的長度小於預設長度閾值;
所述發送端根據所述至少兩個測試數據包的響應數據包的響應時間確定所述待測傳輸路徑在所述發送端至所述接收端的上行方向上的實際接收速率,任一所述測試數據包的響應數據包的響應時間為自所述測試數據包的發送時刻起至所述響應數據包到達所述發送端的時間;
根據所述實際接收速率確定所述待測傳輸路徑在上行方向上的可用帶寬。
進一步地,所述第一發包時間間隔等於所述測試數據包的包長與所述瓶頸帶寬的比值。
進一步地,所述發送端根據所述至少兩個測試數據包的響應數據包的響應時間確定所述待測傳輸路徑在所述發送端至所述接收端的上行方向上的實際接收速率,包括:
根據有效數據包的個數和所述有效數據包的響應時間的總和確定所述接收端的實際接收速率,所述有效數據包為所有響應數據包中響應時間小於所述第一發包時間間隔的響應數據包。
進一步地,所述有效數據包為所有響應數據包中響應時間與所有響應數據包的響應時間的平均值之間的差值小於預設偏差時長的響應數據包。
進一步地,所述根據所述實際接收速率確定所述可用帶寬,包括:
根據所述實際接收速率和所述瓶頸帶寬確定背景流量;
根據所述背景流量和所述瓶頸帶寬確定所述可用帶寬。
進一步地,所述方法具體包括:
根據確定所述實際接收速率R,其中,L為所述測試數據包的包長,Tsum為所有有效數據包的響應時間的總和,N0為所述有效數據包的個數;
根據確定所述待傳輸路徑的背景流量S,其中,Ce為所述瓶頸帶寬;
根據A=Ce-S確定所述可用帶寬A。
進一步地,各個所述測試數據包攜帶用於指示測試可用帶寬的標識,以使所述接收端根據所述測試可用帶寬的標識向所述發送端發送所述測試數據包的響應數據包。
進一步地,所述測試數據包為傳輸控制協議請求同步TCP SYN數據包,所述測試數據包的目的埠為所述接收端未啟用的TCP埠。
進一步地,所述響應數據包為傳輸控制協議復位TCP RST數據包。
本發明第二方面提供一種可用帶寬測量裝置,用於執行第一方面任一所述的方法。
本發明實施例可用帶寬測量方法通過發送測試數據包並接收長度小於預設長度閾值的響應數據包,使得響應數據包在自接收端至發送端的下行方向上的傳輸時延遠遠小於上行方向上的傳輸時延,因而可以將測試數據包的發送時刻至測試數據包的響應數據包返回發送端的雙向傳輸時間近似作為測試數據包在上行方向上的傳輸時間,即,以所述響應時間來確定接收端接收到測試數據包的時間,進而確定待測傳輸路徑上的實際接收速率。本發明的方法實現了一種發送端確定待測傳輸路徑的可用帶寬的方法一種發送端確定待測傳輸路徑的可用帶寬的方法。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明提供的一種可用帶寬測量方法實施例一的流程示意圖;
圖2為傳輸瓶頸處的背景流量和測試數據包的分布示意圖;
圖3為本發明提供的可用帶寬測量方法中測試數據包的傳輸時延示意圖;
圖4為本發明提供的可用帶寬測試方法的驗證實驗環境的示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述。
圖1為本發明提供的一種可用帶寬測量方法實施例一的流程示意圖;圖2為傳輸瓶頸處的背景流量和測試數據包的分布示意圖;圖3為本發明提供的可用帶寬測量方法中測試數據包的傳輸時延示意圖。
如圖1所示,本實施例的步驟包括:
S101:發送端以第一發包時間間隔依次向待測傳輸路徑的接收端發送至少兩個測試數據包。
其中,所述第一發包時間間隔用於使得所述待測傳輸路徑的傳輸瓶頸處的吞吐量達到所述傳輸瓶頸處的瓶頸帶寬。
S102:發送端接收所述接收端發送的所述至少兩個測試數據包的響應數據包,各個所述響應數據包的長度小於預設長度閾值。
S103:發送端根據所述至少兩個測試數據包的響應數據包的響應時間確定待測傳輸路徑在發送端至所述接收端的上行方向上的實際接收速率,任一所述測試數據包的響應數據包的響應時間為自所述測試數據包的發送時刻起至所述響應數據包到達所述發送端的時間。
S104:根據所述實際接收速率確定所述待測傳輸路徑在上行方向上的可用帶寬。
下面首先對本發明實施例的總體思路進行說明:
在傳輸路徑的可用帶寬測量領域中,一條傳輸路徑上的可用帶寬與該傳輸路徑上的當前的背景流量和該傳輸路徑上的傳輸瓶頸處的瓶頸帶寬相關,當瓶頸帶寬已知時,可以根據瓶頸帶寬與背景流量的差值確定待測傳輸路徑的傳輸帶寬。即可用帶寬與瓶頸帶寬和背景流量的關係可表示為如下公式:
A=Ce-S
其中,所述A為可用帶寬,Ce為所述瓶頸帶寬,S為背景流量。
需要說明的是,當待測傳輸鏈路為全雙工鏈路,即上行數據傳輸和下行數據傳輸使用的傳輸資源互不幹擾時,背景流量和瓶頸帶寬可以是與待測傳輸路徑的上行方向同方向的背景流量和瓶頸帶寬,例如,固網的傳輸線路。當待測傳輸鏈路中的一段或者全部路徑為非全雙工鏈路,即上行數據傳輸和下行數據傳輸使用的傳輸資源是競爭關係時,背景流量可以是與上行方向相同或相反的背景流量,瓶頸帶寬可以是上行數據和下行數據共用的傳輸資源的總和。
由於網絡中實時的背景流量通常無法直接獲得,本發明的實施例中,利用網絡瓶頸處的背景流量與網絡可用帶寬的相對比例不變特性可以確定網絡中的背景流量。該特性具體是指,當測試流量和背景流量同時經過傳輸路徑的傳輸瓶頸處時,測試流量和背景流量同時被壓縮,測試流量和背景流量在傳輸瓶頸處的比例與測試流量和背景流量在到達傳輸瓶頸處之前的比例相同。可參考圖2,其中,測試流量的發送帶寬可以等於瓶頸帶寬,以保證測試流量和背景流量在傳輸瓶頸處確定達瓶頸帶寬而被同時壓縮,則背景流量與瓶頸帶寬和壓縮後的測試流量滿足如下公式:
其中,S′為壓縮後的背景流量,R為壓縮後的測試流量,即實際接收速率。
採用S101中根據第一發包時間間隔發送測試數據包的方式,可以獲得使得傳輸瓶頸處達到瓶頸帶寬的測試流量,再根據S103對S102中接收到的各個測試數據包的響應數據包的響應時間可以獲得待測傳輸路徑在上行方向的實際接收速率。
還需要說明的是,S102中的響應數據包的長度可以設置小於預設長度閾值。可選的,可以在待測傳輸路徑對應的傳輸協議的可選的響應數據包中選擇儘可能短的響應數據包。使得響應數據包在自接收端至發送端的下行方向上的傳輸時延遠遠小於上行方向上的傳輸時延,且,較小的響應數據包受到網絡中其他因素影響造成額外延時的可能性較小,因而可以將測試數據包的發送時刻至測試數據包的響應數據包返回發送端的雙向傳輸時間近似作為測試數據包在上行方向上的傳輸時間,即,以所述響應時間來確定接收端接收到測試數據包的時間,進而確定待測傳輸路徑上的實際接收速率。
本發明的方法實現了一種發送端確定待測傳輸路徑的可用帶寬的方法。
下面對本發明實施例的具體實現方法進行詳細說明:
可選的,S101中的所述第一發包時間間隔用於使得所述待測傳輸路徑的傳輸瓶頸處的吞吐量達到所述傳輸瓶頸處的瓶頸帶寬,可以有如下可選的實施方式。
例如,若第一發包時間間隔為t,計劃發送的總的測試數據包的個數為N-1,總的發包時間為T,則當測試數據包的包長為L時,第一發包時間間隔與測試數據包的包長和瓶頸帶寬可以滿足如下公式,
即,所述第一發包時間間隔可以等於所述測試數據包的包長與所述瓶頸帶寬的比值。
可選的,採用固定的第一發包時間間隔發送測試數據包,即在發送端接收到在第一發包時間間隔到達前接收到響應數據包時,也不提前發送下一個測試數據包。特別的,在應用於無線傳輸的傳輸中,可以有效避免無線信道中的數據包衝突,導致數據包發送失敗或延遲。可選的,S102中的預設長度閾值例如可以是56位元組、80位元組、100位元組等,或者,所述預設長度閾值可以為所述測試數據包的長度除以預設的倍數,例如,20倍、30倍等。
可選的,所述測試數據包可以攜帶指示測試可用帶寬的標識,所述接收端在接收到所述測試數據包是用於測試可用帶寬的標識的數據包時,返回所述長度小於預設長度閾值的響應數據包。
可選的,可參考圖3,所述測試數據包可以為傳輸控制協議(Transmission Control Protocol,簡稱TCP)中的請求同步數據包TCP SYN數據包,所述測試數據包的目的埠可以為所述接收端未啟用的TCP埠。相應地,所述響應數據包可以為用於關閉或復位異常連接的TCP RST數據包。在TCP協議中規定了接收端在接收到發送端向接收端自身未啟用的埠發送的TCP SYN數據包時,接收端向發送端發送TCP RST數據包,TCP RST包的字節長度為56位元組。這種方式可以實現可用帶寬測量僅需發送端進行單端部署,而不需要接收端根據測試數據包中的測試可用帶寬的標識,及發送端單端可完成可用帶寬的測量而不需要接收端的特殊設置。進一步地,本發明實施例的方法可以不用關注下層傳輸協議,只要上層是TCP即可,因此可以對最後一跳是無線傳輸的節點,或者下層傳輸協議不對稱的節點間進行可用帶寬的測量。另外,對於待測傳輸路徑存在節點與節點間數據的傳輸基於802.11協議傳輸時,即上行數據傳輸使用的資源和反方向的下行數據傳輸使用的資源是競爭關係時,由於實際接收速率仍然可以根據環回的響應時間計算得到,因此,本發明提供的可用帶寬測量方法可以適應於如802.11協議中的非全雙傳輸方式的待測傳輸鏈路的測量。
可選的,所述測試數據包為TCP層的數據包時,測試數據包的長度可以小於或者等於1500位元組。這是因為當測試數據包大於1500位元組時會在數據鏈路層被分包,且測試數據包的長度越長,傳輸中的單位數量的TCP層數據包對應的其他開銷較少,因此,計算的可用帶寬越準確。
可選的,S103中發送端根據所述至少兩個測試數據包的響應數據包的響應時間確定所述待測傳輸路徑在所述發送端至所述接收端的上行方向上的實際接收速率,可以包括:
根據有效數據包的個數和所述有效數據包的響應時間的總和確定所述接收端的實際接收速率,所述有效數據包為所有響應數據包中響應時間小於所述第一發包時間間隔的響應數據包。
舉例來說,可以根據所述測試數據包的包長與所述各個響應數據包的響應時間間隔的平均值的比值,確定所述傳輸瓶頸處的實際發送帶寬。即,
其中,L為所述測試數據包的包長,Tsum為所有有效數據包的響應時間的總和,N0為所述有效數據包的個數。
需要說明的是,當測試數據包為TCP數據包時,測試數據包的大小可以為1MTU,即1500位元組,則測試數據包的包長為1500*8位。
可選的,所述有效數據包可以為所有響應數據包中響應時間與所有響應數據包的響應時間的平均值之間的差值小於預設偏差時長的響應數據包。也就是說,可以在有效數據包的統計中剔除一些響應時間有明顯異常的數據。可選的,預設偏差時長可以是第一發包時間間隔的1/10至1/3。
S104中根據實際接收速率確定待測傳輸路徑在上行方向上的可用帶寬。可以包括:根據所述實際接收速率和所述瓶頸帶寬確定背景流量;根據所述背景流量和所述瓶頸帶寬確定所述可用帶寬。
下面採用具體的例子對本發明提供的可用帶寬測量方法進行詳細說明。
在本實施例的方法中,發送端可以以第一間隔時間t依次向所述接收端發送N-1個測試數據包,並記錄各個響應數據包的響應時間間隔,將第i個測試數據包對應第i個響應數據包的響應時間間隔為Ii,其中,t滿足L為所述測試數據包的包長,Ce為所述瓶頸帶寬。則可以採用如下公式和步驟確定所述可用帶寬:
根據確定所述實際接收速率R,其中,L為所述測試數據包的包長,Tsum為所有有效數據包的響應時間的總和,N0為所述有效數據包的個數;
根據確定所述待傳輸路徑的背景流量S,其中,Ce為所述瓶頸帶寬;
根據A=Ce-S確定所述可用帶寬A。
可選的,可以在有效數據包的個數低於預設的有效性數據個數閾值時,重新發送一組測試數據包進行測試,有效性數據個數閾值例如可以是總的發包個數的2/3,以獲取更準確的數據。
可選的,可以進行M輪測試,每輪測試發送N-1個測試數據包,對每輪測試獲得的可用帶寬,可以根據多輪可用帶寬測試數據的平均值確定所述待測傳輸路徑的可用帶寬。
下面通過驗證實驗環境對本發明提供的可用帶寬測試方法的準確性進行驗證。
圖4為本發明提供的可用帶寬測試方法的驗證實驗環境的示意圖。
如圖4所示,測試實驗環境可以包括四臺測試計算機:作為發送端的可用帶寬測試計算機(RT-WABest Server)、用於產生背景流量的流量發生器計算機(Traffic generator)、客戶端(Client)A計算機與Client B計算機以及接入點(Access Point)設備。發送端與流量發生器計算機接入區域網(Local Area Network,簡稱LAN)中,ClientA與Client B通過接入點也接入LAN中,接入點可以為無線路由器。可選的,發送端和流量發生器接入區域網時的瓶頸帶寬可以為100Mbps。可選的,這四臺計算機可以運行烏班圖Ubuntu Linux作業系統,也可以運行其他的作業系統,本發明對此不做限制。
舉例來說,對待測傳輸路徑的上行方向進行可用帶寬測量,測試流量(Probe Traffic)可以通過從發送端向Client A發送測試數據包產生,背景流量可以通過流量發生器計算機向Client B發送數據包產生,例如,同向背景流量1(Crossing Traffic1),也可以通過發送端向Client B發送數據包產生,例如,同向背景流量2(Crossing Traffic2)。可選的,當待測傳輸路徑為非全雙工鏈路時,還可以通過Client B向流量發生器計算機發送數據包產生與上行方向相反方向的背向背景流量,需要說明的是,背向背景流量是與測試過程中發送的測試數據包相互競爭的背景流量。
搭建驗證試驗環境後,針對幾種可能的背景流量的場景對本發明提供的可用帶寬測量方法進行驗證。
可選的,可以在測試環境中完全沒有背景流量時,測試從RT-WABest Server到Client A的傳輸鏈路的瓶頸帶寬,即獲取Ce。可以多次測量,並記錄瓶頸帶寬的測試結果數據。在實際的真實網絡中,也可以通過其他方式獲取傳輸路徑的瓶頸帶寬,本發明不做限制。
表1為各種背景流量的測試場景下採用本發明提供的可用帶寬測量方法測得的可用帶寬和真實的可用帶寬的對比數據。
參考表1所示,場景1中背景流量為0。場景2中背景流量可以由同向背景流量1提供,其中同向背景流量1分別為10、20、30、50、70Mbps。場景3中背景流量可以由同向背景流量2提供,其中同向背景流量2分別為10、20、30、50、70Mbps。
針對各個測試子場景,分別測試從RT-WABest Server到Client A的傳輸鏈路的可用帶寬的數值(RT-WABest),然後可以將其與真實的可用帶寬數值(Ground Truth)進行比較來判斷本發明測量方法的準確性。
表1
從上述測試結果數據可以獲知:本發明測量方法在各種網絡狀況下,進行測量得到的結果數據與真實的可用帶寬之間的誤差均在可接受的誤差範圍30%之內。由此可見,本發明提供的可用帶寬測量方法在背景流量不超過瓶頸帶寬的70%的場景下具有較高的準確率。
還需要說明的是,當背景流量過大時,例如背景流量超過瓶頸帶寬的70%時,背景流量極易導致傳輸的數據包出現嚴重的延遲甚至丟包,進而可能導致有效數據包個數大量減少,可能導致採用本發明提供的可用帶寬測量方法獲得的可用帶寬的測試結果出現一定的波動,但由於其他測量方法也會存在使用本發明測量方法得到的測量結果數值會發生相應波動,對於Wbest或其他測量方法也均有類似的情況發生,因此,本發明測量在背景流量較大時方法得到的測試結果數據的準確度不低於其他測量方法,即本發明提供的可用帶寬測量方法在背景流量為0至背景流量較大時均具有很好的實用性與可行性。
本發明還提供的一種可用帶寬測量裝置的結構,本實施例提供的可用帶寬測量裝置可以用於執行圖1所示任一所述的可用帶寬測量方法。其技術方案細節和技術效果與圖1所示實施例類似,此處不再贅述。
本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成。前述的程序可以存儲於一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光碟等各種可以存儲程序代碼的介質。
最後應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。