对于开源网络协议分析工具我们可能了解的不多,大部分人都应该知道,Ethereal。不知道是否熟悉Wireshark,其实它们是有着渊源的。Wireshark是最重要的网络协议分析软件之一,经过了十年的开发,刚刚发布了1.0正式版.或许您没有听说个这款软件,不过您也许 听说过Ethereal这款著名的开源网络协议分析工具.Wireshark就是之前的Ethereal.Ethereal的作者Cerald Coombs离开Ethereal商标所有者NIS公司后将Ethereal更名Wireshark,当然同样都是开源网络协议分析工具。过去,网络分析软件非常昂贵,Ethereal的出现改变了这一切.关于更详细的信息请参考:http://www.wireshark.org
wireshark用户手册(中文):::http://man.lupaworld.com/content/network/wireshark
wireshark开源网络协议分析工具的简单使用:
安装,并且在安装过程中,提示要安装 WinCap ,这个是要安装的,应该是抓包需要的插件吧.
打开软件,选择:capture->options,在 interface 中选择一个网卡,并且在 capture filter 中增加一个过滤器,就可以了.
常用的过滤器就是 host + ip ,可以抓与指定 ip 通信的包.
然后 start ,就开始抓包了.
抓到了包之后,是二进制的,在包上面点击右键选择 Follow TCP Stream ,就可以看到 http 包了.
里面红色的是发出的请求,篮色的是响应.
选择Capture->Options,先设定你要嗅探的网络接口,也就是你的网卡.然后在Capture Filter里输入tcp port http,说明只监听80端口的tcp请求.设置好这些,你就可以点击Start开始检测了.打开浏览器随便浏览一个网页,你就会得到类似下面的结果:
我浏览的是Google的页面.这里211.100.209.50是浏览器,66.249.89.147就是服务器.下面具体解释一下这个HTTP连接过程:
通过开源网络协议分析工具的分析,我们了解到浏览器向服务器发出连接请求. 服务器回应了浏览器的请求,并要求确认.浏览器回应了服务器的确认,连接成功.浏览器发出一个页面HTTP请求.服务器确认.服务器发送数据.客户端确认.服务器响应了一个200状态,表示成功.客户端发出一个图片HTTP请求.服务器响应了一个304HTTP头,告诉浏览器别打扰它,直接用缓存.客户端又发出一个图片HTTP请求.服务器还是响应了一个304HTTP头.浏览器确认.服务器准备关闭连接,并要求确认.浏览器确认.浏览器准备关闭连接,并要求确认.服务器确认. 其中包含了我们常说的TCP三次握手的过程.当"服务器回应了浏览器的请求,并要求确认"的时候,如果浏览器没有正常的确认,服务器就会在SYN_RECV状态等下去,直到超时.如果恶意程序伪造了大量类似的请求,那就是常说的SYN洪水攻击了.