经常在linux下工作的朋友一定经常需要用tcpdump抓包分析,不过有时候肉眼看起来实在是太累,不经意居然发现了这样一个好工具:
wireshark,下载页:http://www.wireshark.org/download.html

简单用他来演示一下tcp协议的整个过程:
先在开发机上开始抓包:

tcpdump -ieth1 host 172.27.193.234 -w tcpbao

调用一个发送tcp请求的小程序,可以抓到包—tcpbao.

用wireshark载入之后,会看到如下界面:

1

可见,整个过程完整的展现了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,希望对大家有用~

TCP协议状态详解

1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。 (2) 服务器端回应客户端的,这是三次握手中的...

阅读全文

用netstat查看网络状态详解

一、Linux服务器上11种网络连接状态:                                           图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三...

阅读全文

5则回应给“使用wireshark分析网络报文”

  1. 可可火山说道:

    wireshark(前身etheral)是个优秀的开源软件。win/linux都有~

    以前都用 sniffer pro的。

    [回复]

    Dante 回复:

    说来奇怪sniffer在我电脑上总是不抓包。。。
    我现在http请求是用:httpwatch或者fiddler
    其他类型的请求使用:wireshark

    [回复]

    可可火山 回复:

    可能是驱动问题吧。
    我的无线网卡也没法在混杂模式下嗅探。sniffer 盗版的不想用了,

    [回复]

    依云 回复:

    wireshark我用很久了。HTTP可以用火狐的httpfox插件(或者firebug)搞定。

    [回复]

  2. arey.cn说道:

    这个软件很好,从第一版开始用用到现在…

    [回复]

发表评论