Mac (苹果系统)抓包 详解[转]

http://hi.baidu.com/chenfalei/blog/item/3c2cd233c22ab054ac4b5f05.html

经常搞网络程序得人,需要抓包查看本地发送和接收得一些网络数据,这就需要抓包工具了。

windows下得抓包工具比较多,我用过fiddler2<只能抓取使用微软的WinInet库得程序网络包>,WinNetCap等,

Mac系统下也有几个抓包工具,我用过得一个叫WireShark,这个工具也有Windows版本的,Mac版本的感觉挺好用的。

http://www.wireshark.org/download.html  这里是官网,下载对应版本(OS X xxx<Mac系统专用>)即可。

安装后,如下Mac (苹果系统)抓包 详解[转]

然后 运行此程序。出现如下界面

Mac (苹果系统)抓包 详解[转]

自己翻译一下几个选项的含义,

--开始抓包到一个文件

--打开一个抓包记录文件<多用于后续分析>

--打开一个抓包参数文件<猜的,具体没用过这个>

--浏览在线帮助文档

我一般使用第一个选项,点击第一个图标,出现如下图

Mac (苹果系统)抓包 详解[转]

如果抓包 过滤条件没有填写,则抓取所有的数据包<TCP,UDP等等<好像只要到本网卡的包都能抓到>>,入下图

Mac (苹果系统)抓包 详解[转]

抓包结果,如上图

如果设置了过滤条件,入上图我设置得就是本机和服务器之间得包才会抓取,其他包不作处理。这样就只有a,b机器之间得数据包<更多抓包过滤语法,请参考http://wenku.baidu.com/view/ad550312a21614791711286e.html>,如果是socket连接得,还可以清晰得看到

“三次握手”过程

     a--->(syn)------->b,

      b--------->(ack,syn)-------->a,

     a--------->(ack)------------>b

以及断开连接时得“四次握手”

至于 syn/ack/push/rst/fin等表示含义,请自己百度。

右下角的是通信协议栈每层的数据包头,在图上看时,从上到下依次为

--网络数据包

--链路层包头

--IP协议包头

-----TCP协议包头

--应用程序数据<最初得原始数据>

这样对网络协议模型也有较好得理解帮助。

相关推荐