我想使用TcpClient創建帶寬估計工具。我所面臨的問題是,我想在預定義的時間內執行測量(而不是預定義的緩衝區數據傳輸長度)。如果我使用循環(重複傳輸小塊數據),會不會降低性能(手動碎片vs自動碎片)?TcpClient帶寬估計
1
A
回答
1
這取決於您是否禁用Nagle算法。如果你這樣做,那麼是的,你會自己分割東西。如果你不這樣做,你不可能實現你的目標 - 因爲當你認爲它的數據可能不是實際上是 ......除非連接的另一端當然發回最後的「確認」。
我建議你使用一個小樣本來計算出粗糙的速度,然後根據它創建一個更大的樣本,預測它需要多長時間。無論如何,你需要測量時間 - 這不像你打預定時間的準確 - 所以它不應該有太大的不同。無論如何,你總是可以在一定程度上調整大小 - 我預計你最終會發送大量數據包,除非它是一個非常慢的網絡,所以如果你決定中途只發送200K而不是300K,這應該沒有太大的區別。
這可能聽起來像你的原始建議,當然 - 但我只是在談論每個呼叫發送「相當大」的數據塊......說16K。 (無論如何,它比分組大小要大得多)。這應該不會影響分段,但仍然可以讓你在進行時稍微調整一些東西。我不會建議你發送微小的小包。
相關問題
- 1. 帶寬估算/計算
- 2. 利他網絡連接帶寬估計
- 3. 核心密度估計(R)中的恆定帶寬
- 4. 使用每點一個帶寬值的內核估計
- 5. CDF取決於核密度估計中使用的帶寬?
- 6. 簡單的帶寬/延遲測試來估計用戶體驗
- 7. 評估頁面帶寬使用情況
- 8. 網絡帶寬評估工具
- 9. Matplotlib估計文本寬度的錯誤
- 10. 學術計劃帶寬
- 11. GTX 970帶寬計算
- 12. 試圖估計帶循環的e^x
- 13. 帶共享網絡的Tensorflow估計器
- 14. 火車帶文本的,估計擁有
- 15. 使用帶有IP的TCPClient():PORT/PATH
- 16. 估計
- 17. 如何:Silverlight中的帶寬計算器
- 18. JW Player在Wordpress中的帶寬計算
- 19. 帶寬中的預計數據
- 20. C#.Net帶寬計算VS Speedtest.net速度
- 21. 使用.NET計算網絡帶寬
- 22. 如何使用c來計算帶寬#
- 23. Firebase數據庫帶寬計算
- 24. 估算桌面Java應用程序的帶寬使用情況
- 25. 無效參數估計的估計MLPClassifier
- 26. 估計VAR估計殘差(變量包)
- 27. CUDA理論帶寬vs有效帶寬
- 28. 估計每個
- 29. Rsquared的估計
- 30. 姿態估計
請原諒我問,但我真的不明白。如我錯了請糾正我。如果我禁用nagle算法,我必須通過重複發送小塊數據來手動分割我的數據。如果我不禁用nagle算法,我的數據將被自動分割。如果我不禁用nagle算法,我不可能實現我的目標(帶寬估計?),因爲發送的數據實際上可能在我認爲收到時沒有收到。有點困惑在這裏。 – 2010-12-16 07:30:22
@publicENEMY:我應該澄清一下......如果你可以讓連接的另一端在收到所有內容時給你一些價值 - 在應用層面有效地使「ack」可見 - 那麼它會好起來的......略微在發送端的計算能力方面效率不高,但與網絡時間相比不太可能是重要的。 – 2010-12-16 07:33:21
這裏我認爲tcp是可靠的(保證收到正確的數據)。是說如果我禁用老鷹,不保證發送的數據被接收? – 2010-12-16 08:09:34