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自己的,功能有待研究。


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