这篇文章会依照上面思路来进行形容:
1、为什么须要抓包;
2、怎么抓包;
3、报文的简略剖析;
(ps 文章中提到的设施指的android零碎的设施)
一、为什么须要抓包
网络通信的时候,下层常常会用到http相干的协定,当初网络通信的开源框架也比拟多,相似okhttp这些框架曾经为咱们提供了非常简单的接口,可能只须要一行代码就能实现简略的上传等性能。
网络各个协定层之间的通信是通过报文来进行传递,每个协定层会有本人的报文格式。有时候咱们须要确认发送或者接管到的报文信息是否正确,这时就须要抓包进行剖析。其实还有很多场景会用到抓包,相似想通过php下载某个网站上的视频,这时也能够抓包,看下网站申请的信息,能够晓得相干视频的理论拜访地址。
我本人集体用到抓包,是在写socket通信的时候用到了,2台设施之间通过udp进行通信,而后一边是android零碎,一边是linux零碎,报文内容是依据我的项目须要定义的一套协定。在开发的时候,遇到2边联调时,对接管和发送的报文存在争议,这时抓包就是最好的形式了,以理论抓包内容为准。
二、怎么抓包 && 如何简略剖析报文
Android上抓包的很多工具,也有很多种形式,上面只介绍我本人应用过的2种。一种是pc端装置fiddler工具,在电脑端实时查看网络报文状况,另一种是通过tcpdump命令来抓包,而后再应用wireshark软件来剖析报文。实际上我应用第二种形式比拟多,间接通过命令来抓包还是比拟不便点,抓到的包也能够发给其它共事一起剖析。
1、采纳fiddler工具
应用fiddler工具是须要设施端的ip和电脑端ip在同一网段,如果是公司的对立wifi,那pc和设施都连上公司wifi即可。而后设施端连贯的wifi代理还须要设置为电脑端ip,这个目标也很显著,设施端wifi代理设为pc端ip后,设施端拜访网络,其实都是借助p c端出去的了,所以通过fiddler就能很不便的查看到网络拜访状况。
好了,理解了对于fiddler的根本状况,上面动动手,搞起来吧~~
1) pc端装置fiddler工具(这个就自行下载安装了);
2) ipconfig 查看电脑端 ip,这个ip地址就是设施端连贯的wifi须要设置的代理ip;
3) 设施端连贯wifi,这个wifi须要和p c端的网络是同一网络,而后设置代理采纳pc端ip(也就是下面通过ipconfig查看到的ip地址);
4) 关上pc端装置的fiddler,fiddler中设置容许近程拜访;
5) 通过下面几个步骤,上面就能够应用fiddler来查看网络报文了。能够试下在设施端拜访网络,这时就能够在fiddler上看到网络拜访状况了;
(上面的截图,是查看了喜马拉雅app的一次申请报文状况)
2、上面接着来看下第二种形式,采纳tcpdump命令抓包,而后通过wireshark软件进行剖析
1) tcpdump抓包命令
tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
2) 应用wireshark剖析抓到的包
在window上应用 wireshark关上抓取的包 *.pcap 文件.
上面的截图,是依据本人的须要,筛选了 192.168.7.2 发送给 192.168.7.3 的包. 能够看到协定是采纳的 UDP ,端口是应用的4052.
点开其中一条数据包看下更具体的信息,这里更多时候关怀的的是报文数据局部,查看Data局部的数据,能够排除咱们发的报文数据是否正确.
自己从事Android Camera相干开发已有5年
目前在深圳下班
欢送大家关注我的微信公众号“小驰笔记”
大家一起学习交换
------- 2020.01.12 周日