2017-02-07 397 views
-1

我们正在研究Windows桌面应用程序,我们需要捕获当前的Internet带宽。 我们正在多次下载ZIP文件,但我们的结果与Speed Test不符。 我们正在捕获ACTIVE网卡上收到的字节,但顺序下载并不能提供预期的结果。我们甚至多次尝试并行下载不同的文件,但失败了。C#.Net带宽计算VS Speedtest.net速度

仅当我们并行下载不同的文件并同时使用Speed Test进行测试时,我们才获得成功。

现在,这里是我的几个问题:

  1. 是否TCP跳之间的带宽,影响了我们的带宽?
  2. TCP HOPS之间的流量是否会影响我们的带宽?
  3. 如何使用HTTP/TCP下载和C#.NET有效地消耗整个带宽?
  4. ISP会限制每个TCP Socket连接的带宽吗?
  5. 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; 
    } 
    
+0

这里是我的几个问题: 1)你的方法和速度测试有什么区别 2)你用来下载文件和计算速度的代码在哪里? –

+0

@PawełŁukasik我已经添加了计算带宽的代码片段。请分享你的想法。 –

回答

0

有没有这样的东西作为互联网的“速度”有2台主机之间只有速度,如果你有千兆以太网1台计算机还有一台服务器也在千兆以太网上,即使路上只有一个节点饱和,速度也会下降,当你使用speedtest.net时,它有很多关闭的服务器(包括可能在你的isp上),所以你要去得到一个非常积极的估计。

如果你的isp被扼杀,你会发现它的测试速度也一样。

唯一要记住的是,从服务器上下载文件只会给你对该服务器速度的估计,而不是一个“互联网速度”,这个概念实际上并不存在首先。