2017-02-07 9 views
-1

現在のインターネット帯域幅を取得する必要があるWindowsデスクトップアプリケーションに取り組んでいます。 ZIPファイルを複数回続けてダウンロードしていますが、結果はSpeed Testと一致しません。 ACTIVEネットワークカードで受信したバイトをキャプチャしていますが、順次ダウンロードでは予期しない結果が得られます。私たちは、異なるファイルを複数回パラレルにダウンロードしようと試みましたが、失敗しました。C#.Net帯域幅計算VS Speedtest.net速度

異なるファイルを並行してダウンロードした場合にのみ成功し、Speed Testを使って同時にテストが行​​われました。

今ここに私のいくつかの質問があります:

  1. はTCP HOPS間の帯域幅は、私たちの帯域幅に影響を与えていますか?
  2. TCP HOPS間のトラフィックは、私たちの帯域幅に影響しますか?
  3. HTTP/TCPダウンロードとC#.NETを使用して帯域幅を効果的に消費する方法はありますか?
  4. ISPはTCPソケット接続ごとに帯域幅を抑制しますか?
  5. ISPはhttp://www.speedtest.netに帯域幅を提供していますか?あなたがギガビットイーサネットに1台のコンピュータを持っている場合は、インターネット「スピード」は、2つのホスト間の唯一の速度は、ありますようなものはありません

     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

(それは常に期待される結果が、他のサイトはできませんを示すことができるよう可能なのだろう)またギガビットイーサネット上のサーバーでも、途中のノードが1つしか飽和速度にならなくても、speedtest.netを使用すると、近くに多数のサーバー(ispにある可能性が高いサーバーを含む)が多数存在するため、非常に肯定的な見積りを得る。

あなたのispが抑制されていれば、スピードテストで同じことが分かります。

覚えておくべき唯一の留意点は、サーバーからファイルをダウンロードすると、実際には存在しない概念である「インターネット速度」ではなく、そのサーバーのTO/FROM速度の見積もりが得られることですで始まる。

関連する問題