我正在寻找从 WiFi 网络读取数据包丢失计数器的方法。
它应该通过adb shell或Java或C (NDK)或您的方式
安卓没有root。
我有一个接入点,我在其中使用服务配置了 2% 的丢包率Dummynet
。
我使用wget
来自 PC 的命令并从本地服务器下载 50 Mb 文件(LAN 的带宽应为 100Mb)。我看到丢包配置带宽从 100Mb 减少到 3Mb 后,这意味着一切正常。
到目前为止,一切都很好,
我的设备(Android)通过 WiFi 连接到上述 AP。
我尝试下载相同的 50 Mb 文件,下载速率为 3M,但我没有看到任何错误或重传计数器上升。
我使用adb shell
CLI 并输入到:sys/class/net/eth0/statistics
我看到的位置:
-r--r--r-- root root 4096 2012-12-04 15:42 rx_packets
-r--r--r-- root root 4096 2012-12-04 15:42 tx_packets
-r--r--r-- root root 4096 2012-12-04 15:41 rx_bytes
-r--r--r-- root root 4096 2012-12-04 15:41 tx_bytes
-r--r--r-- root root 4096 2012-12-04 15:43 rx_errors
-r--r--r-- root root 4096 2012-12-04 15:43 tx_errors
-r--r--r-- root root 4096 2012-12-04 15:43 rx_dropped
-r--r--r-- root root 4096 2012-12-04 15:43 tx_dropped
-r--r--r-- root root 4096 2012-12-04 15:43 multicast
-r--r--r-- root root 4096 2012-12-04 15:43 collisions
-r--r--r-- root root 4096 2012-12-04 15:43 rx_length_errors
-r--r--r-- root root 4096 2012-12-04 15:43 rx_over_errors
-r--r--r-- root root 4096 2012-12-04 15:43 rx_crc_errors
-r--r--r-- root root 4096 2012-12-04 15:38 rx_frame_errors
-r--r--r-- root root 4096 2012-12-04 15:38 rx_fifo_errors
-r--r--r-- root root 4096 2012-12-04 15:38 rx_missed_errors
-r--r--r-- root root 4096 2012-12-04 15:38 tx_aborted_errors
-r--r--r-- root root 4096 2012-12-04 15:38 tx_carrier_errors
-r--r--r-- root root 4096 2012-12-04 15:38 tx_fifo_errors
-r--r--r-- root root 4096 2012-12-04 15:38 tx_heartbeat_errors
-r--r--r-- root root 4096 2012-12-04 15:38 tx_window_errors
-r--r--r-- root root 4096 2012-12-04 15:38 rx_compressed
-r--r--r-- root root 4096 2012-12-04 15:38 tx_compressed
所以我运行cat *
并获取除 4 之外的所有上述 0 值的文件:
tx/rx_packets/bytes
是活动的,这意味着我使用写接口:
cat rx_packets
9106
如果任何知道其他方法来检测数据包丢失或以编程方式获取它,将不胜感激