Java: Кто-либо знает о библиотеке, которая обнаруживает качество интернет-соединения?

Я знаю, что простой URLConnection к Google может обнаружить, если я подключен к Интернету, в конце концов, я уверен, что Интернет - все хорошо и прекрасный, Если я не могу соединиться с Google. Но то, что я ищу в данный момент, является библиотекой, которая может иметь размеры, насколько эффективный мое соединение с Интернетом и с точки зрения скорости отклика и с точки зрения доступной пропускной способности. НО, я не хочу иметь размеры, сколько пропускной способности потенциально доступно, поскольку это является слишком интенсивно использующим ресурсы. Я действительно просто должен смочь протестировать, могу ли я получить что-то как X КБ за количество времени Y. Такая библиотека уже существует?

6
задан kazanaki 24 March 2010 в 08:46
поделиться

3 ответа

На самом деле невозможно судить об этом. В сегодняшнем мире ADSL 2+ со скоростью загрузки 20 с лишним Мбит / с вы в значительной степени зависите от скорости всего исходящего от вас. Поэтому, если вы подключаетесь к сайту в другой стране, например, основным узким местом, вероятно, является международная ссылка. Если вы подключены к сайту в том же городе, что и вы, то вы, вероятно, ограничены скоростью восходящего канала этого сервера (например, они могут составлять 10 МБ / с, и они будут обслуживать множество людей одновременно).

Таким образом, ответ на вопрос «Могу ли я получить X КБ максимум за Y секунд» полностью зависит от , откуда вы загружаете. И поэтому лучший способ ответить на этот вопрос - начать загрузку, откуда бы вы ее ни планировали, а затем рассчитать время.

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

Это верно в целом для характеристик сети - и Интернета в частности (потому что он настолько сложен) - вы не можете надежно измерить что-либо о сайте X и сделать какие-либо выводы о сайте Y. Если вы хотите знать, насколько быстро сайт Y ответит, тогда вам просто нужно подключиться к сайту Y и начать загрузку.

2
ответ дан 17 December 2019 в 20:30
поделиться

Расчет способности пользователя надежно загрузить заданное количество бит в заданный период времени может быть сложным, но вы можете начать с некоторого кода, найденного на http://commons.apache.org/ сеть / . В любом случае это может сказать вам о задержке и пропускной способности.

0
ответ дан 17 December 2019 в 20:30
поделиться

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

Посмотрите на любое приложение, которое показывает "оставшееся время загрузки". Обратите внимание, что это обычно неверно и / или постоянно обновляется и становится точным только в последнюю секунду.

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

0
ответ дан 17 December 2019 в 20:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: