Как программно проверить пропускную способность интернета в VC ++? - PullRequest
5 голосов
/ 08 апреля 2009

Мне нужно найти пропускную способность, доступную в определенное время. Код должен быть разработан в Visual C ++ или в семействе .Net. Если кто-нибудь знает как, пожалуйста, помогите мне.

Ответы [ 3 ]

15 голосов
/ 08 апреля 2009

Единственный способ проверить пропускную способность - это попытаться использовать ее, то есть путем загрузки файла из другого места и измерения пропускной способности.

Даже тогда это будет только приблизительное значение, потому что другие сетевые эффекты будут влиять на результаты:

  • латентность
  • асимметричная загрузка / загрузка
  • другой трафик
3 голосов
/ 21 апреля 2009

Если вы имеете в виду текущее использование сети, вы можете позвонить

DeviceIoControl(hDevice, OID_GEN_STATISTICS, ... )

в Vista и выше, чтобы получить информацию об устройстве. В противном случае вызовите GetIpStatisticsEx для получения общесистемной информации или используйте WMI Win32_PerfRawData_Tcpip_NetworkInterface .

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

2 голосов
/ 08 апреля 2009

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

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

Но, как сказал Альнитак, вы все равно не будете знать, какие другие факторы могут повлиять на результат. Например, используется ли какой-либо другой процесс на вашем компьютере с использованием соединения? или ребенок соседствует по беспроводной сети и крадет пропускную способность? Может быть, это то, что вы пытаетесь выяснить!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...