時間:2024-04-20 11:25:58 作者:泰龍 瀏覽量:52
iPefr 是 ESnet 推出和維護的一款知名網(wǎng)絡(luò)測試工具,Windows 網(wǎng)絡(luò)和調(diào)試工程師詹姆斯凱爾今天在 Microsoft TechNet 社區(qū)發(fā)文,建議用戶不要使用 iPefr3,而是應(yīng)該使用微軟開發(fā)和維護的 ntttcp 或 ctsTraffic。
為什么不推薦用戶使用 iPerf3 呢?微軟工程師給出了三個原因,簡單來說就是 iPerf3 并不直接兼容 Windows 系統(tǒng),因此實際表現(xiàn)并不好。
原因一:不支持 Windows
ESnet 不建議用戶在 Windows 上使用 iPerf3,因為該工具本身就不支持 Windows,ESnet 建議如果用戶確實有需要應(yīng)該使用 iPerf2。
iPerf3 主要基于 CentOS Linux、FreeBSD 和 macOS 開發(fā),這也是 ESnet 官方支持的主要平臺。
出于同樣的不支持原因,微軟不建議用戶在 Windows 系統(tǒng)上使用 iPerf3。
原因二:不支持 Windows API
iPerf3 不調(diào)用 Windows 本機 API,因為它主要通過 Linux/POSIX 調(diào)用,iPerf3 社區(qū)使用 Cygwin 作為模擬層讓 iPerf3 在 Windows 上運行。
當調(diào)用被發(fā)送到 Cygwin 時,后者將其轉(zhuǎn)換為 Windows API,只有這樣才能實現(xiàn)在 Windows 上檢測網(wǎng)絡(luò)堆棧,盡管這樣做能用,但有些高級功能表現(xiàn)并不好,例如降低性能、操作延遲等。
最重要的是 iPerf3 使用不常見的 winsock (Windows Socket) 選項,對于通用吞吐量測試還行,但測試應(yīng)用程序的話,winsock 無法模擬現(xiàn)實世界中 Windows 軟件的運行情況。
原因三:用戶使用的還是舊版 iPerf3
ESnet 提供的 iPerf3 最新版本為 3.16 版,但如果用戶在搜索引擎 (包括必應(yīng)上) 檢索 iPerf3 for Windows 時,排在前面的是 iPerf.fr 網(wǎng)站,這個網(wǎng)站提供的版本是 3.1.3 版,而此版本還是 8 年前發(fā)布的,與 3.16 版之間相差 15 個版本。
這 15 個版本包含大量的錯誤修復和功能改進,但由于用戶使用的是舊版本,而且 iPerf.fr 提供的版本中包含 cygwin1.dll,這會導致 winsock 緩沖區(qū)被限制在 1MB,在高速、高延遲和高帶寬網(wǎng)絡(luò)上性能不佳,因為無法傳輸足夠多的數(shù)據(jù)導致測試不準確。
因此如果用戶確實需要使用 iPerf3,請通過 ESnet 官網(wǎng)下載。
推薦用戶使用微軟維護的測試工具:
詹姆斯凱爾向開發(fā)者和網(wǎng)絡(luò)工程師推薦 ntttcp 和 ctsTraffic,這兩個都是微軟維護的綜合網(wǎng)絡(luò)基準測試工具,其中最新版 ntttcp 在 GitHub 上開源,兼容 Windows 和 Linux 系統(tǒng),也就是說可以測試不同的系統(tǒng)組合,例如 Windows – Windows、Windows -Linux、Linux – Windows 以及 Linux – Linux。
ctsTraffic 僅限于 Windows – Windows 測試,專注于端到端的良好吞吐量場景,開發(fā)者可以根據(jù)需要進行選擇。
原文地址:https://techcommunity.microsoft.com/t5/networking-blog/three-reasons-why-you-should-not-use-iperf3-on-windows/ba-p/4117876+
.