【发布时间】:2017-08-06 16:09:34
【问题描述】:
我正在为 Android 创建一个 traceroute 服务,由于 Android 没有内置的 traceroute 命令,我正在使用 adb shell ping 迭代地实现一个增加 TTL 值的服务。
这是请求/响应的示例:
//Sample shellCommand: /system/bin/ping -c 1 -t 8
Runtime.getRuntime().exec(shellCommand + DESTINATION_URL);
PING opf-www.google.com (xxx.xxx.xxx.xxx) 56(84) 字节数据。
--- opf-www.google.com ping 统计 ---
1个包发送,0个接收,100%丢包,时间0ms
我想知道如何破译“56(84) 字节的数据”。这里的 56 和 84 是什么?
-
我想分析traceroute使用的数据量,我正在使用TrafficStats类来做:
int UID = myUid(); long mStartRX = TrafficStats.getUidRxBytes(UID); long mStartTX = TrafficStats.getUidTxBytes(UID); new TracerouteTask().run(); long rxBytes = TrafficStats.getUidRxBytes(UID)- mStartRX; long txBytes = TrafficStats.getUidTxBytes(UID)- mStartTX;
使用它,我总是收到 rxBytes 的 0 值,即没有。收到的字节数。为什么会这样?我们收到一个超过 ICMP TTL 的数据包。
【问题讨论】:
标签: android networking ping traceroute