用Sniffer抓包分析以太网帧-抓包分析ICMP错误响应

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用Sniffer抓包分析以太网帧-抓包分析ICMP错误响应

2007-08-22 10:02

用sniffer抓icmp包来分析。

1。ping 192.168.1.1 -l 0

ping一个ip,指定携带的数据长度为0

抓包分析如图:

从图上的1处我们可以看到这个数据总大小是:60byte

从2处看到ip数据总长度:28byte

ip数据为什么是28byte?

因为ip头部是20个字节(4处标记的),而icmp头部是8个字节,因为我们的ping是指定数据长度为0的,所以icmp里不带额外数据,即:

28=20+8

而我们知道以太网类型帧头部是6个字节源地址+6个字节目标地址+2个字节类型=14字节

以太网帧头部+ip数据总长度=14+28=42

注意3处标记的,填充了18个字节。

42+18=60

刚好等于总长度,其实这里我们需要注意到这里捕捉到帧不含4个字节的尾部校验,如果加

上4字节尾部校验,正好等于64!

64恰好是以太类型帧最小大小。

在图中我们还可以看到这个帧没有分割,flags=0x,因为不需要分割。第15个字节TOS的含义如下:

15 00 // TOS ( type of service,

//bit 0 = 0, CE bit - no congestion;

//bit1 = 0, ECT bit - transport protocol will ignore the CE bit;

//bit 2 =0, normal reliability;

//bit 3 = 0, normal throughtput;

//bit 4 = 0, normal delay;

//bit 5 ~ bit 7 = 000, routine.

再分析一个

ping 192.168.1.1 -l 64

数据大小106byte

106-14(以太类型帧头部)=92

刚好等于ip部分的显示大小

92-20(ip)-8(icmp头)=64

刚好等于我们指定的64字节ping 包

以太网帧实际承载数据部分最大为1500,这里面还包含其他协议的报头,所以实际承载数据肯定小于1500,如果ping 192.168.1.1 -l 1500,那么数据必要会被分割,但计算方法还是一样的,只是需要特别注意,后续帧无需包含第一个帧所包含的icmp报头。

所以第一个帧的大小会是1500(实际数据部分大小,含ip和icmp报头)+14(以太类型帧头部)=1514,在第一个帧里实际携带了多少数据的是1500-20(IP 报头)-8(icmp报头)=1472,剩余28bytes数据会在后续帧中

后续帧大小:14(以太类型头)+20(ip头)+28(实际数据)=62

注意上面的计算我们都不计算尾部4字节校验的。可以实际抓包验证上面的分析。

-------------------------------------------------------------------------------------------------------------------------------

用Sniffer抓包分析ICMP错误响应

从192.168.1.2telnet192.168.1.1上的一个没开放的端口

下图返回的端口不可达ICMP错误返回数据帧,可以看出该帧不算以太网帧尾部的4字节一共是70字节.

以太网帧封装的IP-ICMP的信息格式:

以太帧头部(14字节)---IP包头部(20字节)--{ICMP头部(8字节)---[产生差错原始IP报文头(20字节)--原始IP中数据部分的头8字节]}

注解:{}表示IP头后跟的IP数据报文部分

[]表示ICMP头后跟的ICMP报文部分

更具体的解释请参看TCP/IP协议详解卷一CHAP6

相关文档
最新文档