2013-11-25 1 views
3

파일 업로드 및 다운로드를하는 응용 프로그램이 있습니다. 또한 응용 프로그램이 사용 가능한 전체 대역폭을 소비하지 않도록 업로드/다운로드 속도를 원하는 수준 (구성 가능)으로 제한 할 수 있습니다. libcurl (http) 라이브러리를 사용하여이 작업을 수행 할 수 있습니다.사용 가능한 업로드/다운로드 대역폭을 결정하십시오.

하지만 내 업로드 속도가 가능한 업로드 대역폭의 75 %가 말을 제한해야하는 경우 제 질문은, 어떻게 사용할 수 업로드 대역폭을 프로그래밍 방식으로 찾을 수 있습니까입니까? 바람직하게는 C/C++. 미리 구성된 경우 아무 문제가 없지만 사용 가능한 업로드 한도의 75 %라고 할 때마다 매번 학습하고 적용해야한다면 누구를 알아낼 지 모릅니다. 동일한 다운로드가 가능합니다. 어떤 포인터가 큰 도움이 될 것입니다.

+0

https://github.com/sivel/speedtest-cli – Ashish

답변

3

일반 네트워크의 두 지점 사이의 절대 네트워크 용량을 확인할 방법이 없습니다. 그 이유는 트래픽을 중간에 라우팅 할 수 있고 다른 데이터 스트림이 나타나거나 사라지거나 링크가 끊어 질 수 있기 때문입니다.

지금 할 수있는 일은 사용 가능한 대역폭이 무엇인지 파악하는 것입니다. 이를 수행하는 한 가지 방법은 데이터 덩어리 (1MB)를 가능한 한 빨리 업로드 (인위적 대문자 없음)하고 소요 시간을 측정하는 것입니다. 여기에서 현재 사용할 수있는 대역폭을 파악하고 거기에서 이동할 수 있습니다.

주기적으로 대역폭을 다시 측정하여 지나치지 않게 할 수 있습니다.

+1

제 질문은 사용 가능한 대역폭을 정확하게 파악하는 것이 었습니다. 나는 이미 이전 전송을 위해 걸린 바이트/초를 알고있다. (1Mb 데이터 파일은 초 당 52428 바이트의 속도로 20 초 안에 업로드되었다고한다). 하지만 이제 얼마나 많은 대역폭을 사용할 수 있는지 어떻게 알 수 있습니까? 내 질문은이 링크 [https://www.dropbox.com/help/26/ko]와 "특히, Dropbox는 최대 업로드 속도의 75 %로 자동 조절되어 눈에 띄는 속도 저하를 방지합니다. – Sandeep

+0

@sandeep, 네 관측은 정확합니다. 이 방법을 사용하면 더 많은 대역폭을 사용할 수 없게됩니다. 내 생각에 정기적으로 대역폭 제한없이 몇 가지 요청을 시작하여 사용 가능한 총 대역폭의 가치를 다시 계산해야합니다. – Ashish

+0

U는 속도 테스트 명령 줄 검사를 통해 주기적으로 대역폭을 계산할 수 있습니다. (https://github.com/sivel/speedtest-cli) – Ashish

관련 문제