Android上的流量监控思路

http://www.kernelchina.org/?q=node/565

Android上的流量监控思路

appleleaf's picture
Submitted by appleleaf on Thu, 2011-01-06 10:59

看了一下linux提供的API以及相关代码,基本有一些结论。

1.协议栈对于每socket并不维护统计信息,因为没有必要添加相关信息,一则影响性能,二则无处保存。

通过NetLink的 NETLINK_TCPDIAG无法实现,该接口被iproute2中的工具使用,提供一些系统快照信息。其中2.6的实现是读取tcp_info结构获取tcp connection的快照信息,相关信息中也没有包含统计信息。

有关netlink,有网文描述下面RFC是其标准定义,

RFC 3549 Linux Netlink as an IP Services Protocol

简单的看了一下这个RFC,其实是将netlink作为网络协议使用的一个informational RFC。作为IETF是从来不care主机内部实现的,因此这个RFC也一定不能称为linux netlink的定义。

2.可行思路之一是通过netfilter架构采集信息,但是Android的Netfilter没有被编译到标准的kernel。

看了一下有些大侠已经实现的类似工具,基本上要刷系统,内核中添加netfilter编译支持来实现。

3.可行思路之二是在Java层面对于应用收发流量进行获取,尚不知Java是否提供相关接口用于监控虚拟机。另外Android的虚拟机也是非标准的Google自己的,功能有待研究。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章