網絡吞吐量的估算

在寫數據傳輸程序的時候我們會關心服務器和客戶端之間通信的網絡延遲有多大?數據收發的吞吐量最大有多少?

 

tcp socket 客戶端和服務端之間的通信延遲受到很多因素影響,基本沒辦法準確的估算出來,比如傳輸距離,網絡路由跳數,交換機處理時間,網卡處理延遲,cpu處理延遲,丟包率等。其中的傳輸距離影響比較大,雖然電信號以光速傳播,其延遲也不能隨便忽略,比如10公里的距離光傳播的延遲就有33微妙。假如兩端之間的線路情況基本是固定的,因此延遲也基本是固定的,因此測量兩點間的延遲可以用專門的工具來做,比如 qperf或者netperf。

 

這裏假設我們已知兩點間的網絡延遲爲L,TCP滑動窗口size爲W,那麼最大的網絡吞吐量是 W /  L。

 

如果兩點間的帶寬爲1G,延遲爲L,那麼需要調整滑動窗口大小,使得傳輸帶寬能夠打滿整條線路,如果調小了那麼滑窗將成爲瓶頸,如果調大了那麼網絡線路將成爲瓶頸,因此存在一個滑窗最優值:帶寬*網絡延遲

 

因此 吞吐量,滑窗大小,線路帶寬,線路延遲這幾個量之間是存在相關關係的。

要縮短網絡傳輸延遲,要麼調大滑窗,要麼縮短距離。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章