Ping TTL 超出输出解密
Ping TTL exceeded output decipher
我正在为 Android 创建一个 traceroute 服务,由于 Android 没有内置的 traceroute 命令,我正在使用 adb shell ping 迭代实现一个随着 TTL 值的增加。
这是 request/response 的示例:
//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) bytes of data.
--- opf-www.google.com ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
我想知道如何破译“56(84) 字节数据”。这里的56和84是什么?
我想分析 traceroute 使用的数据量,我正在使用 TrafficStats class 这样做:
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;
使用这个,我总是收到 0 的 rxBytes 值,即没有。收到的字节数。为什么会这样?我们收到一个 ICMP TTL 超出数据包。
我找到了答案,正在更新以防将来对某人有帮助:)
56(84)in 表示 ICMP 消息中包含的 "dummy data" 的有效载荷是 56 字节,当与 ICMP header 数据的 28 字节组合时,告诉消息去哪里go,总数据包大小为 (84) 字节。
我正在为 Android 创建一个 traceroute 服务,由于 Android 没有内置的 traceroute 命令,我正在使用 adb shell ping 迭代实现一个随着 TTL 值的增加。
这是 request/response 的示例:
//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) bytes of data.
--- opf-www.google.com ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
我想知道如何破译“56(84) 字节数据”。这里的56和84是什么?
我想分析 traceroute 使用的数据量,我正在使用 TrafficStats class 这样做:
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;
使用这个,我总是收到 0 的 rxBytes 值,即没有。收到的字节数。为什么会这样?我们收到一个 ICMP TTL 超出数据包。
我找到了答案,正在更新以防将来对某人有帮助:)
56(84)in 表示 ICMP 消息中包含的 "dummy data" 的有效载荷是 56 字节,当与 ICMP header 数据的 28 字节组合时,告诉消息去哪里go,总数据包大小为 (84) 字节。