Ping, traceroute и Path MTU на Android без root и NDK
Когда я садился портировать своё iOS-приложение на Android, я был уверен, что ping, traceroute и Path MTU там не сделать: ICMP — это raw-сокет, а raw-сокет — это root. Одна команда adb показала, что я ошибался: любое приложение может открыть непривилегированный ICMP-сокет — без root и без единой строчки на C. Рассказываю, как на чистом Kotlin устроены ping, traceroute через очередь ошибок сокета и Path MTU через бит DF, и на чём я споткнулся по дороге.
https://habr.com/ru/articles/1099252/
#android #ping #mtr #traceroute #icmp #kotlin #сетевая_диагностика #path_mtu