2012-07-25 34 views
1

我有兩個關於使用sendto()和C socket編程實際發送速度的問題。如何測量我發送UDP數據報的速度?

  1. 我做了一點socket編程和我送的UDP數據報回每個SENDTO動作之間沒有間隔(暫停)來備份在for循環中。使用clock_gettime()獲取流逝的時間並計算實際的發送速率是否合理?實際上影響發送速度的是CPU的頻率,還是我使用的網絡接口?我的理解是,它應該是兩個中較慢的一個?並使用clock_gettime(),我可以得到一個相當不錯的發送速度估計?假設我們獲得了這個發送速度,並用S表示。

  2. 假設我通過一個100Mbps的以太網網絡接口將PC上的UDP數據報發送到路由器。路由器的實際到達率是多少?對於一種情況,如果S大於100Mbps,那麼到達速率將在100Mbps左右,對吧?如果S大於100Mpbs,那麼到達率應該是S,對不對?還是應該還是100Mbps?我有點困惑。

而且我這樣做的原因是,我想UDP數據報的最大突發大小,我可以在一排路由器發送(給定輸出鏈路的一定帶寬限制),不放棄任何數據報。任何想法如何做一些測試來得到這個?

回答

0

一百萬件事情會影響速度和丟包。我建議你編寫一個C程序來改變發送速度,行長度等,測量速度和丟棄數據包,並將結果輸出到你可以繪製的東西,比如csv文件。

相關問題