Android 流量分析 tcpdump & wireshark

來源:互聯網
上載者:User

標籤:流量測試   wireshark   tcpdump   

      APP競爭已經白熱化了,控制好自己Android應用的流量可以給使用者一個良好的使用者體驗噢,給使用者多一個不卸載的理由。

      Android 如何進行流量分析?用好tcpdump & wireshark這兩個工具就好了。


1、tcpdump採用命令列方式,它的命令格式為:
  tcpdump [ -adeflnNOpqStvx ] [ -c 數量 ] [ -F 檔案名稱 ]
          [ -i 網路介面 ] [ -r 檔案名稱] [ -s snaplen ]
          [ -T 類型 ] [ -w 檔案名稱 ] [運算式 ]
  tcpdump的選項介紹
   -a    將網路地址和廣播位址轉變成名字;
   -d    將匹配資訊包的代碼以人們能夠理解的彙編格式給出;
   -dd    將匹配資訊包的代碼以c語言程式段的格式給出;
   -ddd    將匹配資訊包的代碼以十進位的形式給出;
   -e    在輸出行列印出資料連結層的頭部資訊;
   -f    將外部的Internet地址以數位形式列印出來;
   -l    使標準輸出變為緩衝行形式;
   -n    不把網路位址轉譯成名字;
   -t    在輸出的每一行不列印時間戳記;
   -v    輸出一個稍微詳細的資訊,例如在ip包中可以包括ttl和服務類型的資訊;
   -vv    輸出詳細的報文資訊;
   -c    在收到指定的包的數目後,tcpdump就會停止;
   -F    從指定的檔案中讀取運算式,忽略其它的運算式;
   -i    指定監聽的網路介面;
   -r    從指定的檔案中讀取包(這些包一般通過-w選項產生);
   -w    直接將包寫入檔案中,並不分析和列印出來;
   -T    將監聽到的包直接解釋為指定的類型的報文,常見的類型有rpc (遠程過程
調用)和snmp(簡單       網路管理協議;)

2、tcpdump 參數 轉自http://www.cnblogs.com/maifengqiang/p/3863168.html
第一種是關於類型的關鍵字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主機,net 202.0.0.0 指明 202.0.0.0是一個網路地址,port 23 指明連接埠號碼是23。如果沒有指定類型,預設的類型是host.
第二種是確定傳輸方向的關鍵字,主要包括src , dst ,dst or src, dst and src ,這些關鍵字指明了傳輸的方向。舉例說明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的網路地址是202.0.0.0 。如果沒有指明方向關鍵字,則預設是src or dst關鍵字。
第三種是協議的關鍵字,主要包括fddi,ip,arp,rarp,tcp,udp等類型。Fddi指明是在FDDI(分布式光纖資料介面網路)上的特定 的網路通訊協定,實際上它是"ether"的別名,fddi和ether具有類似的源地址和目的地址,所以可以將fddi協議包當作ether的包進行處理和 分析。其他的幾個關鍵字就是指明了監聽的包的協議內容。如果沒有指定任何協議,則tcpdump將會監聽所有協議的資訊包。
  除了這三種類型的關鍵字之外,其他重要的關鍵字如下:gateway, broadcast,less,greater,還有三種邏輯運算,取非運算是 ‘not ‘ ‘! ‘, 與運算是‘and‘,‘&&;或運算 是‘or‘ ,‘||‘;這些關鍵字可以組合起來構成強大的組合條件來滿足人們的需要。

以下是幾個例子:
A想要截獲所有210.27.48.1 的主機收到的和發出的所有的資料包:
#tcpdump host 210.27.48.1
B想要截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通訊,使用命令:(在命令列中適用 括弧時,一定要
#tcpdump host 210.27.48.1 and / (210.27.48.2 or 210.27.48.3 /)
C如果想要擷取主機210.27.48.1除了和主機210.27.48.2之外所有主機通訊的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
D如果想要擷取主機210.27.48.1接收或發出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1


3、wireshark 轉自 http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html


4、Android如何流量分析? 具體操作
4.1、tcpdump 
tcpdump -i any -p -vv -s 0 -w /sdcard/dump.cap
4.2、adb pull
adb pull /sdcard/dump.cap D:\dump.cap
4.3、wireshark
採用wireshark查看 D:\dump.cap
4.4、詳細分析
通過wireshark分析已經可以
如果需要更詳細的分析,可以把dump.cap從wireshark裡頭匯出成csv檔案,然後再自己寫個小程式分析。

5、總結:

Android 流量分析在Android應用後期最佳化是一個很重要的方面,用好tcpdump&wireshark就能控制好應用的流量。






Android 流量分析 tcpdump & wireshark

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.