本發(fā)明涉及通信技術應用領域,具體而言,涉及一種帶寬估計的方法、裝置和系統(tǒng)。
背景技術:
在視頻傳輸中的源端和目的端的傳輸圖像的流暢性受許多因素的影響,比如編解碼速率,以及圖像傳輸速率,本發(fā)明就是在研究網(wǎng)絡中圖像傳輸速率的影響因素-現(xiàn)有網(wǎng)絡帶寬-的前提下,提出一種對現(xiàn)有帶寬測量算法pathchirp的改進,進而使其能夠在視頻傳輸中為發(fā)送端發(fā)送視頻的發(fā)送速率提供一個可以使用的數(shù)值,使其能在視頻傳輸中盡可能傳輸最大的數(shù)據(jù)來量,從而使其接收端處理視頻更加流暢,不會出現(xiàn)接收端處于饑餓狀態(tài),使接收端視頻顯示不流暢。目前可用帶寬的估計有很多種方式,總結現(xiàn)存的可用于網(wǎng)絡中可用帶寬估計的方法,可以分為三類:
基于探測的方法、基于感知的方法和基于模型的方法。
基于探測的方法是指節(jié)點通過發(fā)送端到端的探測包來估計路徑可用帶寬的方法。這些方法原理上都是基于探測包間距模型或者探測包速率模型。重點介紹一下探測方法(本發(fā)明的所采用的):首先建立發(fā)送探測包間距和接收探測包間距跟可用帶寬間的數(shù)學關系,然后測量和記錄發(fā)送探測包間距和接收探測包間距來獲取路徑的可用帶寬。
而模型則采用了更直觀的方法,其原理如下:如果探測包的發(fā)送速率小于路徑的帶寬,那么探測包將經(jīng)歷很小的端到端延時;相反,如果探測包的發(fā)送速率大于路徑的可用帶寬,探測包就會在節(jié)點的發(fā)送隊列中累積,從而造成端到端延時增加。
因而通過觀察探測包的延時變化,確定開始發(fā)生延時增加時探測包的發(fā)送速率也就得到了路徑的可用帶寬。另外,模型也可以跟模型聯(lián)合使用。在過去的十年內(nèi),研究人員提出了許多基于探測的可用帶寬獲取方法,這其中比較有代表性的工作有Spruce,topp,pathchirp,IGI,pathload等,這些方法的發(fā)展過程主要是為了建立探測包間距和可用帶寬間更準確的數(shù)學關系,從而提高可用帶寬估計的準確度。
其中,pathchirp重復做若干次以下的過程以后再得出平均帶寬,每次利用一系列發(fā)送速率加權平均來近似代表現(xiàn)有的帶寬,其具體做法是自我誘導阻塞的方式快速占用鏈路帶寬,使得鏈路出現(xiàn)延時。它首先根據(jù)預先假設的帶寬(理論上的)上下限來,發(fā)送速率指數(shù)遞增因子,計算出要發(fā)送的測試包裹數(shù)量,然后以指數(shù)遞增方式發(fā)送測試數(shù)據(jù)包裹并且打下時間戳記錄在包裹中,同樣另一端每接收一個數(shù)據(jù)包就打一個時間戳,記錄在包裹里面。之后計算出從發(fā)送到接收到數(shù)據(jù)包的時間,進而得到傳輸相鄰測試數(shù)據(jù)包的時間延時。最終從n個測試數(shù)據(jù)包里得n-1個時間延時,然后依次遍歷這n-1個延時找到一系列的excursion。
Excursion的定義:
一個延時增加的點,設為一個excursion的開始,excursion的結束點定義為第一個滿足如下:
其中q(j)代表發(fā)送第j數(shù)據(jù)包與發(fā)送第j-1個數(shù)據(jù)包的延時。
其中j可能大于n-1,此時稱為非終止excursion;
然后對于根據(jù)延時所處的區(qū)間將n個發(fā)送包裹進行分類:
情況1,屬于終止excursion的包裹;
情況2,屬于非終止excuision的發(fā)送包裹;
情況3,其他包裹。
對于情況1帶寬做如下估計如果q(K)<q(k+1)那么Ek=Rk(其中Rk表示第k個包裹的發(fā)送速率。Ek發(fā)送第k次的包裹時鏈路的估計帶寬),對于情況2帶寬做如下的估計Ek=Ri(Ri表示這一次excursion的開始包裹的發(fā)送速率),對于情況3,包括哪些不屬于excursion的包裹,以及屬于excursion但不滿足相應條件的包裹,對于這些包裹,其的帶寬估計為Ek=Ri(Ri為非終止chirp的剛開始的發(fā)送速率)。
但是上述探測方法中Pathcirp的探測方法時間開銷比較大,因為采用的udp方式來測試網(wǎng)絡的極限帶寬,由于udp是不保證數(shù)據(jù)的正確性的,可能出現(xiàn)丟包的可能,對這種情況pathchirp測試工具采用丟棄整個chirp重新發(fā)送整個chirp。
這不僅會使網(wǎng)絡產(chǎn)生額外的數(shù)據(jù)流這樣影響網(wǎng)絡帶寬的精確度,同時也會增加測量的時間。
其次,pathchirp探測方法的探測包的chirp次數(shù)是恒定的,這與實際不符合,比如24:00-6:00帶寬比較恒定,猝發(fā)式傳輸比較少,因此測量可以減少chirp次數(shù)。白天網(wǎng)絡情況復雜因此還按正常考慮。
最后,pathchirp帶寬測量方案在實際的視頻傳輸考慮不足,不如在實際帶寬傳輸源端和目的端,不僅僅受限于網(wǎng)絡情況,同時還受限于本地主機的性能,假如網(wǎng)絡帶寬很好但是本地主機的內(nèi)存,cpu,等使用率都比較高那么發(fā)送端如果根據(jù)現(xiàn)有的網(wǎng)絡帶寬良好的網(wǎng)絡帶寬來發(fā)送數(shù)據(jù),這樣在接收端會處理不急時,導致視頻顯示不良好,通過發(fā)送接收端的本地信息就會進一步在發(fā)送源端,以最優(yōu)發(fā)送速率的來發(fā)送速率,這樣會使網(wǎng)絡以及主機協(xié)調(diào)到一個最優(yōu)的狀態(tài)。
針對上述由于相關技術提供的探測方法在實現(xiàn)過程中存在測量精度低的問題,目前尚未提出有效的解決方案。
技術實現(xiàn)要素:
本發(fā)明實施例提供了一種帶寬估計的方法、裝置和系統(tǒng),以至少解決由于相關技術提供的探測方法在實現(xiàn)過程中存在測量精度低的技術問題。
根據(jù)本發(fā)明實施例的一個方面,提供了一種帶寬估計的方法,包括:接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包;在接收帶寬探測數(shù)據(jù)包之后,遍歷帶寬探測數(shù)據(jù)包,并判斷接收帶寬探測數(shù)據(jù)包的次數(shù)是否滿足預設條件;依據(jù)判斷結果得到對應的帶寬。
可選的,遍歷帶寬探測數(shù)據(jù)包,并判斷接收帶寬探測數(shù)據(jù)包的次數(shù)是否滿足預設條件包括:判斷次數(shù)是否為預設閾值;或,判斷次數(shù)是否等于0。
進一步地,可選的,依據(jù)判斷結果得到對應的帶寬包括:在判斷結果為次數(shù)等于預設閾值的情況下,輸出次數(shù)對應的加權帶寬。
可選的,在判斷結果為次數(shù)等于預設閾值的情況下,輸出次數(shù)對應的加權帶寬包括:計算每對相鄰帶寬探測數(shù)據(jù)包之間的延時,并依據(jù)延時進行分組,得到延時數(shù)組;遍歷延時數(shù)組,并判斷是否遍歷完延時數(shù)組;在判斷結果為是的情況下,計算加權平均帶寬;分析帶寬探測數(shù)據(jù)包得到內(nèi)存的平均使用率;依據(jù)加權平均帶寬和平均使用率,得到加權帶寬。
可選的,依據(jù)判斷結果得到對應的帶寬包括:在判斷結果為次數(shù)等于0,或,次數(shù)大于0,且次數(shù)小于預設閾值的情況下,執(zhí)行遍歷帶寬探測數(shù)據(jù)包,并計算相鄰加權帶寬的均方差。
進一步地,可選的,在判斷結果為次數(shù)等于0,或,次數(shù)大于0,且次數(shù)小于預設閾值的情況下,執(zhí)行遍歷帶寬探測數(shù)據(jù)包,并計算相鄰加權帶寬的均方差包括:計算每對相鄰帶寬探測數(shù)據(jù)包之間的延時,并依據(jù)延時進行分組,得到延時數(shù)組;遍歷延時數(shù)組,并判斷是否遍歷完延時數(shù)組;在判斷結果為否的情況下,判斷延時數(shù)組是否屬于預設偏移區(qū)間;在判斷延時數(shù)組不屬于預設偏移區(qū)間的情況下,加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬;在判斷延時數(shù)組屬于預設偏移區(qū)間的情況下,判斷延時數(shù)組是否屬于預設終止偏移區(qū)間。
可選的,判斷延時數(shù)組是否屬于預設終止偏移區(qū)間包括:在判斷延時數(shù)組不屬于預設終止偏移區(qū)間的情況下,加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬;在判斷延時數(shù)組屬于預設終止偏移區(qū)間的情況下,判斷第k個延時數(shù)組是否小于第k+1個延時數(shù)組;在判斷結果為是的情況下,得到加權帶寬為第k個延時數(shù)組對應的帶寬;在判斷結果為否的情況下,得到加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬。
可選的,在接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包之前,該方法還包括:向輔助單元發(fā)送測試帶寬請求消息;接收輔助單元依據(jù)測試帶寬請求消息返回的配置文件;依據(jù)配置文件生成配置數(shù)據(jù),并將配置數(shù)據(jù)發(fā)送至輔助單元。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種帶寬估計的裝置,包括:接收模塊,用于接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包;遍歷模塊,用于在接收帶寬探測數(shù)據(jù)包之后,遍歷帶寬探測數(shù)據(jù)包,并判斷接收帶寬探測數(shù)據(jù)包的次數(shù)是否滿足預設條件;匹配模塊,用于依據(jù)判斷結果得到對應的帶寬。
可選的,遍歷模塊包括:第一判斷單元,用于判斷次數(shù)是否為預設閾值;或,第二判斷單元,用于判斷次數(shù)是否等于0。
進一步地,可選的,匹配模塊包括:第一匹配單元,用于在判斷結果為次數(shù)等于預設閾值的情況下,輸出次數(shù)對應的加權帶寬。
可選的,第一匹配單元包括:第一計算子單元,用于計算每對相鄰帶寬探測數(shù)據(jù)包之間的延時,并依據(jù)延時進行分組,得到延時數(shù)組;第一遍歷子單元,用于遍歷延時數(shù)組,并判斷是否遍歷完延時數(shù)組;第二計算子單元,用于在判斷結果為是的情況下,計算加權平均帶寬;分析子單元,用于分析帶寬探測數(shù)據(jù)包得到內(nèi)存的平均使用率;第三計算子單元,用于依據(jù)加權平均帶寬和平均使用率,得到加權帶寬。
可選的,匹配模塊包括:第二匹配單元,用于在判斷結果為次數(shù)等于0,或,次數(shù)大于0,且次數(shù)小于預設閾值的情況下,執(zhí)行遍歷帶寬探測數(shù)據(jù)包,并計算相鄰加權帶寬的均方差。
進一步地,可選的,第二匹配單元包括:第四計算子單元,用于計算每對相鄰帶寬探測數(shù)據(jù)包之間的延時,并依據(jù)延時進行分組,得到延時數(shù)組;第二遍歷子單元,用于遍歷延時數(shù)組,并判斷是否遍歷完延時數(shù)組;第一判斷子單元,用于在判斷結果為否的情況下,判斷延時數(shù)組是否屬于預設偏移區(qū)間;匹配子單元,用于在判斷延時數(shù)組不屬于預設偏移區(qū)間的情況下,加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬;第二判斷子單元,用于在判斷延時數(shù)組屬于預設偏移區(qū)間的情況下,判斷延時數(shù)組是否屬于預設終止偏移區(qū)間。
可選的,第二判斷子單元,用于在判斷延時數(shù)組不屬于預設終止偏移區(qū)間的情況下,加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬;在判斷延時數(shù)組屬于預設終止偏移區(qū)間的情況下,判斷第k個延時數(shù)組是否小于第k+1個延時數(shù)組;在判斷結果為是的情況下,得到加權帶寬為第k個延時數(shù)組對應的帶寬;在判斷結果為否的情況下,得到加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬。
可選的,該裝置還包括:第一發(fā)送模塊,用于在接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包之前,向輔助單元發(fā)送測試帶寬請求消息;文件接收模塊,用于接收輔助單元依據(jù)測試帶寬請求消息返回的配置文件;第二發(fā)送模塊,用于依據(jù)配置文件生成配置數(shù)據(jù),并將配置數(shù)據(jù)發(fā)送至輔助單元。
根據(jù)本發(fā)明實施例的又一方面,還提供了一種帶寬估計的系統(tǒng),包括:輔助單元和計算單元,輔助單元與計算單元連接,其中,輔助單元,用于依據(jù)當前時間確定發(fā)送帶寬探測數(shù)據(jù)包的數(shù)量,并將帶寬探測數(shù)據(jù)包發(fā)送至計算單元;計算單元,用于接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包,得到當前帶寬;其中,計算單元包括:上述一種帶寬估計的裝置。
在本發(fā)明實施例中,通過接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包;在接收帶寬探測數(shù)據(jù)包之后,遍歷帶寬探測數(shù)據(jù)包,并判斷接收帶寬探測數(shù)據(jù)包的次數(shù)是否滿足預設條件;依據(jù)判斷結果得到對應的帶寬,達到了有效測算帶寬的目的,從而實現(xiàn)了提升帶寬的測量精度的技術效果,進而解決了由于相關技術提供的探測方法在實現(xiàn)過程中存在測量精度低的技術問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的帶寬估計的方法的流程示意圖;
圖2是根據(jù)本發(fā)明實施例的一種帶寬估計的方法的交互示意圖;
圖3是根據(jù)本發(fā)明實施例的一種帶寬估計的方法的流程示意圖;
圖4是根據(jù)本發(fā)明實施例的一種帶寬估計的方法中計算要發(fā)送的包裹數(shù)量的流程示意圖;
圖5是根據(jù)本發(fā)明實施例的帶寬估計的裝置的結構示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。
實施例一
根據(jù)本發(fā)明實施例,提供了一種帶寬估計的方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實施例的帶寬估計的方法的流程示意圖,如圖1所示,該方法包括如下步驟:
步驟S102,接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包;
步驟S104,在接收帶寬探測數(shù)據(jù)包之后,遍歷帶寬探測數(shù)據(jù)包,并判斷接收帶寬探測數(shù)據(jù)包的次數(shù)是否滿足預設條件;
步驟S106,依據(jù)判斷結果得到對應的帶寬。
本申請實施例提供的帶寬估計的方法中,通過接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包;在接收帶寬探測數(shù)據(jù)包之后,遍歷帶寬探測數(shù)據(jù)包,并判斷接收帶寬探測數(shù)據(jù)包的次數(shù)是否滿足預設條件;依據(jù)判斷結果得到對應的帶寬,達到了有效測算帶寬的目的,從而實現(xiàn)了提升帶寬的測量精度的技術效果,進而解決了由于相關技術提供的探測方法在實現(xiàn)過程中存在測量精度低的技術問題。
可選的,步驟S104中遍歷帶寬探測數(shù)據(jù)包,并判斷接收帶寬探測數(shù)據(jù)包的次數(shù)是否滿足預設條件包括:
Step1,判斷次數(shù)是否為預設閾值;
或,
Step2,判斷次數(shù)是否等于0。
進一步地,可選的,步驟S106中依據(jù)判斷結果得到對應的帶寬包括:
Step1,在判斷結果為次數(shù)等于預設閾值的情況下,輸出次數(shù)對應的加權帶寬。
可選的,步驟S106中的Step1中在判斷結果為次數(shù)等于預設閾值的情況下,輸出次數(shù)對應的加權帶寬包括:
步驟A,計算每對相鄰帶寬探測數(shù)據(jù)包之間的延時,并依據(jù)延時進行分組,得到延時數(shù)組;
步驟B,遍歷延時數(shù)組,并判斷是否遍歷完延時數(shù)組;
步驟C,在判斷結果為是的情況下,計算加權平均帶寬;
步驟D,分析帶寬探測數(shù)據(jù)包得到內(nèi)存的平均使用率;
步驟E,依據(jù)加權平均帶寬和平均使用率,得到加權帶寬。
可選的,步驟S106中依據(jù)判斷結果得到對應的帶寬包括:
Step1’,在判斷結果為次數(shù)等于0,或,次數(shù)大于0,且次數(shù)小于預設閾值的情況下,執(zhí)行遍歷帶寬探測數(shù)據(jù)包,并計算相鄰加權帶寬的均方差。
進一步地,可選的,步驟S106中的Step1’中在判斷結果為次數(shù)等于0,或,次數(shù)大于0,且次數(shù)小于預設閾值的情況下,執(zhí)行遍歷帶寬探測數(shù)據(jù)包,并計算相鄰加權帶寬的均方差包括:
步驟A’,計算每對相鄰帶寬探測數(shù)據(jù)包之間的延時,并依據(jù)延時進行分組,得到延時數(shù)組;
步驟B’,遍歷延時數(shù)組,并判斷是否遍歷完延時數(shù)組;
步驟C’,在判斷結果為否的情況下,判斷延時數(shù)組是否屬于預設偏移區(qū)間;
步驟D’,在判斷延時數(shù)組不屬于預設偏移區(qū)間的情況下,加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬;
步驟E’,在判斷延時數(shù)組屬于預設偏移區(qū)間的情況下,判斷延時數(shù)組是否屬于預設終止偏移區(qū)間。
可選的,步驟S106中的Step1’中的步驟C’中判斷延時數(shù)組是否屬于預設終止偏移區(qū)間包括:
步驟1,在判斷延時數(shù)組不屬于預設終止偏移區(qū)間的情況下,加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬;
步驟2,在判斷延時數(shù)組屬于預設終止偏移區(qū)間的情況下,判斷第k個延時數(shù)組是否小于第k+1個延時數(shù)組;
步驟3,在判斷結果為是的情況下,得到加權帶寬為第k個延時數(shù)組對應的帶寬;
步驟4,在判斷結果為否的情況下,得到加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬。
可選的,在步驟S102中接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包之前,本申請實施例提供的帶寬估計的方法還包括:
步驟S99,向輔助單元發(fā)送測試帶寬請求消息;
步驟S100,接收輔助單元依據(jù)測試帶寬請求消息返回的配置文件;
步驟S101,依據(jù)配置文件生成配置數(shù)據(jù),并將配置數(shù)據(jù)發(fā)送至輔助單元。
綜上,本申請實施例提供的帶寬估計的方法具體如下:
圖2是根據(jù)本發(fā)明實施例的一種帶寬估計的方法的交互示意圖,如圖2所示,帶寬預測工具分為兩部分:輔助單元與計算單元模塊,其中,
輔助單元:
輔助單元主要是根據(jù)當前時間確定發(fā)送測試包裹的數(shù)量,發(fā)送給計算單元,供計算單元得到網(wǎng)絡帶寬。
計算單元:
計算單元接收來自輔助單元的探測包,并進行計算得到帶寬。
具體步驟如圖2所示:
(1)計算單元通過tcp協(xié)議向輔助端發(fā)送帶寬測試請求,輔助端發(fā)送一些探測包的配置給計算單元;
(2)計算單元配置好本地,初始化接收chir次數(shù)N=0,做好接收數(shù)據(jù)的準備。并向輔助單元發(fā)出準備好請求;
(自適應的調(diào)整發(fā)送測試數(shù)據(jù)包的次數(shù),這樣會減小網(wǎng)絡帶寬的測量時間。通過以下步驟體現(xiàn));
(3)輔助單元獲取本地主機的一些視頻處理相關的參數(shù)(Gpu使用率,顯存使用率,cpu使用率,內(nèi)存使用率等;
和發(fā)送時間戳,打包在chirp數(shù)據(jù)包中,開始發(fā)送探測包裹;
(4)計算單元接收chirp包裹后通過圖3計算加權估計帶寬,圖3是根據(jù)本發(fā)明實施例的一種帶寬估計的方法的流程示意圖,如果N不等于0,那么計算本次加權帶寬與上次加權帶寬的均方差Δτ,如果其小于某一閾值(目前取0.05)輸出前一次與這一次的在測量時間上的加權平均帶寬然后轉(zhuǎn)向(6);
(5)根據(jù)N的值分三種情況:
i如果N=0,N加1,轉(zhuǎn)向(3);
ii如果N>0且N<5,N加1,轉(zhuǎn)向(3);
iii如果N=5那么輸出最后一次的加權帶寬,轉(zhuǎn)向(6);
(6)結束。
綜上,圖3中把延時數(shù)組分成區(qū)域的依據(jù)是:
Excursion的定義:
在延時數(shù)組中,某一個延時增加的點,設為一個excursion的開始,excursion的結束點定義為第一個滿足如下:
其中q(j)代表發(fā)送第j數(shù)據(jù)包與發(fā)送第j-1個數(shù)據(jù)包的延時。
其中j可能大于n-1,此時稱為非終止excursion
然后對于根據(jù)延時所處的區(qū)間將n個發(fā)送包裹進行分類:
屬于終止excursion的包裹
屬于非終止excuision的發(fā)送包裹
其他包裹。
其中,圖3中Ek:發(fā)送第k次的包裹時鏈路的估計帶寬
Rl:RI表示第I個包裹的發(fā)送速率
qk:延時數(shù)組的第K個延時。
excursion:偏移區(qū)間。
計算要發(fā)送的包裹數(shù)量流程見流程圖4,圖4是根據(jù)本發(fā)明實施例的一種帶寬估計的方法中計算要發(fā)送的包裹數(shù)量的流程示意圖。提供發(fā)送一個組數(shù)據(jù)包裹的個數(shù),這個個數(shù)的由來。發(fā)送速率不斷地乘以遞增因子,直到達到最大的發(fā)送因子,在這期間不斷地遞增圖3中Sum的值,最后發(fā)送速率達到最大值,這時的Sum就是要發(fā)送的包裹個數(shù)。具體如下:
(1)程序事先輸入鏈路的最高傳輸帶寬以及最低傳輸帶寬,包裹發(fā)送速率的遞增因子,發(fā)送速率r初始化為當前的最低速率。
(2)以r速率開始發(fā)送,發(fā)送后下一次的發(fā)送速率為當前發(fā)送速率的乘以速率遞增因子,發(fā)送次數(shù)加1。
判斷發(fā)送速率是否小于最高發(fā)送速率,如果小于繼續(xù)繼續(xù)(2),否則推出,輸出發(fā)送次數(shù)。
實施例二
根據(jù)本發(fā)明實施例的另一方面,還提供了一種帶寬估計的裝置,圖5是根據(jù)本發(fā)明實施例的帶寬估計的裝置的結構示意圖,如圖5所示,包括:
接收模塊52,用于接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包;遍歷模塊54,用于在接收帶寬探測數(shù)據(jù)包之后,遍歷帶寬探測數(shù)據(jù)包,并判斷接收帶寬探測數(shù)據(jù)包的次數(shù)是否滿足預設條件;匹配模塊56,用于依據(jù)判斷結果得到對應的帶寬。
本申請實施例提供的帶寬估計的裝置中,通過接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包;在接收帶寬探測數(shù)據(jù)包之后,遍歷帶寬探測數(shù)據(jù)包,并判斷接收帶寬探測數(shù)據(jù)包的次數(shù)是否滿足預設條件;依據(jù)判斷結果得到對應的帶寬,達到了有效測算帶寬的目的,從而實現(xiàn)了提升帶寬的測量精度的技術效果,進而解決了由于相關技術提供的探測方法在實現(xiàn)過程中存在測量精度低的技術問題。
可選的,遍歷模塊54包括:第一判斷單元,用于判斷次數(shù)是否為預設閾值;或,第二判斷單元,用于判斷次數(shù)是否等于0。
進一步地,可選的,匹配模塊56包括:第一匹配單元,用于在判斷結果為次數(shù)等于預設閾值的情況下,輸出次數(shù)對應的加權帶寬。
可選的,第一匹配單元包括:第一計算子單元,用于計算每對相鄰帶寬探測數(shù)據(jù)包之間的延時,并依據(jù)延時進行分組,得到延時數(shù)組;第一遍歷子單元,用于遍歷延時數(shù)組,并判斷是否遍歷完延時數(shù)組;第二計算子單元,用于在判斷結果為是的情況下,計算加權平均帶寬;分析子單元,用于分析帶寬探測數(shù)據(jù)包得到內(nèi)存的平均使用率;第三計算子單元,用于依據(jù)加權平均帶寬和平均使用率,得到加權帶寬。
可選的,匹配模塊56包括:第二匹配單元,用于在判斷結果為次數(shù)等于0,或,次數(shù)大于0,且次數(shù)小于預設閾值的情況下,執(zhí)行遍歷帶寬探測數(shù)據(jù)包,并計算相鄰加權帶寬的均方差。
進一步地,可選的,第二匹配單元包括:第四計算子單元,用于計算每對相鄰帶寬探測數(shù)據(jù)包之間的延時,并依據(jù)延時進行分組,得到延時數(shù)組;第二遍歷子單元,用于遍歷延時數(shù)組,并判斷是否遍歷完延時數(shù)組;第一判斷子單元,用于在判斷結果為否的情況下,判斷延時數(shù)組是否屬于預設偏移區(qū)間;匹配子單元,用于在判斷延時數(shù)組不屬于預設偏移區(qū)間的情況下,加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬;第二判斷子單元,用于在判斷延時數(shù)組屬于預設偏移區(qū)間的情況下,判斷延時數(shù)組是否屬于預設終止偏移區(qū)間。
可選的,第二判斷子單元,用于在判斷延時數(shù)組不屬于預設終止偏移區(qū)間的情況下,加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬;在判斷延時數(shù)組屬于預設終止偏移區(qū)間的情況下,判斷第k個延時數(shù)組是否小于第k+1個延時數(shù)組;在判斷結果為是的情況下,得到加權帶寬為第k個延時數(shù)組對應的帶寬;在判斷結果為否的情況下,得到加權帶寬為第i個帶寬探測數(shù)據(jù)包發(fā)送速率對應的帶寬。
可選的,本申請實施例提供的帶寬估計的裝置還包括:第一發(fā)送模塊,用于在接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包之前,向輔助單元發(fā)送測試帶寬請求消息;文件接收模塊,用于接收輔助單元依據(jù)測試帶寬請求消息返回的配置文件;第二發(fā)送模塊,用于依據(jù)配置文件生成配置數(shù)據(jù),并將配置數(shù)據(jù)發(fā)送至輔助單元。
實施例三
根據(jù)本發(fā)明實施例的又一方面,還提供了一種帶寬估計的系統(tǒng),如圖2所示,包括:輔助單元和計算單元,輔助單元與計算單元連接,其中,
輔助單元,用于依據(jù)當前時間確定發(fā)送帶寬探測數(shù)據(jù)包的數(shù)量,并將帶寬探測數(shù)據(jù)包發(fā)送至計算單元;計算單元,用于接收輔助單元發(fā)送的帶寬探測數(shù)據(jù)包,得到當前帶寬;其中,計算單元包括:圖5所示的一種帶寬估計的裝置。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的技術內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。