Wireshark:一个好用的网络数据包查看工具

来源:互联网 发布:易语言刷屏器源码 编辑:程序博客网 时间:2024/05/29 14:16

题目要求:根据提供的两篇论文《wireshark lob:TCP》和《wireshark lab:UDP》,写一篇不少于两页纸的调查报告。

 

一、什么是wireshark

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

 

它的诞生要从它的前身Ethereal谈起。1997年底,GeraldCombs需要一个能够追踪网络流量的工具软件作为其工作上的辅助。因此他开始撰写Ethereal软件。Ethereal在经过几次中断开发的事件过后,终于在1998年7月释出其第一个版本v0.2.0。自此之后,Combs收到了来自全世界的修补程式、错误回报与鼓励信件。Ethereal的发展就此开始。不久之后,GilbertRamirez看到了这套软件的开发潜力并开始参予低阶程式的开发。1998年10月,来自NetworkAppliance公司的GuyHarris在寻找一套比tcpview(另外一套网络封包撷取程式)更好的软件。于是他也开始参与Ethereal的开发工作。1998年底,一位在教授TCP/IP课程的讲师RichardSharpe,看到了这套软件的发展潜力,而后开始参与开发与加入新协定的功能。在当时,新的通讯协定的制定并不复杂,因此他开始在Ethereal上新增的封包撷取功能,几乎包含了当时所有通讯协定。

 

自此之后,数以千计的人开始参与Ethereal的开发,多半是因为希望能让Ethereal撷取特定的,尚未包含在Ethereal默认的网络协定的封包而参予新的开发。2006年6月,因为商标的问题,Ethereal更名为Wireshark。 [1]

 

二、wireshark的应用举例

这里是一个用wireshark截获网络数据包的例子,用例取自论文《wireshark lab:TCP》,具体内容是从本机向远程指定服务器传送一本《爱丽丝漫游仙境》的电子书:

 

图1

 

从图中我们可以看到,wireshark捕捉所有在网络中传播的数据包,并把其中所包含的信息尽可能详细的表达出来,例如,从下面(图2)的一条信息中,

图2

我们可以看到数据包的源地址(128.119.245.12)、目的地址(172.16.2.38),所使用的协议(此处为TCP,还有UDP,HTTP,IGMP等),以及数据包所执行的操作和的包含的信息。

 

因此wireshark常常被网络员用来检测网络问题,网络安全工程师们则喜欢用它来检查资讯安全相关问题,开发者使用wireshark来为新的通讯协定除错,普通使用者使用它来学习网络协定的相关知识,比如说我们。不过,也有一些人利用它来在网络上寻找、窃取信息。

 

Wireshark为网络协议的学习者提供了一个很好平台,使不可见的网络操作变得可见,初学者们可以清楚地通过wireshark看出数据包在应用层与传输层的传递过程,把每一个完整的Peer-2-Peer过程都详细地记录了下来。通过它,可以看到每一次网络请求的发送与应答的接收,以及每一个数据包的传送信息。

 

比如说,从下面的一段信息(图3)中,我们可以看出:

图3

一个三步握手过程。即源地址(211.101.31.26)向目标地址(172.16.2.38)发送一个连接请求(seq0,SYN),目标地址收到后,做出应答(SYN,ACK,seq0),然后源地址开始发送数据请求。

一个流水线数据传输。在完成了上面的三步握手动作之后,源地址发送了一系列的数据传输,可以看到有四个,三个TCP请求,一个HTTP请求,然后等待目标地址的应答。

一个丢包重传过程。黑色的部分表示,目标地址发现一个loss,告知了源地址。源地址得到消息后,作了相应的处理,目标地址收到重传,返回应答。

后面是源地址继续向目标地址发送数据。

 

当然,还可以看到一些使用UDP协议的数据包,如:

同样,从中我们可以看到源地址、目标地址、协议类型,以及源地址和目标地址的端口号,以方便数据包找到对应的应用程序。

 

三、总结

总之,wireshark为我们提供了一个有力的学习计算机网络的工具,尤其在应用层和传输层上。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考资料:

[1] http://baike.baidu.com/view/640594.htm

[2]wireshark lab:TCP

[3]wireshark lab:UDP

原创粉丝点击