经常在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/