我们正在开发需要捕获当前互联网带宽的 Windows 桌面应用程序。我们按顺序多次下载 ZIP 文件,但结果与Speed Test不匹配。我们正在捕获 ACTIVE 网卡上接收到的字节,但顺序下载未提供预期结果。我们甚至多次尝试并行下载不同的文件,但都失败了。
只有当我们并行下载不同的文件并同时使用Speed Test进行测试时,我们才能获得成功。
现在这是我的几个问题:
- TCP HOPS 之间的带宽会影响我们的带宽吗?
- TCP HOPS 之间的流量会影响我们的带宽吗?
- 如何使用 HTTP / TCP 下载和 C# .NET 有效地消耗整个带宽?
- ISP 是否会限制每个 TCP 套接字连接的带宽?
ISP 是否为http://www.speedtest.net提供带宽?(有可能,因为它总是可以显示预期的结果,但其他网站不能)
for (int downloadCount = 0; downloadCount < iterations; downloadCount++) { try { string downloadUrl = GetUniqueDownloadUrl(); bool isValidUrl = Uri.IsWellFormedUriString(downloadUrl, UriKind.Absolute); if (true != isValidUrl) { return result; } // Download file and register total time to download file. Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); byte[] fileContent = webclient.DownloadData(new Uri(downloadUrl, UriKind.Absolute)); stopwatch.Stop(); double downloadTime = stopwatch.ElapsedMilliseconds / 1000; // Milliseconds to Seconds // Convert bytes to Mbits. fileSizeInMbits = fileContent.Length / 125000; // bytes to Megabits double speed = fileSizeInMbits / downloadTime; // speed in Mbps // Store speeds for average calculation. speeds.Add(speed); } catch (Exception e) { result.Error = e; break; } } } // Calculate average bandwidth for total successful downloads. double totalAvgSpeed = speeds.Average(); result.FileSizeInMB = fileSizeInMbits / 8; result.Speed = Math.Round(totalAvgSpeed, 2, MidpointRounding.AwayFromZero); return result; }