我正在寻找从WiFi网络读取数据包丢失计数器的方法。从哪里可以从Android设备读取WiFi数据包丢失计数器?
它应该是在亚行外壳或的Java或C(NDK)或用自己的方式
Android是不会生根。
我有一个接入点,我配置丢包率为2%Dummynet
服务。
我使用wget
命令从PC并从本地服务器下载50 Mb文件(LAN的带宽应该是100Mb)。我看到,在丢包配置带宽从100Mb减少到3Mb之后,这意味着所有工作都正常。
到目前为止好,
我的设备(Android设备)被连接到上面提到的由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 *
并获得上述所有文件与0值除4:
tx/rx_packets/bytes
是活动的,它的平均我使用写入接口:
cat rx_packets
9106
如果有任何其他方式来检测丢包或得到它programm atically会不胜感激
你有没有比较过普通Linux客户端上的这些计数器会遭受同样的测试? –
我在Linux上使用'netstat -s | grep retransmited'但Android上的netstat显示没有意思。由于PL(数据包丢失),我的下载速度降至3M。我使用NDK(C代码)。顺便说一句,我只激活了TCP的TCP。 –
但是,在普通的linux上,你可以看到相当于/ sys/class/net的统计信息吗?另外,你确定你正在使用的界面? –