Задержка при использовании tcpdump на Android — почему?

Я написал приложение для Android, которое запускает tcpdump в процессе с помощью ProcessBuilder. Когда я запускаю процесс и опрашиваю InputStream, то ИНОГДА случается, что первый вывод пишется через 20-30 секунд - хотя пакеты были захвачены.
Я использую tcpdump -l, поэтому выходные данные буферизуются в строку.
Когда я перезапускаю процесс (killall), он немедленно отвечает на новые пакеты.

У кого-нибудь есть предложения? Есть ли какая-либо буферизация в сетевом стеке, которую необходимо очистить в первую очередь?

Спасибо за любые предложения!


person koch.trier    schedule 05.05.2011    source источник


Ответы (1)


Может быть, попробовать tcpdump -n, чтобы он не пытался преобразовать IP-адреса в имена хостов?

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

person Chris Stratton    schedule 05.05.2011