2013-07-18 2 views
1

Я разрабатываю приложение, которое анализирует качество вашего интернет-соединения, а часть измерения измеряет потерю пакетов.Измерение потери пакетов с помощью Java

Я думал о отправке пакетов на IP-адрес, но как я могу отправлять сообщения и проверять их возврат? Я предполагаю, что мне нужно отправить пакет с ответом, но я не могу найти пример этого, используя поиск или Google.

Или использовать существующий трафик (как?)?

Кроме того, как я могу измерять время в оба конца?

ответ

1

Поскольку TCP - надежный транспорт, вы не видите упавшие пакеты. В Linux вы можете использовать ifconfig, чтобы узнать, сколько повторных передач вы понесли. Я не уверен, что инструменты командной строки покажут вам это на Android, но вам нужно будет использовать системные инструменты, чтобы предоставить вам эту информацию.

BTW Вы можете оценить потерю пакетов, используя UDP-пакеты. Скорость потери пакетов для UDP и TCP не одинакова, но дает вам представление.

0

Для этого вам потребуется использовать UDP или ICMP (ping), так как вы не сможете легко увидеть потери TCP-пакетов.

Если вы используете ICMP, вам необходимо убедиться, что противоположный компьютер отвечает ICMP. Брандмауэры часто блокируют ICMP.

Если вы используете UDP, на другом компьютере потребуется серверное программное обеспечение, которое может распознавать ваши пакеты и отвечать как можно быстрее. Самый простой тип сервера для этого будет называться Echo Server.

Вот Java UDP Echo Server

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

 Смежные вопросы

  • Нет связанных вопросов^_^