2010-11-25 64 views
-3

我想寫一個代碼來獲得可用帶寬。 使用其中之一algorithm.ex.spruce/pathload.可用帶寬

我想在Windows中使用C++代碼。 我有linux代碼。 但我想要一個基於Windows的代碼,它可以讓我上下帶寬。

+0

Ehm,在C++中?什麼API? Win32的? MFC? 。淨? – EboMike 2010-11-25 04:54:00

+0

好問題+1 – Rella 2011-01-08 03:03:51

回答

1

帶寬爲什麼資源?如果這是一個網絡資源,那麼任何語言或操作系統都不會給你任何真實的帶寬估計。您需要在您需要遍歷的鏈路的另一端呼叫某個事物,並在該時間點估計帶寬。

或者更好的說...您需要調用Web服務器上的文件來測試某人的家庭Internet連接的下載速度。請記住,所獲得的數字只對那個時間點準確。由於任何資源的帶寬在實際使用時可能會更高或更低,因爲外部因素總是會影響帶寬(其他prorcesses,用戶等)

爲什麼你需要帶寬和資源?

0

如果你問,你不能勝任。將Linux轉換爲Windows需要兩個平臺的知識,這顯然不具備。根據我的經驗,幾乎所有的網絡友好帶寬估計算法(pathload,pathchirp等)都不適合高速帶寬。如果帶寬大約爲1mb,那麼這些舊算法是合適和實用的。此外,這些算法假定網絡是'乾淨的'(沒有其他流量)。現在,幾乎所有這些「網絡友好」算法都不實用。

其他變種帶寬估計工具,如netperf,netcps是基於暴力方法。暴力方法不友善。大多數算法在延遲方面存在問題(如果基於tcp)並達到hdd讀取/寫入速度(如果寫入hdd而不是內存)。

IMO最好的帶寬估計工具是基於UDP的(不受tcp不同的延遲影響)蠻力(不受其他流量影響),並針對高速網絡定製了控制流。

你會遇到的其他問題是代碼優化。您必須確保您的代碼經過高度優化。如果你使用c#,GC會帶來一個可能的問題。