我们知道,使用
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
)
“
c0 a8 0c 34″
源地址的
IP
:
即
192.128.12.52
(
12
)
“79 c2 06 2e”
目的地址的
IP
:
即
121.194.6.46
后面接着的就是
IP
的数据内容了,
IP
包包头分析就到此为止,
其实分析包头并不难,
UDP
、
ARP
包的分析可以按照本文的思路,按照协议一一分析即可。