我们知道,使用 Ethereal 软件可以方便地帮助我们进行抓取网络中的数据包,具体怎样利用它分析一个特定的包呢?我在网上找了半天,发现相关的分析IP包的文章很少,在此,我将自己在学习使用该软件抓取IP包并分析的过程描述如下,供初学者入门之用,有分析不对的地方欢迎指正。最后附上简单介绍Ethereal使用方法文章,详细使用手册可以在网上查询。

要分析IP包,首先要知道IP包的包头格式,各种计算机网络的书籍都有介绍,必须了解该协议分析包才有意义,IPv4首部一般是20字节长,该协议如下:


   


下面使用Ethereal抓取一个特定的IP包,然后根据该协议分析该IP包。

使用Ethereal抓取的IP包如下:

   

我用不同的框框划分出来了,便于分析。

首先,开始的 6字节+ 6字节 + 2字节 不属于IP包包头本身。

(1)“ 00 e0 4c 5f 97 1b ” 目的主机的MAC地址

(2)“ 00 1a 4d 28 62 ff ” 源主机的MAC地址:

(3) “08 00 ” 包类型:08 00 为 IP包后面的开始为真正的IP包包头,可以根据上面的协议进行分析了。

    

(4)“45”,其中“4”是IP协议的版本(Version),说明是IP4,“5”指本IP包的包头长度为 5X4 = 20 字节
    

(5) “00”服务类型(Type of Service)
    

(6) “00 40”是IP数据报文总长,包含头部以及数据,这里表示4X16 = 64字节(注:00 40为16进制表示)
    

(7) " 62 06 "、" 40 00 " 表示 认证、标志、段偏移:主要用于数据报的分段
    

(8) " 40" 表示一个IP数据流的生命周期,用Ping显示的结果,能得到TTL的值,很多文章就说通过TTL位来判别主机类型。因为一般主机都有默认的TTL值,不同系统的默认值不一样.
    

(9) " 06 " 很重要,表示 传输层的协议类型(Protocol),06表示TCP协议
    

(10)"8b e5" 为校验和
    

(11)"spacer.gifspacer.gifspacer.gifc0 a8 0c 34" 源地址的IP   :  即 192.128.12.52
    

(12)"79 c2 06 2e"目的地址的IP:  即 121.194.6.46
    

后面接着的就是IP的数据内容了,IP包包头分析就到此为止,其实分析包头并不难,UDP、ARP包的分析可以按照本文的思路,按照协议 一 一分析即可。