经常在linux下工作的朋友一定经常需要用tcpdump抓包分析,不过有时候肉眼看起来实在是太累,不经意居然发现了这样一个好工具:
wireshark,下载页:http://www.wireshark.org/download.html
简单用他来演示一下tcp协议的整个过程:
先在开发机上开始抓包:
tcpdump -ieth1 host 172.27.193.234 -w tcpbao
调用一个发送tcp请求的小程序,可以抓到包---tcpbao.
用wireshark载入之后,会看到如下界面:
可见,整个过程完整的展现了TCP协议中,建立链接->发送数据->断掉链接的过程。
读者可以对照本博的:
TCP协议状态详解
或
http://bigwhite.blogbus.com/logs/11582229.html
来看。
简单说一下:
1~3个报文是tcp三次握手建立链接的过程
4~7个报文是客户端发送实体数据的过程
8~10个报文是客户端主动断掉链接的过程(这里和标准的关闭链接貌似有点出入,标准TCP协议貌似还要多返回一个ACK报文)
其实这个软件还支持直接抓包来查看报文的,详细可以看一下如下的在线文档,在此不再赘述。
http://man.lupaworld.com/content/network/wireshark/
OK,希望对大家有用~
可可火山 on #
wireshark(前身etheral)是个优秀的开源软件。win/linux都有~
以前都用 sniffer pro的。
Reply
Dante on #
说来奇怪sniffer在我电脑上总是不抓包。。。
我现在http请求是用:httpwatch或者fiddler
其他类型的请求使用:wireshark
Reply
可可火山 on #
可能是驱动问题吧。
我的无线网卡也没法在混杂模式下嗅探。sniffer 盗版的不想用了,
Reply
依云 on #
wireshark我用很久了。HTTP可以用火狐的httpfox插件(或者firebug)搞定。
Reply
arey.cn on #
这个软件很好,从第一版开始用用到现在...
Reply