Определить доступную пропускную способность загрузки / выгрузки

У меня есть приложение, которое загружает и загружает файлы. Я также могу ограничить скорость загрузки / выгрузки до желаемого уровня (НАСТРОЙКИ), чтобы мое приложение не использовало всю доступную полосу пропускания. Я могу добиться этого с помощью библиотеки libcurl (http).

Но мой вопрос заключается в том, что если мне придется ограничить скорость загрузки, скажем, 75% доступной пропускной способности, как я могу узнать мою доступную пропускную способность передачи программно? желательно на С / С ++. Если он предварительно настроен, у меня нет проблем, но если его нужно изучать и адаптировать каждый раз, как я уже сказал, 75% от доступного лимита загрузки, я не знаю, кто это выяснит. То же самое относится и к загрузке. Любые указатели будут очень полезны.

3

Решение

Невозможно определить абсолютную пропускную способность сети между двумя точками обычной сети.
Причина в том, что трафик может быть перенаправлен между ними, другие потоки данных появляются или исчезают, или ссылки могут быть разорваны.

Что вы можете сделать, это выяснить, какова доступная пропускная способность прямо сейчас. Один из способов сделать это — загрузить / загрузить порцию данных (скажем, 1 МБ) как можно быстрее (без искусственных ограничений) и измерить, сколько времени это займет. Оттуда вы можете выяснить, какая пропускная способность доступна сейчас и перейти оттуда.

Вы можете периодически измерять пропускную способность, чтобы убедиться, что вы не слишком далеко.

3

Другие решения

Других решений пока нет …