1.       IP报头格式:

0                                15 16                              31
版本(4
报头长度(4
优先级和服务(8
总长度(16
标识(16
标志(3
分段偏移(13
存活期(8
协议(8
报头校验和(16
IP地址(32
目的IP地址(32
选项(032,若有的话)
数据(可变)
详细说明:
优先级和服务:前三位表示优先级。
总长度:包括报头和数据的数据包长度。
标识:唯一的ip数据包值。
标志:说明是否有数据被分段。
协议:上层协议的端口,tcp是端口6;udp是端口17.同样也支持网络层协议。
报头校验和:只针对报头的循环冗余校验(CRC)。
选项:用于网络监测、调试、安全以及更多的内容。
数据:就是上层数据。

2.下面是抓包到的ip数据包:
IP  Header – Internet  Protocol  Datagram
 Version:          4
 Header Length:    5
 Precedence:      0
 Type of Service:    %000
 Unused:          %00
 Total Length:      187
 Identifier:         22486
 Framgmentation  Flags:  %010 Do Not Fragment
 Fragment Offset:    0
 Time of Live:      60
 IP Type:       0x06 TCP
 Header Checksum:   0xd031
 Source IP Address:   10.7.1.30
 Dest. IP Address:   10.7.1.10
 No Internet Datagram Options
 
3.ICMP(因特网控制报文协议)---被封装在IP数据包内,能为主机提供有关网络故障的信息。
  它的功能如下:
A. 网络路径不可达:当IP数据报不能向前转发时,路由器会使用ICMP传送信息。
B. 缓冲区满:当缓冲区满时,发送ICMP以停止发送方发送信息解除拥塞;
C. 跳:当超过允许经过的路由器的个数(该数值被称为跳)时,最后接受这个数据报的路由器会删掉它,并使用ICMP来发送一个死亡通知单,通告该数据报已丢失。
D. Ping:检测网络连接性。
E. Traceroute:通过使用ICMP的超时机制来发现一个数据包在穿越互联网络时他所经历的路径。(在MS-DOS中为tracer命令)

4.抓包得到的ICMP包:
Flags:    0x00
 Status:    0x00
 Packet Length: 78
 Timestamp:     14:04:25.967000  12/20/03
Ethernet Header
 Destination:    00:a0:24:6e:0f:a8
 Source:        00:80:c7:a8:f0:3d
 Ether – Type:   08-00 IP
IP Header – Internet Protocol Datagram
 Version:       4
 Header Length:  5
 Precedence:     0
 Type of Service:  %000
 Unused:        %00
 Tocoal Length:   60
 Identifier:       56325
 Fragmentation Flags:    %000
 Fragment Offset:      0
 Time To Live:    32
 IP Type:        0x01 ICMP
 Header Checksum:    0x2df0
 Source IP Address:   100.100.100.2
 Dest. IP Address:     100.100.100.1
 No Internet Datagram Options
ICMP – Internet Control Messages Protocol
 ICMP Type:      8 Echo Request
 Code:          0
 Checksum:      0x395c
 Identifier:       0x0300
 Sequence Number:   4352
 ICMP Data Area:    
 abcdefghijklmnop  61 62 63 64 65 66 67 68 69 6a 6b 6c 6d
 qrstuvmabcdefghi  71 72 73 74 75 76 77 61 62 63 64 65 66
Frame Check Sequence:   0x00000000
上面有个Ether – Type:   08-00 IP,这说明该帧类型是Ethernet_II型的帧。
Ethernet_II型的帧格式为:

前导
8字节
DA
6字节
SA
6字节
类型
2字节
数据
FCS
4字节
FCS为帧校验序列
下面是抓包来的帧:
Destination:     00:60:f5:00:1f:27
Source:         00:60:f5:00:1f:2c
Protocol Type:   08-00 IP
这是Ethernet_II帧。
下面是广播帧:
Destination:     ff:ff:ff:ff:ff:ff Ethernet Broadcast
Source:         02:07:01:22:de:a4
Protocol Type:   08-00 IP

5.ARP地址解析协议
看一下ARP广播包的内容:
Flags:       0x00
Status:      0x00
Packet Length:64
 Timestamp:   09:17:29.574000  12/06/03
Ethnernet Header
 Destination:      FF:FF:FF:FF:FF:FF Ethernet Broadcast
 Source:          00:A0:24:48:60:A5
 Protocol Type:    0x0806 IP ARP
ARP – Address resolution Protocol
 Hardware:          1 Ethernet (10Mb)
 Protocol:           0x0806 IP ARP
 Hardware Address Length:    6
 Protocol Address Length:     4
 Operation:               1 ARP Request
 Sender Hardware Address:   00:A0:24:48:60:A5
 Sender Internet Address:     172.16.10.3
 Target Hardware Address:     00:00:00:00:00:00 (ignored)
 Target Internet Address:      172.16.10.10
Extra bytes (padding):
………………………….0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A
Frame Check Sequence:    0x00000000