帶寬延時如何產(chǎn)生的?如何有效地計算?

字號:

現(xiàn)在,我們對帶寬延時及計算方法開始進行討論,大家基本確定,帶寬延時就是串行延時。會后偶再查閱相關也資料表明,這個結論是正確的。那么什么是串行延遲?確切的講,串行延遲產(chǎn)生的根本原因是將數(shù)字數(shù)據(jù)放到傳輸線路中的串行化的結果,所以,其延遲大小取決于傳送線路的速度。也就是說,無論我數(shù)據(jù)包大小如何,把它放到線路上串行化傳輸所花的時間,跟帶寬是有真接關系的。
    當我們明白這個定義后,對于計算帶寬延遲和精確計算帶寬是多少就有了理論依據(jù)。其結果就是,在特定條件下,我們只要一個數(shù)據(jù)包,就可以得出帶寬延遲及精確計算出這條線路的帶寬。當然,這個數(shù)據(jù)包的滿負荷的,也就是1500字節(jié)左右。
    下面我們通過實例來求證:
    偶測試的環(huán)境是10M的小區(qū)寬帶,當前狀況下沒有其他網(wǎng)絡應用,偶通過IE到本地電信最近的一個測試網(wǎng)站,下載一下大文件,同時進行抓包,并進行分析。結果如下:
    
    大家可以看到紅色方框中的數(shù)據(jù)。我們先來給出計算方法:
    1,每個紅色方框中的兩個數(shù)據(jù)包的延時,下面的減去上面的,就是這個帶寬的延時,也就是串行延遲。比如第二個方框:0.017009-0.015850=0.001159,也就是說,帶寬延遲約1MS。大家可以每個都計算下,得出結果的約值是一樣的。
    2,當我們計算出傳送這個數(shù)據(jù)包后的時候,通過這個數(shù)據(jù)包的大小,除以這個延遲,那么就可以得到帶寬。還是比如第二個方框:(1438+8+12)*8/0.001159=10063848.144952545297670405522002 =10 M ,這個結果相當精確!
    相信大家覺得這里面還有一些問題,如下:
    1,這樣計算延時,其實里面還包含有其他延時,比如距離延時、交換延時、服務器的響應延時,所以這個值并不精確!
    答:OK,這個值確實不精確。但是據(jù)有關資料顯示,光速是300000公里/S,對于陸地電纜連接來說,延遲大約是200公里/MS,那么從偶所在位置,到本地電信的的距離,而且是光纖到樓的,那么這個延遲會是多少呢?基本上,個人以為,城內(nèi)到電信的距離延時可以人為不計^-^;另外就是交換延時,現(xiàn)在交換機性能越來越好,更何況到本地電信,也不會有太多交換,那這個值是不是也可以人為不計呢?^-^;倒是服務器響應延時,這個是比較有影響的一個重要因素,必竟就這一塊就包含了數(shù)據(jù)庫查尋時間,應用本身響應的延時等,還跟服務器當前硬件負荷有關,所以不可不查!因此,我們在選擇數(shù)據(jù)包時,可以選擇連續(xù)過來的兩個數(shù)據(jù)包,因為第二個數(shù)據(jù)塊跟第一個數(shù)據(jù)塊已經(jīng)都同時在服務器的發(fā)用隊列的緩沖里面,只不過第一個先發(fā),第二個立即接著發(fā)送,這樣,基本就不用考慮服務器的響應時間了。(這其實是已經(jīng)可以考慮到的最為精確的了)
    2,帶寬可能還會被其他數(shù)據(jù)暫用,你如何確定這個數(shù)據(jù)包上沒有其他數(shù)據(jù)?
    答:這個就要回到理論,看串行延遲了。所謂串行延遲,就說明數(shù)據(jù)包是串著發(fā)出來的,也就是說,當我們有足夠的時間細粒度觀察,那么可以發(fā)現(xiàn),線纜上有一個數(shù)據(jù)包時,就不會有另一個數(shù)據(jù)包,所以數(shù)據(jù)包是一個接著一個串著發(fā)送過來的。也就是說,一個數(shù)據(jù)包就可以暫用整個電纜的頻率。
    這些都是偶個人的理解,并且在這兩天做了大量的計算,基本跟理論一致。歡迎大家拍磚??!也期待大家可以一起討論。
    注:本文由睿博工作室合作提供,睿博工作室系一群在網(wǎng)絡性能,網(wǎng)絡安全及網(wǎng)絡故障方面的資深團隊。