利用WireShark对听音乐的过程中传送的数据包进行分析
相信现在的每一个人都在网络上听过音乐,那么,在我们听音乐的过程中,究竟发生了什么呢?下面我就利用 WireShark 给大家分析一下。
第一步。 打开wireshark,选择本地连接进行监听。之后,打开一个音乐软件,随便点击一首歌曲,然后播放这首歌曲。
第二步。等待音乐播放了十几秒之后,停止wireshark的监听,现在wireshark已经监听到许多的数据包了,如下图
现在我们只要过滤出因为听音乐而发送和接受的数据包,之后就可以进行数据包的分析了。
那么到底该如何进行数据包的过滤呢?
因为我们在听歌曲时,会加载相应的歌手的图片或者专辑的图片,所以一定会向服务器发送http请求,所以,我们首先使用的过滤规则为“http”,过滤之后,如下:
很明显,数据包少了许多,图中我划第一条黄线的数据包应该就是我们向服务器请求需要加载的图片时发送的数据包,然后,第二条划黄线的数据包的详细信息如下图
很明显,这个http请求所请求的资源是mp3文件,这个文件很有可能是我们正在播放的音乐的资源的url,我们打开浏览器,访问这个url,如下图
果然是我们正在听的音乐。
从这里,我们可以想到,对于那些只能听,而下载的时候要钱的音乐,我们是否可以以上述同样的方式进行操作,来获得免费的下载呢?大家可以自己实践试一试。
下来我们继续分析数据包。
由上面我们进行的分析可以得到向我们发送音乐的服务器的ip地址,以这个ip地址作为过滤的手段,进行新一轮的过滤,如下图
过滤之后,我们可以看到,在我们发送了编号为67的get请求之后,服务器返回给我们一个tcp数据包,之后,服务器给我们发送了许多显示为“TCP segment of a reassembled PDU”的tcp数据包,那么这种类型的数据包代表什么意思呢?
这一篇博客文章给出了很好的解释: http://blog.csdn.net/hldjf/article/details/7450565
其实,这种类型的数据包就是当服务器要给我们传送的数据太大了的时候,服务器会选择传送许多数据包来进行数据的传送,对wireshark来说这些对相应同一个查询命令的数据包被标记了“TCP segment of a reassembled PDU”。
当服务器发送完所有的数据包之后,会发送一个http报文,告诉我们数据传送完毕,之后发生4次挥手,我们与服务器断开连接。如下图
最后,我们来理一理整个听音乐时的数据包发送与接收的过程:
1.我们向服务器请求我们要听的歌曲的资源
2.服务器返回给我们资源,不过,因为一首歌的大小太大,所以服务器选择通过传送许多个数据包来返回给我们歌曲资源。
3.当服务器发送完毕之后,发送http报文,告诉我们数据包都已经发送完了,我们此时与服务器开始4次挥手,断开与服务器的连接。
*本文作者:wujiaming123,转载请注明来自FreeBuf.COM