우리는 현재 인터넷 대역폭을 캡처해야하는 Windows 데스크톱 응용 프로그램에서 작업하고 있습니다. ZIP 파일을 여러 번 순차적으로 다운로드하고 있지만 결과는 Speed Test과 일치하지 않습니다. ACTIVE 네트워크 카드에서받은 바이트를 캡처하고 있지만 순차적 다운로드는 예상 된 결과를 제공하지 않습니다. 여러 파일을 여러 번 병렬로 다운로드하려고했지만 실패했습니다.C# .Net 대역폭 계산 VS Speedtest.net 속도
다른 파일을 병렬로 다운로드 한 경우에만 성공했으며 Speed Test을 사용하여 동시에 테스트를 수행했습니다.
지금 여기 내 몇 가지 질문은 다음과 같습니다
가- 는 TCP 홉 사이의 대역폭이 우리의 대역폭에 영향을합니까?
- 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; }
다음은 몇 가지 질문입니다. 1) 방법과 속도 테스트의 차이점 2) 파일을 다운로드하고 속도를 계산하는 데 사용하는 코드는 어디에 있습니까? –
@ PawełŁukasik 대역폭을 계산하는 코드 스 니펫을 추가했습니다. 생각을 공유하십시오. –