哪里可以从Android设备读取WiFi丢包计数器?

哪里可以从Android设备读取WiFi丢包计数器?,第1张

概述我正在寻找从WiFi网络读取丢包计数器的方法. 它应该是adb shell或Java或C(NDK)或你的方式 Android没有扎根. 我有一个接入点,我使用Dummynet服务配置了2%的数据包丢失. 我从PC使用wget命令并从本地服务器下载50 Mb文件(LAN的Band Width应该是’100Mb).我看到在丢包后配置Band Width从100Mb减少到3Mb,这意味着一切正常. 到现 我正在寻找从WiFi网络读取丢包计数器的方法.

它应该是adb shell或Java或C(NDK)或你的方式

Android没有扎根.

我有一个接入点,我使用Dummynet服务配置了2%的数据包丢失.

我从PC使用wget命令并从本地服务器下载50 Mb文件(LAN的Band WIDth应该是’100Mb).我看到在丢包后配置Band WIDth从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 *并获得上面提到的所有文件,其中0值除了4:

tx / rx_packets / bytes是活动的,这意味着我使用write接口:

cat rx_packets9106

如果有任何其他方式来检测丢包或以编程方式获取它将非常感激

解决方法 除非我误解了你的要求.如果您连接到与移动设备相同的网络,则可以使用wireshark.

或者你可以做一个tcpdump,然后通过wireshark分析它以丢失数据包.

以下是一些可能对您有所帮助的链接.

http://dennismillerdev.wordpress.com/2011/02/03/debug-network-activity-in-android-using-wireshark/
http://mobile.tutsplus.com/tutorials/android/analyzing-android-network-traffic/
Capturing mobile phone traffic on wireshark

如果您只是尝试进行通用连接测试.您可以尝试简单地向服务器发送一系列UDP数据包,以回应相同的数据包.有一个单独的线程同时运行,试图从服务器接收这些数据包.如果要进行其他测量,请记录时间戳,但如果返回的数据包少于发送的数据包,则可以知道丢失了多少数据包.如果为数据包提供包含ID的1字节有效负载. (即:发送20个ID为1-20的数据包)然后当您从服务器收到数据包时,您可以检查有效负载并查看哪些数据包丢失和/或不按顺序.

除此之外,您可以在不使用手机的情况下受限制.您可以使用TrafficStats获取发送的数据包getTotalRxPackets()或getTotalTxPackets()以获取发送/接收的总数据包.或者,如果您使用更高级别的API,您甚至可以获得每个应用程序的UDP数据包数量.因此,您可以找到已发送和已接收但未丢失的数据包数.

如果您知道设备发送了多少数据包,并且在服务器端检测到来自该设备的数据包数量,则差异应该有助于您了解丢失数据包的数量. (此方法需要您控制服务器并涉及更多设备 – 服务器通信)

希望这会有所帮助.

总结

以上是内存溢出为你收集整理的哪里可以从Android设备读取WiFi丢包计数器?全部内容,希望文章能够帮你解决哪里可以从Android设备读取WiFi丢包计数器?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存