要分析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)"c0 a8 0c 34" 源地址的IP : 即 192.128.12.52
(12)"79 c2 06 2e"目的地址的IP: 即 121.194.6.46
后面接着的就是IP的数据内容了,IP包包头分析就到此为止,其实分析包头并不难,UDP、ARP包的分析可以按照本文的思路,按照协议 一 一分析即可。
本文出自 “对影成三人” 博客,请务必保留此出处http://ticktick.blog.51cto.com/823160/203412